{"version":3,"file":"static/js/24.0c26f4a5816aa5945b9c.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/account-management-address.view.tsx?b246","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/business-organization-list.view.tsx?60a2","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/business-sign-up.view.tsx?6ea1","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/checkout.view.tsx?a006","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/header.view.tsx?5f10","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","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-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/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/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","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/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/sign-in/components/sign-in-button.tsx?8d59","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-description.tsx?54a5","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-error.tsx?a75a","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-input.tsx?d840","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-label.tsx?4560","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-link.tsx?2078","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-icon.tsx?1d7f","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-loading-message.tsx?84ee","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/components/sign-in-text.tsx?76b9","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.tsx?259c","webpack://Msdyn365.Commerce.Online/./src/modules/sign-in/sign-in.view.tsx?2b3e","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address';\r\nimport { IAccountManagementAddressProps } from '../definition-extensions/account-management-address.ext.props.autogenerated';\r\n\r\n/**\r\n * Address show component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressDetail - Address detail.\r\n * @param param0.items - IAddressShowItem[].\r\n * @returns - Address Node.\r\n */\r\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\r\n return (\r\n \r\n {items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address List Component.\r\n * @param param0 - Root param.\r\n * @param param0.List - Address list.\r\n * @param param0.isShowList - Boolean.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressListItem[].\r\n * @returns - AddressListComponent Node.\r\n */\r\nconst AddressList: React.FC = ({ List, isShowList, heading, items }) => {\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n \r\n {isShowError && (\r\n \r\n {title}\r\n {message}\r\n \r\n )}\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n {removeButton}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address Lists Component.\r\n * @param param0 - Root param.\r\n * @param param0.ListAddress - List address.\r\n * @param param0.heading - List heading.\r\n * @param param0.isShowEmptyListMessage - Boolean.\r\n * @param param0.emptyListMessage - Empty list message.\r\n * @param param0.addButton - Add button.\r\n * @param param0.primaryAddressList - Primary address.\r\n * @param param0.otherAddressList - Other address.\r\n * @returns Address Lists Component Node.\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 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\n/**\r\n * AddressAddUpdateComponent.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - Error message.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns Address add update component node.\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 return (\r\n \r\n {heading}\r\n {items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Account Management Address View Component.\r\n * @param props - Props.\r\n * @returns - AccountAddressManagement Module.\r\n */\r\nconst AccountManagementAddressView: React.FC> = props => {\r\n const { AccountAddressManagement, viewState, showAddressList, showAddOrUpdateAddress, screenReaderNotification } = props;\r\n const { phonePlaceholderID, phonePlaceholderText } = props.resources;\r\n React.useEffect(() => {\r\n document.getElementById(phonePlaceholderID)?.setAttribute('placeholder', phonePlaceholderText);\r\n });\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n {screenReaderNotification}\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 * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { Modal, ModalBody, ModalFooter } from 'reactstrap';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from '@msdyn365-commerce-modules/business-organization-list';\r\nimport { IBusinessFormItem } from '@msdyn365-commerce-modules/business-organization-list';\r\n\r\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\r\n\r\n const modalBody = (\r\n <>\r\n {modalDescription}\r\n \r\n {inputs &&\r\n inputs.map((item: IBusinessFormItem) => {\r\n return ;\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n \r\n \r\n );\r\n\r\n const modalFooter =\r\n buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n });\r\n\r\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\r\n let modalBody = null;\r\n\r\n if (!selectedUser) {\r\n modalBody = errorMessage;\r\n } else {\r\n const { FirstName, LastName } = selectedUser;\r\n const userFullName = `${FirstName} ${LastName}`;\r\n\r\n modalBody = (\r\n <>\r\n {modalDescription}\r\n \r\n \r\n {userFullName}\r\n \r\n {Object.keys(selectedUser).map(data => {\r\n if (data === InputID.FirstName || data === InputID.LastName) {\r\n return null;\r\n }\r\n const label = resources[`table${data}HeadingText`] || data;\r\n return (\r\n \r\n {label}\r\n {': '}\r\n {selectedUser[data]}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n }\r\n\r\n const modalFooter =\r\n buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n });\r\n\r\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\r\n switch (type) {\r\n case 'ADD':\r\n case 'EDIT':\r\n return ;\r\n case 'VIEW':\r\n case 'REMOVE':\r\n return ;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\nconst _renderModal = (\r\n className: string,\r\n isModalOpen: boolean,\r\n headingSection: React.ReactNode,\r\n bodySection: React.ReactNode,\r\n footerSection: React.ReactNode,\r\n toggleModal?: () => void\r\n) => {\r\n return (\r\n \r\n
\r\n

\r\n {headingSection}\r\n

\r\n \r\n
\r\n {bodySection}\r\n {footerSection}\r\n \r\n );\r\n};\r\n\r\nconst BusinessOrganizationList: React.FC = props => {\r\n const {\r\n OrganizationUserList,\r\n moduleContainer,\r\n heading,\r\n noUsersText,\r\n addUserButton,\r\n organizationListTable,\r\n form,\r\n formType,\r\n toggleModal,\r\n requestAccountStatementButton,\r\n requestStatementModal\r\n } = props;\r\n\r\n const ButtonList: React.ReactNode = (\r\n \r\n {addUserButton}\r\n {requestAccountStatementButton}\r\n \r\n );\r\n\r\n if (noUsersText) {\r\n return (\r\n \r\n \r\n {heading}\r\n {ButtonList}\r\n {requestStatementModal}\r\n {noUsersText}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {ButtonList}\r\n {requestStatementModal}\r\n {organizationListTable}\r\n \r\n {form && _getForm(formType, form, toggleModal)}\r\n \r\n );\r\n};\r\n\r\nexport default BusinessOrganizationList;\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 {\r\n IBusinessSignUpItem,\r\n IBusinessSignUpViewProps\r\n} from '@msdyn365-commerce-modules/business-account-management/src/modules/business-sign-up';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IBusinessSignUpProps } from '../definition-extensions/business-sign-up.ext.props.autogenerated';\r\n\r\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\r\n // hide label and error message if rendering address section\r\n return (\r\n \r\n {!isAddressInput && label}\r\n {!isAddressInput && errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\n// function _renderSignUpToRecieveEmail(signupToReceiveEmail: string): React.ReactNode {\r\n// return (\r\n// \r\n// \r\n// \r\n// \r\n// );\r\n// }\r\n\r\nconst BusinesSignUpView: React.FC> = props => {\r\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\r\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\r\n const {phonePlaceholderID,phonePlaceholderText}=props.resources;\r\n React.useEffect(() => {\r\n document.getElementById(phonePlaceholderID)?.setAttribute('placeholder', phonePlaceholderText);\r\n },[]);\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n {items &&\r\n items.map((item: IBusinessSignUpItem) => {\r\n return ;\r\n })}\r\n {/* {_renderSignUpToRecieveEmail(signupToReceiveEmail)} */}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n {disclaimer}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BusinesSignUpView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ICheckoutViewProps,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout/src/modules/checkout/./checkout';\r\nimport { IEmailDelivery } from '@msdyn365-commerce-modules/checkout/src/modules/checkout/./components';\r\nimport { IInvoicePaymentSummary } from '@msdyn365-commerce-modules/checkout/src/modules/checkout/./components/get-invoice-payment-summary';\r\nimport { ICheckoutProps, ICheckoutResources } from '../definition-extensions/checkout.ext.props.autogenerated';\r\nimport { Collapse, CardBody, Card, CardHeader } from 'reactstrap';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport { ICoreContext } from '@msdyn365-commerce/core';\r\nconst NUMBER_OF_ITEMS = 'ITEM_NUMBERS';\r\n\r\ninterface IOrderSummaryExtended {\r\n lineItems?: ILineItems;\r\n resources: ICheckoutResources;\r\n props: ICheckoutViewProps & ICheckoutProps<{}>;\r\n}\r\n\r\nexport const PickUpAtStoreComponent: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const EmailDeliveryComponent: React.FC = ({ EmailDelivery, label }) => {label};\r\n\r\nexport const LineItemComponent: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const LineItemGroupComponent: React.FC = ({ LineItemDeliveryGroup, LineItemList, heading, lineItems }) => (\r\n \r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemGroupComponentWithMultiplePickUp: React.FC = ({\r\n LineItemDeliveryGroup,\r\n LineItemList,\r\n heading,\r\n lineItems,\r\n lineItemWraper,\r\n lineItemWraperIcon\r\n}) => (\r\n \r\n {lineItemWraperIcon}\r\n {lineItemWraper}\r\n {heading}\r\n \r\n {lineItems.map(lineItem => (\r\n \r\n ))}\r\n \r\n \r\n);\r\n\r\nexport const LineItemComponentWithMultiplePickUp: React.FC = ({ LineItem, item, pickUpAtStore, emailDelivery }) => (\r\n \r\n {item}\r\n {emailDelivery && }\r\n \r\n);\r\n\r\nexport const PickUpAtStoreComponentWithMultiplePickUp: React.FC = ({ PickUpAtStore, label, location }) => (\r\n \r\n {label}\r\n {location}\r\n \r\n);\r\n\r\nexport const LineItemsComponent: React.FC = ({\r\n LineItems,\r\n editLink,\r\n itemsForPickup,\r\n itemsForShip,\r\n itemsForEmail,\r\n itemsGroupWithMulitplePickupMode\r\n}) => (\r\n \r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForPickup && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForEmail && }\r\n {itemsGroupWithMulitplePickupMode === undefined && itemsForShip && }\r\n {itemsGroupWithMulitplePickupMode !== undefined\r\n ? itemsGroupWithMulitplePickupMode.map((item, index) => {\r\n return ;\r\n })\r\n : null}\r\n \r\n {editLink}\r\n \r\n \r\n);\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines, lineItems, resources, props }) => {\r\n const [isOpen, setIsOpen] = React.useState(false);\r\n // NOTE: Need to check for other shipment products (ship, email, pickup)\r\n const itemsCount = props.data.checkout.result?.checkoutCart.cart.CartLines?.length;\r\n return (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.subtotal}\r\n {lines.shipping}\r\n {lines.otherCharge}\r\n {lines.tax}\r\n {lines.totalDiscounts}\r\n {lines.loyalty}\r\n {lines.giftCard}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n \r\n setIsOpen(prevSt => !prevSt)}\r\n onKeyPress={() => setIsOpen(prevSt => !prevSt)}\r\n >\r\n {resources.itemsInCurrentOrderLabel}\r\n {itemsCount}\r\n \r\n \r\n \r\n {lineItems && }\r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst PaymentSummaryComponent: React.FC = ({ heading, lines }) => (\r\n
\r\n {heading}\r\n
\r\n {lines && (\r\n <>\r\n {lines.invoices}\r\n {lines.giftCard}\r\n {lines.loyalty}\r\n {lines.orderTotal}\r\n \r\n )}\r\n
\r\n
\r\n);\r\nconst getShowButtonFrmCart = async (\r\n context: ICoreContext<{\r\n [x: string]: any;\r\n }>\r\n): Promise => {\r\n const cartState = await getCartState(context.actionContext);\r\n return cartState?.cart.CartLines && cartState?.cart?.TotalAmount === 0;\r\n};\r\nconst CheckoutView: React.FC> = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\r\n hasInvoiceLine,\r\n bodyProps,\r\n mainProps,\r\n mainControlProps,\r\n sideProps,\r\n sideControlFirstProps,\r\n sideControlSecondProps,\r\n termsAndConditionsProps,\r\n orderConfirmation,\r\n loading,\r\n alert,\r\n title,\r\n guidedForm,\r\n orderSummary,\r\n invoicePaymentSummary,\r\n lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n context\r\n } = props;\r\n React.useEffect(() => {\r\n const storageName = `${props.context.request.user.customerAccountNumber}-${NUMBER_OF_ITEMS}`;\r\n localStorage?.setItem(storageName, JSON.stringify(lineItems?.itemsForShip?.lineItems?.length));\r\n }, [lineItems?.itemsForShip?.lineItems?.length]);\r\n\r\n const [showButtonFrmCart, setShowButtonFrmCart] = React.useState(false);\r\n getShowButtonFrmCart(context).then(res => setShowButtonFrmCart(res!));\r\n\r\n const getPlaceOrderButton = () => {\r\n return props.config.showPlaceOrderButton ? (\r\n {placeOrderButton}\r\n ) : (\r\n showButtonFrmCart && {placeOrderButton}\r\n );\r\n };\r\n return (\r\n \r\n {!hasSalesOrder && {title}}\r\n {!hasSalesOrder && (\r\n \r\n {loading}\r\n {alert}\r\n {canShow && (\r\n <>\r\n \r\n {guidedForm}\r\n {termsAndConditions}\r\n {getPlaceOrderButton()}\r\n \r\n \r\n {!hasInvoiceLine\r\n ? orderSummary && (\r\n \r\n )\r\n : invoicePaymentSummary && }\r\n \r\n {termsAndConditions}\r\n \r\n \r\n {termsAndConditions}\r\n {/* {getPlaceOrderButton()} */}\r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n {hasSalesOrder && orderConfirmation}\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutView;\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\n\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IHeaderViewProps } from '@msdyn365-commerce-modules/header';\r\nimport Modal from 'reactstrap/lib/Modal';\r\nimport ModalBody from 'reactstrap/lib/ModalBody';\r\nimport ModalFooter from 'reactstrap/lib/ModalFooter';\r\nimport { Drawer, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { AsyncResult } from '@msdyn365-commerce/core';\r\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\r\nimport {\r\n Button,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n TelemetryConstant\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IHeaderProps } from '../definition-extensions/header.ext.props.autogenerated';\r\n\r\nconst headerView: React.FC> = props => {\r\n const { HeaderTag, HeaderContainer, HeaderTopBarContainer, Divider, config } = props;\r\n const { siteSubtext, siteInfotext } = config;\r\n const {\r\n searchHeader,\r\n closeLabel,\r\n lookForLabel,\r\n switchProfileHeader,\r\n profilesAvailableHeader,\r\n switchProfileNote,\r\n siteName,\r\n switchProfileButtonLabel,\r\n searchButtonLabel\r\n } = props.resources;\r\n const [modal, setModal] = React.useState(false);\r\n const [modalSite, setModalSite] = React.useState(false);\r\n const toggle = () => setModal(!modal);\r\n const toggleSite = () => setModalSite(!modalSite);\r\n return (\r\n <>\r\n \r\n
\r\n

\r\n {searchHeader}\r\n

\r\n \r\n
\r\n\r\n \r\n
\r\n \r\n {_renderReactFragment(props.search)}\r\n {props.preferredStore}\r\n
\r\n
\r\n
\r\n \r\n
\r\n

\r\n {switchProfileHeader}\r\n

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

{profilesAvailableHeader}

\r\n {props.siteOptions}\r\n
\r\n
\r\n \r\n

{switchProfileNote}

\r\n {/*
\r\n \r\n
*/}\r\n
\r\n
\r\n \r\n
{_renderAccountBlock(props, false)}
\r\n \r\n \r\n
\r\n {props.logo}\r\n
\r\n {siteName}\r\n
\r\n \r\n {siteSubtext}\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n {siteSubtext}\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {props.navIcon}\r\n
\r\n
\r\n \r\n
\r\n
\r\n\r\n {/* {_renderReactFragment(props.search)}\r\n {props.preferredStore} */}\r\n\r\n {/* {props.wishListIconDesktop} */}\r\n \r\n {props.cartIcon}\r\n
\r\n
\r\n {_renderCollapseMenu(props)}\r\n {_renderReactFragment(props.menuBar)}\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nfunction _renderCollapseMenu(props: IHeaderViewProps & IHeaderProps<{}>): JSX.Element | null {\r\n const {\r\n Divider,\r\n MobileMenuLinksContainer,\r\n mobileMenuCollapsed,\r\n resources: { navMenuHeader }\r\n } = props;\r\n return (\r\n \r\n
\r\n \r\n {props.navIcon}\r\n
\r\n \r\n \r\n {_renderMobileAccountBlock(props, true)}\r\n {/* {props.wishListIconMobile} */}\r\n \r\n \r\n {_renderReactFragment(props.menuBar)}\r\n \r\n \r\n );\r\n}\r\n\r\nconst renderCustomerName = (accountInformation: AsyncResult): React.ReactChild => {\r\n const customer = accountInformation && accountInformation.result;\r\n return <>{customer ? customer.FirstName || customer.Name : ''};\r\n};\r\n\r\nfunction _renderMobileAccountBlock(props: IHeaderViewProps, renderForMobile: boolean): JSX.Element | null {\r\n const { AccountInfoDropdownParentContainer, signOutLink, signInLink, data, accountLinks } = props;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n 'ms-header__drawer',\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n\r\n if (accountLinks) {\r\n return (\r\n \r\n
\r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n
\r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction _renderAccountBlock(props: IHeaderViewProps & IHeaderProps<{}>, renderForMobile: boolean): JSX.Element | null {\r\n const { AccountInfoDropdownParentContainer, AccountInfoDropdownPopoverConentContainer, signOutLink, signInLink, accountLinks } = props;\r\n const customer = props.data.accountInformation.result;\r\n\r\n if (AccountInfoDropdownParentContainer) {\r\n const accountClassName = classnames(\r\n AccountInfoDropdownParentContainer.className,\r\n renderForMobile ? 'account-mobile' : 'account-desktop'\r\n );\r\n if (AccountInfoDropdownPopoverConentContainer) {\r\n return (\r\n \r\n {/* VSI-Customization -- START Display username with Hello */}\r\n {_getAccountInfoDropdownButton(customer, props)}\r\n {/* VSI-Customization -- END */}\r\n \r\n {accountLinks ? accountLinks.map((link: React.ReactNode) => link) : false}\r\n {signOutLink}\r\n \r\n \r\n );\r\n } else if (signInLink) {\r\n return (\r\n \r\n {signInLink}\r\n \r\n );\r\n }\r\n }\r\n\r\n return null;\r\n}\r\n\r\n// Display user name with Hello as per Design document.\r\nfunction _getAccountInfoDropdownButton(\r\n customer: Customer | undefined,\r\n props: IHeaderViewProps & IHeaderProps<{}>\r\n): React.ReactNode | undefined {\r\n const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName!, props.friendlyName, props.telemetry);\r\n const { helloLabel } = props.resources;\r\n const payLoad = getPayloadObject('click', telemetryContent, TelemetryConstant.MyProfile);\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n const displayName = `${helloLabel} ${customer ? customer.FirstName || customer.Name : undefined}`;\r\n return (\r\n customer &&\r\n displayName && (\r\n \r\n {displayName}\r\n \r\n )\r\n );\r\n}\r\n\r\nfunction _renderReactFragment(items: React.ReactNode[]): JSX.Element | null {\r\n return (\r\n \r\n {items && items.length\r\n ? items.map((slot: React.ReactNode, index: number) => {\r\n return {slot};\r\n })\r\n : null}\r\n \r\n );\r\n}\r\n\r\nexport default headerView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n\n @computed get canSubmitStatementRequest(): boolean {\n return this.state.statementRequestFromDateString !== '' && this.state.statementRequestToDateString !== '';\n }\n\n constructor(props: IAccountCustomerBalanceProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.state = {\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0]\n };\n }\n\n public render(): JSX.Element | null {\n const customer = get(this.props, 'data.customerInformation.result');\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n if ([customer, account].includes(undefined)) {\n this.props.context.telemetry.error('Customer data is unavailable, module will not render');\n return null;\n }\n\n const { config, resources, context } = this.props;\n const { heading } = config;\n const {\n creditSummarySectionHeading,\n accountSectionHeading,\n backToShoppingText,\n customerSincePrefix,\n availableCreditLabel,\n balanceOwedLabel,\n creditExcessLabel,\n requestStatementButtonLabel,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n myAccountStatementLabel,\n fullOrganizationLabel,\n modalAriaLabel\n } = resources;\n\n const {\n isStatementRequestModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n statementRequestMaxDateString\n } = this.state;\n\n const accountNumber = customer.AccountNumber;\n const createdOn = this._formatJoinDate(new Date(customer.CreatedDateTime));\n const name = `${customer.FirstName} ${customer.LastName}`;\n let customerCredit = 0;\n let customerAccountBalance = 0;\n let excess = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n customerAccountBalance = account.Balance;\n excess = account.Balance - account.CreditLimit;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n customerAccountBalance = account.InvoiceAccountBalance;\n excess = account.InvoiceAccountBalance - account.InvoiceAccountCreditLimit;\n }\n\n const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n const availableCredit = this._formatCurrency(customerCredit);\n const balanceOwed = this._formatCurrency(customerAccountBalance);\n const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n const emailAddress = customer.Email;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const isB2BAdmin = isB2BSite && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : (\n isB2BSite && (\n \n )\n );\n\n const viewProps = {\n ...this.props,\n heading: ,\n accountSectionHeading: (\n \n ),\n accountLabels: (\n \n ),\n accountValues: ,\n creditSummarySectionHeading: (\n \n ),\n availableCredit: ,\n balanceOwed: ,\n creditExcess: ,\n homeButton: ,\n actions: actionBar,\n requestStatementModal: isB2BSite && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private _formatCurrency(currency: number): string {\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n\n return `${formatCurrency(currency.toFixed(2), currencyCode)}`;\n }\n\n private _formatJoinDate(date: Date): string {\n const i14nDate = new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n\n return i14nDate.format(date);\n }\n\n private readonly _showRequestStatementModal = (): void => {\n if (!this.state.isStatementRequestModalOpen) {\n this.setState({\n isStatementRequestModalOpen: true\n });\n }\n };\n\n private readonly _toggleModal = (): void => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n };\n\n private readonly _toggleDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _adminShowRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestAdminDropdownOpen: false\n });\n\n this._showRequestStatementModal();\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const B2BUserId = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType.Email\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this.setState({\n isStatementRequestModalOpen: false\n });\n };\n}\n\nexport default AccountCustomerBalance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n className?: string;\n requestStatementButtonLabel: string;\n onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n promoteToSellerLabel?: string;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n onPromoteToSeller?(): void;\n}\n\nexport const ActionBar: React.FC = ({ className, onRequestStatement, requestStatementButtonLabel }) => {\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n onPromoteToSeller,\n promoteToSellerLabel,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const onSelectPromoteToSeller = React.useCallback(() => {\n onPromoteToSeller?.();\n }, [onPromoteToSeller]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n {promoteToSellerLabel && (\n \n {promoteToSellerLabel}\n \n )}\n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

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

{description}

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

{props.text}

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

{props.resources.loyaltyTermsHeading}

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

{props.resources.loyaltyAgreeToTerms}

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

{description}

;\n\nexport default SignInDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignInErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignInError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignInError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n ariaLabel?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignInInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignInInput: React.FC = ({ id, type, value, pattern, className, maxLength, ariaLabel, onChange }) => (\n \n);\n\nexport default SignInInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignInLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignInLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignInLink {\n id?: string;\n className: string;\n href: string;\n ariaLabel: string;\n text: string;\n telemetryContent?: ITelemetryContent;\n}\n\nconst SignInLink: React.FC = ({ id, className, href, telemetryContent, ariaLabel, text }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {text}\n \n );\n};\n\nexport default SignInLink;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingIcon {\n className: string;\n}\n\nconst SignInLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignInLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignInLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignInLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignInText {\n className: string;\n text: string;\n}\n\nconst SignInText: React.FC = ({ className, text }) => {text};\n\nexport default SignInText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignInButtonComponent from './components/sign-in-button';\nimport SignInDescriptionComponent from './components/sign-in-description';\nimport SignInErrorComponent from './components/sign-in-error';\nimport SignInInputComponent from './components/sign-in-input';\nimport SignInLabelComponent from './components/sign-in-label';\nimport SignInLinkComponent from './components/sign-in-link';\nimport SignInLoadingIconComponent from './components/sign-in-loading-icon';\nimport SignInLoadingMessageComponent from './components/sign-in-loading-message';\nimport SignInTextComponent from './components/sign-in-text';\nimport { ISignInConfig, ISignInProps, ISignInResources } from './sign-in.props.autogenerated';\n\nexport interface ISignInViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignInItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n error: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignInSocialItem {\n key: string;\n button: INodeProps;\n image: React.ReactNode;\n text: React.ReactNode;\n}\n\nexport interface ISignInB2BItem {\n key: string;\n button: INodeProps;\n text: React.ReactNode;\n}\n\nexport interface ISignInSocialAccount {\n socialAccounts: INodeProps;\n items: ISignInSocialItem[];\n}\n\nexport interface ISignInB2BAccount {\n socialAccounts: INodeProps;\n items: ISignInB2BItem[];\n}\nexport interface ISignInLocalAccount {\n localAccount: INodeProps;\n items: ISignInItem[];\n forgetPassword: React.ReactNode;\n disclaimer: React.ReactNode;\n error: React.ReactNode;\n signInButton: React.ReactNode;\n}\n\nexport interface ISignInLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignInViewProps {\n className: string;\n viewState: ISignInViewState;\n signIn: IModuleProps;\n loading: ISignInLoading;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n signInSection: INodeProps;\n signInSectionHeading: React.ReactNode;\n signInLocalAccount: ISignInLocalAccount;\n signInSocialAccount: ISignInSocialAccount;\n signInB2BAccount: ISignInB2BAccount;\n signUpSection: INodeProps;\n signUpSectionHeading: React.ReactNode;\n signUpDescription: React.ReactNode;\n signUpLink: React.ReactNode;\n}\n\n/**\n * SignIn component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignIn extends React.Component> {\n private readonly moduleClassName: string = 'ms-sign-in';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private emailId: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignInProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.emailId = 'logonIdentifier';\n }\n\n public componentDidMount(): void {\n this._prePopulateData();\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignInProps, nextState: ISignInViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const config: ISignInConfig = this.props.config || {};\n const resources: ISignInResources = this.props.resources || {};\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signIn: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n signInSection: {\n className: `${this.moduleClassName}__sign-in-section`\n },\n signInSectionHeading: (\n \n ),\n signInLocalAccount: {\n localAccount: {\n className: `${this.moduleClassName}__account-items localAccount`\n },\n items: [\n this._renderInput(\n this.emailId,\n 'email',\n resources.emailAddressLabelText,\n resources.emailAddressAriaLabel,\n this.emailRegex\n ),\n this._renderInput('password', 'password', resources.passwordLabelText)\n ],\n forgetPassword: (\n \n ),\n disclaimer: config.signInDisclaimer && (\n \n ),\n error: ,\n signInButton: (\n \n )\n },\n signInSocialAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__social-accounts`\n },\n items: [\n this._renderSocialAccount(\n 'FacebookExchange',\n resources.facebookButtonText,\n resources.facebookButtonAriaLabel,\n config.facebookIcon\n ),\n this._renderSocialAccount(\n 'MicrosoftAccountExchange',\n resources.microsoftButtonText,\n resources.microsoftButtonAriaLabel,\n config.microsoftIcon\n )\n ]\n },\n signInB2BAccount: {\n socialAccounts: {\n className: `${this.moduleClassName}__b2b-social-accounts`\n },\n items: [\n this._renderB2BSocialAccount(\n 'StoreManagerB2BSignin',\n resources.b2bButtonText,\n resources.b2bButtonAriaLabel,\n config.displayB2bAccountManagerSignin\n )\n ]\n },\n signUpSection: {\n className: `${this.moduleClassName}__sign-up-section`\n },\n signUpSectionHeading: (\n \n ),\n signUpDescription: (\n \n ),\n signUpLink: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.signInDisclaimer = event.target.value);\n\n public handleSignInHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signInHeading.text = event.target.value);\n\n public handleSignUpHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.signUpHeading.text = event.target.value);\n\n private readonly _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['CONTENT'] && window['CONTENT']['email_pattern']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n this.emailRegex = window['CONTENT']['email_pattern'];\n }\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // @ts-expect-error\n this.emailId = (window.SA_FIELDS.AttributeFields || [])[0].ID || this.emailId;\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignInResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n requiredField_email: resources.requriedEmailError,\n requiredField_password: resources.requriedPasswordError,\n invalid_email: resources.invalidEmailError,\n invalid_password: resources.invalidPasswordError,\n unknown_error: resources.unknownError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private _renderInput(id: string, type: string, labelText: string, ariaLabel?: string, pattern?: string): ISignInItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n error: (\n \n ),\n input: (\n \n )\n };\n }\n\n private _renderSocialAccount(id: string, text: string, ariaLabel: string, iconImage?: Msdyn365.IImageData): ISignInSocialItem {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n image: this._createImageMarkup(iconImage),\n text: \n };\n }\n\n private _renderB2BSocialAccount(\n id: string,\n text: string,\n ariaLabel: string,\n _displayB2bAccountManagerSignin: boolean | undefined\n ): ISignInB2BItem | null {\n if (_displayB2bAccountManagerSignin) {\n return {\n key: id,\n button: {\n id,\n tag: 'button',\n className: classnames(\n `${this.moduleClassName}__social-account`,\n `${this.moduleClassName}__social-account-${id}`,\n 'accountButton',\n 'msc-btn'\n ),\n 'aria-label': ariaLabel\n },\n text: \n };\n }\n return null;\n }\n\n private _createImageMarkup(iconImage?: Msdyn365.IImageData): React.ReactNode | null {\n if (iconImage) {\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings || {},\n imageSettings: iconImage && iconImage.imageSettings\n };\n const pictureClassName = `${this.moduleClassName}__social-account-picture`;\n return (\n
\n \n
\n );\n }\n return null;\n }\n}\n\nexport default SignIn;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignInItem,\n ISignInLoading,\n ISignInLocalAccount,\n ISignInSocialAccount,\n ISignInSocialItem,\n ISignInB2BAccount,\n ISignInB2BItem,\n ISignInViewProps\n} from './sign-in';\n\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\n return (\n \n {items &&\n items.map((item: ISignInItem) => {\n return (\n \n {item.label}\n {item.error}\n {item.input}\n \n );\n })}\n {forgetPassword}\n {disclaimer}\n {error}\n {signInButton}\n \n );\n};\n\nconst SocialAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInSocialItem) => {\n return (\n \n {item.image}\n {item.text}\n \n );\n })}\n \n );\n};\n\nconst B2BAccount: React.FC = ({ socialAccounts, items }) => {\n return (\n \n {items &&\n items.map((item: ISignInB2BItem) => {\n return (\n item && (\n \n {item.text}\n \n )\n );\n })}\n \n );\n};\n\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignInView: React.FC = props => {\n const {\n signIn,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n signInSection,\n signUpSection,\n signInSectionHeading,\n signInLocalAccount,\n signInSocialAccount,\n signUpSectionHeading,\n signInB2BAccount,\n signUpDescription,\n signUpLink\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n \n {signInSectionHeading}\n {LocalAccount(signInLocalAccount)}\n {SocialAccount(signInSocialAccount)}\n {B2BAccount(signInB2BAccount)}\n \n \n {signUpSectionHeading}\n {signUpDescription}\n {signUpLink}\n \n \n \n );\n};\n\nexport default SignInView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n"],"names":["AddressShow","_ref","AddressDetail","items","React","Node","Object","assign","map","item","description","AddressList","_ref2","List","isShowList","heading","Item","key","error","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","title","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","_ref4","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","input","AddressError","props","AccountAddressManagement","viewState","showAddressList","showAddOrUpdateAddress","screenReaderNotification","phonePlaceholderID","phonePlaceholderText","resources","_document$getElementB","document","getElementById","setAttribute","Module","isShowAddresList","isShowAddOrUpdateAddress","BusinessFormItem","wrapper","errorMessage","BusinessUserForm","modalClassName","FormWrapper","modalHeading","modalDescription","inputs","buttons","toggle","modalBody","index","modalFooter","button","_renderModal","BusinessUserDetails","selectedUser","FirstName","LastName","userFullName","tag","className","keys","data","InputID","isModalOpen","headingSection","bodySection","footerSection","toggleModal","Modal","role","wrapClassName","autoFocus","fade","applicationNode","isOpen","id","tabIndex","onClick","ModalBody","ModalFooter","OrganizationUserList","moduleContainer","noUsersText","addUserButton","organizationListTable","form","formType","requestAccountStatementButton","requestStatementModal","ButtonList","_getForm","type","formProps","BusinessSignUpItem","isAddressInput","businessSignUp","ContainerWrapper","businessSignUpForm","disclaimer","PickUpAtStoreComponent","PickUpAtStore","location","EmailDeliveryComponent","EmailDelivery","LineItemComponent","LineItem","pickUpAtStore","emailDelivery","LineItemGroupComponent","LineItemDeliveryGroup","LineItemList","lineItems","lineItem","LineId","LineItemGroupComponentWithMultiplePickUp","_ref5","lineItemWraper","lineItemWraperIcon","LineItemComponentWithMultiplePickUp","_ref6","PickUpAtStoreComponentWithMultiplePickUp","_ref7","LineItemsComponent","_ref8","LineItems","editLink","itemsForPickup","itemsForShip","itemsForEmail","itemsGroupWithMulitplePickupMode","undefined","OrderSummaryComponent","_ref9","_props$data$checkout$","lines","setIsOpen","itemsCount","checkout","result","checkoutCart","cart","CartLines","length","subtotal","shipping","otherCharge","tax","totalDiscounts","loyalty","giftCard","orderTotal","CardHeader","prevSt","onKeyPress","itemsInCurrentOrderLabel","Collapse","Card","CardBody","PaymentSummaryComponent","_ref10","invoices","_lineItems$itemsForSh2","canShow","checkoutProps","headerProps","hasSalesOrder","hasInvoiceLine","bodyProps","mainProps","mainControlProps","sideProps","sideControlFirstProps","sideControlSecondProps","termsAndConditionsProps","orderConfirmation","loading","guidedForm","orderSummary","invoicePaymentSummary","placeOrderButton","termsAndConditions","context","_localStorage","_lineItems$itemsForSh","storageName","request","user","customerAccountNumber","localStorage","setItem","JSON","stringify","showButtonFrmCart","setShowButtonFrmCart","async","_cartState$cart","cartState","getCartState","actionContext","TotalAmount","getShowButtonFrmCart","then","res","config","showPlaceOrderButton","renderCustomerName","accountInformation","customer","Name","_renderReactFragment","slot","HeaderTag","HeaderContainer","HeaderTopBarContainer","Divider","siteSubtext","siteInfotext","searchHeader","closeLabel","lookForLabel","switchProfileHeader","profilesAvailableHeader","switchProfileNote","siteName","switchProfileButtonLabel","searchButtonLabel","modal","setModal","modalSite","setModalSite","toggleSite","htmlFor","search","preferredStore","style","padding","siteOptions","renderForMobile","AccountInfoDropdownParentContainer","AccountInfoDropdownPopoverConentContainer","signOutLink","signInLink","accountLinks","accountClassName","classnames","_props$AccountInfoDro","_props$AccountInfoDro2","_props$AccountInfoDro3","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","helloLabel","payLoad","getPayloadObject","TelemetryConstant","MyProfile","attributes","getTelemetryAttributes","displayName","Button","innerRef","target","color","_getAccountInfoDropdownButton","link","_renderAccountBlock","logo","navIcon","cartIcon","MobileMenuLinksContainer","mobileMenuCollapsed","navMenuHeader","Drawer","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","_renderMobileAccountBlock","menuBar","_renderCollapseMenu","AccordionItem","constructor","super","moduleClassName","handleHeadingChange","event","this","accordionItemTitle","value","_onToggle","bind","shouldComponentUpdate","nextProps","render","slots","renderView","accordionExpandedStateResult","accordionExpandedState","expanded","isAllExpanded","isExpandedOnInitialLoad","_objectSpread","AccordionItemContainer","moduleProps","AccordionItemContent","drawer","ControlledDrawer","collapseProps","onToggle","onTextChange","requestContext","accordionSlots","state","interactionStyle","accordionState","update","createAccordionStateInput","__decorate","observer","_renderAccordionItemContent","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","text","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","contentAction","etext","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","ref","toggleAllSeparator","collapseAllText","setState","setTimeout","_this$collapseAllButt","current","focus","_this$expandAllButton","AccountCustomerBalanceTile","_initState","reaction","content","ErrorComponent","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","nextState","isCustomerAccountPaymentEnabled","links","viewProps","Heading","headingTag","isDetailsLinkDisplayed","LinksComponent","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","computed","_mapEditableLinks","linkdata","editableLinks","forEach","linkText","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","additionalProperties","push","AccountCustomerBalance","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","split","_get","includes","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","name","customerAccountBalance","excess","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","actionBar","IsB2bAdmin","AdminRequestStatementButton","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","actions","RequestStatementModal","email","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUserLabel","maxDateString","currency","date","Intl","DateTimeFormat","locale","month","day","year","format","creditSummaryLabels","creditSummaryValues","onPromoteToSeller","promoteToSellerLabel","buttonReference","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","popoverReference","requestStatementDropdownString","Random","Guid","generateGuid","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","horizontalPosition","verticalPosition","ModalHeader","onBlur","onChange","max","min","BackToShopping","href","AccountProfileEdit","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","window","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidMount","componentDidUpdate","isShowLoading","accountProfileEdit","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","e","createElement","innerHTML","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","AccountWelcomeTile","accountInfo","AccountWishlistTile","handleLinkTextChange","linkIndex","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","DescriptionComponent","RequestsTableColumnHeader","getUserName","StringExtensions","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","replace","formatDate","cultureFormatter","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","ArrayExtensions","hasElements","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","Text","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","isMobile","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","viewLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","url","reqContext","MsDyn365","isBrowser","URL","requestUrl","isSingleSelectOnly","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","b2bRequestsStatus","table","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","isAuthenticated","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","catch","debug","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","returnFocusRef","returnRef","modalHeader","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","isJoining","substring","qsps","qsp","splitQsp","hideToggle","serviceTerms","modalToggle","joinLoyaltytermsToggleText","CardNumber","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","GetLoyaltyCardInput","handleParagraphChange","signInDisclaimer","handleSignInHeadingChange","signInHeading","handleSignUpHeadingChange","signUpHeading","emailId","SA_FIELDS","AttributeFields","errorMessages","requiredField_email","requriedEmailError","requiredField_password","requriedPasswordError","invalid_email","invalidEmailError","invalid_password","invalidPasswordError","unknown_error","unknownError","signIn","SignInLoadingIconComponent","SignInLoadingMessageComponent","signInSection","signInSectionHeading","signInLocalAccount","emailAddressAriaLabel","passwordLabelText","forgetPassword","SignInLinkComponent","forgotPasswordButtonAriaLabel","forgotPasswordButtonText","SignInErrorComponent","signInButton","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","signInSocialAccount","socialAccounts","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","signInB2BAccount","_renderB2BSocialAccount","b2bButtonText","b2bButtonAriaLabel","displayB2bAccountManagerSignin","signUpSection","signUpSectionHeading","signUpDescription","SignInDescriptionComponent","signUpDescriptionText","signUpLink","signUpButtonAriaLabel","signUpButtonText","SignInLabelComponent","SignInInputComponent","iconImage","image","_createImageMarkup","SignInTextComponent","_displayB2bAccountManagerSignin","imageProps","gridSettings","imageSettings","pictureClassName","shouldSkipToMainImage","SignInLoading","SocialAccount","B2BAccount","successClassName","isEmailVerificationRequried","templateVersion","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","newPasswordRegex","reenterPasswordRegex","UX_INPUT_TYPE","getValue","v1Value","v2Value","PasswordRegex","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","confirmPasswordLabelText","emailVerification","isRequired","verificationCodeLabelText","verificationControlWrapper","buttonWrapper","SignUpButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","successMessage","SignUpSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","SignUpErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","givenNameVerification","surnameVerification","signUpButtonArialabel","cancelButtonArialabel","passwordEntryMismatchError","cssClassName","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","SignUpLoading","FormType","InputType","renderInputSection","asteriskAfterLabel","onInputChange","element","customClass","maxChars","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","find","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","toString","_getCurrentUrl","_getViewport","device","Type","innerWidth","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","currentUser","users","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","Status","_viewport","_updateViewport","submitButtonReference","addedReference","isNullOrWhitespace","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","errorProps","modalState","_createTableProps","_renderUserForm","_renderUserDetails","selectedOrganizationLabel","selectedUserName","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","InteractiveFeatureCollection","_telemetryContent","handleTextChange","itemsCounter","keyIndex","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm"],"sourceRoot":""}