{"version":3,"file":"static/js/12.0173485079b6107cfee5.chunk.js","mappings":"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","sources":["webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/definition-extensions/account-loyalty.ext.props.autogenerated.ts?0bf6","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/account-loyalty.view.tsx?24c1","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/account-profile.view.tsx?555a","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/reviews-list.view.tsx?43bb","webpack://venchi-ecommerce-msdyn365/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://venchi-ecommerce-msdyn365/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://venchi-ecommerce-msdyn365/./src/modules/accordion/accordion.tsx?78b1","webpack://venchi-ecommerce-msdyn365/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://venchi-ecommerce-msdyn365/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://venchi-ecommerce-msdyn365/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://venchi-ecommerce-msdyn365/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://venchi-ecommerce-msdyn365/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://venchi-ecommerce-msdyn365/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://venchi-ecommerce-msdyn365/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://venchi-ecommerce-msdyn365/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://venchi-ecommerce-msdyn365/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://venchi-ecommerce-msdyn365/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://venchi-ecommerce-msdyn365/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://venchi-ecommerce-msdyn365/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://venchi-ecommerce-msdyn365/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://venchi-ecommerce-msdyn365/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://venchi-ecommerce-msdyn365/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://venchi-ecommerce-msdyn365/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://venchi-ecommerce-msdyn365/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/account-profile.tsx?fe69","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://venchi-ecommerce-msdyn365/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://venchi-ecommerce-msdyn365/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://venchi-ecommerce-msdyn365/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://venchi-ecommerce-msdyn365/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/password-reset.tsx?0983","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://venchi-ecommerce-msdyn365/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://venchi-ecommerce-msdyn365/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://venchi-ecommerce-msdyn365/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://venchi-ecommerce-msdyn365/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://venchi-ecommerce-msdyn365/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://venchi-ecommerce-msdyn365/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://venchi-ecommerce-msdyn365/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://venchi-ecommerce-msdyn365/./src/modules/footer-item/footer-item.tsx?074a","webpack://venchi-ecommerce-msdyn365/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://venchi-ecommerce-msdyn365/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://venchi-ecommerce-msdyn365/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://venchi-ecommerce-msdyn365/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://venchi-ecommerce-msdyn365/./src/modules/social-share/social-share.tsx?899b","webpack://venchi-ecommerce-msdyn365/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca"],"sourcesContent":["/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IAccountLoyalty contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum layout {\r\n cardLayout = 'cardLayout',\r\n wideLayout = 'wideLayout',\r\n compact = 'compact'\r\n}\r\n\r\nexport interface IAccountLoyaltyConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n className?: string;\r\n clientRender?: boolean;\r\n layout: layout;\r\n displayJoinDate?: boolean;\r\n displayAppleWallet?: boolean;\r\n displayGoogleWallet?: boolean;\r\n appleWalletBtnImage?: Msdyn365.IImageData;\r\n googleWalletBtnImage?: Msdyn365.IImageData;\r\n walletLoyaltyProgramName?: string;\r\n pointsExpirationReminder?: string;\r\n loyaltyTiersLink?: ILoyaltyTiersLinkData;\r\n}\r\n\r\nexport interface IAccountLoyaltyResources {\r\n loyaltyCardLabel: string;\r\n joinDateFormatted: string;\r\n totalAvailablePointsLabel: string;\r\n expiringPointsFormatLabel: string;\r\n expiringPointsFormatAriaLabel: string;\r\n availablePointsLabel: string;\r\n availablePointsAriaLabel: string;\r\n loyaltyActivityDateLabel: string;\r\n loyaltyActivityBalanceLabel: string;\r\n redeemedPointsLabel: string;\r\n refundedPointsLabel: string;\r\n earnedPointsLabel: string;\r\n pendingPointsLabel: string;\r\n adjustedPointsLabel: string;\r\n backToShoppingText: string;\r\n loyaltyTierLabel: string;\r\n loyaltyCardLabel_CL: string;\r\n availablePointsLabel_CL_before: string;\r\n availablePointsLabel_CL_after: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface ILoyaltyTiersLinkData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IAccountLoyaltyProps extends Msdyn365.IModule {\r\n resources: IAccountLoyaltyResources;\r\n config: IAccountLoyaltyConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\n// import { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { IAccountLoyaltyProps, layout as layoutNames } from '../definition-extensions/account-loyalty.ext.props.autogenerated';\r\nimport { IAccountLoyaltyViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { ILoyaltySignUpProps } from '@msdyn365-commerce-modules/account-management';\r\n\r\nimport { Row, Container } from 'reactstrap';\r\nimport classnames from 'classnames';\r\n\r\nconst isWideOrCompactLayout = (layout: layoutNames) => {\r\n return [layoutNames.wideLayout, layoutNames.compact].includes(layout);\r\n};\r\n\r\nconst layoutClassNames = {\r\n [layoutNames.wideLayout]: 'loyalty-wide-layout',\r\n [layoutNames.compact]: 'loyalty-compact-layout'\r\n};\r\n// @ts-ignore\r\nconst getLayoutClassName = (layout: layoutNames) => layoutClassNames[layout] || 'loyalty-wide-layout';\r\n\r\nconst AccountLoyaltyView: React.FC & ILoyaltySignUpProps<{}>> = props => {\r\n const { AccountLoyalty, heading, cardNumber, joinDate, points } = props;\r\n\r\n const {\r\n layout,\r\n displayJoinDate,\r\n displayAppleWallet,\r\n displayGoogleWallet,\r\n appleWalletBtnImage,\r\n googleWalletBtnImage,\r\n pointsExpirationReminder,\r\n loyaltyTiersLink,\r\n walletLoyaltyProgramName\r\n } = props.config;\r\n\r\n const {\r\n loyaltyTierLabel,\r\n loyaltyCardLabel,\r\n loyaltyCardLabel_CL,\r\n availablePointsLabel,\r\n availablePointsLabel_CL_before,\r\n availablePointsLabel_CL_after,\r\n viewLoyaltyPageText\r\n } = props.resources;\r\n\r\n const firstLoyaltyGroup =\r\n // @ts-ignore\r\n props.AccountLoyalty.moduleProps.data.loyaltyCard.result &&\r\n // @ts-ignore\r\n props.AccountLoyalty.moduleProps.data.loyaltyCard.result.LoyaltyGroups[0];\r\n // @ts-ignore\r\n const highestTierId = firstLoyaltyGroup.HighestActiveLoyaltyCardTier;\r\n // @ts-ignore\r\n const tierDetails = firstLoyaltyGroup.LoyaltyCardTiers.filter(tier => tier.RecordId === highestTierId)[0];\r\n const tierName = tierDetails.TierId;\r\n\r\n const user_email = props.AccountLoyalty.moduleProps.context.request.user.emailAddress;\r\n // @ts-ignore\r\n const user_card_number = cardNumber!.props.text;\r\n\r\n let points_numbers = [-1.1];\r\n\r\n // @ts-ignore\r\n if (points && points.props) {\r\n // @ts-ignore\r\n points_numbers = points.props.text.split('.');\r\n }\r\n\r\n const height_to_set = 48; // Minimum per Google guidelines\r\n\r\n const tierClass = `tier-name__${tierName}`;\r\n\r\n const apple_wallet_check: boolean =\r\n displayAppleWallet && appleWalletBtnImage && appleWalletBtnImage.src && appleWalletBtnImage.altText && user_card_number;\r\n const google_wallet_check: boolean =\r\n displayGoogleWallet && googleWalletBtnImage && googleWalletBtnImage.src && googleWalletBtnImage.altText && user_card_number;\r\n const programString: string = walletLoyaltyProgramName || 'v-club-emea';\r\n\r\n if (isWideOrCompactLayout(layout)) {\r\n // Wide or compact layout (Loyalty page and Homepage row)\r\n return (\r\n \r\n {heading}\r\n \r\n \r\n
\r\n

{loyaltyCardLabel}

\r\n {cardNumber}\r\n {(apple_wallet_check || google_wallet_check) && (\r\n
\r\n {apple_wallet_check ? (\r\n \r\n \r\n \r\n ) : null}\r\n {google_wallet_check ? (\r\n \r\n \r\n \r\n ) : null}\r\n
\r\n )}\r\n {/* @ts-ignore */}\r\n {displayJoinDate && !joinDate?.props.text.endsWith('1900') ? joinDate : null}\r\n
\r\n
\r\n

{availablePointsLabel}

\r\n {points_numbers[0] != -1.1 ?

{points_numbers[0]}

: null}\r\n {pointsExpirationReminder ? (\r\n

{pointsExpirationReminder}

\r\n ) : null}\r\n {viewLoyaltyPageText ? {viewLoyaltyPageText} : null}\r\n
\r\n
\r\n

{loyaltyTierLabel}

\r\n

\r\n {tierName}\r\n

\r\n {loyaltyTiersLink &&\r\n loyaltyTiersLink.linkUrl &&\r\n loyaltyTiersLink.linkUrl.destinationUrl &&\r\n loyaltyTiersLink.linkText ? (\r\n {loyaltyTiersLink.linkText}\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n // Card layout (Homepage column)\r\n return (\r\n \r\n {heading}\r\n
\r\n \r\n \r\n
\r\n

{loyaltyCardLabel_CL}

\r\n
\r\n  

{cardNumber}

\r\n
\r\n
\r\n
\r\n

{loyaltyTierLabel}

\r\n

\r\n  {tierName}\r\n

\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n {availablePointsLabel_CL_before} \r\n {points_numbers[0] != -1.1 ? (\r\n

{points_numbers[0]}

\r\n ) : null}\r\n  {availablePointsLabel_CL_after}\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AccountLoyaltyView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n IAccountPreference,\r\n IAccountPreferences,\r\n IAccountProfileItem,\r\n IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management';\r\nimport { IAccountProfileProps } from '../definition-extensions/account-profile.ext.props.autogenerated';\r\n\r\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {extraPreferences &&\r\n extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC> = props => {\r\n const {\r\n AccountProfile,\r\n accountProfileWrapper,\r\n heading,\r\n emailSection,\r\n nameSection,\r\n preferenceSection,\r\n customerAttributesWrapper,\r\n customerAttributesSection\r\n } = props;\r\n\r\n React.useEffect(() => {\r\n if (document.getElementsByClassName('ms-account-profile__attributes-GenericMarketing').length) {\r\n // @ts-ignore\r\n // tslint:disable-next-line:no-inner-html\r\n document.getElementsByClassName('ms-account-profile__attributes-GenericMarketing')[1].innerHTML =\r\n // @ts-ignore\r\n props.config.textGenericMarketing;\r\n }\r\n if (document.getElementsByClassName('ms-account-profile__attributes-Profiling').length) {\r\n // @ts-ignore\r\n // tslint:disable-next-line:no-inner-html\r\n document.getElementsByClassName('ms-account-profile__attributes-Profiling')[1].innerHTML = props.config.textProfiling;\r\n }\r\n if (document.getElementsByClassName('ms-account-profile__attributes-ThirdParty').length) {\r\n // @ts-ignore\r\n // tslint:disable-next-line:no-inner-html\r\n document.getElementsByClassName('ms-account-profile__attributes-ThirdParty')[1].innerHTML = props.config.textThirdParty;\r\n }\r\n\r\n document.getElementsByClassName('ms-account-profile__attributes-edit-button msc-btn')[0].addEventListener('click', () => {\r\n const bd_input: HTMLInputElement = document.getElementsByClassName(\r\n 'ms-account-profile__attributes-element ms-account-profile__attributes_input ms-account-profile__attributes_input-edit-false ms-account-profile__Birthday-input'\r\n )[0] as HTMLInputElement;\r\n // const prev_date = bd_input.value;\r\n if (props.context.request.canonicalDomain !== 'us.venchi.com') {\r\n // The following is undefined due to the element not existing yet at runtime\r\n // const never_mind: HTMLButtonElement = document.getElementsByClassName('ms-account-profile__attributes-cancel-button msc-btn')[0] as HTMLButtonElement;\r\n\r\n // Protip: This resets the birthday value on click, so be mindful of that\r\n bd_input.setAttribute('type', 'date');\r\n\r\n // never_mind.addEventListener(\"click\", () => {\r\n // bd_input.setAttribute('type', 'text');\r\n // bd_input.value = prev_date;\r\n // });\r\n }\r\n });\r\n }, []);\r\n\r\n return (\r\n \r\n {heading}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {accountProfileWrapper && (\r\n \r\n \r\n \r\n {customerAttributesWrapper && (\r\n {customerAttributesSection}\r\n )}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n {customerAttributesWrapper && {customerAttributesSection}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AccountProfileView;\r\n","import { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport {\r\n IReportReviewModalViewProps,\r\n IReviewCardViewProps,\r\n IReviewsListState,\r\n IReviewsListViewProps\r\n} from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n// import { getTelemetryObject } from '@msdyn365-commerce-modules/utilities';\r\n// import { constructViewportInformationForImage } from '@msdyn365-commerce/core-internal';\r\nimport * as React from 'react';\r\n\r\nconst ReviewsListview: React.FC = props => {\r\n const {\r\n /* averageRating,\r\n filterByDropdown, */\r\n moduleProps,\r\n /* noReviewsMessage, */\r\n noReviewsWithFilterMessage,\r\n pageControls,\r\n /* refineReviewsProps, */\r\n reportReviewModal,\r\n /* reviewsListProps, */\r\n reviewCards,\r\n /* reviewCount, */\r\n reviewModal,\r\n /* sortByDropdown, */\r\n state,\r\n userReview\r\n } = props;\r\n\r\n const [modalOpen, setModalOpen] = React.useState(false);\r\n // const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName ?? '', 'Recensioni', props.telemetry);\r\n\r\n const _toggleReviewModal = () => {\r\n document.body.style.overflowY = modalOpen ? 'scroll' : 'hidden';\r\n setModalOpen(!modalOpen);\r\n };\r\n\r\n // @ts-ignore\r\n const averageRating = props.data.ratingsSummary.result.averageRating ?? 0;\r\n // @ts-ignore\r\n const buttonLabel = props.resources.product_review_list_button_label ?? '';\r\n // @ts-ignore\r\n const title = props.resources.reviewListLabel ?? '';\r\n\r\n React.useEffect(() => {\r\n const page_summary = document.getElementsByClassName('msc-average-rating-container')[0];\r\n const modal_summary = document.getElementsByClassName('msc-average-rating-container')[1];\r\n if (page_summary && modal_summary) {\r\n modal_summary.innerHTML = page_summary.innerHTML;\r\n }\r\n });\r\n\r\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\r\n /* return {noReviewsMessage}; */\r\n /* return (\r\n \r\n
\r\n
); */\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {/* {averageRating}\r\n {reviewCount} */}\r\n {/* { reviewCards.length === 0 ?\r\n null : \r\n {sortByDropdown}\r\n {filterByDropdown}\r\n \r\n } */}\r\n {/* {React.createElement(React.Fragment, null,\r\n modalToggle,\r\n createReviewModal(reviewModal, moduleProps)))} */}\r\n {/* \r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n */}\r\n
\r\n
e.stopPropagation()}>\r\n
\r\n {title}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\r\n {pageControls}\r\n {createReviewModal(reviewModal, moduleProps)}\r\n {createReportModal(reportReviewModal, state)}\r\n
\r\n );\r\n};\r\n\r\nconst buildReviewCard = (props: IReviewCardViewProps) => {\r\n return (\r\n \r\n \r\n {props.name}\r\n {props.date}\r\n {props.rating}\r\n \r\n \r\n \r\n {/* {props.reviewTitle} */}\r\n {props.reviewText}\r\n \r\n \r\n {props.responseName}\r\n {props.responseDate}\r\n {props.responseText}\r\n \r\n \r\n {/* {props.ratingHelpfulLabel}\r\n {props.like}\r\n {props.dislike} */}\r\n {props.edit}\r\n {/* {props.report} */}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\r\n return (\r\n \r\n {props.modalHeader}\r\n \r\n \r\n \r\n {props.rating}\r\n {props.ratingLabel}\r\n \r\n \r\n {props.titleLabel}\r\n {props.titleInput}\r\n \r\n \r\n {props.textLabel}\r\n {props.textInput}\r\n \r\n {props.privacyPolicyUrl}\r\n {props.error}\r\n \r\n \r\n \r\n {props.submitButton}\r\n {props.cancelButton}\r\n \r\n \r\n );\r\n};\r\n\r\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\r\n return (\r\n \r\n {state.reported ? props.headerSubmitted : props.header}\r\n \r\n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\r\n \r\n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewsListview;\r\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 { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\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 { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\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 this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\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 { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-address-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountAddressTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly requestStatementButtonRef: React.RefObject = React.createRef();\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 this.requestStatementButtonRef.current?.focus();\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 this.requestStatementButtonRef.current?.focus();\n };\n}\n\nexport default AccountCustomerBalance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n className?: string;\n buttonReference?: React.RefObject;\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 = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n buttonReference\n}) => {\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n onPromoteToSeller,\n promoteToSellerLabel,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const onSelectPromoteToSeller = React.useCallback(() => {\n onPromoteToSeller?.();\n }, [onPromoteToSeller]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n {promoteToSellerLabel && (\n \n {promoteToSellerLabel}\n \n )}\n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

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

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-invoice-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountInvoiceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountLoyaltyTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-loyalty-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountLoyaltyTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountLoyaltyTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

{description}

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

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-wishlist-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountWishlistTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

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

{props.resources.loyaltyTermsHeading}

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

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\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};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 hasActionError: false,\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 this.setState({\n formType: FormType.None,\n isModalOpen: false\n });\n })\n .catch(error => {\n context.telemetry.trace(error);\n this.setState({\n hasActionError: true\n });\n });\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, hasActionError } = 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 hasActionError && (\n \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 Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\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 { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

\n {backToShoppingButton}\n
\n ) : (\n <>{waitingComponent}\n );\n};\n\n/**\n * On Toggle function.\n * @param cartLine -Cartline.\n * @param isBopisSelected -Boolean.\n * @returns Set state of button.\n */\nconst onToggleBopisHandler = (cartLine: ICartlinesViewProps, isBopisSelected: boolean) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(!isBopisSelected);\n};\n\n/**\n * On change store function.\n * @param cartLine -CartLine items prop.\n * @returns Set state of button.\n */\nconst onChangeStoreHandler = (cartLine: ICartlinesViewProps) => () => {\n cartLine.pickUpInStore && cartLine.pickUpInStore.callbacks.toggleBopis(true);\n};\n\nconst _renderBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for BOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const {\n shipInsteadDisplayText,\n shipToAddressDisplayText,\n pickItUpDisplayText,\n pickUpAtStoreWithLocationText,\n changeStoreDisplayText\n } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n
\n {isBopisSelected ? (\n {pickUpAtStoreWithLocationText}\n ) : (\n {shipToAddressDisplayText}\n )}\n
\n {isBopisSelected && (\n
\n {cartLine.pickUpInStore.orgUnitName}\n \n
\n )}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n
\n );\n};\n\nconst _renderErrorBlock = (errorData: IOrderSummaryErrors | undefined): JSX.Element | null => {\n if (!errorData || errorData.errors.length === 0) {\n return null;\n }\n return (\n \n {errorData.header}\n {errorData.errors}\n \n );\n};\n\nconst _renderOrderSummarylines = (\n orderSummaryLines: IOrderSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!orderSummaryLines) {\n return null;\n }\n return (\n \n {props.promoCode}\n {orderSummaryLines.subtotal}\n {orderSummaryLines.shipping}\n {orderSummaryLines.otherCharge}\n {orderSummaryLines.tax}\n {orderSummaryLines.totalDiscounts ? orderSummaryLines.totalDiscounts : null}\n {orderSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderInvoiceSummarylines = (\n invoiceSummaryLines: IInvoiceSummaryLines | undefined,\n OrderSummaryItems: INodeProps,\n props: ICartViewProps\n): JSX.Element | null => {\n if (!invoiceSummaryLines) {\n props.context.telemetry.error('InvoiceSummary content is empty, module wont render');\n return null;\n }\n return (\n \n {invoiceSummaryLines.invoices}\n {invoiceSummaryLines.giftCard}\n {invoiceSummaryLines.loyalty}\n {invoiceSummaryLines.orderTotal}\n \n );\n};\n\nconst _renderCartLinesGroup = (props: ICartViewProps, resources: ICartResources): JSX.Element | undefined => {\n if (props.cartLinesGroup && props.cartLinesGroup.length > 0) {\n return (\n
\n {props.cartLinesGroup.map(cartlines => {\n return (\n
\n {_renderCartLinesGroupHeader(\n cartlines[0],\n props.storeSelector,\n resources,\n _countItems(cartlines),\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n {_renderCartlines(\n cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n
\n );\n })}\n
\n );\n }\n return props.cartDataResult ? (\n
\n
\n

{props.resources.emptyCartText}

\n {props.backToShoppingButton}\n
\n
\n ) : (\n <>{props.waitingComponent}\n );\n};\nconst _renderCartLinesGroupHeader = (\n cartLine: ICartlinesViewProps,\n storeSelector: React.ReactNode | undefined,\n resources: ICartResources,\n count: number,\n emailDeliveryModeCode?: string\n) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { pickUpText, shippingText, emailshippingText, payInvoicesDisplayText } = resources;\n let groupTitle: string;\n\n groupTitle = isBopisSelected ? pickUpText : shippingText;\n if (cartLine.data && cartLine.data.cartline.IsInvoiceLine) {\n groupTitle = payInvoicesDisplayText;\n } else if (!StringExtensions.isNullOrEmpty(emailDeliveryModeCode)) {\n groupTitle = cartLine.data && cartLine.data.cartline.DeliveryMode === emailDeliveryModeCode ? emailshippingText : groupTitle;\n }\n\n return (\n <>\n
\n

\n

{groupTitle}

\n {_renderCartLinesGroupTitle(cartLine, resources, count)}\n
\n \n );\n};\n\nconst _renderGroupBOPISBlock = (\n cartLine: ICartlinesViewProps,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n telemetryContent?: ITelemetryContent,\n emailDeliveryModeCode?: string\n): JSX.Element | null => {\n // If it is electronic item cart line, then return null for GroupBOPISBlock.\n if (!cartLine.pickUpInStore || !storeSelector || cartLine.data?.cartline.DeliveryMode === emailDeliveryModeCode) {\n return null;\n }\n\n const { changeStoreDisplayText, shipInsteadDisplayText, pickItUpDisplayText } = resources;\n\n const isBopisSelected = cartLine.pickUpInStore.isBopisSelected;\n\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.PickupInStore);\n const puckUpinStoreAttribute = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n <>\n {isBopisSelected ? (\n \n ) : null}\n \n {isBopisSelected ? shipInsteadDisplayText : pickItUpDisplayText}\n \n \n );\n};\n\nconst _countItems = (cartLine: ICartlinesViewProps[]): number => {\n let countItem = 0;\n countItem = cartLine.reduce((count, item) => {\n return count + (item.data?.cartline.Quantity || 0);\n }, 0);\n return countItem;\n};\n\nconst _renderCartLinesGroupTitle = (cartLine: ICartlinesViewProps, resources: ICartResources, count: number) => {\n const isBopisSelected = cartLine.pickUpInStore?.isBopisSelected;\n const { itemLabel, itemsLabel } = resources;\n const suffix = count > 1 ? itemsLabel : itemLabel;\n return (\n <>\n \n {isBopisSelected ? (\n

\n {cartLine.pickUpInStore?.deliveryOption}\n {', '}\n {cartLine.pickUpInStore?.orgUnitName}\n

\n ) : null}\n

\n ({count}\n {` `}\n {suffix})\n

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\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 handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\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 { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && 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 return 'xs';\n }\n}\n\nexport default SitePicker;\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 { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\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 React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\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 {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n"],"names":["layout","HeadingTag","layoutClassNames","layoutNames","wideLayout","compact","getLayoutClassName","props","AccountLoyalty","heading","cardNumber","joinDate","points","displayJoinDate","displayAppleWallet","displayGoogleWallet","appleWalletBtnImage","googleWalletBtnImage","pointsExpirationReminder","loyaltyTiersLink","walletLoyaltyProgramName","config","loyaltyTierLabel","loyaltyCardLabel","loyaltyCardLabel_CL","availablePointsLabel","availablePointsLabel_CL_before","availablePointsLabel_CL_after","viewLoyaltyPageText","resources","firstLoyaltyGroup","moduleProps","data","loyaltyCard","result","LoyaltyGroups","highestTierId","HighestActiveLoyaltyCardTier","tierName","LoyaltyCardTiers","filter","tier","RecordId","TierId","user_email","context","request","user","emailAddress","user_card_number","text","points_numbers","split","tierClass","apple_wallet_check","src","altText","google_wallet_check","programString","includes","isWideOrCompactLayout","React","Module","Object","assign","className","Container","Row","href","alt","height","endsWith","classnames","linkUrl","destinationUrl","linkText","AccountPreferencesSection","_ref","accountPreferences","personalization","extraPreferences","Node","AccountPreferenceSection","map","preferenceSecton","index","key","_ref2","accountPreference","description","buttonWrapper","buttonYesText","button","buttonNoText","AccountProfileSection","_ref3","AccountProfileItem","links","AccountProfile","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","document","getElementsByClassName","length","innerHTML","textGenericMarketing","textProfiling","textThirdParty","addEventListener","bd_input","canonicalDomain","setAttribute","buildReviewCard","cardProps","headerProps","name","date","rating","cardBodyProps","reviewProps","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","edit","createReviewModal","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","error","modalFooter","submitButton","cancelButton","createReportModal","state","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","_props$data$ratingsSu","_props$resources$prod","_props$resources$revi","noReviewsWithFilterMessage","pageControls","reportReviewModal","reviewCards","reviewModal","userReview","modalOpen","setModalOpen","_toggleReviewModal","body","style","overflowY","buttonLabel","ratingsSummary","averageRating","product_review_list_button_label","title","reviewListLabel","page_summary","modal_summary","isFilterApplied","onClick","display","e","stopPropagation","review","AccordionItem","constructor","super","moduleClassName","handleHeadingChange","event","this","accordionItemTitle","target","value","_onToggle","bind","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","shouldComponentUpdate","nextProps","render","slots","renderView","accordionExpandedStateResult","accordionExpandedState","expanded","undefined","isAllExpanded","isExpandedOnInitialLoad","_objectSpread","AccordionItemContainer","AccordionItemContent","drawer","tag","ControlledDrawer","toggleButtonText","collapseProps","isOpen","onToggle","onTextChange","requestContext","accordionSlots","interactionStyle","accordionState","actionContext","update","createAccordionStateInput","__decorate","observer","_renderAccordionItemContent","items","item","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","payLoad","getPayloadObject","isDisabled","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","getTelemetryAttributes","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","ref","toggleAllSeparator","collapseAllText","setState","setTimeout","_this$collapseAllButt","current","focus","_this$expandAllButton","AadGeneric","componentDidMount","$i2e","$element","window","insertServiceContent","getElementContent","initialize","viewProps","aadGeneric","aadConainer","aadAPIConainer","id","AccountAddressTile","handleLinkTextChange","linkIndex","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","accountAddressTileDescription","format","LinksComponent","DescriptionComponent","_mapEditableLinks","linkdata","editableLinks","forEach","link","attributes","editableLink","ariaLabel","openInNewTab","role","additionalProperties","push","AccountCustomerBalanceTile","_initState","reaction","hasError","content","ErrorComponent","apiGenericErrorMessage","get","isCustomerAccountPaymentEnabled","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","nextState","Heading","headingTag","isDetailsLinkDisplayed","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","computed","AccountCustomerBalance","requestStatementButtonRef","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_this$requestStatemen","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","_this$requestStatemen2","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","canSubmitStatementRequest","_get","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","FirstName","LastName","customerAccountBalance","excess","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","actionBar","IsB2bAdmin","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","label","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","Intl","DateTimeFormat","locale","month","day","year","popoverReference","Button","innerRef","onPromoteToSeller","promoteToSellerLabel","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","requestStatementDropdownString","Random","Guid","generateGuid","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","type","onBlur","onChange","max","min","ModalFooter","_ref5","_ref6","_ref7","_ref8","BackToShopping","AccountGenericTile","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","cultureFormatter","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","url","CardNumber","decimalPrecision","RewardPoints","rewardPoint","ActivePoints","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountProfileEdit","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidUpdate","viewState","isShowLoading","accountProfileEdit","loading","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","createElement","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","input","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","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","_renderAttribute","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","attributesContainerRef","Text","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","replace","_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","_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","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","exception","debug","element","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","toString","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","infoMessageBar","accountProcessingPendingInfoMessage","_renderEmailSection","_renderNameSection","getDescription","_renderPreferenceSection","editProfileUrl","ArrayExtensions","hasElements","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","location","catch","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","applicationNode","returnFocusRef","returnRef","cancelLoyaltyTermsText","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","search","requestUrl","isJoining","substring","qsps","qsp","splitQsp","hideToggle","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","GetLoyaltyCardInput","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","customClass","maxChars","isRequired","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","TableDataType","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","URL","_getViewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","currentUser","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","isSelected","row","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","isMobile","selectedUserName","businessUserSelectedUserDisplayName","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","Table","_createTableProps","toggleModal","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","sortable","rows","editLinkText","deleteLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","ButtonList","_getForm","formProps","_ref4","CatalogPicker","handleTextChange","handleParagraphChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","image","firstOrDefault","Images","tabIndex","Image","generateImageUrl","Uri","imageSettings","galleryImageSettings","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","errors","Wrapper","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","channel","EmailDeliveryModeCode","multiplePickUpEnabled","count","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","isNullOrEmpty","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","_props$cart","_props$context$action","_props$cart2","renderModuleAttributes","promotionOptions","cart","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","listProps","salesOrders","salesOrder","orderHistoryProps","alert","emptyMessage","backToShoppingLink","list","table","moreButton","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","onTelemetryClick","ariaHiddenAttr","viewports","q","h","lazyload","shouldSkipToMainImage","FooterItemView","_renderElement","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","msdyn365Commerce","createComponent","component","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","selectorState","setSelectorState","currentSelectorState","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","viewport","_document","_document2","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","preventDefault","cookies","isConsentGiven","cookieConfig","maxAge","defaultImageSettings","xl","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","siteRedirectUrl","siteName","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","SocialShare","socialShareItems","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","isUserReview","reviewTitle","wasReviewHelpfulText","like","dislike","renderProductDescription","product","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","cropFocalRegion","renderProductImage","ItemId","filterByDropdown","noReviewsMessage","refineReviewsProps","reviewsListProps","sortByDropdown","selectRatingLabel","reviewTitleLabel","reviewTextLabel"],"sourceRoot":""}