{"version":3,"file":"static/js/7.a585dbd9bee60a072340.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/themes/toysrus/views/buybox.view.tsx?316f","webpack://Msdyn365.Commerce.Online/./src/themes/toysrus/views/order-confirmation.view.tsx?6436","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://Msdyn365.Commerce.Online/./src/modules/account-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-welcome-tile/account-welcome-tile.tsx?2115","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.tsx?074a","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.tsx?5602","webpack://Msdyn365.Commerce.Online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.view.tsx?5319","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","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\nimport {\r\n IBuyboxAddToCartViewProps,\r\n IBuyboxAddToOrderTemplateViewProps,\r\n IBuyboxAddToWishlistViewProps,\r\n IBuyboxCallbacks,\r\n IBuyboxData,\r\n IBuyboxFindInStoreViewProps,\r\n IBuyboxKeyInPriceViewProps,\r\n IBuyboxProductConfigureDropdownViewProps,\r\n IBuyboxProductConfigureViewProps,\r\n IBuyboxProductQuantityViewProps,\r\n IBuyboxProps,\r\n IBuyboxShopSimilarLookViewProps,\r\n IBuyboxState,\r\n IBuyboxViewProps\r\n} from '@msdyn365-commerce-modules/buybox';\r\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { IBuyboxProps as IBuyboxExtentionProps, IBuyboxResources as IBuyboxExtentionResources } from '../definition-extensions/buybox.ext.props.autogenerated';\r\nimport * as React from 'react';\r\n\r\nconst BuyboxView: React.FC> = props => {\r\n const {\r\n ModuleProps,\r\n MediaGalleryContainerProps,\r\n ProductInfoContainerProps,\r\n addToCart,\r\n addToOrderTemplate,\r\n addToWishlist,\r\n telemetryContent,\r\n configure,\r\n description,\r\n findInStore,\r\n quantity,\r\n price,\r\n title,\r\n rating,\r\n callbacks,\r\n state,\r\n resources,\r\n inventoryLabel,\r\n shopSimilarLook,\r\n keyInPrice,\r\n quantityLimitsMessages,\r\n max,\r\n shopSimilarDescription,\r\n unitOfMeasure,\r\n ...otherProps\r\n } = props;\r\n\r\n React.useEffect(()=>{\r\n _loadTamaraRenderScript();\r\n _loadTabbyRenderScript(otherProps.data?.productPrice?.result?.CustomerContextualPrice, otherProps.context.request?.locale);\r\n }, [price]);\r\n\r\n const [findInStoreOpened, setFindInStoreOpened] = React.useState(false);\r\n\r\n //Need this to refresh pick up stores after dimension update\r\n React.useEffect(()=>{\r\n try {\r\n const missingDimensions =\r\n otherProps.data.product.result?.Dimensions &&\r\n otherProps.data.product.result?.Dimensions.filter((dimension: any) => !(dimension.DimensionValue && dimension.DimensionValue.Value));\r\n\r\n if ( !missingDimensions || missingDimensions.length === 0 ) {\r\n if (findInStoreOpened) {\r\n otherProps.data.storeSelectorStateManager.result?.closeDialog();\r\n setFindInStoreOpened(false);\r\n }\r\n findInStore && findInStore.openFindInStoreDialog();\r\n setFindInStoreOpened(true);\r\n }\r\n }\r\n catch (ex) {\r\n console.log(ex);\r\n }\r\n }, [props, otherProps.data.product.result?.Dimensions]);\r\n \r\n\r\n return (\r\n \r\n \r\n {props.mediaGallery}\r\n \r\n \r\n {title}\r\n {price}\r\n {_renderTextBlock(props.slots.textBlocks)}\r\n {unitOfMeasure}\r\n {description}\r\n {rating}\r\n {configure && _renderConfigure(configure)}\r\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\r\n {quantity && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\r\n {inventoryLabel}\r\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\r\n {_renderTamaraBlock(otherProps.data.productPrice.result?.CustomerContextualPrice, otherProps.context.request.locale)}\r\n {_renderTabbyBlock()}\r\n {findInStore && _renderFindInStore(findInStore)}\r\n {_renderSocialShare(props.slots && props.slots?.socialShare)}\r\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\r\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderTamaraBlock = (price?: number, locale?: string): JSX.Element | undefined => {\r\n if (price && price > 100) {\r\n let lang = locale?.startsWith(\"ar\") ? 'ar' : 'en';\r\n return (\r\n
\r\n
\r\n );\r\n }\r\n return undefined;\r\n};\r\n\r\nconst _renderTabbyBlock = (): JSX.Element | undefined => {\r\n return (\r\n
\r\n );\r\n};\r\n\r\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!textBlocks || textBlocks.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n <>\r\n {textBlocks[0]}\r\n \r\n );\r\n};\r\n\r\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\r\n if (!socialShare || socialShare.length === 0) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n <>\r\n {socialShare[0]}\r\n \r\n );\r\n};\r\n\r\nconst _renderCartAndActions = (\r\n addToCart?: IBuyboxAddToCartViewProps,\r\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\r\n addToWishlist?: IBuyboxAddToWishlistViewProps): JSX.Element | undefined => {\r\n if (!addToCart && !addToWishlist) {\r\n return undefined;\r\n }\r\n\r\n return (\r\n
\r\n {addToCart && addToCart.errorBlock}\r\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\r\n {addToWishlist && addToWishlist.errorBlock}\r\n
\r\n {addToCart && addToCart.button}\r\n {addToOrderTemplate && addToOrderTemplate.button}\r\n {addToWishlist && addToWishlist.button}\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\r\n const { ContainerProps, dropdowns } = configure;\r\n\r\n return (\r\n \r\n {dropdowns.map(_renderConfigureDropdown)}\r\n \r\n );\r\n};\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n {select}\r\n \r\n );\r\n};\r\n\r\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\r\n const { ContainerProps, storeSelector, /*heading, description,*/ errors, /*button,*/ modal, productPickupOptionList } = findInStore;\r\n\r\n return (\r\n \r\n {storeSelector}\r\n {/*heading*/}\r\n {productPickupOptionList}\r\n {/*description*/}\r\n {errors}\r\n {/*button*/}\r\n {modal}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * On Change function.\r\n * @param callbacks -Callbacks.\r\n * @returns Update quantity.\r\n */\r\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\r\n if (callbacks.updateQuantity) {\r\n return callbacks.updateQuantity(newValue);\r\n }\r\n return true;\r\n};\r\n\r\nconst _renderQuantity = (\r\n quantityComponent: IBuyboxProductQuantityViewProps,\r\n callbacks: IBuyboxCallbacks,\r\n props: IBuyboxProps,\r\n state: IBuyboxState,\r\n extentionResources: IBuyboxExtentionResources,\r\n quantityLimitsMessages: React.ReactNode,\r\n max: number | undefined,\r\n telemetryContent?: ITelemetryContent): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\r\n\r\n const {\r\n resources\r\n } = props;\r\n\r\n const\r\n {\r\n quantity\r\n } = state;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {errors}\r\n \r\n\r\n \r\n {quantityLimitsMessages}\r\n \r\n );\r\n};\r\n\r\n\r\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\r\n const { ContainerProps, errors, input } = shopSimilarItem;\r\n\r\n return (\r\n \r\n {errors}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst _loadTabbyRenderScript = (price?: number, locale?: string): void => {\r\n const tabbyLoadScriptId = 'tabby-load-script';\r\n let lang = locale?.startsWith(\"ar\") ? 'ar' : 'en';\r\n const tabbyLoadScript = document.getElementById(tabbyLoadScriptId);\r\n if (!tabbyLoadScript) {\r\n loadScript('https://checkout.tabby.ai/tabby-promo.js', tabbyLoadScriptId);\r\n var intervalId = setInterval(() => {\r\n //@ts-ignore\r\n const tabbyPromo = window && window.TabbyPromo;\r\n if (tabbyPromo) {\r\n new tabbyPromo({\r\n selector: '#tabby-product-widget',\r\n lang: lang, // 'ar'\r\n currency: 'SAR', // 'SAR, AED, KWD, BHD'\r\n price: price,\r\n installmentsCount: 4,\r\n source: 'product'\r\n });\r\n clearInterval(intervalId)\r\n }\r\n }, 500)\r\n }\r\n};\r\n\r\nconst _loadTamaraRenderScript = (): void => {\r\n const tamaraLoadScriptId = 'tamara-load-script';\r\n const tamaraLoadScript = document.getElementById(tamaraLoadScriptId);\r\n if (!tamaraLoadScript) {\r\n loadScript('https://cdn.tamara.co/widget/product-widget.min.js', tamaraLoadScriptId);\r\n var intervalId = setInterval(() => {\r\n //@ts-ignore\r\n const tamaraProductWidget = window && window.TamaraProductWidget;\r\n if (tamaraProductWidget) {\r\n tamaraProductWidget.init({ lang: 'en' })\r\n tamaraProductWidget.render()\r\n clearInterval(intervalId)\r\n }\r\n }, 500)\r\n }\r\n};\r\n\r\nconst loadScript = (src: any, id: string): void => {\r\n if(!document.getElementById(id)){\r\n const tag = document.createElement('script');\r\n tag.async = false;\r\n tag.src = src;\r\n tag.id = id;\r\n const body = document.getElementsByTagName('body')[0];\r\n body.appendChild(tag);\r\n }\r\n} \r\n\r\nexport default BuyboxView;\r\n\r\n","import { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IHelp, IOrderSummary } from '@msdyn365-commerce-modules/order-management/src/modules/order-confirmation/../../common';\r\nimport { IGroup, IGroupDelivery, IGroups } 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\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: ISalesLine) => (\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: IGroup, index: number) => (\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}) => (\r\n \r\n {heading}\r\n {subtotal}\r\n {shipping}\r\n {tax}\r\n {totalAmount}\r\n {earnedPoints}\r\n \r\n);\r\n\r\n//ut-ext extension to add coupons info on order confirmation page\r\nexport const OrderConfirmationPayment: React.FC = (props) => {\r\n\r\n const { paymentMethodsProps, title, methods } = props.payment!;\r\n\r\n const couponsNode = React.useMemo(() => {\r\n let couponCodes: string[] = [];\r\n props.salesOrder?.SalesLines?.forEach(sl => {\r\n if (sl.IsVoided || sl.IsReturnByReceipt || !((sl.DiscountAmount || 0) > 0)) return;\r\n \r\n sl?.DiscountLines?.forEach(dl => {\r\n if(dl.DiscountCode && couponCodes.indexOf(dl.DiscountCode!) === -1)\r\n couponCodes.push(dl.DiscountCode!)\r\n });\r\n })\r\n \r\n const coupons = couponCodes.length > 0 ? (\r\n
\r\n

{couponCodes.join(\",\")}

\r\n
\r\n ) : null;\r\n\r\n return coupons;\r\n }, [props.salesOrder])\r\n\r\n return (\r\n \r\n {title}\r\n {methods}\r\n {couponsNode}\r\n \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 = (props) => {\r\n const {\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 } = props;\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 \r\n );\r\n};\r\n\r\nexport default OrderConfirmationView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountAddressTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-address-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountAddressTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n\n @computed get canSubmitStatementRequest(): boolean {\n return this.state.statementRequestFromDateString !== '' && this.state.statementRequestToDateString !== '';\n }\n\n constructor(props: IAccountCustomerBalanceProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.state = {\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0]\n };\n }\n\n public render(): JSX.Element | null {\n const customer = get(this.props, 'data.customerInformation.result');\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n if ([customer, account].includes(undefined)) {\n this.props.context.telemetry.error('Customer data is unavailable, module will not render');\n return null;\n }\n\n const { config, resources, context } = this.props;\n const { heading } = config;\n const {\n creditSummarySectionHeading,\n accountSectionHeading,\n backToShoppingText,\n customerSincePrefix,\n availableCreditLabel,\n balanceOwedLabel,\n creditExcessLabel,\n requestStatementButtonLabel,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n myAccountStatementLabel,\n fullOrganizationLabel,\n modalAriaLabel\n } = resources;\n\n const {\n isStatementRequestModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n statementRequestMaxDateString\n } = this.state;\n\n const accountNumber = customer.AccountNumber;\n const createdOn = this._formatJoinDate(new Date(customer.CreatedDateTime));\n const name = `${customer.FirstName} ${customer.LastName}`;\n let customerCredit = 0;\n let customerAccountBalance = 0;\n let excess = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n customerAccountBalance = account.Balance;\n excess = account.Balance - account.CreditLimit;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n customerAccountBalance = account.InvoiceAccountBalance;\n excess = account.InvoiceAccountBalance - account.InvoiceAccountCreditLimit;\n }\n\n const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n const availableCredit = this._formatCurrency(customerCredit);\n const balanceOwed = this._formatCurrency(customerAccountBalance);\n const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n const emailAddress = customer.Email;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const isB2BAdmin = isB2BSite && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : (\n isB2BSite && (\n \n )\n );\n\n const viewProps = {\n ...this.props,\n heading: ,\n accountSectionHeading: (\n \n ),\n accountLabels: (\n \n ),\n accountValues: ,\n creditSummarySectionHeading: (\n \n ),\n availableCredit: ,\n balanceOwed: ,\n creditExcess: ,\n homeButton: ,\n actions: actionBar,\n requestStatementModal: isB2BSite && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private _formatCurrency(currency: number): string {\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n\n return `${formatCurrency(currency.toFixed(2), currencyCode)}`;\n }\n\n private _formatJoinDate(date: Date): string {\n const i14nDate = new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n\n return i14nDate.format(date);\n }\n\n private readonly _showRequestStatementModal = (): void => {\n if (!this.state.isStatementRequestModalOpen) {\n this.setState({\n isStatementRequestModalOpen: true\n });\n }\n };\n\n private readonly _toggleModal = (): void => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n };\n\n private readonly _toggleDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _adminShowRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestAdminDropdownOpen: false\n });\n\n this._showRequestStatementModal();\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const B2BUserId = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType.Email\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this.setState({\n isStatementRequestModalOpen: false\n });\n };\n}\n\nexport default AccountCustomerBalance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n className?: string;\n requestStatementButtonLabel: string;\n onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n promoteToSellerLabel?: string;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n onPromoteToSeller?(): void;\n}\n\nexport const ActionBar: React.FC = ({ className, onRequestStatement, requestStatementButtonLabel }) => {\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n onPromoteToSeller,\n promoteToSellerLabel,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const onSelectPromoteToSeller = React.useCallback(() => {\n onPromoteToSeller?.();\n }, [onPromoteToSeller]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n {promoteToSellerLabel && (\n \n {promoteToSellerLabel}\n \n )}\n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

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

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-invoice-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountInvoiceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountInvoiceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n}\n\nexport default AccountWelcomeTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-wishlist-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountWishlistTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return ;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (!ArrayExtensions.hasElements(links)) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n return linkdata.map(link => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return {\n ariaLabel: link.ariaLabel,\n className: `${defaultClassName}__link`,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n } as Msdyn365.ILinksData;\n });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps {\n b2bRequestsTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IB2bRequestsTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const defaultClassName = 'ms-account-b2b-requests-tile';\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n b2bRequestsTile: {\n moduleProps: this.props,\n className: classnames(defaultClassName, config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: ArrayExtensions.hasElements(links) && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default B2bRequestsTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC = props => {\n const { b2bRequestsTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default B2bRequestsTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity &&\n _renderQuantity(\n quantity,\n callbacks,\n props,\n state,\n resources,\n quantityLimitsMessages,\n min,\n max,\n applyDefaultOrderSettings,\n telemetryContent\n )}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n min: number | undefined,\n max: number | undefined,\n applyDefaultOrderSettings?: boolean,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\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 { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\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 if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\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 editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\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 InteractiveFeatureCollectionLinks;\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, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem 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 constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\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 classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\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","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList,\n OrderTemplates,\n OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n \n {status === 'SUCCESS' && (!OrderTemplates || !orderTemplates || !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

\n {createOrderTemplateButton}\n
\n ) : (\n createOrderTemplateButton\n )}\n {templateHeaderStatusMessage}\n
\n {status !== 'SUCCESS' && statusMessage}\n {OrderTemplates && orderTemplates && ArrayExtensions.hasElements(orderTemplates) && (\n \n {orderTemplates.map(orderTemplate => {\n return renderOrderTemplate(orderTemplate, OrderTemplate);\n })}\n \n )}\n
\n );\n};\n\nexport default OrderTemplateListViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n"],"names":["_renderTamaraBlock","price","locale","lang","startsWith","React","className","_renderTabbyBlock","id","_renderTextBlock","textBlocks","length","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","button","_renderConfigure","configure","ContainerProps","dropdowns","Node","Object","assign","map","_renderConfigureDropdown","dropdown","LabelContainerProps","heading","errors","select","_renderFindInStore","findInStore","storeSelector","modal","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","props","state","extentionResources","quantityLimitsMessages","max","telemetryContent","resources","quantity","IncrementalQuantity","currentCount","onChange","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","input","_renderShopSimilarItem","shopSimilarItem","_loadTabbyRenderScript","tabbyLoadScriptId","document","getElementById","loadScript","intervalId","setInterval","tabbyPromo","window","TabbyPromo","selector","currency","installmentsCount","source","clearInterval","_loadTamaraRenderScript","tamaraLoadScriptId","tamaraProductWidget","TamaraProductWidget","init","render","src","tag","createElement","async","getElementsByTagName","appendChild","_otherProps$data$prod3","_otherProps$data$prod4","_props$slots","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","description","title","rating","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","otherProps","_objectWithoutProperties","_excluded","_otherProps$data","_otherProps$context$r","data","productPrice","result","CustomerContextualPrice","context","request","findInStoreOpened","setFindInStoreOpened","_otherProps$data$prod","_otherProps$data$prod2","missingDimensions","product","Dimensions","filter","dimension","DimensionValue","Value","_otherProps$data$stor","storeSelectorStateManager","closeDialog","openFindInStoreDialog","ex","console","log","Module","mediaGallery","slots","OrderConfirmationOrderInfomation","_ref","orderInformationProps","receiptEmail","createdDate","channelReferenceId","OrderConfirmationSalesLine","_ref2","salesLineProps","salesLine","OrderConfirmationGroupDelivery","_ref3","deliveryProps","address","pickupDateTimeslot","OrderConfirmationGroup","_ref4","groupProps","delivery","salesLinesProps","salesLines","shippingItemsToYou","key","LineId","OrderConfirmationGroups","_ref5","groupsProps","groups","group","index","OrderConfirmationOrderSummary","_ref6","orderSummaryProps","subtotal","shipping","tax","totalAmount","earnedPoints","OrderConfirmationPayment","paymentMethodsProps","methods","payment","couponsNode","_props$salesOrder","couponCodes","salesOrder","SalesLines","forEach","sl","_sl$DiscountLines","IsVoided","IsReturnByReceipt","DiscountAmount","DiscountLines","dl","DiscountCode","indexOf","push","join","OrderConfirmationHelp","_ref7","helpProps","needHelpLabel","helpLineNumberLabel","contactNumber","moduleProps","backToShoppingLink","alert","loading","orderInfomation","orderSummary","help","AccordionItem","constructor","super","moduleClassName","handleHeadingChange","event","this","config","accordionItemTitle","target","value","_onToggle","bind","getTelemetryObject","telemetryPageName","friendlyName","telemetry","shouldComponentUpdate","nextProps","renderView","accordionExpandedStateResult","accordionExpandedState","expanded","undefined","isAllExpanded","isExpandedOnInitialLoad","_objectSpread","AccordionItemContainer","classnames","AccordionItemContent","drawer","ControlledDrawer","toggleButtonText","collapseProps","isOpen","onToggle","onTextChange","requestContext","accordionSlots","interactionStyle","accordionState","actionContext","update","createAccordionStateInput","__decorate","observer","_renderAccordionItemContent","items","item","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","text","_onExpandAll","_onCollapseAll","payLoad","getPayloadObject","isDisabled","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","getTelemetryAttributes","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","onClick","ref","toggleAllSeparator","collapseAllText","error","setState","setTimeout","_this$collapseAllButt","current","focus","_this$expandAllButton","AadGeneric","componentDidMount","$i2e","$element","insertServiceContent","getElementContent","initialize","viewProps","aadGeneric","aadConainer","aadAPIConainer","AccountAddressTile","handleLinkTextChange","linkIndex","links","linkText","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","addressCount","accountAddressTileDescription","format","LinksComponent","DescriptionComponent","_mapEditableLinks","linkdata","editableLinks","link","attributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","AccountCustomerBalance","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","split","_get","account","includes","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","name","FirstName","LastName","customerCredit","customerAccountBalance","excess","InvoiceAccountCreditLimit","CreditLimit","Balance","InvoiceAccountBalance","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","isB2BSite","isChannelTypeB2B","actionBar","IsB2bAdmin","AdminRequestStatementButton","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","Heading","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","label","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currencyCode","formatCurrency","toFixed","date","Intl","DateTimeFormat","month","day","year","computed","creditSummaryLabels","creditSummaryValues","Button","onPromoteToSeller","promoteToSellerLabel","buttonReference","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","popoverReference","requestStatementDropdownString","Random","Guid","generateGuid","innerRef","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","type","onBlur","min","ModalFooter","_ref8","BackToShopping","href","AccountGenericTile","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","cultureFormatter","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountProfileEdit","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","_isInitializationSuccessful","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","componentDidUpdate","nextState","viewState","isShowLoading","accountProfileEdit","modalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","accountProfileEditLocalAccount","_renderLocalAccount","str","e","innerHTML","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","AccountWelcomeTile","accountInfo","accountInformation","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","RequestsTableColumnHeader","getUserName","StringExtensions","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","replace","formatDate","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","ArrayExtensions","hasElements","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","Text","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","isMobile","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","viewLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","url","reqContext","MsDyn365","isBrowser","URL","location","requestUrl","isSingleSelectOnly","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","b2bRequestsStatus","table","defaultClassName","B2bRequestsTileLinks","B2bRequestsTile","b2bRequestsTile","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","then","catch","debug","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","handleParagraphChange","disclaimer","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","newPasswordRegex","reenterPasswordRegex","UX_INPUT_TYPE","invalidPasswordError","errorMessages","PasswordRegex","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","confirmPasswordLabelText","emailVerification","isRequired","buttonWrapper","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","surnameVerification","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","passwordEntryMismatchError","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","SignUpLoading","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","element","customClass","maxChars","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","find","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","toString","_getCurrentUrl","_getViewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","getUrlSync","currentUser","users","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","Status","_viewport","_updateViewport","submitButtonReference","addedReference","isNullOrWhitespace","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","headingTag","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","selectedUserName","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","modalFooter","_renderModal","BusinessUserDetails","userFullName","keys","headingSection","bodySection","footerSection","wrapClassName","applicationNode","ButtonList","_getForm","formProps","CatalogPicker","handleTextChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","RecordId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","image","firstOrDefault","Images","tabIndex","Name","Image","generateImageUrl","Uri","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","applyDefaultOrderSettings","bulkPurchaseLink","BackTopFooter","backtoTopText","destination","BackToTop","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","onTelemetryClick","ariaHiddenAttr","viewports","q","h","lazyload","shouldSkipToMainImage","FooterItemView","_renderElement","ImageList","images","_renderImageListItems","imageList","defaultImageSettings","xl","disableLazyLoad","_image$imageSettings","_link$linkText","imageProps","imageLink","imageLinkText","imageLinkAriaLabel","imageLinkOpenInNewTab","linkAltText","linkAriaLabel","linkOpenInNewTab","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","imageListView","indexKey","InteractiveFeatureCollection","_telemetryContent","itemsCounter","keyIndex","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","InteractiveFeatureCollectionLinks","InteractiveFeatureItem","_this$props$config$li","featureItemLinks","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleType","typeName","imagePropertyName","moduleId","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","msdyn365Commerce","createComponent","component","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","selectorState","setSelectorState","currentSelectorState","onClickHandler","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","viewport","_document","_document2","body","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","preventDefault","currentTarget","cookies","isConsentGiven","cookieConfig","maxAge","siteOptions","_item$siteRedirectUrl","siteImage","siteRedirectUrl","siteName","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","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","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","orderTemplateImageElement","currentImageListLength","children","buildReviewCard","isUserReview","cardProps","headerProps","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","cropFocalRegion","renderProductImage","ItemId","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","reviewModal","modalHeader","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","submitButton","cancelButton","createReviewModal","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton"],"sourceRoot":""}