{"version":3,"file":"static/js/7.291db11c2813ff416306.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/account-generic-tile.view.tsx?19d2","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/checkout.view.tsx?ea45","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/order-confirmation.view.tsx?31ca","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/order-template-list.view.tsx?f44e","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/search.view.tsx?3a76","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/store-selector.view.tsx?4246","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-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-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-profile/components/account-profile-attributes.tsx?bcc2","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.tsx?fe69","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://Msdyn365.Commerce.Online/./src/modules/account-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/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/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/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/content-block/components/additional-content.tsx?d5f9","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/components/links.tsx?abbf","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.tsx?3084","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.view.tsx?1773","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-header.component.tsx?3609","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-view-mode-selector.component.tsx?6452","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/utilities/order-lookup-utility.tsx?c60b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-additional-fields.tsx?9951","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-fields.tsx?297b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.tsx?72d3","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.view.tsx?b8e5","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/components/product-specification-table-stucture.tsx?c1c4","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.tsx?6583","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.view.tsx?7490","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?0efc"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountGenericTileViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/account-generic-tile/./account-generic-tile';\r\nimport { IAccountGenericTileProps } from '../definition-extensions/account-generic-tile.ext.props.autogenerated.js'\r\n\r\nconst AccountGenericTileView: React.FC> = props => {\r\n const { AccountGenericTile, heading, links } = props;\r\n const textField = props.config.text;\r\n const text = textField && ;\r\n\r\n return (\r\n \r\n {heading}\r\n {text}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nexport default AccountGenericTileView;\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 ICheckoutViewProps,\r\n IEmailDelivery,\r\n ILineItem,\r\n ILineItemDeliveryGroup,\r\n ILineItems,\r\n IOrderSummary,\r\n IPickUpAtStore\r\n} from '@msdyn365-commerce-modules/checkout';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\nimport { ICheckoutResources as ICheckoutResourcesExt } from '../definition-extensions/checkout.ext.props.autogenerated';\r\nimport { find } from 'lodash';\r\n\r\nimport * as React from 'react';\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 return (\r\n \r\n {item}\r\n {pickUpAtStore && }\r\n {emailDelivery && }\r\n \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 Header,\r\n heading,\r\n editLink,\r\n itemsForPickup,\r\n itemsForShip,\r\n itemsForEmail,\r\n itemsGroupWithMulitplePickupMode\r\n}) => (\r\n \r\n \r\n {heading}\r\n {editLink}\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);\r\n\r\nconst _renderCustomTaxLine = (taxAmount: number | null, props: ICheckoutViewPropsExt): JSX.Element | null => {\r\n const { taxLabel, toBeCalculatedText } = props.resources;\r\n\r\n return (\r\n
\r\n

\r\n {taxLabel}\r\n\r\n {\r\n taxAmount && taxAmount > 0 ? `${taxAmount}` : toBeCalculatedText\r\n }\r\n

\r\n
\r\n )\r\n}\r\n\r\nconst OrderSummaryComponent: React.FC = ({ heading, lines, ...other }) => {\r\n // @ts-ignore\r\n const locale = other.locale;\r\n // @ts-ignore\r\n const props = other.props;\r\n // @ts-ignore\r\n const taxAmount = other.taxAmount;\r\n\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 {locale.toLowerCase() == 'en-gb' ? _renderCustomTaxLine(taxAmount, props) : 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 );\r\n};\r\ninterface ICheckoutViewPropsExt extends ICheckoutViewProps {\r\n resources: ICheckoutResourcesExt;\r\n}\r\n// tslint:disable-next-line:max-func-body-length\r\nconst CheckoutView: React.FC = props => {\r\n const {\r\n canShow,\r\n checkoutProps,\r\n headerProps,\r\n hasSalesOrder,\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 lineItems,\r\n placeOrderButton,\r\n termsAndConditions,\r\n keepShoppingButton\r\n } = props;\r\n\r\n const locale = props.checkoutProps.moduleProps.context.request.locale;\r\n const taxAmount = props?.data?.checkout?.result?.checkoutCart?.cart?.TaxAmount;\r\n\r\n const extraOrdersSummaryEu = {\r\n taxAmount: taxAmount,\r\n locale: locale,\r\n props: props\r\n };\r\n const [greeting, setGreeting] = React.useState({\r\n status: false,\r\n greetingMessageCAP: '',\r\n greetingSignCAP: ''\r\n });\r\n\r\n\r\n const getCartProps = async () => {\r\n const activeCartState = await getCartState(props.context?.actionContext);\r\n const checkoutCartState = props?.data?.checkout?.result?.checkoutCart;\r\n // prettier-ignore\r\n // @ts-ignore\r\n const extPropsToRemove = checkoutCartState?.cart?.ExtensionProperties?.filter((fieldVal: { Key: string }) => fieldVal.Key === 'ExtPropsRemove_CAP')[0]?.Value?.BooleanValue;\r\n // prettier-ignore\r\n if (extPropsToRemove === true) {\r\n const extKeysToRemove = ['ActiveCartId_CAP', 'CheckoutCartId_CAP', 'GreetingMessage_CAP', 'GreetingSign_CAP', 'billing', 'Type_CAP', 'Country_CAP', 'City_CAP', 'ZipCode_CAP', 'OrgName_CAP',\r\n 'VatNum_CAP', 'FiscalCode_CAP', 'PEC_CAP', 'SDI_CAP', 'InvoiceCustAccount_CAP', 'Street_CAP', 'StreetNumber_CAP', 'FirstName_CAP', 'LastName_CAP'];\r\n\r\n const removeExtProps = async () => {\r\n const extProps = checkoutCartState?.cart?.ExtensionProperties;\r\n const extPropsToEmpty = [];\r\n if (extProps) {\r\n for (const propToRemove of extKeysToRemove) {\r\n if (find(extProps, obj => obj.Key === propToRemove)) {\r\n extPropsToEmpty.push({\r\n Key: propToRemove,\r\n Value: {}\r\n });\r\n }\r\n }\r\n extPropsToEmpty.push({\r\n Key: 'ExtPropsRemove_CAP',\r\n Value: {\r\n BooleanValue: false\r\n }\r\n });\r\n }\r\n await activeCartState?.updateExtensionProperties({ newExtensionProperties: extPropsToEmpty });\r\n await checkoutCartState?.updateExtensionProperties({ newExtensionProperties: extPropsToEmpty });\r\n };\r\n void removeExtProps();\r\n } else {\r\n // prettier-ignore\r\n // @ts-ignore\r\n const greetingMessageCAP = checkoutCartState?.cart?.ExtensionProperties?.filter((greetingVal: { Key: string }) => greetingVal.Key === 'GreetingMessage_CAP')[0]?.Value?.StringValue;\r\n // prettier-ignore\r\n // @ts-ignore\r\n const greetingSignCAP = checkoutCartState?.cart?.ExtensionProperties?.filter((greetingVal: { Key: string }) => greetingVal.Key === 'GreetingSign_CAP')[0]?.Value?.StringValue;\r\n setGreeting({\r\n status:\r\n (greetingMessageCAP !== null && greetingMessageCAP !== undefined && greetingMessageCAP !== '') ||\r\n (greetingSignCAP !== null && greetingSignCAP !== undefined && greetingSignCAP !== ''),\r\n greetingMessageCAP: greetingMessageCAP !== undefined ? greetingMessageCAP : '',\r\n greetingSignCAP: greetingSignCAP !== undefined ? greetingSignCAP : ''\r\n });\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (canShow) {\r\n void getCartProps();\r\n }\r\n }, [canShow]);\r\n\r\n // function sleep(ms: number) {\r\n // return new Promise(resolve => setTimeout(resolve, ms));\r\n // }\r\n\r\n // React.useEffect(() => {\r\n /*\r\n V item_id: “114066”, //product_id, SKU DL_CI\r\n V item_name: “Crema spalmabile Suprema Nocciola 250g”, DL_CI\r\n V coupon: “Coupon prodotto”, //coupon a livello di prodotto CHECKOUT\r\n V discount: 2.85, //Qualunque sconto associato CHECKOUT\r\n V item_discount_rate: \"30%\", CHECKOUT\r\n V index: 0, // la posizione del prodotto nel listato, inizia da 0 DL_CI\r\n item_category: “Cioccolato“ / “Pick&Mix” / “Idee regalo”, //valori delle breadcrumbs DL_CI\r\n item_list_name:  \"Cioccolato\" / \"Pick&Mix\" / \"Best seller\" / \"Search results\", DL_CI\r\n V price: 9.50, DL_CI\r\n V quantity: 1 DL_CI\r\n */\r\n\r\n // function getCheckoutCartItemsGA() {\r\n // // getDLCart().then(dl_cart => {\r\n // const checkout_cart_items = document.getElementsByClassName('msc-cart-line__content');\r\n // // if (dl_cart.length !== checkout_cart_items.length) {\r\n // // return;\r\n // // }\r\n // let cart_items: {}[] = [];\r\n // Array.from(checkout_cart_items).forEach((item, index) => {\r\n // cart_items.push({\r\n // 'item_id': item.getElementsByClassName('data-product-sku')[0].textContent ?? '',\r\n // 'item_name': item.getElementsByTagName('a')[0].textContent ?? '',\r\n // 'coupon': item.getElementsByClassName('msc-cart-line-item-product-discount')[0]?.children[0]?.textContent?.split(': ')[1] ?? '',\r\n // 'discount': item.getElementsByClassName('msc-cart-line-item-product-discount')[0]?.children[1]?.textContent!.slice(0, -2) ?? '0',\r\n // 'item_discount_rate': item.getElementsByClassName('msc-cart-line-item-product-discount')[0]?.children[2]?.textContent?.substring(\r\n // (item.getElementsByClassName('msc-cart-line-item-product-discount')[0]?.children[2]?.textContent?.indexOf('(') ?? 0) + 1,\r\n // item.getElementsByClassName('msc-cart-line-item-product-discount')[0]?.children[2]?.textContent?.lastIndexOf(')')\r\n // ) ?? '0%',\r\n // 'index': index,\r\n // 'item_category': localStorage.getItem(item.getElementsByClassName('data-product-sku')[0].textContent!)?.split(';')[0] ?? '',\r\n // 'item_list_name': localStorage.getItem(item.getElementsByClassName('data-product-sku')[0].textContent!)?.split(';')[1] ?? '',\r\n // 'price': item.getElementsByClassName('msc-price__actual')[0].textContent!.slice(0, -2) ?? '',\r\n // 'quantity': item.getElementsByClassName('quantity-value')[0].textContent ?? ''\r\n // });\r\n // });\r\n // const item_object = { 'items': cart_items };\r\n // return item_object;\r\n // // });\r\n // }\r\n\r\n // // async function getDLCart() {\r\n // // await sleep(3000);\r\n // // for (let i = 0; i < window.dataLayer.length; i++) {\r\n // // if (window.dataLayer[i].cart_items !== undefined) {\r\n // // return window.dataLayer[i].cart_items;\r\n // // }\r\n // // }\r\n // // }\r\n\r\n // getCheckoutCartItemsGA();\r\n\r\n // temporary mirror cart from which to get data for the DL management\r\n // getDLCart().then(res => {\r\n // const temp_cart = res;\r\n // console.log(temp_cart);\r\n // getCheckoutCart();\r\n // });\r\n // console.log(temp_cart);\r\n\r\n // function checkOutGA4() {\r\n // console.log('started new checkout tracker GA4');\r\n // // Select the node that will be observed for mutations\r\n // const targetNode = document.querySelector('.ms-checkout__guided-form') as Node;\r\n \r\n // // Options for the observer (which mutations to observe)\r\n // const config = { attributes: true, childList: true, subtree: true };\r\n \r\n // // Callback function to execute when mutations are observed\r\n // const callback = (mutationsList: MutationRecord[]) => {\r\n // // TODO this function was called twice before the page loaded completely in one of the tests,\r\n // // be careful about sending wrong GA events\r\n // // or maybe this is how to manage the pre filled ones\r\n // // wait this might be called when the thingy is removed too oh no; it shouldn't be an issue tho\r\n \r\n // // do stuff when loading disappears instead (as a removed node)?\r\n // for (let mutation of mutationsList) {\r\n // console.log(mutation.removedNodes);\r\n // if (mutation.type === 'childList' && mutation.addedNodes.length > 0) {\r\n // let pos = -1;\r\n // for (let i = 0; i < mutation.addedNodes.length; i++) {\r\n // // @ts-ignore\r\n // if (mutation.addedNodes[i].classList?.contains('ms-checkout__guided-card-footer')) {\r\n // pos = i;\r\n // break;\r\n // }\r\n // }\r\n \r\n // if (pos !== -1) {\r\n // console.log('right case');\r\n // // @ts-ignore\r\n // const new_button = mutation.addedNodes[pos].getElementsByClassName('ms-checkout__guided-card-btn-save')[0];\r\n // // @ts-ignore\r\n // const closestCard = mutation.target.closest('.ms-checkout__guided-card');\r\n // const cardHeader = closestCard.querySelector('.ms-checkout__guided-card-header');\r\n // const cardHeaderText = cardHeader.textContent.trim();\r\n // let variable: string;\r\n // switch (cardHeaderText[0]) {\r\n // case '1':\r\n // variable = 'robert 1';\r\n // break;\r\n // case '2':\r\n // variable = 'robert 2';\r\n // break;\r\n // case '3':\r\n // variable = 'robert 3';\r\n // break;\r\n // case '4':\r\n // variable = 'robert 4';\r\n // break;\r\n // case '5':\r\n // variable = 'robert 5';\r\n // break;\r\n // default:\r\n // variable = 'Unknown Value';\r\n // }\r\n // console.log(variable);\r\n // // change from click to remove the node so that it catches the auto changes too?\r\n // new_button.addEventListener('click', () => {\r\n // console.log('step ' + variable);\r\n // });\r\n // }\r\n // }\r\n // }\r\n // };\r\n \r\n // // Create an observer instance linked to the callback function\r\n // const observer = new MutationObserver(callback);\r\n \r\n // // Start observing the target node for configured mutations\r\n // observer.observe(targetNode!, config);\r\n \r\n // }\r\n\r\n // checkOutGA4();\r\n\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 \r\n {guidedForm}\r\n {termsAndConditions}\r\n \r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n \r\n
\r\n
\r\n \r\n {orderSummary && }\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \r\n {greeting.status ? (\r\n
\r\n

\r\n \r\n {props.resources.greetingTitle}\r\n

\r\n
\r\n
\r\n {' '}\r\n {greeting.greetingMessageCAP}\r\n
\r\n
\r\n {greeting.greetingSignCAP}\r\n
\r\n
\r\n
\r\n ) : (\r\n
\r\n {/* tslint:disable-next-line:react-a11y-anchors */}\r\n

\r\n \r\n {props.resources.addGreetingText}\r\n \r\n

\r\n
\r\n )}\r\n
\r\n {/* tslint:disable-next-line:react-a11y-anchors */}\r\n

\r\n \r\n {props.resources.insertModifyYourPromoCode}\r\n \r\n

\r\n
\r\n\r\n {lineItems && }\r\n\r\n \r\n {termsAndConditions}\r\n {placeOrderButton}\r\n {keepShoppingButton}\r\n \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 {\r\n IGroup,\r\n IGroupDelivery,\r\n IGroups\r\n} from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-groups';\r\nimport { IOrderInformation } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-order-information';\r\nimport { ISalesLine } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common/get-sales-line';\r\nimport { IOrderConfirmationViewProps } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/./order-confirmation';\r\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { find } from 'lodash';\r\n\r\nimport {\r\n IHelp,\r\n IOrderSummary,\r\n IPaymentMethods\r\n} from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { getCartState } from '@msdyn365-commerce/global-state';\r\n\r\nexport const OrderConfirmationOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n receiptEmail,\r\n createdDate,\r\n channelReferenceId\r\n}) => (\r\n \r\n {createdDate}\r\n {channelReferenceId}\r\n {receiptEmail}\r\n \r\n);\r\n\r\nexport const OrderConfirmationSalesLine: React.FC = ({ salesLineProps, salesLine, buyAgainButton }) => (\r\n {salesLine}\r\n);\r\n\r\nexport const OrderConfirmationGroupDelivery: React.FC = ({\r\n deliveryProps,\r\n heading,\r\n count,\r\n processing,\r\n address,\r\n trackingInfo,\r\n pickupDateTimeslot\r\n}) => (\r\n \r\n {heading}\r\n {address}\r\n {pickupDateTimeslot}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\r\n \r\n {delivery && }\r\n {delivery && delivery.shippingItemsToYou}\r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderConfirmationGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nconst _renderCustomTaxLine = (taxAmount: number): JSX.Element | null => {\r\n //const { estimatedTaxLabel, yetToBeCalculatedText} = props.resources;\r\n\r\n return (\r\n
\r\n

\r\n Tax\r\n \r\n {taxAmount}\r\n \r\n

\r\n
\r\n )\r\n}\r\n\r\nexport const OrderConfirmationOrderSummary: React.FC = ({\r\n orderSummaryProps,\r\n heading,\r\n subtotal,\r\n shipping,\r\n tax,\r\n totalAmount,\r\n earnedPoints,\r\n ...other\r\n}) => {\r\n // @ts-ignore\r\n const locale = other.locale;\r\n // @ts-ignore\r\n const taxAmount = other.taxAmount;\r\n\r\n return (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {locale.toLowerCase() == 'en-gb' && taxAmount > 0 ? _renderCustomTaxLine(taxAmount) : tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n );\r\n};\r\n\r\nexport const OrderConfirmationPayment: React.FC = ({ paymentMethodsProps, title, methods }) => (\r\n \r\n {title}\r\n {methods}\r\n \r\n);\r\n\r\nexport const OrderConfirmationHelp: React.FC = ({ helpProps, needHelpLabel, helpLineNumberLabel, contactNumber }) => (\r\n \r\n {needHelpLabel}\r\n {helpLineNumberLabel}\r\n {contactNumber}\r\n \r\n);\r\n\r\nconst OrderConfirmationView: React.FC = ({\r\n moduleProps,\r\n heading,\r\n backToShoppingLink,\r\n alert,\r\n loading,\r\n orderInfomation,\r\n orderSummary,\r\n payment,\r\n help,\r\n groups,\r\n data,\r\n slots\r\n}) => {\r\n // const updateExtProps = async (modprops: IModuleProps) => {\r\n // const currentCartState = await getCartState(modprops.moduleProps.context?.actionContext);\r\n // const cartLines = currentCartState?.cart?.CartLines;\r\n // if (!cartLines || (cartLines && cartLines.length === 0)) {\r\n // console.log(currentCartState?.cart?.CartLines?.length);\r\n // const removeExtProps = [\r\n // {\r\n // Key: 'ExtPropsRemove_CAP',\r\n // Value: {\r\n // BooleanValue: true\r\n // }\r\n // }\r\n // ];\r\n // await currentCartState.updateExtensionProperties({ newExtensionProperties: removeExtProps });\r\n // }\r\n // };\r\n\r\n // React.useEffect(() => {\r\n // void updateExtProps(moduleProps);\r\n // }, []);\r\n\r\n const setRemoveData = async (modprops: IModuleProps) => {\r\n const currentCartState = await getCartState(modprops.moduleProps.context?.actionContext)\r\n const extProps = currentCartState?.cart?.ExtensionProperties;\r\n const extPropsToRemove = extProps && find(extProps, obj => obj.Key === 'ExtPropsRemove_CAP')?.Value?.BooleanValue;\r\n const cartLines = currentCartState?.cart?.CartLines;\r\n // console.log(\"setRemoveData function\");\r\n if (!cartLines || (cartLines && cartLines.length === 0)) {\r\n // prettier-ignore\r\n // @ts-ignore\r\n const extKeysToRemove = ['ActiveCartId_CAP', 'CheckoutCartId_CAP', 'GreetingMessage_CAP', 'GreetingSign_CAP', 'billing', 'Type_CAP', 'Country_CAP', 'City_CAP', 'ZipCode_CAP', 'OrgName_CAP',\r\n 'VatNum_CAP', 'FiscalCode_CAP', 'PEC_CAP', 'SDI_CAP', 'InvoiceCustAccount_CAP', 'Street_CAP', 'StreetNumber_CAP', 'FirstName_CAP', 'LastName_CAP'];\r\n const extPropsToEmpty = [];\r\n // console.log(\"Cleaning Extension properties of cart\");\r\n if (extProps) {\r\n for (const propToRemove of extKeysToRemove) {\r\n if (find(extProps, obj => obj.Key === propToRemove)) {\r\n extPropsToEmpty.push({\r\n Key: propToRemove,\r\n Value: {}\r\n });\r\n }\r\n }\r\n if (extPropsToRemove === true){\r\n extPropsToEmpty.push({\r\n Key: 'ExtPropsRemove_CAP',\r\n Value: {\r\n BooleanValue: false\r\n }\r\n });\r\n }\r\n }\r\n if (extPropsToEmpty.length !== 0) {\r\n await currentCartState.updateExtensionProperties({ newExtensionProperties: extPropsToEmpty });\r\n }\r\n else {\r\n // console.log(\"no extension property to clean found\");\r\n }\r\n }\r\n };\r\n React.useEffect(() => {\r\n void setRemoveData(moduleProps);\r\n }, []);\r\n\r\n const locale = moduleProps.moduleProps.context.request.locale;\r\n // @ts-ignore\r\n const salseOrderData = moduleProps?.moduleProps?.data?.orderHydration?.result?.salesOrder;\r\n const taxAmount = salseOrderData?.TaxAmount;\r\n const extraOrdersSummaryEu = {\r\n taxAmount: taxAmount,\r\n locale: locale\r\n };\r\n return (\r\n \r\n {heading}\r\n {alert}\r\n {loading}\r\n {orderInfomation && }\r\n {backToShoppingLink}\r\n {groups && }\r\n {payment && }\r\n {orderSummary && }\r\n {help && }\r\n {slots &&\r\n slots.commisionJunction &&\r\n React.cloneElement(slots.commisionJunction[0] as React.ReactElement, {\r\n salesOrder: data.orderHydration.result?.salesOrder\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\r\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nexport const OrderTemplateListView: React.FC = props => {\r\n const {\r\n OrderTemplateList,\r\n status,\r\n statusMessage,\r\n heading,\r\n OrderTemplates,\r\n orderTemplates,\r\n OrderTemplate,\r\n createOrderTemplateButton,\r\n templateHeaderStatusMessage\r\n } = props;\r\n\r\n return (\r\n \r\n {heading}\r\n {status !== 'SUCCESS' && statusMessage}\r\n \r\n {createOrderTemplateButton}\r\n {templateHeaderStatusMessage}\r\n \r\n {OrderTemplates && orderTemplates && orderTemplates.length > 0 && (\r\n \r\n {orderTemplates &&\r\n orderTemplates.map(orderTemplate => {\r\n return _renderOrderTemplate(orderTemplate, OrderTemplate);\r\n })}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst _renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, OrderTemplate?: INodeProps): JSX.Element | null => {\r\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\r\n return (\r\n \r\n {orderTemplateName}\r\n {orderTemplateImage}\r\n {addToCartButton}\r\n {removeButton}\r\n {orderTemplateStatusMessage}\r\n \r\n );\r\n};\r\n\r\nexport default OrderTemplateListView;\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 { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISearchCategoryViewProps,\r\n ISearchFormViewProps,\r\n ISearchKeywordViewProps,\r\n ISearchProductViewProps\r\n} from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ? {AutoSuggestAriaLabelText} : ''}\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword, isLoadingAutoSuggest, isLoadingNode)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct, isLoadingAutoSuggest, isLoadingNode)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory, isLoadingAutoSuggest, isLoadingNode)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.input}\r\n {form.cancelBtn}\r\n {form.submitBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (\r\n KeywordSuggest: INodeProps,\r\n UlKeyword: INodeProps,\r\n keywordSuggestions?: ISearchKeywordViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (\r\n ProductSuggest: INodeProps,\r\n UlProduct: INodeProps,\r\n productSuggestions?: ISearchProductViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n productSuggestions.items.map((item, index) => {\r\n // @ts-ignore\r\n if (item?.price?.props?.data?.price?.CustomerContextualPrice != 0)\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n else return null;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;\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 { IStoreSelectorViewProps } from '@msdyn365-commerce-modules/store-selector/src/modules/store-selector/./store-selector';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst StoreSelectorView: React.FC = props => {\r\n const {\r\n BodyContainerProps,\r\n FooterContainerProps,\r\n HeaderContainerProps,\r\n HeaderProps,\r\n ModuleProps,\r\n // headerText,\r\n locationsMessage,\r\n search,\r\n state,\r\n spinner,\r\n locationsList,\r\n noLocationsMessage,\r\n terms\r\n } = props;\r\n const currentUrl = ModuleProps.moduleProps.context.request.url.requestUrl.href;\r\n const baseUrl = currentUrl.substring(0, currentUrl.lastIndexOf('/') + 1);\r\n React.useEffect(() => {\r\n const titles = Array.from(document.querySelectorAll('.ms-store-select__location-line-item-store-name'));\r\n if (titles.length > 0) {\r\n titles.forEach(el => {\r\n const storeName = el.textContent;\r\n if (storeName && storeName.startsWith('R ')) {\r\n el.closest('.ms-store-select__location-line-item')?.classList.add('location-type__dealer');\r\n el.textContent = storeName.replace('R ', '');\r\n }\r\n // @ts-ignore\r\n if (props.config.renderLinkToStorePage) {\r\n const goToStoreCtn = el.closest('.ms-store-select__location-line-item')?.querySelector('.go-to-store');\r\n if (goToStoreCtn === null) {\r\n const storeUrl = storeName\r\n ?.replace('R ', '')\r\n .toLowerCase()\r\n .replace(/[ .&@',]/g, '-')\r\n .replace(/-+/g, '-');\r\n const goToStore = document.createElement('div');\r\n goToStore.className = 'go-to-store';\r\n // tslint:disable-next-line:no-inner-html\r\n goToStore.innerHTML = `${\r\n // @ts-ignore\r\n props.resources.goToStorePage ? props.resources.goToStorePage : 'Go to Store page'\r\n }`;\r\n el.closest('.ms-store-select__location-line-item:not(.location-type__dealer)')\r\n ?.querySelector('.ms-store-select__location-line-item-content')\r\n ?.appendChild(goToStore);\r\n }\r\n }\r\n });\r\n }\r\n }, [locationsList]);\r\n\r\n return (\r\n \r\n {HeaderProps}\r\n \r\n {locationsMessage}\r\n {search}\r\n {state.isSearchInProgress ? spinner : <>{locationsList ? locationsList : noLocationsMessage}}\r\n \r\n {terms}\r\n \r\n );\r\n};\r\n\r\nexport default StoreSelectorView;\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 { 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 { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountLoyaltyTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-loyalty-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountLoyaltyTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

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

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-order-templates-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileEditConfig, IAccountProfileEditProps } from './account-profile-edit.props.autogenerated';\nimport AccountProfileEditButtonComponent from './components/account-profile-edit-button';\nimport AccountProfileEditErrorComponent from './components/account-profile-edit-error';\nimport AccountProfileEditInputComponent from './components/account-profile-edit-input';\nimport AccountProfileEditLabelComponent from './components/account-profile-edit-label';\nimport AccountProfileEditLoadingIconComponent from './components/account-profile-edit-loading-icon';\nimport AccountProfileEditLoadingMessageComponent from './components/account-profile-edit-loading-message';\n\nexport interface IAccountProfileEditViewState {\n isShowLoading: boolean;\n}\n\nexport interface IAccountProfileEditItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IAccountProfileEditLocalAccount {\n localAccount: INodeProps;\n items: IAccountProfileEditItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IAccountProfileEditLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IAccountProfileEditViewProps {\n className: string;\n viewState: IAccountProfileEditViewState;\n loading: IAccountProfileEditLoading;\n accountProfileEdit: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n accountProfileEditLocalAccount: IAccountProfileEditLocalAccount;\n}\n\n/**\n *\n * AccountProfileEdit component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfileEdit extends React.Component> {\n private readonly moduleClassName: string = 'ms-account-profile-edit';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private givenName: string;\n\n @observable private surname: string;\n\n @observable private email: string;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IAccountProfileEditProps) {\n super(props);\n this.givenName = '';\n this.surname = '';\n this.email = '';\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountProfileEditProps,\n nextState: IAccountProfileEditViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n accountProfileEdit: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && config.heading.text && (\n \n ),\n accountProfileEditLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public onTextBoxChange = (event: React.ChangeEvent) => {\n const id = event.target.id;\n const value = event.target.value;\n\n switch (id.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.emailRegex = value;\n break;\n }\n default:\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const { resources } = this.props;\n const invalidEmailAddressError = resources.invalidEmailAddressError || 'Please enter a valid email address.';\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PRE: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string }) => {\n const value = obj.PRE ? this._htmlDecode(obj.PRE) : '';\n switch (obj.ID.toLowerCase()) {\n case 'givenname': {\n this.givenName = value;\n break;\n }\n case 'surname': {\n this.surname = value;\n break;\n }\n case 'email': {\n this.email = value;\n this.emailRegex = obj.PAT;\n obj.PAT_DESC = invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private _htmlDecode(str: string): string {\n const e = document.createElement('div');\n\n e.innerHTML = str;\n return e.childNodes.length === 0 ? '' : e.childNodes[0].nodeValue || '';\n }\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n required_field: resources.requiredFieldMissingError,\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IAccountProfileEditLocalAccount {\n const { config, resources } = this.props;\n const localAccount = {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', this.givenName, resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', this.surname, resources.lastNameLabelText, resources.lastNameMaxLength)\n ],\n errorMessage: [\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n\n if (config.showEmail && this.email !== '') {\n localAccount.items.push(\n this._renderInput('email', 'email', this.email, resources.emailAddressLabelText, undefined, this.emailRegex)\n );\n }\n\n return localAccount;\n }\n\n private _renderInput(\n id: string,\n type: string,\n value: string,\n labelText: string,\n maxLength?: string,\n pattern?: string\n ): IAccountProfileEditItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default AccountProfileEdit;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IAccountProfileEditItem,\n IAccountProfileEditLoading,\n IAccountProfileEditLocalAccount,\n IAccountProfileEditViewProps\n} from './account-profile-edit';\n\nconst AccountProfileEditItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IAccountProfileEditItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst AccountProfileEditLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst AccountProfileEditView: React.FC = props => {\n const { accountProfileEdit, viewState, loading, defaultAADConainer, aadConainer, heading, accountProfileEditLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(accountProfileEditLocalAccount)}\n \n \n );\n};\n\nexport default AccountProfileEditView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst AccountProfileEditButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n disabled,\n telemetryContent,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n );\n};\n\nexport default AccountProfileEditButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst AccountProfileEditError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default AccountProfileEditError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IAccountProfileEditInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IAccountProfileEditInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst AccountProfileEditInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default AccountProfileEditInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst AccountProfileEditLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default AccountProfileEditLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingIcon {\n className: string;\n}\n\nconst AccountProfileEditLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default AccountProfileEditLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountProfileEditLoadingMessage {\n className: string;\n message: string;\n}\n\nconst AccountProfileEditLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default AccountProfileEditLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 25;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n
\n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n \n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n isDisabled?: boolean;\n}\n\nexport interface IAccountProfileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountProfileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: link.isDisabled ? 'ms-account-profile__section-link-disable' : 'ms-account-profile__section-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountProfileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n ArrayExtensions,\n updateCustomerPersonalization,\n updateCustomerPersonalizationInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport {\n IAccountProfileProps,\n IEmailAddressSectionHeadingData,\n IHeadingData,\n INameSectionHeadingData\n} from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n private readonly payLoad: IPayLoad;\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel,\n isDisabled: invalidAsyncCustomerState\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n \n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n this.getDescription(customerInformation),\n Msdyn365.isOboRequest(this.props.context.request) ? undefined : [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n invalidAsyncCustomerState,\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.emailAddressSectionHeading!.text = event.target.value);\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.nameSectionHeading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private getDescription(customerInformation: Customer | undefined): string {\n let description = '';\n if (customerInformation !== undefined) {\n if (customerInformation.FirstName) {\n description += customerInformation.FirstName;\n }\n if (customerInformation.LastName) {\n description += customerInformation.FirstName ? ` ${customerInformation.LastName}` : customerInformation.LastName;\n }\n }\n return description;\n }\n\n private _renderEmailSection(\n className: string,\n heading?: IEmailAddressSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private _renderNameSection(\n className: string,\n heading?: INameSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n if (!ArrayExtensions.hasElements(links)) {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n description: description && (\n \n )\n };\n }\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(\n className: string,\n invalidAsyncCustomerState: boolean,\n customerInformation?: Customer\n ): IAccountPreferences | null {\n const {\n personalizationDescription,\n personalizationEnableButtonAriaLabel,\n webTrackingDescription,\n webTrackingEnableButtonAriaLabel\n } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity login preference if switch is enabled AND a heading is provided\n enableDataAnalytics &&\n webTrackingSectionHeading &&\n extraPreferences.push(\n this._renderPreference(\n 'web-tracking',\n webTrackingSectionHeading as IHeadingData,\n webTrackingEnableButtonAriaLabel,\n webTrackingDescription,\n customerInformation.OptOutWebActivityTracking || false,\n invalidAsyncCustomerState\n )\n );\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n \n ),\n personalization: this._renderPreference(\n 'personalization',\n personalizationSectionHeading as IHeadingData,\n personalizationEnableButtonAriaLabel,\n personalizationDescription,\n customerInformation.OptOutPersonalization || false,\n invalidAsyncCustomerState\n ),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (\n className: string,\n sectionHeading: IHeadingData,\n enableAriaLabel: string,\n description: string,\n isOptOut: boolean,\n disableBtn: boolean\n ) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, {\n 'ms-account-profile__personalization-updating': this.isUpdatingPreference\n })\n },\n heading: sectionHeading && (\n \n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`, {\n // Disable the toggle completely if customer is async.\n 'ms-account-profile__toggle-disabled': disableBtn\n })\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return ;\n };\n}\n\nexport default AccountProfile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileDescription {\n className: string;\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileDescription: React.FC = ({ className, description }) => (\n

{description}

\n);\n\nexport default IAccountProfileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileText {\n className: string;\n text: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileText: React.FC = ({ className, text }) => {text};\n\nexport default IAccountProfileText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

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

{props.text}

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

{props.resources.loyaltyTermsHeading}

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

{props.resources.loyaltyAgreeToTerms}

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

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\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, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n }\n\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\nexport default ContentCardLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock 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 public render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: image?.imageSettings\n };\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n const contentBlockImage = (\n \n );\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className)\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) 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.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\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 { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

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

{props.resources.emptyCartText}

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

\n

{groupTitle}

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

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

\n ) : null}\n

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

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\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 { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-header';\nconst headingClassName = `${componentClassName}__heading`;\nconst orderCountClassName = `${componentClassName}__order-count`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderResources {\n orderCountLabel: string;\n ordersCountLabel: string;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderData {\n salesOrders: SalesOrder[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderProps\n extends Msdyn365.IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersHeaderResources;\n textProps: Msdyn365.ITextProps;\n showOrderCount: boolean;\n extraActions?: React.ReactNode;\n onChange(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersHeaderProps\n) => {\n const {\n resources,\n data: { salesOrders },\n textProps,\n showOrderCount,\n extraActions\n } = props;\n\n const orderCount = salesOrders?.length;\n const orderCountText = `(${orderCount} ${orderCount === 1 ? resources?.orderCountLabel : resources?.ordersCountLabel})`;\n\n return (\n \n {textProps?.text && (\n \n )}\n {showOrderCount && {orderCountText}}\n {extraActions}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n */\nexport const OrderHistoryWithSearchAndFiltersHeaderComponent: React.FunctionComponent = Msdyn365.msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersHeaderProps\n>('OrderHistoryWithSearchAndFiltersHeaderComponent', { component: OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport {\n Button,\n ITelemetryContent,\n TelemetryConstant,\n getPayloadObject,\n getTelemetryAttributes\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-view-mode-selector';\nconst detailsViewClassName = `${componentClassName}__detailed-view`;\nconst listViewClassName = `${componentClassName}__list-view`;\nconst viewSelectedClassName = `${componentClassName}__selected`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeResources {\n listViewOptionAriaLabel?: string;\n detailedViewOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewModeState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersViewModeState {\n DetailedView,\n ListView\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersViewModeProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersViewModeProps extends IComponentProps<{}> {\n className?: string;\n resources?: IOrderHistoryWithSearchAndFiltersViewModeResources;\n currentViewModeState: OrderHistoryWithSearchAndFiltersViewModeState;\n telemetryContent?: ITelemetryContent;\n onClick(state: OrderHistoryWithSearchAndFiltersViewModeState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersViewModeProps\n) => {\n const [viewModeState, setViewModeState] = React.useState(props.currentViewModeState);\n\n const onClickHandler = (newViewModeState: OrderHistoryWithSearchAndFiltersViewModeState) => {\n setViewModeState(newViewModeState);\n props.onClick(newViewModeState);\n };\n\n // define telemetry attributes\n const viewModeDetailedViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - Detailed view`)\n );\n const viewModeListViewAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, `${TelemetryConstant.ViewMode} - List view`)\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.DetailedView)}\n {...viewModeDetailedViewAttributes}\n />\n onClickHandler(OrderHistoryWithSearchAndFiltersViewModeState.ListView)}\n {...viewModeListViewAttributes}\n />\n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersViewMode component.\n */\nexport const OrderHistoryWithSearchAndFiltersViewModeComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersViewModeProps\n>('OrderHistoryWithSearchAndFiltersViewModeComponent', { component: OrderHistoryWithSearchAndFiltersViewModeFunctionalComponent });\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return
{value}
;\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage &&
{responseErrorMessage}
;\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string\n): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (\n
\n {message}\n \n {signInText}\n \n {infoMessage}\n
\n );\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (\n orderStatusLookUpParameter: string,\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return
{orderLookupFieldValidationErrorMessage}
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\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 { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes\n} from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: { paragraph, heading },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const { responseErrorMessage, isDisabled, orderNumber, isOrdNumberError } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage:\n (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(\n resources,\n context.request.user.signInUrl ?? '',\n signinLinkClassName,\n registeredUserClassName\n ),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: actionContext });\n this.orderLookupExtensibleEnum =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(\n orderLookupAdditionalParameter,\n this.orderLookupExtensibleEnum\n );\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const { orderStatusLookUpParametersType } = config;\n const orderLookupName = orderStatusLookUpParametersType !== undefined ? orderStatusLookUpParametersType : '';\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel)\n ? item.ariaLabel.replace(' ', '').toLocaleLowerCase()\n : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (\n this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupEmailValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isEmailError, email, isValidEmailError, isReqError } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupOrderNumberValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isOrdNumberError, isReqError } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: { orderStatusLookUpParametersType },\n resources: { orderLookupEmailLabel, orderLookupEmailAriaLabel }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (\n orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email &&\n StringExtensions.isNullOrWhitespace(email)\n ) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n isAdditionalMediaDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n isAdditionalMediaDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): 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 let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return
{error}
;\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion\n ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n }\n : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion\n ? {}\n : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n \n ),\n productSpecificationResult:\n productSpecificationData.result && (isAccrodion ? this._createDrawerBody(data) : this._createTableBody(data))\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const tableRows = content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n <>\n \n \n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n tableRows.push(this._createAdditionalMediaDrawer());\n }\n\n return tableRows;\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n const drawers = content.productSpecificationData.result!.map(product => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
{cellData}
\n \n
\n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n drawers.push(this._createAdditionalMediaDrawer());\n }\n\n return drawers;\n }\n private _createAdditionalMediaDrawer(): JSX.Element {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n return (\n \n {\n this.setState(prevState => ({\n ...prevState,\n isAdditionalMediaDrawerOpen: !prevState.isAdditionalMediaDrawerOpen\n }));\n }}\n >\n
\n \n
\n \n
\n );\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return {product.DateTimeOffsetValue.toUTCString()};\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return {product.IntegerValue};\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return {product.FloatValue};\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n // eslint-disable-next-line react/no-danger\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\n }\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\n }\n}\n\nexport default ProductSpecification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata =\n productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\n\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n {rowdata}\n \n \n ) : null;\n};\n\nexport default ProductSpecificationView;\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","/*!\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 { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n}) => (\n \n <>\n {label}\n {paymentAmountInput}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\n"],"names":["props","AccountGenericTile","heading","links","textField","config","text","React","Msdyn365","className","Module","Object","assign","PickUpAtStoreComponent","_ref","PickUpAtStore","label","location","Node","EmailDeliveryComponent","_ref2","EmailDelivery","LineItemComponent","_ref3","LineItem","item","pickUpAtStore","emailDelivery","LineItemGroupComponent","_ref4","LineItemDeliveryGroup","LineItemList","lineItems","map","lineItem","key","LineId","LineItemGroupComponentWithMultiplePickUp","_ref5","lineItemWraper","lineItemWraperIcon","LineItemComponentWithMultiplePickUp","_ref6","PickUpAtStoreComponentWithMultiplePickUp","_ref7","LineItemsComponent","_ref8","LineItems","Header","editLink","itemsForPickup","itemsForShip","itemsForEmail","itemsGroupWithMulitplePickupMode","undefined","index","OrderSummaryComponent","_ref9","lines","other","_objectWithoutProperties","_excluded","locale","taxAmount","subtotal","shipping","otherCharge","toLowerCase","_renderCustomTaxLine","taxLabel","toBeCalculatedText","resources","style","marginBottom","tax","totalDiscounts","loyalty","giftCard","orderTotal","_props$data","canShow","checkoutProps","headerProps","hasSalesOrder","bodyProps","mainProps","mainControlProps","sideProps","sideControlFirstProps","sideControlSecondProps","termsAndConditionsProps","orderConfirmation","loading","alert","title","guidedForm","orderSummary","placeOrderButton","termsAndConditions","keepShoppingButton","moduleProps","context","request","extraOrdersSummaryEu","data","checkout","result","checkoutCart","cart","TaxAmount","greeting","setGreeting","status","greetingMessageCAP","greetingSignCAP","async","_props$context","_props$data2","_checkoutCartState$ca","activeCartState","getCartState","actionContext","checkoutCartState","ExtensionProperties","filter","fieldVal","Key","Value","BooleanValue","extKeysToRemove","_checkoutCartState$ca2","extProps","extPropsToEmpty","propToRemove","_find","obj","push","updateExtensionProperties","newExtensionProperties","removeExtProps","_checkoutCartState$ca3","_checkoutCartState$ca4","greetingVal","StringValue","getCartProps","greetingTitle","greetingMessage","greetingSign","href","addGreetingText","insertModifyYourPromoCode","OrderConfirmationOrderInfomation","orderInformationProps","receiptEmail","createdDate","channelReferenceId","OrderConfirmationSalesLine","salesLineProps","salesLine","buyAgainButton","OrderConfirmationGroupDelivery","deliveryProps","count","processing","address","trackingInfo","pickupDateTimeslot","OrderConfirmationGroup","groupProps","delivery","salesLinesProps","salesLines","shippingItemsToYou","OrderConfirmationGroups","groupsProps","groups","group","OrderConfirmationOrderSummary","orderSummaryProps","totalAmount","earnedPoints","itemProp","OrderConfirmationPayment","paymentMethodsProps","methods","OrderConfirmationHelp","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","_moduleProps$modulePr","_data$orderHydration$","backToShoppingLink","orderInfomation","payment","help","slots","_modprops$moduleProps","_currentCartState$car","_find2","_currentCartState$car2","currentCartState","modprops","extPropsToRemove","cartLines","CartLines","length","setRemoveData","salseOrderData","orderHydration","salesOrder","commisionJunction","OrderTemplateListView","OrderTemplateList","statusMessage","OrderTemplates","orderTemplates","OrderTemplate","createOrderTemplateButton","templateHeaderStatusMessage","orderTemplate","_renderOrderTemplate","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","_renderForm","form","SearchForm","FormWrapper","input","cancelBtn","submitBtn","_renderKeywordSuggestions","KeywordSuggest","UlKeyword","keywordSuggestions","isLoadingAutoSuggest","isLoadingNode","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","items","_item$price","price","CustomerContextualPrice","LiProduct","id","AProduct","thumbnail","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestKeyword","autosuggestProduct","BodyContainerProps","FooterContainerProps","HeaderContainerProps","HeaderProps","ModuleProps","locationsMessage","search","state","spinner","locationsList","noLocationsMessage","terms","currentUrl","url","requestUrl","baseUrl","substring","lastIndexOf","titles","Array","from","document","querySelectorAll","forEach","el","storeName","textContent","_el$closest","startsWith","closest","classList","add","replace","renderLinkToStorePage","_el$closest2","querySelector","_el$closest3","storeUrl","goToStore","createElement","innerHTML","goToStorePage","appendChild","isSearchInProgress","AccountCustomerBalanceTile","constructor","super","this","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","_objectSpread","_initState","reaction","hasError","error","setState","content","ErrorComponent","value","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","shouldComponentUpdate","nextProps","nextState","render","isCustomerAccountPaymentEnabled","viewProps","classnames","Heading","headingTag","tag","isDetailsLinkDisplayed","LinksComponent","onTextChange","event","requestContext","renderView","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","__decorate","computed","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","link","contentAction","etext","linkText","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","editProps","AccountLoyaltyTile","handleHeadingChange","target","handleLinkTextChange","linkIndex","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","description","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","format","onEdit","DescriptionComponent","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplatesCount","AccountProfileEdit","moduleClassName","onTextBoxChange","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","invalidEmailAddressError","PRE","_htmlDecode","ID","email","PAT","PAT_DESC","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidMount","componentDidUpdate","viewState","isShowLoading","accountProfileEdit","modal","Modal","isOpen","modalBody","ModalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","e","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","type","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","onChange","observable","observer","AccountProfileEditItem","AccountProfileEditLoading","button","LocalAccount","disabled","onClick","Button","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","htmlFor","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","split","att","attributeDefinition","find","attribute","IsHidden","Name","toLocaleLowerCase","RecordId","_renderAttribute","edit","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","customerInformation","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","ref","attributesContainerRef","Text","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","innerRef","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","selected","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","StringExtensions","isNullOrWhitespace","attributePayloadData","name","isMandatory","MsDyn365","isBrowser","current","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","customer","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","keys","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","includes","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","NameTranslations","KeyName","Phone","VATNumber","VatNumber","updateCustomerAttributesInput","AccountNumber","apiSettings","updateCustomerAttributes","initialCustomerAttributes","exception","debug","element","focus","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","isDisabled","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","toString","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","Email","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","FirstName","LastName","AccountProfileItem","ArrayExtensions","hasElements","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","catch","TelemetryConstant","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","toggle","onToggle","applicationNode","returnFocusRef","returnRef","modalHeader","ModalHeader","modalFooter","ModalFooter","cancelButton","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","bind","_submit","_checkboxChecked","toggleRef","isJoining","qsps","qsp","splitQsp","isModalOpen","hideToggle","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","callerContext","fullCard","update","GetLoyaltyCardInput","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","IsB2bAdmin","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","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","disclaimer","SignInErrorComponent","signInButton","SignInButtonComponent","loginButtonAriaLabel","loginButtonText","signInSocialAccount","socialAccounts","_renderSocialAccount","facebookButtonText","facebookButtonAriaLabel","facebookIcon","microsoftButtonText","microsoftButtonAriaLabel","microsoftIcon","signInB2BAccount","_renderB2BSocialAccount","b2bButtonText","b2bButtonAriaLabel","displayB2bAccountManagerSignin","signUpSection","signUpSectionHeading","signUpDescription","SignInDescriptionComponent","signUpDescriptionText","signUpLink","signUpButtonAriaLabel","signUpButtonText","SignInLabelComponent","SignInInputComponent","iconImage","image","_createImageMarkup","SignInTextComponent","_displayB2bAccountManagerSignin","imageProps","gridSettings","imageSettings","pictureClassName","shouldSkipToMainImage","SignInLoading","SocialAccount","B2BAccount","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","customClass","maxChars","isRequired","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","B2BUserId","Random","Guid","generateGuid","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","cultureFormatter","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","_getCurrentUrl","reqContext","URL","_getViewport","device","Type","innerWidth","xs","w","sm","md","lg","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_promoteToSeller","promoteToSellerUrl","_requestStatement","currentUser","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","BusinessPartnerUsersDataActions","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","isSelected","row","_toggleModal","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","fullOrganizationLabel","requestStatementButtonLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","cancelLabel","fromDateLabel","toDateLabel","submitRequestLabel","sendToEmailLabel","selectedUserLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","Table","_createTableProps","toggleModal","_renderUserForm","_renderUserDetails","requestAccountStatementButton","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","promoteToSellerLabel","onPromoteToSeller","requestStatementModal","RequestStatementModal","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","modalHeaderLabel","onSubmitRequest","selectedUser","selectedOrganizationLabel","selectedUserName","modalAriaLabel","maxDateString","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","isMobile","sortable","rows","editLinkText","deleteLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","actions","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","autoFocus","fade","ButtonList","_getForm","formProps","assembleNode","itemIndex","_item$links","renderHeading","additionalContentHeading","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","ctaLink","renderLinks","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","additionalContentNode","additionalContentItems","ContentCardLinks","btnClass","onTelemetryClick","ContentBlock","handleTextChange","paragraph","_heading$tag","_this$props$context$r","_this$props$config$im","imageAriaLabel","contentBlockTitle","contentBlockLinks","msdyn365__moduleLayout","contentBlockText","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","contentBlockviewProps","moduleClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","renderAdditionalContent","_additionalContent$ad","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","errors","Wrapper","header","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","_renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","channel","EmailDeliveryModeCode","multiplePickUpEnabled","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","isNullOrEmpty","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","_props$cart","_props$context$action","_props$cart2","renderModuleAttributes","promotionOptions","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","OrderHistoryOrderInfomation","salesId","receiptId","channelName","amount","OrderHistoryGroupDelivery","OrderHistoryGroup","OrderHistoryGroups","OrderHistoryHeader","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderDetailsLink","expandProductsButton","OrderHistoryList","listProps","salesOrders","orderHistoryProps","emptyMessage","list","table","moreButton","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","componentClassName","headingClassName","orderCountClassName","OrderHistoryWithSearchAndFiltersHeaderComponent","createComponent","component","textProps","showOrderCount","orderCount","orderCountText","ordersCountLabel","detailsViewClassName","listViewClassName","viewSelectedClassName","OrderHistoryWithSearchAndFiltersViewModeState","OrderHistoryWithSearchAndFiltersViewModeComponent","msdyn365Commerce","_props$resources$deta","_props$resources","_props$resources$deta2","_props$resources2","_props$resources$list","_props$resources3","_props$resources$list2","_props$resources4","viewModeState","setViewModeState","currentViewModeState","newViewModeState","viewModeDetailedViewAttributes","ViewMode","viewModeListViewAttributes","DetailedView","detailedViewOptionAriaLabel","ListView","listViewOptionAriaLabel","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleSubmit","orderNumber","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","redirectUrl","searchParameters","searchParams","set","fieldName","fieldValue","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","_renderAlert","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isValid","isDisable","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","orderLookupContainerClassName","orderLookupFormClassName","orderLookupAdditionalFiledContainerClassName","orderLookupFormFieldsClassName","orderNumberLabelClassName","orderNumberInputErrorClassName","submitButtonClassName","signinLinkClassName","orderLookupHeading","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","_createParagraph","renderOrderLookupInputField","orderLookupForm","autoComplete","orderNumberInput","submitButtonLabelText","fieldErrorMessage","registeredUserMessage","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","ProductSpecificationTableRow","productName","cellData","scope","dangerouslySetInnerHTML","getRichTextHtml","ProductSpecification","drawerListId","isDrawerOpen","isAdditionalMediaDrawerOpen","catalogId","validateCatalogId","product","actionInput","AttributesForSelectedVariantInput","channelId","getAttributesForSelectedVariant","productSpecificationData","isAccrodion","displayStyle","handleText","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","_createDrawerBody","_createTableBody","_this$props$data$addi","tableRows","_renderProductCell","OmniChannelMedia","additionalMediaLocations","_createAdditionalMediaDrawer","_this$props$context$r2","_this$props$data$addi2","accordionItemContainer","drawers","_product$Name","Drawer","collapseProps","timeout","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","additionalDownloadsText","prevState","mediaLocation","Uri","download","AltText","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","FloatValue","TextValue","trueValueText","falseValueText","rowdata","ObjectExtensions","isNullOrUndefined","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","SummaryForm","addPaymentButton","appliedLine","bottomBorder","paymentAmountInput","EditForm","inputLabel","inputAmount","customerName","customerAccountNumber","customerSince","accountCredit","accountDetails","checkoutCustomerAccount","checkoutErrorRef","summaryView","editView","moduleState"],"sourceRoot":""}
\n {/* eslint-disable-next-line react/no-danger */}\n \n {cellData}