{"version":3,"file":"static/js/18.3c99479cf1281293772e.chunk.js","mappings":"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","sources":["webpack://msdyn365.commerce.online/./src/modules/content-block-with-title/content-block-with-title.tsx?b44c","webpack://msdyn365.commerce.online/./src/themes/colsolare/views/account-management-address.view.tsx?d358","webpack://msdyn365.commerce.online/./src/themes/colsolare/views/footer-item.view.tsx?872b","webpack://msdyn365.commerce.online/./src/themes/columbiacrest/views/account-management-address.view.tsx?c9c4","webpack://msdyn365.commerce.online/./src/themes/columbiacrest/views/footer-item.view.tsx?2e8d","webpack://msdyn365.commerce.online/./src/themes/conn-creek/views/account-management-address.view.tsx?5609","webpack://msdyn365.commerce.online/./src/themes/conn-creek/views/footer-item.view.tsx?3d64","webpack://msdyn365.commerce.online/./src/themes/enoteca/views/account-management-address.view.tsx?debe","webpack://msdyn365.commerce.online/./src/themes/enoteca/views/footer-item.view.tsx?8410","webpack://msdyn365.commerce.online/./src/themes/erath/views/account-management-address.view.tsx?ac40","webpack://msdyn365.commerce.online/./src/themes/erath/views/footer-item.view.tsx?eebb","webpack://msdyn365.commerce.online/./src/themes/fth/views/footer-item.view.tsx?562f","webpack://msdyn365.commerce.online/./src/themes/generazioni/views/account-management-address.view.tsx?fd79","webpack://msdyn365.commerce.online/./src/themes/generazioni/views/footer-item.view.tsx?8dd5","webpack://msdyn365.commerce.online/./src/themes/intrinsic-wine-co/views/account-management-address.view.tsx?2508","webpack://msdyn365.commerce.online/./src/themes/intrinsic-wine-co/views/footer-item.view.tsx?0c6f","webpack://msdyn365.commerce.online/./src/themes/north-star/views/account-management-address.view.tsx?c482","webpack://msdyn365.commerce.online/./src/themes/north-star/views/footer-item.view.tsx?b7ff","webpack://msdyn365.commerce.online/./src/themes/patzhall/views/account-management-address.view.tsx?2256","webpack://msdyn365.commerce.online/./src/themes/patzhall/views/footer-item.view.tsx?cf7d","webpack://msdyn365.commerce.online/./src/themes/spring-valley-vineyard/views/account-management-address.view.tsx?92b9","webpack://msdyn365.commerce.online/./src/themes/spring-valley-vineyard/views/footer-item.view.tsx?ac6f","webpack://msdyn365.commerce.online/./src/themes/stagsleap/views/account-management-address.view.tsx?fc6c","webpack://msdyn365.commerce.online/./src/themes/stagsleap/views/footer-item.view.tsx?fc6c","webpack://msdyn365.commerce.online/./src/themes/stemichelle/views/account-management-address.view.tsx?c624","webpack://msdyn365.commerce.online/./src/themes/stemichelle/views/footer-item.view.tsx?e332","webpack://msdyn365.commerce.online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://msdyn365.commerce.online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://msdyn365.commerce.online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://msdyn365.commerce.online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://msdyn365.commerce.online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://msdyn365.commerce.online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://msdyn365.commerce.online/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://msdyn365.commerce.online/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://msdyn365.commerce.online/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://msdyn365.commerce.online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://msdyn365.commerce.online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://msdyn365.commerce.online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://msdyn365.commerce.online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://msdyn365.commerce.online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://msdyn365.commerce.online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://msdyn365.commerce.online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://msdyn365.commerce.online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://msdyn365.commerce.online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://msdyn365.commerce.online/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://msdyn365.commerce.online/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://msdyn365.commerce.online/./src/modules/account-profile/account-profile.tsx?fe69","webpack://msdyn365.commerce.online/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://msdyn365.commerce.online/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://msdyn365.commerce.online/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://msdyn365.commerce.online/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://msdyn365.commerce.online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://msdyn365.commerce.online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://msdyn365.commerce.online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://msdyn365.commerce.online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://msdyn365.commerce.online/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://msdyn365.commerce.online/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://msdyn365.commerce.online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://msdyn365.commerce.online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://msdyn365.commerce.online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://msdyn365.commerce.online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://msdyn365.commerce.online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://msdyn365.commerce.online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://msdyn365.commerce.online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://msdyn365.commerce.online/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://msdyn365.commerce.online/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://msdyn365.commerce.online/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://msdyn365.commerce.online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://msdyn365.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://msdyn365.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://msdyn365.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://msdyn365.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://msdyn365.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://msdyn365.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://msdyn365.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://msdyn365.commerce.online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://msdyn365.commerce.online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://msdyn365.commerce.online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://msdyn365.commerce.online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://msdyn365.commerce.online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://msdyn365.commerce.online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://msdyn365.commerce.online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://msdyn365.commerce.online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://msdyn365.commerce.online/./src/modules/password-reset/password-reset.tsx?0983","webpack://msdyn365.commerce.online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://msdyn365.commerce.online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://msdyn365.commerce.online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://msdyn365.commerce.online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://msdyn365.commerce.online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://msdyn365.commerce.online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://msdyn365.commerce.online/./src/modules/navigation-menu/navigation-menu.data.ts?9815","webpack://msdyn365.commerce.online/./src/modules/navigation-menu/navigation-menu.tsx?2bef","webpack://msdyn365.commerce.online/./src/modules/navigation-menu/navigation-menu.view.tsx?c594","webpack://msdyn365.commerce.online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://msdyn365.commerce.online/./src/modules/site-picker/site-picker.view.tsx?5319"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\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\n\r\nimport { Heading } from '@msdyn365-commerce-modules/utilities';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport classname from 'classnames';\r\nimport * as React from 'react';\r\nimport { IContentBlockWithTitleData } from './content-block-with-title.data';\r\nimport {\r\n IContentBlockWithTitleConfig,\r\n IContentBlockWithTitleProps,\r\n ITitleData\r\n} from './content-block-with-title.props.autogenerated';\r\n\r\n// ==============================================================================\r\n/**\r\n * ContentBlockWithTitle component\r\n * @extends {React.PureComponent>}\r\n */\r\n// ==============================================================================\r\nclass ContentBlockWithTitle extends React.PureComponent> {\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n public render(): JSX.Element {\r\n const { config, slots } = this.props;\r\n\r\n return (\r\n
\r\n {config && config.title && this._renderLinkedTitle(config)}\r\n {config && config.text &&\r\n // tslint:disable-next-line:react-no-dangerous-html\r\n \r\n }\r\n {slots.contentBlockNoHeadings && this._renderSlotItems(slots.contentBlockNoHeadings)}\r\n
\r\n );\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderLinkedTitle(config: IContentBlockWithTitleConfig): JSX.Element {\r\n if (config.link && config.link.linkUrl.destinationUrl) {\r\n return (\r\n \r\n {this._renderTitle(config.title!)}\r\n \r\n );\r\n } else {\r\n return this._renderTitle(config.title!);\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderTitle(title: ITitleData): JSX.Element {\r\n if (title.text === '') {\r\n return <>;\r\n }\r\n else {\r\n return (\r\n \r\n );\r\n }\r\n }\r\n\r\n // ------------------------------------------------------\r\n // ------------------------------------------------------\r\n private _renderSlotItems(items: React.ReactNode[]): JSX.Element {\r\n return (\r\n
\r\n {items.map((slot: React.ReactNode, index: number) => (\r\n \r\n {slot}\r\n \r\n ))}\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport default ContentBlockWithTitle;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n private pathName: string = '';\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return {this._renderElement(this.props)};\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const { heading, HeadingContainer, Link, linkText, image, text } = props;\r\n const { link } = this.props.config;\r\n if (Link) {\r\n this._formatLinkData(Link);\r\n }\r\n if (heading && text) {\r\n return (\r\n <>\r\n {heading}\r\n {text}\r\n \r\n {linkText}\r\n {image}\r\n \r\n \r\n \r\n );\r\n } else if (heading) {\r\n ( {heading});\r\n } else if (Link) {\r\n const linkChecker = this._getPathNameFromURL(link!.linkUrl.destinationUrl.toString());\r\n if (process.env.CURRENT_ENVIRONMENT === 'web') {\r\n this.pathName = window.location.pathname;\r\n } else {\r\n this.pathName = this.props.context.request.url.requestUrl.pathname;\r\n }\r\n if(linkChecker === this.pathName){\r\n return (\r\n \r\n {linkText}\r\n \r\n {image}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {linkText}\r\n \r\n {image}\r\n \r\n );\r\n }\r\n return (\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if (Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n private _getPathNameFromURL(linkURL: string): string {\r\n let pathName = '';\r\n try {\r\n // if linkURL is a full url\r\n pathName = new URL(linkURL).pathname;\r\n } catch {\r\n pathName = linkURL.split('?')[0];\r\n }\r\n return pathName;\r\n }\r\n\r\n}\r\n\r\nexport default FooterItemView;\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*---------------------------------------------------------------------------------------------\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 { Heading, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/dist/types/common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address';\r\nimport { IAccountManagementAddressConfig } from '@msdyn365-commerce-modules/address/dist/types/modules/account-management-address/account-management-address.props.autogenerated';\r\n\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton,\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items && items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, addUpdateAddress, viewState, showAddressList, showAddOrUpdateAddress } = props;\r\n\r\n // update heading in props if not provided from module\r\n if (!showAddOrUpdateAddress.heading) {\r\n // create heading component from configured values\r\n const addAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).addAddressHeading;\r\n const editAddressHeading = (AccountAddressManagement.moduleProps.config as IAccountManagementAddressConfig).editAddressHeading;\r\n const headingText = addUpdateAddress.RecordId ? editAddressHeading : addAddressHeading;\r\n const heading = headingText && ;\r\n\r\n showAddOrUpdateAddress.heading = heading;\r\n }\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\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 { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\n/**\r\n *\r\n * FooterItemView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent {\r\n public render(): JSX.Element | null {\r\n const { FooterItem } = this.props;\r\n return(\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n\r\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\r\n const {heading, HeadingContainer,Link, linkText, image} = props;\r\n const { link } = this.props.config;\r\n if(heading) {\r\n return ( {heading} );\r\n } else if(Link && this._formatLinkData(Link)) {\r\n return (\r\n \r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n return(\r\n <>\r\n {linkText}\r\n {image}\r\n \r\n );\r\n }\r\n\r\n private _formatLinkData = (Link: INodeProps) => {\r\n if(Link.href === undefined) {\r\n return Link;\r\n }\r\n\r\n const path: string = (Link.href as Msdyn365.ILinkData).destinationUrl || (Link.href as string);\r\n const newUrl = new URL(path, this.props.context.request.url.requestUrl).href;\r\n Link.href = newUrl;\r\n return Link;\r\n };\r\n}\r\n\r\nexport default FooterItemView;","/*!\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\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 * 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 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 MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 25;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n
\n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n \n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as 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 Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n}\n\nexport default AccountWelcomeTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default B2bRequestsTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

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

{props.resources.loyaltyTermsHeading}

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

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 {\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, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\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._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\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 this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\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\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\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.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 }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n \n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\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"],"names":["ContentBlockWithTitle","React","render","config","slots","this","props","className","classname","title","_renderLinkedTitle","text","dangerouslySetInnerHTML","getRichTextHtml","contentBlockNoHeadings","_renderSlotItems","link","linkUrl","destinationUrl","href","ariaLabel","_renderTitle","Heading","headingTag","tag","items","map","slot","index","key","AddressShow","_ref","AddressDetail","Node","Object","assign","item","description","AddressList","_ref2","List","isShowList","heading","Item","error","showItems","isShowPrimaryButton","primaryButton","editButton","Error","isShowError","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","_ref4","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","input","AddressError","AccountAddressManagement","addUpdateAddress","viewState","showAddressList","showAddOrUpdateAddress","addAddressHeading","moduleProps","editAddressHeading","headingText","RecordId","Module","isShowAddresList","isShowAddOrUpdateAddress","FooterItemView","constructor","_formatLinkData","Link","undefined","path","newUrl","URL","context","request","url","requestUrl","FooterItem","_renderElement","HeadingContainer","linkText","image","pathName","linkChecker","_getPathNameFromURL","toString","window","location","pathname","linkURL","_unused","split","AadGeneric","moduleClassName","handleHeadingChange","event","target","value","componentDidMount","$i2e","$element","insertServiceContent","getElementContent","initialize","shouldComponentUpdate","nextProps","viewProps","_objectSpread","aadGeneric","classnames","aadConainer","aadAPIConainer","id","Msdyn365","editProps","onEdit","requestContext","renderView","AccountCustomerBalanceTile","super","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","state","_initState","reaction","setState","content","ErrorComponent","resources","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","nextState","data","isCustomerAccountPaymentEnabled","links","isDetailsLinkDisplayed","LinksComponent","onTextChange","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","__decorate","computed","_mapEditableLinks","linkdata","length","editableLinks","payLoad","getPayloadObject","forEach","contentAction","etext","attributes","getTelemetryAttributes","editableLink","openInNewTab","role","additionalProperties","push","AccountInvoiceTileDescription","AccountInvoiceTile","handleLinkTextChange","linkIndex","_data$customerBalance","cultureFormatter","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","result","OpenInvoiceBalance","format","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","actionContext","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","DescriptionComponent","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","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","edit","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","customerInformation","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","ref","attributesContainerRef","Text","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","Button","onClick","_enableAttributes","innerRef","editRef","disabled","_saveAttributes","_disableAttributes","phoneSectionHeading","replace","type","onChange","_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","name","isMandatory","MsDyn365","isBrowser","setTimeout","current","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","customer","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","keys","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","Number","isNaN","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","includes","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","async","updateCustomerAttributesInput","AccountNumber","apiSettings","updateCustomerAttributes","initialCustomerAttributes","exception","debug","element","focus","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","observable","observer","isDisabled","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","button","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","Email","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","FirstName","LastName","AccountProfileItem","ArrayExtensions","hasElements","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountWelcomeTile","accountInfo","accountInformation","RequestsTableColumnHeader","getUserName","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","formatDate","date","year","month","day","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","b2bRequestsRequestDateColumn","CreatedDateTime","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","isMobile","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","parseInt","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","reqContext","isSingleSelectOnly","actions","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","b2bRequestsStatus","table","defaultClassName","B2bRequestsTileLinks","B2bRequestsTile","b2bRequestsTile","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","catch","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","hasLoyaltyAccount","CardTenderTypeValue","loading","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","modal","Modal","toggle","onToggle","applicationNode","isOpen","returnFocusRef","returnRef","modalHeader","ModalHeader","modalFooter","ModalFooter","modalBody","ModalBody","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","search","isJoining","substring","qsps","qsp","splitQsp","isModalOpen","hideToggle","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","callerContext","fullCard","update","GetLoyaltyCardInput","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","IsB2bAdmin","errorClassName","GetMaxLength","maxLength","parsedMaxLength","pattern","forId","htmlFor","successClassName","PasswordResetVerification","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","getValue","v1Value","v2Value","templateVersion","emailRegex","EmailRegex","defaultRegex","source","componentDidUpdate","isShowLoading","passwordResetVerification","icon","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","loadingMessage","defaultAADConainer","style","display","passwordResetVerificationLocalAccount","_renderLocalAccount","obj","ID","toLowerCase","PAT","verifying_blurb","localAccount","verificationControlWrapper","_renderInput","emailAddressLabelText","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","errorMessage","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","buttonsWrapper","buttons","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","labelText","cssClassName","wrapper","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","LocalAccount","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","requiredFieldMissingError","fieldIncorrectError","PasswordResetButtonComponent","saveButtonAriaLabel","saveButtonText","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","FormInput","isRequired","fieldReference","placeholder","FormLabel","asteriskText","FormButton","FormFieldError","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","customClass","maxChars","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","B2BUserId","Random","Guid","generateGuid","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","_getViewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_promoteToSeller","promoteToSellerUrl","_requestStatement","currentUser","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","BusinessPartnerUsersDataActions","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","_toggleModal","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","fullOrganizationLabel","requestStatementButtonLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","cancelLabel","fromDateLabel","toDateLabel","submitRequestLabel","sendToEmailLabel","selectedUserLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","promoteToSellerLabel","onPromoteToSeller","requestStatementModal","RequestStatementModal","email","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","modalHeaderLabel","onSubmitRequest","selectedUser","selectedOrganizationLabel","selectedUserName","modalAriaLabel","maxDateString","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","autoFocus","fade","ButtonList","_getForm","formProps","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","firstOrDefault","Images","tabIndex","Image","src","generateImageUrl","Uri","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","MenuTypeIndexId","MenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","viewport","navigationMenuSource","menuItemList","locale","nameTranslations","nameTranslation","Language","resizeThrottledEventHandler","addThrottledEvent","_this$props$config$di","_this$props$config$di2","_mapData","isEmptyOrNullObject","viewports","q","h","xl","lazyload","Navigation","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","categories","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","rootMenuNavigation","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","_NavigationMenu$getFr","_NavigationMenu$getFr2","RSItemIdInit","getFriendlyName","Url","_getNestedChildren","promotionalContent","menuSource","Retail","CMSItemIdInit","imageDestinationURL","imageLink","_getCMSNestedChildren","Cms","shouldOpenNewTab","category","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","promotionalImage","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","menuNode","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","defaultImageSettings","_categoryImage$imageS","categoryImageSettings","menuItemRef","document","body","_this$menuItemRef$cur","children","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","_createMenuItemList","i","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","Math","round","_renderMenu","onFocus","hoverEffect","isParent","imagesource","onMouseOver","onTelemetryClick","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","_document","_document2","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","toggleButtonText","openGlyph","closeGlyph","glyphPlacement","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","e","preventDefault","cookies","isConsentGiven","cookieConfig","maxAge","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","siteRedirectUrl","siteName","shouldSkipToMainImage","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView"],"sourceRoot":""}