{"version":3,"file":"static/js/6.38c327f629dd7e2d57cd.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/nos-text-block/nos-text-block.tsx?5c42","webpack://Msdyn365.Commerce.Online/./src/modules/nos-text-block/nos-text-block.props.autogenerated.ts?e795","webpack://Msdyn365.Commerce.Online/./src/modules/nos-text-block/nos-text-block.view.tsx?7000","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/buybox.view.tsx?3610","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/checkout-billing-address.view.tsx?f61a","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/components/carticon.component.tsx?696d","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/components/search.empty.tsx?8480","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/components/search.form.tsx?3aa8","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/components/search.productsuggest.tsx?dbc1","webpack://Msdyn365.Commerce.Online/./src/themes/nos/views/search.view.tsx?8e08","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-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-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/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/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/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/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/map/map.tsx?6111","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.view.tsx?5db9","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/media-gallery.view.tsx?7624","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { INosTextBlockProps, INosTextBlockConfig, ILinksData } from './nos-text-block.props.autogenerated';\r\n\r\nexport interface INosTextBlockViewProps extends INosTextBlockProps {\r\n paragraph?: React.ReactNode;\r\n pictogram?: React.ReactNode;\r\n className?: string;\r\n clientRender?: boolean;\r\n links?: ILinksData[];\r\n}\r\n\r\n/**\r\n *\r\n * TextBlock component.\r\n */\r\nclass NosTextBlock extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { paragraph, className, pictogram } = this.props.config;\r\n const text = paragraph && (\r\n \r\n );\r\n\r\n const icon = pictogram &&
;\r\n\r\n const textBlockViewProps = {\r\n ...this.props,\r\n paragraph: text,\r\n pictogram: icon,\r\n className: classnames('nos-text-block', className)\r\n };\r\n return this.props.renderView(textBlockViewProps) as React.ReactElement;\r\n }\r\n\r\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\r\n}\r\nexport default NosTextBlock;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * INosTextBlock contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum alignment {\r\n left = 'left',\r\n right = 'right',\r\n center = 'center'\r\n}\r\n\r\nexport const enum fontsize {\r\n small = 'small',\r\n medium = 'medium',\r\n large = 'large',\r\n extralarge = 'extralarge'\r\n}\r\n\r\nexport const enum layout {\r\n row = 'row',\r\n column = 'column'\r\n}\r\n\r\nexport interface INosTextBlockConfig extends Msdyn365.IModuleConfig {\r\n paragraph?: Msdyn365.RichText;\r\n pictogram?: string;\r\n links?: ILinksData[];\r\n alignment?: alignment;\r\n fontsize?: fontsize;\r\n className?: string;\r\n clientRender?: boolean;\r\n layout?: layout;\r\n}\r\n\r\nexport const enum LinksButtonType {\r\n primaryDark = 'primaryDark',\r\n primaryLight = 'primaryLight',\r\n secondaryDark = 'secondaryDark',\r\n secondaryLight = 'secondaryLight'\r\n}\r\n\r\nexport interface ILinksData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n buttonType?: LinksButtonType;\r\n}\r\n\r\nexport interface INosTextBlockProps extends Msdyn365.IModule {\r\n config: INosTextBlockConfig;\r\n}\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport { INosTextBlockViewProps } from './nos-text-block';\r\nimport { LinksButtonType } from './nos-text-block.props.autogenerated';\r\n\r\nconst NosTextBlockView: React.FC = props => {\r\n const config = props.config;\r\n\r\n return (\r\n
\r\n
\r\n {props.pictogram}\r\n {props.paragraph}\r\n
\r\n {config.links && (\r\n
\r\n {config?.links?.map((link, index) => {\r\n return (\r\n \r\n {link.linkText}\r\n \r\n );\r\n })}\r\n
\r\n )}\r\n
\r\n );\r\n};\r\n\r\nexport default NosTextBlockView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport * as React from 'react';\r\nimport { ICreateActionContext, TelemetryEvent } from '@msdyn365-commerce/core';\r\nimport { IncrementalQuantity, Module, Node, ITelemetryContent, getTelemetryAttributes, getPayloadObject, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport { IBuyboxData, IBuyboxResources as IBuyboxExtentionResources } from '@msdyn365-commerce-modules/buybox';\r\nimport {\r\n\tIBuyboxAddToCartViewProps,\r\n\tIBuyboxCallbacks,\r\n\tIBuyboxKeyInPriceViewProps,\r\n\tIBuyboxProductConfigureDropdownViewProps,\r\n\tIBuyboxProductConfigureViewProps,\r\n\tIBuyboxProductQuantityViewProps,\r\n\tIBuyboxState\r\n} from '@msdyn365-commerce-modules/buybox/src/modules/buybox/../../common';\r\nimport { IBuyboxViewProps } from '@msdyn365-commerce-modules/buybox/src/modules/buybox/./buybox';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { IBuyboxExtensionData } from './buybox.data';\r\nimport { IBuyboxProps as IBuyboxExtentionProps, IBuyboxProps } from '../definition-extensions/buybox.ext.props.autogenerated';\r\nimport getPriceAction, { GetGraduatedPriceInput } from '../../../actions/get-graduated-price.action';\r\n\r\n// TODO: use correct \"React way\" instead of hacky/ugly quick solution\r\nconst _fetchGraduatedPrice = async (newValue: number, state: IBuyboxState, props: IBuyboxProps) => {\r\n\tconst productId = state.productPrice?.ProductId || 0;\r\n\tconst catalogId = state.productPrice?.CatalogId || 0;\r\n\tconst actionInput = new GetGraduatedPriceInput(newValue, productId, catalogId);\r\n\r\n\tawait getPriceAction(actionInput, props.context.actionContext).then(res => {\r\n\t\tconst priceElements = document.querySelectorAll('.msc-price__actual');\r\n\t\tpriceElements.forEach(item => item.innerHTML = props.context.cultureFormatter.formatCurrency(res.ProductPrice));\r\n\t});\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, context: ICreateActionContext, state: IBuyboxState, props: any) => (newValue: number): boolean => {\r\n\tif (callbacks.updateQuantity) {\r\n\r\n\t\t// Call API only if user isAuthenticated optherwise the request will fail\r\n\t\tif (context.requestContext.user.isAuthenticated) {\r\n\t\t\t// Fetch from custom API endpoint to get graduated price\r\n\t\t\t_fetchGraduatedPrice(newValue, state, props);\r\n\t\t}\r\n\r\n\t\treturn callbacks.updateQuantity(newValue);\r\n\t}\r\n\treturn true;\r\n};\r\n\r\n/**\r\n * RenderQuantity.\r\n * @param quantityComponent - QuantityComponent.\r\n * @param callbacks - Callbacks.\r\n * @param props - Props.\r\n * @param state - State.\r\n * @param extentionResources - ExtentionResources.\r\n * @param quantityLimitsMessages - QuantityLimitsMessages.\r\n * @param max - Max.\r\n * @param telemetryContent - TelemetryContent.\r\n * @param unitOfMeasure - Unit Of Measure.\r\n * @returns -- Returns.\r\n */\r\nconst renderQuantity = (\r\n\tquantityComponent: IBuyboxProductQuantityViewProps,\r\n\tcallbacks: IBuyboxCallbacks,\r\n\tprops: IBuyboxProps,\r\n\tstate: IBuyboxState,\r\n\textentionResources: IBuyboxExtentionResources,\r\n\tquantityLimitsMessages: React.ReactNode,\r\n\r\n\t// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n\tmax: number | undefined,\r\n\ttelemetryContent?: ITelemetryContent,\r\n\tunitOfMeasure?: React.ReactNode\r\n): JSX.Element => {\r\n\t// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n\tconst { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\r\n\tconst { resources } = props;\r\n\tconst { quantity } = state;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{heading}\r\n\t\t\t\t{errors}\r\n\t\t\t\r\n\r\n\t\t\t\r\n\t\t\t{unitOfMeasure}\r\n\t\t\t{quantityLimitsMessages}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst BuyboxView: React.FC> = props => {\r\n\tconst {\r\n\t\tModuleProps,\r\n\t\t// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n\t\tMediaGalleryContainerProps,\r\n\t\t// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n\t\tProductInfoContainerProps,\r\n\t\taddToCart,\r\n\t\tconfigure,\r\n\t\tdescription,\r\n\t\tquantity,\r\n\t\tprice,\r\n\t\ttitle,\r\n\t\tinventoryLabel,\r\n\t\tkeyInPrice,\r\n\t\t// eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from Buybox.tsx file\r\n\t\tmax,\r\n\t\tunitOfMeasure,\r\n\t\tcallbacks,\r\n\t\tstate,\r\n\t\tresources,\r\n\t\tquantityLimitsMessages,\r\n\t\ttelemetryContent,\r\n\t} = props;\r\n\r\n\tconst [periodValue, setPeriodValue] = React.useState(resources.monthlyPeriodOption);\r\n\tconst period = {\r\n\t\tContainerProps: {},\r\n\t\theading: ,\r\n\t\tfrequencies: (\r\n\t\t\t\r\n\t\t),\r\n\t\tdisableSubscriptionPeriodDropdown: props.config.disableSubscriptionPeriodDropdown\r\n\t};\r\n\tlet skuText: string = props.resources.skuText;\r\n\tskuText += ` ${props.data.product.result?.ItemId}`;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t{props.mediaGallery}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{title}\r\n\t\t\t\t\t\t\t{description}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{skuText}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{unitOfMeasure}\r\n\t\t\t\t\t\t\t{period && _renderPeriod(period)}\r\n\t\t\t\t\t\t\t{configure && _renderConfigure(configure)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t{quantity &&\r\n\t\t\t\t\t\t\t\t\trenderQuantity(\r\n\t\t\t\t\t\t\t\t\t\tquantity,\r\n\t\t\t\t\t\t\t\t\t\tcallbacks,\r\n\t\t\t\t\t\t\t\t\t\tprops,\r\n\t\t\t\t\t\t\t\t\t\tstate,\r\n\t\t\t\t\t\t\t\t\t\tresources,\r\n\t\t\t\t\t\t\t\t\t\tquantityLimitsMessages,\r\n\t\t\t\t\t\t\t\t\t\tmax,\r\n\t\t\t\t\t\t\t\t\t\ttelemetryContent,\r\n\t\t\t\t\t\t\t\t\t\tunitOfMeasure\r\n\t\t\t\t\t\t\t\t\t)}\r\n\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t{inventoryLabel}\r\n\t\t\t\t\t\t\t{keyInPrice && _renderKeyInPrice(keyInPrice)}\r\n\t\t\t\t\t\t\t{price}\r\n\t\t\t\t\t\t\t{addToCart && _renderAddToCart(addToCart, props)}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t
\r\n\t\t\t\t\t{_renderTextBlock(props.slots && props.slots.textBlocks)}\r\n\t\t\t\t\t{ArrayExtensions.hasElements(props.slots.productSpecification) ? (\r\n\t\t\t\t\t\t{props.slots.productSpecification[0]}\r\n\t\t\t\t\t) : null}\r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t
\r\n\t);\r\n};\r\n\r\n/**\r\n * RenderTextBlock.\r\n * @param textBlock - textBlock react node array.\r\n * @returns -- Returns.\r\n */\r\nconst _renderTextBlock = (textBlock: React.ReactNode[]): JSX.Element | undefined => {\r\n\tif (!textBlock || textBlock.length === 0) {\r\n\t\treturn undefined;\r\n\t}\r\n\r\n\treturn (\r\n\t\t
\r\n\t\t\t{textBlock && textBlock.length > 0\r\n\t\t\t\t? textBlock.map((textBlock: React.ReactNode, index: number) => {\r\n\t\t\t\t\treturn {textBlock};\r\n\t\t\t\t})\r\n\t\t\t\t: null}\r\n\t\t
\r\n\t);\r\n};\r\n\r\nconst _renderAddToCart = (addToCart: IBuyboxAddToCartViewProps, props: any): JSX.Element => {\r\n\tconst { ContainerProps, errorBlock, button } = addToCart;\r\n\r\n\tconst payLoad = getPayloadObject('click', props.telemetryContent!, 'business-sign-up', '');\r\n\tconst payload = getPayloadObject(TelemetryEvent.AddToCart, props.telemetryContent!, '', '');\r\n\tconst attributes = getTelemetryAttributes(props.telemetryContent!, payload);\r\n\r\n\tlet businessSignUpUrl;\r\n\tif (props.context.app.routes?.businessPartnerSelection?.destinationUrl) {\r\n\t\tbusinessSignUpUrl = props.context.app.routes.businessPartnerSelection?.destinationUrl;\r\n\t} else {\r\n\t\tbusinessSignUpUrl = props.context.request.url.requestUrl.origin + (props.context.request?.sitePath ?? '');\r\n\t}\r\n\r\n\tconst _registerButton = (\r\n\t\t\r\n\t\t\t{props.resources.registerLinkText}\r\n\t\t\r\n\t);\r\n\r\n\tconst payLoadLink = getPayloadObject('click', props.telemetryContent!, 'sign-in', '');\r\n\r\n\tconst _loginButton = (\r\n\t\t\r\n\t\t\t{props.resources.loginLinkText}\r\n\t\t\r\n\t);\r\n\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{errorBlock}\r\n\t\t\t{button}\r\n\t\t\t{!props.context.request.user.isAuthenticated && (\r\n\t\t\t\t<>\r\n\t\t\t\t\t{_registerButton} { ' | '} {_loginButton}\r\n\t\t\t\t\r\n )}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\r\n\tconst { ContainerProps, dropdowns } = configure;\r\n\r\n\treturn {dropdowns.map(_renderConfigureDropdown)};\r\n};\r\n\r\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\r\n\tconst { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t\r\n\t\t\t\t{heading}\r\n\t\t\t\t{errors}\r\n\t\t\t\r\n\t\t\t{select}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst _renderPeriod = (period: any): JSX.Element | null => {\r\n\tconst { ContainerProps, LabelContainerProps, heading, frequencies, disableSubscriptionPeriodDropdown } = period;\r\n\tconst isDisableSubscriptionPeriodDropdown = disableSubscriptionPeriodDropdown;\r\n\r\n\tif (isDisableSubscriptionPeriodDropdown) {\r\n\t\treturn null;\r\n\t}\r\n\treturn (\r\n\t\t\r\n\t\t\t{heading}\r\n\t\t\t{frequencies}\r\n\t\t\r\n\t);\r\n};\r\n\r\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\r\n\tconst { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\r\n\r\n\treturn (\r\n\t\t\r\n\t\t\t{heading}\r\n\t\t\t{input}\r\n\t\t\r\n\t);\r\n};\r\n\r\nexport default BuyboxView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IAddressShowItem,\r\n IAddressShowProps,\r\n IAddressAddItem,\r\n IAddressAddUpdateProps,\r\n ICheckoutBillingAddressViewProps\r\n} from '@msdyn365-commerce-modules/address';\r\n\r\n/**\r\n * Address show component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressDetail - Address detail.\r\n * @param param0.items - IAddressShowItem[].\r\n * @returns - Address Node.\r\n */\r\nconst AddressShow: React.FC = ({ AddressDetail, items }) => {\r\n return (\r\n \r\n {items.map((item: IAddressShowItem) => {\r\n return <>{item.description};\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address Add Update Component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address Heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - IAddressError.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns - AddressForm Node.\r\n */\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n \r\n {label}\r\n {alert}\r\n {input}\r\n \r\n );\r\n })}\r\n {hasError && (\r\n \r\n {error.title}\r\n {error.message}\r\n \r\n )}\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Checkout Billing Address View Component.\r\n * @param props - Props.\r\n * @returns - CheckoutBillingAddress Module.\r\n */\r\nconst CheckoutBillingAddressView: React.FC = props => {\r\n const { CheckoutBillingAddress, checkoutErrorRef, alert, viewState, showAddress, showAddOrUpdateAddress } = props;\r\n\r\n return (\r\n \r\n {alert}\r\n {viewState.isShowAddress && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n \r\n );\r\n};\r\n\r\nexport default CheckoutBillingAddressView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IComponent, IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\r\nimport { ICartState } from '@msdyn365-commerce/global-state';\r\nimport { format, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\n\r\nexport interface ICartIconData {\r\n cart?: ICartState;\r\n}\r\n\r\nexport interface ICartIconComponentProps extends IComponentProps {\r\n className?: string;\r\n cartLabel: string;\r\n cartQtyLabel: string;\r\n telemetryContent?: ITelemetryContent;\r\n}\r\n\r\nexport interface ICartIconComponent extends IComponent {}\r\n\r\nconst CartIconComponentActions = {};\r\n\r\n/**\r\n *\r\n * CartIcon component.\r\n * @extends {React.FC}\r\n */\r\nconst CartIcon: React.FC = observer((props: ICartIconComponentProps) => {\r\n const {\r\n cartLabel,\r\n cartQtyLabel,\r\n data: { cart }\r\n } = props;\r\n\r\n // If there are invoice lines, don't update mini cart item quantity\r\n const cartItem = cart ? cart.totalItemsInCart : 0;\r\n const qtyLabel = format(cartQtyLabel, cartItem);\r\n const label = format(cartLabel, cartItem);\r\n\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', props.telemetryContent!, 'cart-icon', '');\r\n const attributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\r\n const style: React.CSSProperties = {\r\n visibility: cart ? 'visible' : 'hidden'\r\n };\r\n return (\r\n \r\n {props.context.request.user.isAuthenticated && (\r\n
\r\n {qtyLabel}\r\n
\r\n )}\r\n
\r\n );\r\n});\r\n\r\n// @ts-expect-error\r\n// prettier-ignore\r\nexport const CartIconComponent: React.FunctionComponent = msdyn365Commerce.createComponentOverride('CartIcon', { component: CartIcon, ...CartIconComponentActions });\r\n\r\nexport default CartIconComponent;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { ISearchData } from '@msdyn365-commerce-modules/search';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\r\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\r\n if (!noSearchResultImage || !noSearchResultImage.src) {\r\n return null;\r\n }\r\n const imageSettings = {\r\n lazyload: true,\r\n viewports: {\r\n xs: { w: 100, h: 100, q: 'w=100&h=100&q=60&m=6' }\r\n }\r\n };\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Product suggestion result.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nexport const AutoSuggestEmptyComponent = (props: ISearchProps): JSX.Element => {\r\n return (\r\n \r\n
{renderProductNotFoundResultsImage(props)}
\r\n
\r\n

{props.resources.emptySearchTextHeading}

\r\n
{props.resources.emptySearchText}
\r\n
\r\n
\r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { ISearchData, ISearchFormViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { Button, INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\nimport { AutoSuggestEmptyComponent } from './search.empty';\r\n\r\n/**\r\n * Render Clear button for mobile viewport.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nconst renderClearButton = (clearSearchButtonText: string, clearSearch: () => void): JSX.Element => {\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Search form.\r\n * @param form -Form view props.\r\n * @param searchForm -Search Form props.\r\n * @param formWrapper -Form Wrapper props.\r\n * @param clearSearchButtonText -The Clear button text.\r\n * @param props -The props for resource.\r\n * @param isSearchText -Is SearchText flag for input text.\r\n * @param clearSearch -Clear Search callback.\r\n * @returns -The JSX Element.\r\n */\r\nexport const FormComponent = (\r\n form: ISearchFormViewProps,\r\n searchForm: INodeProps,\r\n formWrapper: INodeProps,\r\n clearSearchButtonText: string,\r\n props: ISearchProps,\r\n isSearchText: boolean,\r\n clearSearch: () => void\r\n): JSX.Element => {\r\n\r\n return (\r\n \r\n {form.cancelBtn}\r\n \r\n {form.input}\r\n {isSearchText && renderClearButton(clearSearchButtonText, clearSearch)}\r\n {!isSearchText ? AutoSuggestEmptyComponent(props) : null}\r\n \r\n \r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { IImageData, Image } from '@msdyn365-commerce/core';\r\nimport { ISearchData, ISearchProductViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { INodeProps, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React from 'react';\r\n\r\nimport { ISearchProps } from '../../definition-extensions/search.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param productSuggestionsHeading -The products suggestion result heading.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductSuggestionsTitle = (productSuggestionsHeading: string): JSX.Element => {\r\n const productAutoSuggestionHeading = productSuggestionsHeading ? productSuggestionsHeading : 'Products';\r\n\r\n return
{productAutoSuggestionHeading}
;\r\n};\r\n\r\n/**\r\n * Render Products Suggestion result heading.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResultsImage = (props: ISearchProps): JSX.Element | null => {\r\n const noSearchResultImage: IImageData | undefined = props.config.noSearchResultImage;\r\n if (!noSearchResultImage || !noSearchResultImage.src) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render Products No result section.\r\n * @param props -The props.\r\n * @returns The JSX Element.\r\n */\r\nconst renderProductNotFoundResults = (props: ISearchProps): JSX.Element => {\r\n return (\r\n \r\n
{renderProductNotFoundResultsImage(props)}
\r\n
{props.resources.noResultContentHeadingText}
\r\n
\r\n {props.resources.noResultContentParagraphText}\r\n
\r\n
\r\n );\r\n};\r\n\r\n/**\r\n * Render Product suggestion result.\r\n * @param productSuggest -The product suggest Node props.\r\n * @param ulProduct -The List Node props.\r\n * @param props -The props.\r\n * @param productSuggestions -The Product suggestion result.\r\n * @param isLoadingAutoSuggest - The autosuggestion loading flag.\r\n * @param isLoadingNode - The autosuggestion loading node.\r\n * @returns The JSX Element.\r\n */\r\nexport const ProductSuggestionsComponent = (\r\n productSuggest: INodeProps,\r\n ulProduct: INodeProps,\r\n props: ISearchProps,\r\n productSuggestions?: ISearchProductViewProps,\r\n isLoadingAutoSuggest?: boolean,\r\n isLoadingNode?: React.ReactNode\r\n): JSX.Element => {\r\n const liProduct: INodeProps = {\r\n tag: 'li',\r\n className: 'msc-no-result-content'\r\n };\r\n return productSuggestions ? (\r\n \r\n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\r\n \r\n {isLoadingAutoSuggest && isLoadingNode}\r\n {!isLoadingAutoSuggest &&\r\n productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n ) : (\r\n \r\n {renderProductSuggestionsTitle(props.resources.productSuggestionHeading)}\r\n \r\n {renderProductNotFoundResults(props)}\r\n \r\n \r\n );\r\n};\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { ISearchData, ISearchFormViewProps, ISearchViewProps } from '@msdyn365-commerce-modules/search';\r\nimport { format, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { useEffect, useState } from 'react';\r\n\r\nimport { ISearchProps } from '../definition-extensions/search.ext.props.autogenerated';\r\n// import { CategorySuggestionsComponent } from './components/search.categorysuggest';\r\nimport { FormComponent } from './components/search.form';\r\n// import { KeywordSuggestionsComponent } from './components/search.keywordsuggest';\r\nimport { ProductSuggestionsComponent } from './components/search.productsuggest';\r\n\r\n/**\r\n * Render Title for AutoSuggest.\r\n * @param searchSuggestionHeading -The heading resource string.\r\n * @param searchText -The search string.\r\n * @returns -The JSX Element.\r\n */\r\nconst renderTitle = (searchSuggestionHeading: string, searchText: string): JSX.Element => {\r\n const searchTextString = '\"'.concat(searchText.concat('\"'));\r\n const searchAutoSuggestionHeading = searchSuggestionHeading\r\n ? format(searchSuggestionHeading, searchTextString)\r\n : `Search for ${searchTextString}`;\r\n\r\n return {searchAutoSuggestionHeading};\r\n};\r\n\r\n/**\r\n * Search View.\r\n * @param props - The view props.\r\n * @returns The JSX Element.\r\n */\r\nconst SearchView: React.FC> = (\r\n props: ISearchViewProps & ISearchProps\r\n): JSX.Element => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n // KeywordSuggest,\r\n ProductSuggest,\r\n // UlKeyword,\r\n UlProduct,\r\n form,\r\n // autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label,\r\n isLoadingAutoSuggest,\r\n isLoadingNode,\r\n } = props;\r\n\r\n const { searchSuggestionHeading, clearSearchButtonText } = props.resources;\r\n\r\n const [searchTextString, setSearchTextString] = useState();\r\n\r\n useEffect(() => {\r\n setSearchTextString(searchText);\r\n }, [searchText]);\r\n\r\n /**\r\n * ClearSearch callback method to clear search string.\r\n */\r\n const clearSearch = (): void => {\r\n setSearchTextString('');\r\n\r\n const propsForm = props.form as ISearchFormViewProps;\r\n const propsFormInput = propsForm.input as React.DetailedHTMLProps, HTMLInputElement>;\r\n const propsFormInputCurrent = (propsFormInput.ref as React.RefObject).current;\r\n\r\n if (propsFormInputCurrent) {\r\n propsFormInputCurrent.value = '';\r\n }\r\n\r\n propsFormInput.value = '';\r\n props.searchText = '';\r\n props.FormWrapper.action = '';\r\n };\r\n\r\n AutoSuggest.className = !StringExtensions.isNullOrEmpty(searchTextString)\r\n ? `${AutoSuggest.className} show`\r\n : `${AutoSuggest.className} hide`;\r\n const isSearchText: boolean = !StringExtensions.isNullOrEmpty(searchTextString);\r\n\r\n return (\r\n \r\n {label}\r\n {FormComponent(\r\n form as ISearchFormViewProps,\r\n SearchForm,\r\n FormWrapper,\r\n clearSearchButtonText,\r\n props,\r\n isSearchText,\r\n clearSearch\r\n )}\r\n {props.isSearchFormExpanded && (\r\n \r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n {AutoSuggestAriaLabelText}\r\n ) : (\r\n ''\r\n )}\r\n {!StringExtensions.isNullOrEmpty(searchTextString) ? (\r\n <>\r\n \r\n {renderTitle(searchSuggestionHeading, searchText)}\r\n \r\n \r\n {/* \r\n {CategorySuggestionsComponent(\r\n categorySuggestionHeading,\r\n noResultText,\r\n props,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n {KeywordSuggestionsComponent(\r\n KeywordSuggest,\r\n UlKeyword,\r\n keywordsHeading,\r\n noResultText,\r\n autosuggestKeyword,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n */}\r\n {ProductSuggestionsComponent(\r\n ProductSuggest,\r\n UlProduct,\r\n props,\r\n autosuggestProduct,\r\n isLoadingAutoSuggest,\r\n isLoadingNode\r\n )}\r\n \r\n \r\n ) : null}\r\n \r\n )}\r\n \r\n );\r\n};\r\nexport default SearchView;\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 onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): 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 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 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 \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 React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

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

{description}

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

{description}

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

{props.resources.loyaltyTermsHeading}

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

{props.resources.loyaltyAgreeToTerms}

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

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } 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 } 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 } = config;\n const {\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\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: (\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 _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 * 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 {\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\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.PureComponent> {\n @observable public map: Microsoft.Maps.Map | undefined;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\n this._initMap();\n this._updateMap();\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n });\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const shouldDisplayMap = storeSelectorStateManager?.listMapViewState.displayMap;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n if (storeSelectorStateManager?.isMapApiLoaded) {\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n });\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n await storeSelectorStateManager.setSelectedStoreLocationId(undefined);\n });\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true });\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- Time out.\n }, 500);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\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 { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\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 { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IMediaGalleryThumbnailItemViewProps,\n IMediaGalleryThumbnailsViewProps,\n IMediaGalleryViewProps\n} from '@msdyn365-commerce-modules/media-gallery';\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, KeyCodes, Module, Node, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\n/**\n * Render the thumbnail item images.\n * @param thumbnail - The carousel thumbnail line props.\n * @returns Return HTML having thumnailcontainer props with image.\n */\nconst renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\n\n return {Picture};\n};\n\n/**\n * Gets the thumbnail item to display media gallery images.\n * @param image - The media gallery images.\n * @param imageSettings - Image settings for the image gallery items.\n * @param imageId - Image id.\n * @param modifiedActiveIndex - Modified Index of the images when selection changes.\n * @param props - The Media gallery view props from business layer.\n * @returns Return thumbnail view props which will be used to render images.\n */\nconst GetThumbnailItemComponent = (\n image: IImageData,\n imageSettings: IImageSettings,\n imageId: number,\n modifiedActiveIndex: number,\n props: IMediaGalleryViewProps\n): IMediaGalleryThumbnailItemViewProps => {\n let fallbackImage: string | undefined = '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Site level config can be of any type.\n const emptyPlaceHolderImage = props.context.app.config?.placeholderImageName as string;\n if (props.data.product.result) {\n fallbackImage = getFallbackImageUrl(props.data.product.result.ItemId, props.context.request.apiSettings);\n }\n if (emptyPlaceHolderImage && fallbackImage) {\n fallbackImage = `${fallbackImage},${emptyPlaceHolderImage}`;\n }\n\n /**\n * OnClick method of media gallery item.\n */\n const onClick = () => {\n props.callbackToggle?.();\n props.callbackThumbnailClick?.(imageId);\n props.state.activeIndex = imageId;\n };\n\n const classes = classnames(\n 'ms-media-gallery__thumbnail-item',\n modifiedActiveIndex === imageId ? 'ms-media-gallery__thumbnail-item-active' : ''\n );\n\n /**\n * Keydown event of media gallery item.\n * @param event - React.KeyboardEvent.\n */\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCodes.Enter) {\n event.preventDefault();\n onClick();\n }\n };\n const defaultIndex = 0;\n return {\n ThumbnailItemContainerProps: {\n tag: 'li' as NodeTag,\n className: classes,\n role: 'presentation',\n key: imageId\n },\n Picture: (\n \n \n \n \n \n \n \n \n )\n };\n};\n\n/**\n * Gets the empty thumbnail item to display media gallery images.\n * @param imageSettings - Image settings for the image gallery items.\n * @param props - The Media gallery view props from business layer.\n * @returns Return thumbnail view props which will be used to render empty images.\n */\nconst GetEmptyThumbnailItemComponent = (\n imageSettings: IImageSettings,\n props: IMediaGalleryViewProps\n): IMediaGalleryThumbnailItemViewProps => {\n let fallbackImage: string | undefined = '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Site level config can be of any type.\n const emptyPlaceHolderImage = props.context.app.config?.placeholderImageName as string;\n if (props.data.product.result) {\n fallbackImage = getFallbackImageUrl(props.data.product.result.ItemId, props.context.request.apiSettings);\n }\n if (emptyPlaceHolderImage && fallbackImage) {\n fallbackImage = `${fallbackImage},${emptyPlaceHolderImage}`;\n }\n return {\n ThumbnailItemContainerProps: {\n tag: 'li' as NodeTag,\n className: 'ms-media-gallery__thumbnail-item',\n role: 'tab',\n tabIndex: 0,\n key: 0,\n 'aria-label': '',\n 'aria-selected': true\n },\n Picture: (\n \n )\n };\n};\n\n/**\n * Update media gallery items method.\n * @param items - The media gallery thumbnail item view props.\n * @returns The IImageData array.\n */\nconst getMediaGalleryItems = (items?: IMediaGalleryThumbnailItemViewProps[]): IImageData[] | undefined => {\n return items?.map(item => {\n return {\n altText: item.Picture.props.altText,\n src: item.Picture.props.src\n };\n });\n};\n\nconst defaultThumbnailImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 },\n xl: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 }\n },\n lazyload: true,\n cropFocalRegion: true\n};\n\n/**\n * Render the Media gallery thumbnails to represent images in grid view.\n * @param thumbnails - The thumbnail view props.\n * @param props - The media gallery view props.\n * @returns - The single slide carousel component to render as media gallery image.\n */\nconst renderThumbnails = (thumbnails: IMediaGalleryThumbnailsViewProps, props: IMediaGalleryViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps } = thumbnails;\n const { state, Thumbnails } = props;\n const mediaGalleryItems = getMediaGalleryItems(Thumbnails.items);\n\n const items: IMediaGalleryThumbnailItemViewProps[] | undefined =\n // eslint-disable-next-line multiline-ternary -- need multiline for easy code reading\n state.lastUpdate && mediaGalleryItems && mediaGalleryItems[0].src === 'empty'\n ? [GetEmptyThumbnailItemComponent(defaultThumbnailImageSettings, props)]\n : // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery\n mediaGalleryItems?.map((item: IImageData, id: number) =>\n GetThumbnailItemComponent(item, defaultThumbnailImageSettings, id, state.activeIndex, props)\n );\n\n return (\n \n {items?.map(renderThumbnailItem)}\n \n );\n};\n\n/**\n * Render the Media gallery items using viewprops.\n * @param props - The media gallery view props.\n * @returns The media gallery module wrapping up images node.\n */\nconst mediaGalleryView: React.FC = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\n return (\n \n \n {Modal}\n {renderThumbnails(Thumbnails, props)}\n \n );\n};\n\nexport default mediaGalleryView;\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":["NosTextBlock","React","constructor","handleTextChange","event","this","props","config","paragraph","target","value","render","className","pictogram","text","Msdyn365","editProps","onEdit","requestContext","context","request","icon","dangerouslySetInnerHTML","__html","textBlockViewProps","_objectSpread","classnames","renderView","alignment","fontsize","layout","LinksButtonType","_config$links","Object","assign","id","renderModuleAttributes","links","map","link","index","Button","key","href","linkUrl","destinationUrl","type","buttonType","primaryDark","primaryLight","secondaryDark","secondaryLight","linkText","onChangeHandler","callbacks","state","newValue","updateQuantity","user","isAuthenticated","async","_state$productPrice","_state$productPrice2","productId","productPrice","ProductId","catalogId","CatalogId","actionInput","GetGraduatedPriceInput","getPriceAction","actionContext","then","res","document","querySelectorAll","forEach","item","innerHTML","cultureFormatter","formatCurrency","ProductPrice","_fetchGraduatedPrice","_renderTextBlock","textBlock","length","_renderAddToCart","addToCart","_props$context$app$ro","ContainerProps","errorBlock","button","payLoad","getPayloadObject","telemetryContent","payload","TelemetryEvent","AddToCart","attributes","getTelemetryAttributes","businessSignUpUrl","_props$context$app$ro2","_props$context$reques","_props$context$reques2","app","routes","businessPartnerSelection","url","requestUrl","origin","sitePath","_registerButton","title","resources","registerLinkText","onClick","onTelemetryClick","payLoadLink","_loginButton","loginLinkText","signInUrl","Node","_renderConfigure","configure","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","heading","errors","select","_renderPeriod","period","frequencies","disableSubscriptionPeriodDropdown","_renderKeyInPrice","keyInPrice","input","_props$data$product$r","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","description","quantity","price","inventoryLabel","max","unitOfMeasure","quantityLimitsMessages","periodValue","setPeriodValue","monthlyPeriodOption","periodLabel","onChange","disabled","skuText","data","product","result","ItemId","Module","mediaGallery","tag","renderQuantity","quantityComponent","extentionResources","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","slots","textBlocks","ArrayExtensions","hasElements","productSpecification","AddressShow","_ref","AddressDetail","items","AddressAddUpdate","_ref2","AddressForm","hasError","error","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","AddressError","message","CheckoutBillingAddress","checkoutErrorRef","viewState","showAddress","showAddOrUpdateAddress","ref","isShowAddress","isShowAddOrUpdateAddress","CartIcon","observer","cartLabel","cartQtyLabel","cart","cartItem","totalItemsInCart","qtyLabel","format","style","visibility","CartIconComponent","msdyn365Commerce","createComponentOverride","component","AutoSuggestEmptyComponent","noSearchResultImage","src","Image","altText","gridSettings","imageSettings","lazyload","viewports","xs","w","h","q","renderProductNotFoundResultsImage","emptySearchTextHeading","emptySearchText","FormComponent","form","searchForm","formWrapper","clearSearchButtonText","isSearchText","clearSearch","cancelBtn","renderClearButton","renderProductSuggestionsTitle","productSuggestionsHeading","productAutoSuggestionHeading","renderProductNotFoundResults","noResultContentHeadingText","noResultContentParagraphText","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","ProductSuggest","UlProduct","autosuggestProduct","SearchForm","FormWrapper","isLoadingAutoSuggest","isLoadingNode","searchSuggestionHeading","searchTextString","setSearchTextString","useState","useEffect","StringExtensions","isNullOrEmpty","propsFormInput","propsFormInputCurrent","current","action","isSearchFormExpanded","renderTitle","concat","searchAutoSuggestionHeading","ProductSuggestionsComponent","productSuggest","ulProduct","productSuggestions","productSuggestionHeading","_item$id","LiProduct","AProduct","thumbnail","AccordionItem","super","moduleClassName","handleHeadingChange","accordionItemTitle","_onToggle","bind","getTelemetryObject","telemetryPageName","friendlyName","telemetry","shouldComponentUpdate","nextProps","accordionExpandedStateResult","accordionExpandedState","expanded","undefined","isAllExpanded","isExpandedOnInitialLoad","AccordionItemContainer","moduleProps","AccordionItemContent","drawer","ControlledDrawer","toggleButtonText","collapseProps","isOpen","onToggle","onTextChange","accordionSlots","interactionStyle","accordionState","update","createAccordionStateInput","__decorate","_renderAccordionItemContent","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","toggleAllSeparator","collapseAllText","setState","setTimeout","_this$collapseAllButt","focus","_this$expandAllButton","AadGeneric","componentDidMount","$i2e","$element","window","insertServiceContent","getElementContent","initialize","viewProps","aadGeneric","aadConainer","aadAPIConainer","AccountAddressTile","handleLinkTextChange","linkIndex","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","accountAddressTileDescription","LinksComponent","DescriptionComponent","_mapEditableLinks","linkdata","editableLinks","editableLink","ariaLabel","openInNewTab","role","additionalProperties","push","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","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","currencyCode","toFixed","date","Intl","DateTimeFormat","locale","month","day","year","computed","creditSummaryLabels","creditSummaryValues","buttonReference","onSelectCustomerAccount","onSelectFullOrg","popoverReference","requestStatementDropdownString","Random","Guid","generateGuid","innerRef","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","onBlur","min","ModalFooter","_ref5","_ref6","_ref7","_ref8","BackToShopping","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountProfileEdit","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidUpdate","nextState","isShowLoading","accountProfileEdit","loading","modal","modalBody","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","display","accountProfileEditLocalAccount","_renderLocalAccount","str","e","createElement","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","_ref3","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","AccountWelcomeTile","accountInfo","accountInformation","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","RequestsTableColumnHeader","getUserName","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","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","Text","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","isMobile","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","reqContext","MsDyn365","isBrowser","URL","location","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","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","catch","debug","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","termsUrl","loyaltyJoinUrl","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","invalidAsyncCustomerState","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","applicationNode","returnFocusRef","returnRef","modalHeader","modalFooter","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","search","isJoining","substring","qsps","qsp","splitQsp","hideToggle","serviceTerms","modalToggle","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","GetLoyaltyCardInput","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","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","_ref4","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","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","sm","md","lg","_toggleStatementRequestDropdown","currentUser","_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","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","headingTag","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","selectedUserName","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserActionButtonText","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","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","keys","headingSection","bodySection","footerSection","wrapClassName","ButtonList","_getForm","formProps","CatalogPicker","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","RecordId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","image","firstOrDefault","Images","tabIndex","Name","generateImageUrl","Uri","galleryImageSettings","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","ariaHiddenAttr","shouldSkipToMainImage","FooterItemView","_renderElement","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","Map","mapRef","_initMap","channel","storeSelectorStateManager","isMapApiLoaded","Microsoft","Maps","credentials","BingMapsApiKey","pushpinAccessible","Events","addHandler","setSelectedStoreLocationId","_updateMap","_this$props$data$stor","_storeSelectorStateMa","pushpinOptions","orgUnitStoreInformation","selectedStoreLocationId","mapLocation","entities","clear","pushpins","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","entries","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","Latitude","Longitude","isSelectedLocation","OrgUnitNumber","options","_getPushpinOptions","pushpin","Pushpin","Location","handleClickEvent","unshift","currentLocation","setView","center","bounds","LocationRect","fromShapes","setOptions","orgUnitNumber","showIndex","size","color","selectionColor","_getSvgIcon","_this$props$data$stor2","BingMapsEnabled","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","reaction","_this$props$data$stor5","loadMapApi","_this$props$data$stor6","_this$props$context","lang","market","ChannelCountryRegionISOCode","_this$props$data$stor7","_this$props$data$stor8","_this$props$data$stor9","shouldDisplayMap","listMapViewState","displayMap","show","Header","headerProps","MapProps","MapHeader","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","defaultImageSettings","xl","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","siteRedirectUrl","siteName","_renderSitePicker","_renderSiteOptionsList","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","renderThumbnailItem","ThumbnailItemContainerProps","Picture","GetEmptyThumbnailItemComponent","_props$context$app$co2","_props$config$thumbna2","fallbackImage","emptyPlaceHolderImage","placeholderImageName","getFallbackImageUrl","thumbnailImageSettings","imageFallbackOptimize","skipImageValidation","fallBackSrc","defaultThumbnailImageSettings","cropFocalRegion","renderThumbnails","thumbnails","ThumbnailsContainerProps","SingleSlideCarouselComponentProps","Thumbnails","mediaGalleryItems","getMediaGalleryItems","lastUpdate","GetThumbnailItemComponent","imageId","modifiedActiveIndex","_props$context$app$co","_props$config$thumbna","_props$callbackToggle","_props$callbackThumbn","callbackToggle","call","callbackThumbnailClick","activeIndex","handleKeyDown","Enter","onKeyDown","shouldUseOptimizedImage","bypassHideOnFailure","fullScreenTitleText","CarouselProps","MediaGallery","buildReviewCard","isUserReview","cardProps","rating","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","renderProductDescription","primaryImageSource","PrimaryImageUrl","imageUrl","renderProductImage","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","reviewModal","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","createReviewModal","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton"],"sourceRoot":""}