{"version":3,"file":"static/js/6.25c238bf4d860e64fa46.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/country-selector/country-selector.tsx?a8bc","webpack://Msdyn365.Commerce.Online/./src/modules/country-selector/country-selector.view.tsx?44d3","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/account-loyalty-tile.view.tsx?7c49","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/account-profile.view.tsx?555a","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/loyalty-sign-up.view.tsx?1edc","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/sign-in.view.tsx?a0ea","webpack://Msdyn365.Commerce.Online/./src/themes/venchi/views/write-review.view.tsx?10da","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Msdyn365.Commerce.Online/./src/modules/account-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/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/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/breadcrumb/components/link.tsx?d232","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/components/separator.tsx?92bb","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.tsx?efcc","webpack://Msdyn365.Commerce.Online/./src/modules/breadcrumb/breadcrumb.view.tsx?4b3d","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/country-picker/country-picker.tsx?4fcb","webpack://Msdyn365.Commerce.Online/./src/modules/country-picker/country-picker.view.tsx?0036","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/buybox.view.tsx?aec4","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.tsx?074a","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-template-list.view.tsx?46b6","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport * as React from 'react';\r\nimport { IMenuItemData, ICountrySelectorData } from './country-selector.data';\r\nimport { ICmsNavItemsData, ICountrySelectorProps, ISubMenusData } from './country-selector.props.autogenerated';\r\n\r\nexport interface ICountrySelectorViewProps extends ICountrySelectorProps {\r\n className: string;\r\n menuItemData: IMenuItemData[];\r\n Navigation: IModuleProps;\r\n MenuList: INodeProps;\r\n ListItem: INodeProps;\r\n Link: INodeProps;\r\n Button: INodeProps;\r\n Span: INodeProps;\r\n ImageContainer: INodeProps;\r\n MobileDescriptionContainer: INodeProps;\r\n MobileBackButton: INodeProps;\r\n MobileDescriptionLabel: INodeProps;\r\n imageSettings: IImageSettings;\r\n gridSettings: IGridSettings;\r\n isMobileView: boolean;\r\n DivContainer?: INodeProps;\r\n ImageDivContainer?: INodeProps;\r\n countrySelectorIntroText: string;\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface INavigationMenuState {\r\n isMobile: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * CountrySelector component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CountrySelector extends React.PureComponent, INavigationMenuState> {\r\n private static CMSItemIdInit: number = 1000;\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n private menuItemList: IMenuItemData[];\r\n private isCMS: boolean = true;\r\n @observable\r\n private viewport: GridSize;\r\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\r\n let nameTranslation: TextValueTranslation | undefined;\r\n if (locale && nameTranslations && nameTranslations.length > 0) {\r\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n }\r\n\r\n return nameTranslation && nameTranslation.Text;\r\n }\r\n\r\n constructor(props: ICountrySelectorProps) {\r\n super(props);\r\n this._updateViewport = this._updateViewport.bind(this);\r\n this.viewport =\r\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this.state = { isMobile: this.isMobile };\r\n this.menuItemList = [];\r\n }\r\n\r\n @computed get isMobile(): boolean {\r\n return this.viewport === 'xs' || this.viewport === 'sm';\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\r\n this._updateViewport();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n this.menuItemList = this._mapData();\r\n if (isEmptyOrNullObject(this.props.data)) {\r\n this.props.telemetry.error('Navigatiomenu returned null');\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=224&h=300&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=224&h=300&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n imageSettings: defaultImageSettings,\r\n gridSettings: this.props.context.request.gridSettings,\r\n Navigation: {\r\n moduleProps: this.props,\r\n className: classnames(\r\n 'ms-nav menu--country-selector',\r\n this.props.config.className,\r\n this.state.isMobile ? 'mobile-vp' : 'desktop-vp'\r\n ),\r\n tag: 'nav',\r\n role: 'navigation',\r\n 'aria-label': this.props.config.countrySelectorAriaLabel\r\n },\r\n MenuList: {\r\n className: 'ms-nav__list',\r\n tag: 'ul'\r\n },\r\n ListItem: {\r\n className: 'ms-nav__list__item',\r\n tag: 'li'\r\n },\r\n Link: {\r\n tag: 'a',\r\n className: 'ms-nav__list__item__link'\r\n },\r\n DivContainer: {\r\n tag: 'div',\r\n className: 'ms-nav__feature'\r\n },\r\n ImageDivContainer: {\r\n tag: 'div',\r\n className: 'category-image',\r\n role: 'tabpanel'\r\n },\r\n Button: {\r\n className: 'ms-nav__list__item__button',\r\n tag: 'button',\r\n onClick: this.props\r\n },\r\n ImageContainer: {\r\n className: 'ms-nav__list__item__image'\r\n },\r\n Span: {\r\n className: 'ms-nav__list__item__span',\r\n tag: 'span'\r\n },\r\n MobileDescriptionContainer: {\r\n className: 'ms-nav__list__mobile__container'\r\n },\r\n MobileBackButton: {\r\n className: 'ms-nav__list__mobile__container__button',\r\n tag: 'button',\r\n onClick: this.props\r\n },\r\n MobileDescriptionLabel: {\r\n className: 'ms-nav__list__mobile__container__span',\r\n tag: 'span'\r\n },\r\n isMobileView: this.state.isMobile,\r\n menuItemData: this.menuItemList,\r\n className: classnames('ms-nav', this.props.config.className)\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _mapData(): IMenuItemData[] {\r\n const { config } = this.props;\r\n const mergedData: IMenuItemData[] = [];\r\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\r\n config.cmsNavItems.map((item: ICmsNavItemsData) => mergedData.push(this._constructMenuItemData(item)));\r\n }\r\n return mergedData;\r\n }\r\n\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private _constructMenuItemData(cmsItem?: ICmsNavItemsData): IMenuItemData {\r\n return {\r\n id: CountrySelector.CMSItemIdInit++,\r\n linkText: (cmsItem && cmsItem.linkText) || '',\r\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\r\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\r\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\r\n subMenu: this._getCMSNestedChildren(cmsItem)\r\n } as IMenuItemData;\r\n }\r\n\r\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\r\n const nestedChildren: IMenuItemData[] = [];\r\n\r\n if (!category || !category.subMenus || !category.subMenus.length) {\r\n return [];\r\n }\r\n\r\n category.subMenus.map((item: ISubMenusData, idx: number) => {\r\n nestedChildren.push(this._constructMenuItemData(item));\r\n });\r\n return nestedChildren;\r\n }\r\n\r\n private _updateViewport(): void {\r\n this.viewport = this._getViewport();\r\n this.setState({ isMobile: this.isMobile });\r\n }\r\n\r\n private _getViewport(): GridSize {\r\n const { context } = this.props;\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n if (typeof window !== undefined && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n return 'xs';\r\n }\r\n}\r\n\r\nexport default CountrySelector;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { ICountrySelectorViewProps } from './country-selector';\r\nimport { IMenuItemData } from './country-selector.data';\r\nimport {\r\n Drawer,\r\n getPayloadObject,\r\n getTelemetryAttributes,\r\n getTelemetryObject,\r\n IPayLoad,\r\n ITelemetryContent,\r\n Module,\r\n Node,\r\n onTelemetryClick\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageData } from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { ICountrySelectorConfig } from './country-selector.props.autogenerated';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?: IImageData[] | null;\r\n mobileViewLabelText?: string;\r\n categoryImageAltText: string;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class CountrySelectorView extends React.PureComponent {\r\n private currentLevel: number = 0;\r\n private escapeKey: number = 27;\r\n private menuNode: React.RefObject;\r\n private telemetryContent: ITelemetryContent;\r\n private payLoad: IPayLoad;\r\n constructor(props: ICountrySelectorViewProps) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n this.state = {\r\n activeMenu: undefined,\r\n mobileViewLabelText: '',\r\n parentMenu: undefined,\r\n categoryImageAltText: ''\r\n };\r\n this._closeSubmenu = this._closeSubmenu.bind(this);\r\n this._escFunction = this._escFunction.bind(this);\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n }\r\n\r\n public componentDidMount(): void {\r\n document.body && document.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.body && document.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\r\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView } = this.props;\r\n\r\n this.currentLevel = 1;\r\n return {isMobileView ? this._renderMobileMenu() : this._renderDesktopMenu()};\r\n }\r\n\r\n private _renderMobileMenu(): JSX.Element {\r\n const { isMobileView, menuItemData, Navigation, config } = this.props;\r\n return (\r\n \r\n {menuItemData.map((menuItem: IMenuItemData) => {\r\n return this._renderDrawerMenu(menuItem, config);\r\n })}\r\n \r\n );\r\n }\r\n private _renderDesktopMenu(): JSX.Element {\r\n const { MenuList, Navigation } = this.props;\r\n return (\r\n \r\n \r\n {this._renderDisplay()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderDrawerMenu(menuItem: IMenuItemData, config: ICountrySelectorConfig): JSX.Element | null {\r\n if (menuItem && menuItem.subMenu && menuItem.subMenu.length > 0) {\r\n return this._renderDrawer(menuItem, config);\r\n } else {\r\n return this._renderLinkMenuItem(menuItem);\r\n }\r\n }\r\n\r\n private _renderDrawer(menuItem: IMenuItemData, config: ICountrySelectorConfig): JSX.Element | null {\r\n const toggleButtonText = menuItem.linkText;\r\n const toggleButtonImg = menuItem.imageSource;\r\n return (\r\n \r\n
\r\n {config.countrySelectorIntroText &&

{config.countrySelectorIntroText}

}\r\n {menuItem.subMenu!.map((menuSubItem: IMenuItemData) => {\r\n return this._renderDrawerLink(menuSubItem);\r\n })}\r\n
\r\n \r\n );\r\n }\r\n\r\n private _renderLinkText(linkText: string | undefined, linkImg: string | undefined): JSX.Element {\r\n return (\r\n \r\n {linkText}\r\n {linkImg && {''}}\r\n \r\n );\r\n }\r\n\r\n private _renderDrawerLink(item: IMenuItemData): JSX.Element | null {\r\n if (item && item.linkText && item.linkURL && item.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(item);\r\n } else if (item && item.linkText && !item.linkURL) {\r\n return this._renderSpanMenuItem(item);\r\n }\r\n return null;\r\n }\r\n\r\n private _renderDisplay(): JSX.Element[] {\r\n const { ListItem, menuItemData, isMobileView } = this.props;\r\n const { activeMenu } = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n\r\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for (let i = 0; i < menuItemData.length; i++) {\r\n if (menuItemData[i] && menuItemData[i].id === activeMenu) {\r\n menuItem = menuItemData[i];\r\n this.setState({\r\n parentMenu: undefined,\r\n mobileViewLabelText: menuItemData[i].linkText\r\n });\r\n break;\r\n }\r\n menuItem = this._getFromSubMenu(menuItemData[i]) as IMenuItemData;\r\n if (menuItem && menuItem.id === activeMenu) {\r\n break;\r\n }\r\n }\r\n\r\n menuItem &&\r\n menuItemList.push(\r\n \r\n {' '}\r\n {this._createMenuItemList(menuItem)}{' '}\r\n \r\n );\r\n } else {\r\n menuItemData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push(\r\n \r\n {this._createMenuItemList(item)}\r\n \r\n );\r\n });\r\n }\r\n\r\n return menuItemList;\r\n }\r\n\r\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n const subMenus = item && item.subMenu;\r\n if (subMenus && subMenus.length > 0) {\r\n for (let i = 0; i <= subMenus.length - 1; i++) {\r\n if (subMenus[i].id === this.state.activeMenu) {\r\n this.setState({\r\n parentMenu: item && item.id,\r\n mobileViewLabelText: subMenus[i].linkText\r\n });\r\n return subMenus[i];\r\n }\r\n const found = this._getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id);\r\n } else {\r\n return (\r\n \r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id)}\r\n \r\n );\r\n }\r\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false);\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return this._renderSpanMenuItem(menuItemData);\r\n }\r\n\r\n return null;\r\n }\r\n\r\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\r\n const { isMobileView, ListItem } = this.props;\r\n const enableMultiSupportMenu = false;\r\n const multiLevelSupportedMenu = 2;\r\n // const isParentMenu:boolean= false;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n // this.props.context.telemetry.error(\r\n // \"Navigation Active menu content is empty, module wont render.\"\r\n // );\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n // this.props.context.telemetry.error(\r\n // \"Navigation Submenu content is empty, module wont render.\"\r\n // );\r\n return null;\r\n }\r\n\r\n let levelClassName: string = '';\r\n const menuOptions =\r\n subMenus &&\r\n subMenus.map((option: IMenuItemData, idx: number) => {\r\n const hasOptions = option.subMenu && option.subMenu.length > 0;\r\n let menuItem: JSX.Element | null;\r\n if (hasOptions && isMobileView) {\r\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\r\n } else {\r\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\r\n }\r\n let subMenu;\r\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\r\n if (haveSubmenu) {\r\n this.currentLevel++;\r\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\r\n }\r\n return (\r\n \r\n {menuItem}\r\n {subMenu}\r\n \r\n );\r\n });\r\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\r\n }\r\n\r\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n const { Button } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n {option.imageSource && {''}}\r\n \r\n );\r\n }\r\n\r\n private _renderLinkMenuItem(option: IMenuItemData, index?: number, hoverEffect: boolean = true): JSX.Element | null {\r\n const { Link } = this.props;\r\n const linkText = option.linkText ? option.linkText : '';\r\n const imagesource = option.imageSource ? option.imageSource : '';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n const currentSite = typeof window !== 'undefined' && `${location.origin}${this.props.context.request.sitePath}`;\r\n const currentLang = currentSite === option.linkURL ? true : false;\r\n return (\r\n \r\n {imagesource && {''}}\r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\r\n const { Span } = this.props;\r\n return (\r\n \r\n {option.linkText}\r\n \r\n );\r\n }\r\n\r\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\r\n const { DivContainer, MenuList, config } = this.props;\r\n const DivContainerClass = this.currentLevel > 2 ? DivContainer!.className : 'ms-nav__deafult';\r\n this.currentLevel = 1;\r\n return (\r\n \r\n \r\n {config.countrySelectorIntroText &&

{config.countrySelectorIntroText}

}\r\n\r\n {menuOptions}\r\n
\r\n
\r\n );\r\n }\r\n private _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n if (!this.props.isMobileView) {\r\n this.setState({\r\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n } else {\r\n this.setState({\r\n activeMenu: data.id,\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId\r\n });\r\n }\r\n\r\n this._resetFocus();\r\n };\r\n\r\n private _resetFocus = () => {\r\n if (this.props.isMobileView) {\r\n setTimeout(() => {\r\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\r\n }, 0);\r\n }\r\n };\r\n\r\n // tslint:disable-next-line:no-any\r\n private _handleClickOutside = (event: any) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.target)) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n };\r\n\r\n private _closeSubmenu(): void {\r\n if (!this.props.isMobileView) {\r\n this.setState({ activeMenu: undefined, mobileViewLabelText: '' });\r\n }\r\n }\r\n private _escFunction = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === this.escapeKey) {\r\n this._closeSubmenu();\r\n }\r\n };\r\n}\r\n\r\nexport default CountrySelectorView;\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 } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountLoyaltyTileViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/account-loyalty-tile/./account-loyalty-tile';\r\nimport { IAccountLoyaltyTileProps } from '../../../themes/venchi/definition-extensions/account-loyalty-tile.ext.props.autogenerated';\r\n\r\nconst AccountLoyaltyTileView: React.FC> = props => {\r\n const { AccountLoyaltyTile, heading, description, links } = props;\r\n\r\n // The user does NOT have a customer number yet, they still have a tmp_guid\r\n let tmp_account = false;\r\n if (props.context.request.user.customerAccountNumber?.length === 36) {\r\n tmp_account = true;\r\n }\r\n\r\n let description__no_decimals;\r\n \r\n // @ts-ignore\r\n if (description && description.props) {\r\n // @ts-ignore\r\n description__no_decimals = description.props.description.replace('.00', '');\r\n }\r\n\r\n return (\r\n \r\n {heading}\r\n

{tmp_account && props.config.usingNewLoyalty && props.config.cardBeingGeneratedText ? props.config.cardBeingGeneratedText : description__no_decimals}

\r\n {links}\r\n
\r\n );\r\n};\r\n\r\nexport default AccountLoyaltyTileView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport * as React from 'react';\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n IAccountPreference,\r\n IAccountPreferences,\r\n IAccountProfileItem,\r\n IAccountProfileViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/account-profile/./account-profile';\r\nimport { IAccountProfileProps } from '../definition-extensions/account-profile.ext.props.autogenerated';\r\n\r\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\r\n return (\r\n \r\n {heading}\r\n \r\n {extraPreferences &&\r\n extraPreferences.map((preferenceSecton, index) => {\r\n return ;\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst AccountPreferenceSection: React.FC = ({\r\n accountPreference,\r\n heading,\r\n description,\r\n buttonWrapper,\r\n buttonYesText,\r\n button,\r\n buttonNoText\r\n}) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n \r\n {buttonNoText}\r\n {button}\r\n {buttonYesText}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\r\n return (\r\n \r\n {heading}\r\n {description}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nconst AccountProfileView: React.FC> = props => {\r\n const {\r\n AccountProfile,\r\n accountProfileWrapper,\r\n heading,\r\n emailSection,\r\n nameSection,\r\n preferenceSection,\r\n customerAttributesWrapper,\r\n customerAttributesSection\r\n } = props;\r\n React.useEffect(() => {\r\n if (document.getElementsByClassName('ms-account-profile__attributes-GenericMarketing').length) {\r\n // @ts-ignore\r\n // tslint:disable-next-line:no-inner-html\r\n document.getElementsByClassName('ms-account-profile__attributes-GenericMarketing')[1].innerHTML =\r\n // @ts-ignore\r\n props.config.textGenericMarketing;\r\n }\r\n if (document.getElementsByClassName('ms-account-profile__attributes-Profiling').length) {\r\n // @ts-ignore\r\n // tslint:disable-next-line:no-inner-html\r\n document.getElementsByClassName('ms-account-profile__attributes-Profiling')[1].innerHTML = props.config.textProfiling;\r\n }\r\n if (document.getElementsByClassName('ms-account-profile__attributes-ThirdParty').length) {\r\n // @ts-ignore\r\n // tslint:disable-next-line:no-inner-html\r\n document.getElementsByClassName('ms-account-profile__attributes-ThirdParty')[1].innerHTML = props.config.textThirdParty;\r\n }\r\n\r\n document.getElementsByClassName('ms-account-profile__attributes-edit-button msc-btn')[0].addEventListener(\"click\", () => {\r\n const bd_input: HTMLInputElement = document.getElementsByClassName('ms-account-profile__attributes-element ms-account-profile__attributes_input ms-account-profile__attributes_input-edit-false ms-account-profile__Birthday-input')[0] as HTMLInputElement;\r\n // const prev_date = bd_input.value;\r\n if (props.context.request.canonicalDomain !== 'us.venchi.com') {\r\n // The following is undefined due to the element not existing yet at runtime\r\n // const never_mind: HTMLButtonElement = document.getElementsByClassName('ms-account-profile__attributes-cancel-button msc-btn')[0] as HTMLButtonElement;\r\n \r\n // Protip: This resets the birthday value on click, so be mindful of that\r\n bd_input.setAttribute('type', 'date');\r\n \r\n // never_mind.addEventListener(\"click\", () => {\r\n // bd_input.setAttribute('type', 'text');\r\n // bd_input.value = prev_date;\r\n // });\r\n }\r\n });\r\n }, []);\r\n\r\n return (\r\n \r\n {heading}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n {accountProfileWrapper && (\r\n \r\n \r\n \r\n {customerAttributesWrapper && {customerAttributesSection}}\r\n \r\n )}\r\n
\r\n
\r\n
\r\n {customerAttributesWrapper && {customerAttributesSection}}\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AccountProfileView;\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 } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILoyaltySignUpViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/loyalty-sign-up/./loyalty-sign-up';\r\nimport { ILoyaltySignUpProps } from '../definition-extensions/loyalty-sign-up.ext.props.autogenerated';\r\n\r\nconst LoyaltySignUpView: React.FC> = props => {\r\n const {\r\n LoyaltySignUp,\r\n heading,\r\n memberHeading,\r\n signInLink,\r\n signUpText,\r\n signUpButton,\r\n detailsLink,\r\n // termsLink, Not needed\r\n loading,\r\n infoMessageBar\r\n } = props;\r\n\r\n if (loading) {\r\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\r\n return null;\r\n }\r\n\r\n // const hostname = props?.context?.request?.url?.requestUrl?.hostname || '';\r\n\r\n if (typeof window !== 'undefined') {\r\n const loyalty_join_toggle_btn = document.getElementsByClassName(\"ms-loyalty-terms__toggle\")[0];\r\n loyalty_join_toggle_btn?.addEventListener(\"click\", () => {\r\n const loyalty_join_btn = document.getElementsByClassName(\"ms-loyalty-terms__submit\")[0];\r\n loyalty_join_btn.addEventListener(\"click\", () => {\r\n loyalty_join_btn.innerHTML = '
';\r\n })\r\n });\r\n }\r\n\r\n /*\r\n [signInLink = true, loyalty_join_flag = false] guest (no loyalty join) -> standard sign in\r\n [signInLink = true, loyalty_join_flag = true] guest (loyalty join) -> \"thanks\" instead of sign in\r\n [signInLink = false] logged in -> hidden module content\r\n */\r\n const loyalty_join_flag = props.context.request.query?.hasJoined;\r\n // signInLink is null (thus false) when the user is logged in\r\n return (signInLink && (loyalty_join_flag ? (\r\n
\r\n {props.resources.joinedLoyaltyThankYouHeader && (

{props.resources.joinedLoyaltyThankYouHeader}

)}\r\n {props.resources.joinedLoyaltyParagraphContent && (

{props.resources.joinedLoyaltyParagraphContent}

)}\r\n {/* {props.resources.loyaltyBalanceCheckURL && props.resources.joinedLoyaltyBalanceCheckLinkText && ({props.resources.joinedLoyaltyBalanceCheckLinkText})} */}\r\n
\r\n ) : (\r\n \r\n {infoMessageBar}\r\n {memberHeading}\r\n {heading}\r\n {detailsLink}\r\n {signUpText}\r\n {/* {termsLink} Not needed */}\r\n {signUpButton}\r\n {signInLink}\r\n \r\n )\r\n )\r\n );\r\n};\r\n\r\nexport default LoyaltySignUpView;\r\n","import * as React from 'react';\r\n\r\n/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport {\r\n ISignInItem,\r\n ISignInLoading,\r\n ISignInLocalAccount /*ISignInSocialAccount, ISignInSocialItem,*/,\r\n ISignInViewProps\r\n} from '@msdyn365-commerce-modules/account-management/src/modules/sign-in/./sign-in';\r\nimport { ISignInProps } from '../definition-extensions/sign-in.ext.props.autogenerated';\r\n\r\nconst LocalAccount: React.FC = ({ localAccount, items, forgetPassword, disclaimer, error, signInButton }) => {\r\n return (\r\n \r\n {items &&\r\n items.map((item: ISignInItem) => {\r\n return (\r\n \r\n {item.label}\r\n {item.error}\r\n {item.input}\r\n \r\n );\r\n })}\r\n {forgetPassword}\r\n {disclaimer}\r\n {error}\r\n {signInButton}\r\n \r\n );\r\n};\r\n/*\r\nconst SocialAccount: React.FC = ({\r\n socialAccounts,\r\n items,\r\n}) => {\r\n\r\n return (\r\n \r\n {items && items.map((item: ISignInSocialItem) => {\r\n return (\r\n \r\n {item.image}\r\n {item.text}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n*/\r\n\r\nconst SignInLoading: React.FC = ({ modal, modalBody, icon, message }) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignInView: React.FC> = props => {\r\n const {\r\n signIn,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n signInSection,\r\n signUpSection,\r\n signInSectionHeading,\r\n signInLocalAccount,\r\n /*signInSocialAccount,*/\r\n signUpSectionHeading,\r\n signUpDescription,\r\n signUpLink\r\n } = props;\r\n const canonicalDomain = props.signIn.moduleProps.context.request.canonicalDomain;\r\n const sitePath =\r\n props.signIn.moduleProps.context.request.sitePath && props.signIn.moduleProps.context.request.sitePath !== null\r\n ? props.signIn.moduleProps.context.request.sitePath\r\n : '';\r\n const requestUrl: string = `https://${canonicalDomain}${sitePath}`;\r\n \r\n const handleGaGuestCheckout = React.useCallback(() => {\r\n window.dataLayer?.push?.({\r\n 'event': 'gaEvent',\r\n 'eventCategory': 'account',\r\n 'eventAction': 'guest_checkout',\r\n 'eventLabel': 'click' \r\n })\r\n }, [])\r\n\r\n const handleGaSignUp = React.useCallback(() => {\r\n window.dataLayer?.push?.({\r\n 'event': 'gaEvent',\r\n 'eventCategory': 'account',\r\n 'eventAction': 'signup',\r\n 'eventLabel': 'click'\r\n });\r\n }, [])\r\n\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n \r\n {signInSectionHeading}\r\n {LocalAccount(signInLocalAccount)}\r\n {/*SocialAccount(signInSocialAccount)*/}\r\n \r\n \r\n {signUpSectionHeading}\r\n {signUpDescription}\r\n
\r\n {signUpLink}\r\n
\r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default SignInView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n// import { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block/src/modules/content-block/./content-block';\r\nimport { IWriteReviewViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/modules/write-review/write-review';\r\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/common/review-modal';\r\nimport { Module, Node, IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst ContentBlockView: React.FC = props => {\r\n const { heading, /* signInMessage, */ signInButton, modalToggle, reviewModal, moduleProps } = props;\r\n const isAuthenticated = props.context.request.user.isAuthenticated;\r\n // @ts-ignore\r\n //const reviewButtonLabel = moduleProps?.moduleProps?.resources?.reviewButtonLabel ?? '';\r\n //const customSignInButton = signInButton;\r\n // @ts-ignore\r\n //customSignInButton.props.text = reviewButtonLabel;\r\n // const test = { ...moduleProps };\r\n // @ts-ignore\r\n moduleProps.moduleProps.resources.signInLabel = moduleProps.moduleProps.resources.reviewButtonLabel;\r\n React.useEffect(() => {\r\n const button = document.getElementsByClassName('ms-write-review__sign-in-btn')[0];\r\n if (button) {\r\n button.setAttribute('style', 'visibility: visible');\r\n }\r\n }, []);\r\n return React.createElement(\r\n Module,\r\n Object.assign({}, moduleProps),\r\n heading,\r\n !isAuthenticated\r\n ? React.createElement(React.Fragment, null, null, signInButton)\r\n : React.createElement(React.Fragment, null, modalToggle, createReviewModal(reviewModal, moduleProps))\r\n );\r\n /* return (React.createElement(Module, Object.assign({}, moduleProps),\r\n heading,\r\n !isAuthenticated ? React.createElement(React.Fragment, null,\r\n signInMessage,\r\n signInButton) : React.createElement(React.Fragment, null,\r\n modalToggle,\r\n createReviewModal(reviewModal, moduleProps)))); */\r\n};\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps) => {\r\n return React.createElement(\r\n Module,\r\n Object.assign({}, props.modal, moduleProps),\r\n props.modalHeader,\r\n React.createElement(\r\n Node,\r\n Object.assign({}, props.modalBody),\r\n React.createElement(\r\n Node,\r\n Object.assign({}, props.form),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.rating, props.ratingLabel),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.titleLabel, props.titleInput),\r\n React.createElement(Node, Object.assign({}, props.inputRow), props.textLabel, props.textInput),\r\n props.privacyPolicyUrl,\r\n props.error\r\n )\r\n ),\r\n React.createElement(Node, Object.assign({}, props.modalFooter), props.submitButton, props.cancelButton)\r\n );\r\n};\r\nexport default ContentBlockView;\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 Msdyn365 from '@msdyn365-commerce/core';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountGenericTileConfig, IAccountGenericTileProps } from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountGenericTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountGenericTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-generic-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountGenericTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as 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 { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILink {\n className?: string;\n text?: string;\n href?: string;\n ariaLabel?: string;\n index: string;\n noclick?: boolean;\n telemetryContent: ITelemetryContent;\n}\n\nexport const Link: React.FC = ({ text, className, href, ariaLabel, index, noclick, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent, '', '');\n\n const linkText = text !== undefined ? text : '';\n payLoad.contentAction.etext = linkText;\n\n // Construct telemetry attribute to render\n const attribute = getTelemetryAttributes(telemetryContent, payLoad);\n\n return (\n \n {linkText}\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 React from 'react';\n\ninterface ISeparator {\n separator: string;\n}\n\nexport const Separator: React.FC = ({ separator }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICategoryUrl } from '@msdyn365-commerce/core-internal/dist/types/interfaces/ICategoryPathInterfaces';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbData } from './breadcrumb.data';\nimport { IBreadcrumbProps, ILinksData } from './breadcrumb.props.autogenerated';\nimport { Link } from './components/link';\nimport { Separator } from './components/separator';\n\nexport interface IBreadcrumbViewProps extends IBreadcrumbProps {\n root?: React.ReactNode;\n links?: React.ReactNode[];\n backButton?: React.ReactNode;\n separator?: React.ReactNode;\n BreadcrumbContainer: IModuleProps;\n BreadcrumbList: INodeProps;\n BreadcrumbListItem: INodeProps;\n}\n\n/**\n *\n * Breadcrumb component.\n * @extends {React.PureComponent>}\n */\nclass Breadcrumb extends React.PureComponent> {\n private readonly _pageType: string | undefined = this.props.context.request.urlTokens.pageType;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n let rootLink = null;\n let breadcrumbLinks = null;\n let backButtonComponent = null;\n rootLink = this._getRootLink();\n const itemPosition = rootLink ? 1 : 0;\n if (this._pageType === 'Category') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n breadcrumbLinks = this._getCategoryHierarchy(itemPosition);\n }\n } else if (this._pageType === 'Product') {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n if (!breadcrumbLinks) {\n const breaCrumbType = this.props.context.app.config.breadcrumbType;\n if (breaCrumbType === 'category') {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'categoryAndBack') {\n backButtonComponent = this._getPDPBackButton();\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n if (breaCrumbType === 'back') {\n backButtonComponent = this._getPDPBackButton();\n if (backButtonComponent === null) {\n breadcrumbLinks = this._getPDPLinks(itemPosition);\n }\n }\n }\n } else {\n breadcrumbLinks = this._getCustomBreadcrumbLinks(itemPosition);\n }\n const linkSeparator = ;\n\n const breadcrumbViewProps = {\n ...this.props,\n BreadcrumbContainer: {\n moduleProps: this.props,\n className: classnames('ms-breadcrumb', className),\n tag: 'nav',\n role: 'navigation'\n },\n BreadcrumbList: {\n tag: 'ol' as NodeTag,\n className: 'ms-breadcrumb_list'\n },\n BreadcrumbListItem: {\n tag: 'li',\n className: 'ms-breadcrumb_item'\n },\n root: rootLink,\n links: breadcrumbLinks,\n backButton: backButtonComponent,\n separator: linkSeparator\n };\n return this.props.renderView(breadcrumbViewProps) as React.ReactElement;\n }\n\n private readonly _getRootLink = (): JSX.Element | null => {\n const { root } = this.props.config;\n if (!root || !root.linkUrl || !root.linkUrl.destinationUrl) {\n this.props.context.telemetry.error('BreadCrumb link url content is empty, link wont render');\n return null;\n }\n return (\n \n );\n };\n\n private readonly _getCustomBreadcrumbLinks = (itemPosition: number): JSX.Element[] | null => {\n const { links } = this.props.config;\n\n if (!links || links.length === 0) {\n this.props.context.telemetry.error('BreadCrumb links content is empty, links wont render');\n return null;\n }\n const defaultValueToSubtract = 1;\n return links.map((value: ILinksData, index: number) => {\n itemPosition++;\n const keyIndex = index;\n return index !== links.length - defaultValueToSubtract ? (\n \n ) : (\n
\n {value.linkText}\n
\n );\n });\n };\n\n private readonly _getCategoryHierarchy = (itemPosition: number): JSX.Element[] | null => {\n const { data } = this.props;\n const categoryHierarchy = data.categoryHierarchy.result;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category Hierarchy content is empty, module wont render');\n return null;\n }\n return categoryHierarchy.map((value: CategoryHierarchy, index: number) => {\n itemPosition++;\n\n const friendlyName = this._getFriendlyName(this.props.context.request.locale, value.NameTranslations);\n\n return (\n \n );\n });\n };\n\n /**\n * The function to get translation name for the locale.\n * @param locale - The locale information.\n * @param nameTranslations - The name translations names.\n * @returns - The translation name for the locale.\n */\n private readonly _getFriendlyName = (locale: string, nameTranslations?: TextValueTranslation[]): string | undefined => {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n // If friendly name for current locale is null, should use default locale.\n if (nameTranslation === undefined && ArrayExtensions.hasElements(nameTranslations)) {\n nameTranslation = nameTranslations[0];\n }\n\n return nameTranslation?.Text;\n };\n\n private readonly _getPDPLinks = (itemPosition: number): JSX.Element[] | null => {\n const { data, config } = this.props;\n const categoryHierarchy = data.categoryPaths.result;\n const product = data.product.result;\n const url = this.props.context.request.url.requestUrl.href;\n if (!categoryHierarchy) {\n this.props.context.telemetry.error('Category path content is empty for the product');\n return null;\n }\n const links: JSX.Element[] = [];\n\n categoryHierarchy.map((value: ICategoryUrl, index: number) => {\n itemPosition++;\n links.push(\n \n );\n });\n if (product && !config.hideProductName) {\n itemPosition++;\n links.push(\n \n );\n }\n return links;\n };\n\n private readonly _goBack = (): void => {\n window.history.back();\n };\n\n private readonly _getPDPBackButton = (): JSX.Element | null => {\n const isBackAllowed =\n this.props.context && this.props.context.request && this.props.context.request.query && this.props.context.request.query.back;\n if (!isBackAllowed) {\n return null;\n }\n if (MsDyn365.isBrowser && (document.referrer === '' || window.history.length < 2)) {\n return null;\n }\n return (\n \n {this.props.resources.backToResultsText}\n \n );\n };\n}\n\nexport default Breadcrumb;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBreadcrumbViewProps } from './breadcrumb';\n\nconst BreadCrumbView: React.FC = props => {\n const { root, links, backButton, BreadcrumbContainer, BreadcrumbList, BreadcrumbListItem, separator } = props;\n if (!root && !links && !backButton) {\n props.context.telemetry.error('BreadCrumb content is empty, module wont render');\n return null;\n }\n return (\n \n \n {root && (\n \n {root}\n {links && separator}\n \n )}\n {backButton && {backButton}}\n {links &&\n links.map((link, index) => (\n \n \n {link}\n {links[index + 1] && separator}\n \n \n ))}\n \n \n );\n};\n\nexport default BreadCrumbView;\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 * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ICookieSetOptions, IImageDimension, ILocaleItems } from '@msdyn365-commerce/core-internal';\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICountryPickerData } from './country-picker.data';\nimport { IActionLinkData, ICountryPickerProps } from './country-picker.props.autogenerated';\n\n/**\n * CountryPicker view props interface.\n */\nexport interface ICountryPickerViewProps extends ICountryPickerProps {\n modalContainer: IModuleProps;\n modalHeaderContainer: INodeProps;\n modalFooterContainer: INodeProps;\n modalBodyContainer: INodeProps;\n heading?: React.ReactNode;\n subheading?: React.ReactNode;\n link?: React.ReactNode;\n countryList?: React.ReactNode[];\n isModalOpen?: boolean;\n state?: ICountryPickerState;\n stayOnCurrentSiteButton?: React.ReactNode;\n}\n\n/**\n * ICountryPickerState: Interface for Country picker State.\n */\nexport interface ICountryPickerState {\n isModalOpen: boolean;\n}\n\n/**\n *\n * CountryPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CountryPicker extends React.PureComponent, ICountryPickerState> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private readonly _preferredSiteStorageKey: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationTime = 5_184_000;\n\n public constructor(props: ICountryPickerProps) {\n super(props);\n let isCookieValueSet: boolean = false;\n if (props.context.request.cookies.get(this._preferredSiteStorageKey).value) {\n isCookieValueSet = true;\n }\n this.state = {\n isModalOpen: !isCookieValueSet && this.props.context.request.marketSettings !== undefined\n };\n }\n\n public render(): JSX.Element | null {\n const { heading, subheading, countryList, actionLink } = this.props.config;\n\n const isConsentGiven = this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const countryPickerHeading = heading && (\n \n );\n\n const countryPickerSubHeading = subheading && (\n \n );\n\n const countryPickerActionLink = actionLink && this.createLink(actionLink);\n const currentSiteButton = (\n \n );\n\n const viewprops: ICountryPickerViewProps = {\n ...this.props,\n state: this.state,\n isModalOpen: this.state.isModalOpen,\n modalContainer: {\n moduleProps: this.props,\n tag: Modal,\n className: 'ms-country-picker__dialog',\n isOpen: true,\n 'aria-label': 'country-picker',\n toggle: this.closeModal,\n modalTransition: { timeout: 0 },\n shouldUpdateFocusToFirstElement: true\n },\n modalHeaderContainer: {\n tag: ModalHeader,\n className: 'ms-country-picker__modal-header',\n toggle: this.closeModal,\n closeButtonTabIndex: 1\n },\n modalFooterContainer: {\n tag: ModalFooter,\n className: 'ms-countryPicker__modal-footer'\n },\n modalBodyContainer: {\n tag: ModalBody,\n className: 'ms-counrtyPicker__modal-body'\n },\n heading: countryPickerHeading,\n subheading: countryPickerSubHeading,\n link: countryPickerActionLink,\n countryList: countryList && this.renderCountryList(),\n stayOnCurrentSiteButton: currentSiteButton\n };\n\n return this.props.renderView(viewprops);\n }\n\n /**\n * Initiate close modal.\n */\n public readonly closeModal = (): void => {\n this.setState({\n isModalOpen: false\n });\n };\n\n public handleParagraphChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.subheading = event.target.value;\n }\n\n public handleTextChange(event: MsDyn365.ContentEditableEvent): void {\n this.props.config.heading!.text = event.target.value;\n }\n\n public handleLinkTextChange(event: MsDyn365.ContentEditableEvent): void {\n if (this.props.config.actionLink?.linkText) {\n this.props.config.actionLink.linkText = event.target.value;\n }\n }\n\n public createLink(link?: IActionLinkData): React.ReactNode | null {\n if (!StringExtensions.isNullOrEmpty(link?.linkUrl.destinationUrl)) {\n const linkText = link?.linkText ?? '';\n const payLoad = getPayloadObject('click', this._telemetryContent, '', '');\n const attributes = getTelemetryAttributes(this._telemetryContent, payLoad);\n const editableLink: MsDyn365.ILinksData = {\n ariaLabel: link?.ariaLabel,\n className: 'ms-countryPicker__link',\n linkText,\n linkUrl: link?.linkUrl.destinationUrl,\n openInNewTab: link?.openInNewTab,\n role: 'link',\n additionalProperties: attributes!,\n onClick: onTelemetryClick(this._telemetryContent, payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n public renderCountryList(): React.ReactNode[] | undefined {\n const marketSettings = this.props.context.request.marketSettings;\n if (!marketSettings) {\n return undefined;\n }\n const localeItems = marketSettings.localeItems;\n const countryLinks = localeItems.map((value: ILocaleItems) => {\n return this.renderCountry(value);\n });\n\n return countryLinks;\n }\n\n public renderCountry(localeItem: ILocaleItems): React.ReactNode | null {\n const countryList = this.props.config.countryList;\n let baseUrl = localeItem.localeBaseUrl;\n baseUrl = this._appendProtocolToUrl(baseUrl);\n const matchedCountryItem = countryList?.find(item => item.url === baseUrl);\n if (!matchedCountryItem) {\n return null;\n }\n const imageSize: IImageDimension = { q: 'w=48&h=48&m=6', w: 0, h: 0 };\n const defaultImageSettings: MsDyn365.IImageSettings = {\n viewports: {\n xs: imageSize,\n lg: imageSize,\n xl: imageSize\n },\n lazyload: true\n };\n const image = matchedCountryItem.image;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings ?? defaultImageSettings\n };\n return (\n \n {image && (\n \n )}\n
\n {matchedCountryItem.displayString}\n {matchedCountryItem.displaySubString}\n
\n \n );\n }\n\n /**\n * Writes the current site base url to cookie and closes the country picker modal dialog.\n */\n private readonly _handleStayOnSiteButtonClick = (): void => {\n const currentBaseUrl = this.props.context.request.marketSettings?.currentBaseUrl;\n if (currentBaseUrl) {\n const urlToStore = this._appendProtocolToUrl(currentBaseUrl);\n this._writeToCookie(this._preferredSiteStorageKey, urlToStore);\n }\n this.closeModal();\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n * @returns - This method just writes the cookie to the browser.\n */\n private readonly _handleClick = (storageKey?: string, storageValue?: string) => () => {\n this._writeToCookie(storageKey, storageValue);\n };\n\n /**\n * Handles click event of country selection.\n * @param storageKey - Cookie storage key.\n * @param storageValue - Preffered site url.\n */\n private readonly _writeToCookie = (storageKey?: string, storageValue?: string): void => {\n if (!storageKey || !storageValue) {\n return;\n }\n const cookieOptions: ICookieSetOptions = { secure: true, sameSite: 'none' };\n cookieOptions.maxAge = this._cookieExpirationTime;\n this.props.context.request.cookies.set(storageKey, storageValue, cookieOptions);\n };\n\n /**\n * Appends protocol to an url.\n * @param baseUrl - Url to be formatted.\n * @returns - URL after appending protocol.\n */\n private readonly _appendProtocolToUrl = (baseUrl: string): string => {\n return !baseUrl.includes('https://') ? `https://${baseUrl}` : baseUrl;\n };\n}\n\nexport default CountryPicker;\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 { ICountryPickerViewProps } from './country-picker';\n\n/**\n * Functional component which renders country picker module.\n * @param props - Configuration for the country picker component.\n * @returns React.FC - Functional component of the country picker module.\n */\nexport const countryPickerView: React.FC = (props: ICountryPickerViewProps) => {\n const {\n isModalOpen,\n modalContainer,\n modalHeaderContainer,\n modalBodyContainer,\n heading,\n modalFooterContainer,\n subheading,\n link,\n countryList,\n stayOnCurrentSiteButton\n } = props;\n return isModalOpen && countryList ? (\n \n \n {heading}\n {subheading}\n \n \n {countryList.map(country => (\n <>{country}\n ))}\n \n \n {stayOnCurrentSiteButton}\n {link}\n \n \n ) : null;\n};\n\nexport default countryPickerView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBuyboxAddToCartViewProps,\n IBuyboxAddToOrderTemplateViewProps,\n IBuyboxAddToWishlistViewProps,\n IBuyboxCallbacks,\n IBuyboxData,\n IBuyboxFindInStoreViewProps,\n IBuyboxKeyInPriceViewProps,\n IBuyboxProductConfigureDropdownViewProps,\n IBuyboxProductConfigureViewProps,\n IBuyboxProductQuantityViewProps,\n IBuyboxProps,\n IBuyboxShopSimilarLookViewProps,\n IBuyboxState,\n IBuyboxViewProps\n} from '@msdyn365-commerce-modules/buybox';\nimport { IncrementalQuantity, ITelemetryContent, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBuyboxProps as IBuyboxExtentionProps,\n IBuyboxResources as IBuyboxExtentionResources\n} from '../definition-extensions/buybox.ext.props.autogenerated';\n\nconst BuyboxView: React.FC> = props => {\n const {\n ModuleProps,\n MediaGalleryContainerProps,\n ProductInfoContainerProps,\n addToCart,\n addToOrderTemplate,\n addToWishlist,\n telemetryContent,\n configure,\n description,\n findInStore,\n quantity,\n price,\n title,\n rating,\n callbacks,\n state,\n resources,\n inventoryLabel,\n shopSimilarLook,\n keyInPrice,\n quantityLimitsMessages,\n max,\n shopSimilarDescription,\n unitOfMeasure\n } = props;\n\n return (\n \n {props.mediaGallery}\n \n {title}\n {price}\n {unitOfMeasure}\n {props.bulkPurchaseLink}\n {description}\n {_renderTextBlock(props.slots.textBlocks)}\n {rating}\n {configure && _renderConfigure(configure)}\n {keyInPrice && _renderKeyInPrice(keyInPrice)}\n {quantity && _renderQuantity(quantity, callbacks, props, state, resources, quantityLimitsMessages, max, telemetryContent)}\n {inventoryLabel}\n {_renderCartAndActions(addToCart, addToOrderTemplate, addToWishlist)}\n {findInStore && _renderFindInStore(findInStore)}\n {_renderSocialShare(props.slots && props.slots.socialShare)}\n {shopSimilarLook && _renderShopSimilarItem(shopSimilarLook)}\n {shopSimilarDescription && _renderShopSimilarItem(shopSimilarDescription)}\n \n \n );\n};\n\nconst _renderTextBlock = (textBlocks: React.ReactNode[]): JSX.Element | undefined => {\n if (!textBlocks || textBlocks.length === 0) {\n return undefined;\n }\n\n return <>{textBlocks[0]};\n};\n\nconst _renderSocialShare = (socialShare: React.ReactNode[]): JSX.Element | undefined => {\n if (!socialShare || socialShare.length === 0) {\n return undefined;\n }\n\n return <>{socialShare[0]};\n};\n\nconst _renderCartAndActions = (\n addToCart?: IBuyboxAddToCartViewProps,\n addToOrderTemplate?: IBuyboxAddToOrderTemplateViewProps,\n addToWishlist?: IBuyboxAddToWishlistViewProps\n): JSX.Element | undefined => {\n if (!addToCart && !addToWishlist) {\n return undefined;\n }\n\n return (\n
\n {addToCart && addToCart.errorBlock}\n {addToOrderTemplate && addToOrderTemplate.errorBlock}\n {addToWishlist && addToWishlist.errorBlock}\n
\n {addToCart && addToCart.button}\n {addToOrderTemplate && addToOrderTemplate.button}\n {addToWishlist && addToWishlist.button}\n
\n
\n );\n};\n\nconst _renderConfigure = (configure: IBuyboxProductConfigureViewProps): JSX.Element => {\n const { ContainerProps, dropdowns } = configure;\n\n return {dropdowns.map(_renderConfigureDropdown)};\n};\n\nconst _renderConfigureDropdown = (dropdown: IBuyboxProductConfigureDropdownViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors, select } = dropdown;\n\n return (\n \n \n {heading}\n {errors}\n \n {select}\n \n );\n};\n\nconst _renderFindInStore = (findInStore: IBuyboxFindInStoreViewProps): JSX.Element => {\n const { ContainerProps, storeSelector, heading, description, errors, button, modal, productPickupOptionList } = findInStore;\n\n return (\n \n {storeSelector}\n {heading}\n {productPickupOptionList}\n {description}\n {errors}\n {button}\n {modal}\n \n );\n};\n\n/**\n * On Change function.\n * @param callbacks -Callbacks.\n * @returns Update quantity.\n */\nconst onChangeHandler = (callbacks: IBuyboxCallbacks) => (newValue: number): boolean => {\n if (callbacks.updateQuantity) {\n return callbacks.updateQuantity(newValue);\n }\n return true;\n};\n\nconst _renderQuantity = (\n quantityComponent: IBuyboxProductQuantityViewProps,\n callbacks: IBuyboxCallbacks,\n props: IBuyboxProps,\n state: IBuyboxState,\n extentionResources: IBuyboxExtentionResources,\n quantityLimitsMessages: React.ReactNode,\n max: number | undefined,\n telemetryContent?: ITelemetryContent\n): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, errors } = quantityComponent;\n\n const { resources } = props;\n\n const { quantity } = state;\n\n return (\n \n \n {heading}\n {errors}\n \n\n \n {quantityLimitsMessages}\n \n );\n};\n\nconst _renderKeyInPrice = (keyInPrice: IBuyboxKeyInPriceViewProps): JSX.Element => {\n const { ContainerProps, LabelContainerProps, heading, input } = keyInPrice;\n\n return (\n \n {heading}\n {input}\n \n );\n};\n\nconst _renderShopSimilarItem = (shopSimilarItem: IBuyboxShopSimilarLookViewProps): JSX.Element => {\n const { ContainerProps, errors, input } = shopSimilarItem;\n\n return (\n \n {errors}\n {input}\n \n );\n};\n\nexport default BuyboxView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\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 { IOrderTemplateListViewProps, ISingleOrderTemplateViewProps } from '@msdyn365-commerce-modules/order-template';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderTemplateListProps, IOrderTemplateListResources } from '../definition-extensions/order-template-list.ext.props.autogenerated';\n\n/**\n * Interface for OrderTemplateImage.\n */\ninterface IOrderTemplateImage {\n props: {\n children: React.ReactElement[];\n };\n}\n\n/**\n * To render order template.\n * @param orderTemplate - The order template view props.\n * @param orderTemplateNodeProps - The order template node props.\n * @returns The JSX Element.\n */\nconst renderOrderTemplate = (orderTemplate: ISingleOrderTemplateViewProps, orderTemplateNodeProps?: INodeProps): JSX.Element | null => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n const { key, addToCartButton, orderTemplateImage, orderTemplateStatusMessage, removeButton, orderTemplateName } = orderTemplate;\n\n const orderTemplateImageElement: IOrderTemplateImage = orderTemplateImage as React.ReactElement;\n const currentImageListLength = orderTemplateImageElement.props.children.length;\n const defaultNumberImagesInTile = 4;\n\n if (currentImageListLength < defaultNumberImagesInTile) {\n for (let index = 0; index < defaultNumberImagesInTile - currentImageListLength; index++) {\n orderTemplateImageElement.props.children.push();\n }\n }\n\n return (\n \n {orderTemplateName}\n {orderTemplateImage}\n {addToCartButton}\n {removeButton}\n {orderTemplateStatusMessage}\n \n );\n};\n\n/**\n * Order Template List View.\n * @param props - The view props.\n * @returns The JSX Element.\n */\nexport const OrderTemplateListViewComponent: React.FC> = props => {\n const {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file\n OrderTemplateList,\n OrderTemplates,\n OrderTemplate,\n status,\n statusMessage,\n heading,\n orderTemplates,\n createOrderTemplateButton,\n templateHeaderStatusMessage\n } = props;\n\n return (\n \n {heading}\n \n {status === 'SUCCESS' && (!OrderTemplates || !orderTemplates || !ArrayExtensions.hasElements(orderTemplates)) ? (\n
\n

{props.resources.headingForEmptyOrderTemplateList}

\n

{props.resources.textForEmptyOrderTemplateList}

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

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n"],"names":["CountrySelector","React","constructor","props","super","isCMS","this","_updateViewport","bind","viewport","context","request","device","Type","state","isMobile","menuItemList","locale","nameTranslations","nameTranslation","length","find","item","Language","toLowerCase","Text","componentDidMount","resizeThrottledEventHandler","window","addThrottledEvent","componentWillUnmount","removeEventListener","render","_mapData","isEmptyOrNullObject","data","telemetry","error","defaultImageSettings","viewports","xs","q","w","h","xl","lazyload","viewProps","_objectSpread","imageSettings","gridSettings","Navigation","moduleProps","className","classnames","config","tag","role","countrySelectorAriaLabel","MenuList","ListItem","Link","DivContainer","ImageDivContainer","Button","onClick","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","MobileDescriptionLabel","isMobileView","menuItemData","renderView","mergedData","cmsNavItems","map","push","_constructMenuItemData","cmsItem","id","CMSItemIdInit","linkText","linkURL","linkUrl","destinationUrl","imageDestinationURL","imageLink","imageSource","image","src","subMenu","_getCMSNestedChildren","category","nestedChildren","subMenus","idx","_getViewport","setState","undefined","innerWidth","sm","md","lg","__decorate","observable","computed","CountrySelectorView","currentLevel","escapeKey","_handleDropdownToggle","parentId","activeMenu","mobileViewLabelText","parentMenu","_resetFocus","setTimeout","menuNode","current","focus","_handleClickOutside","event","contains","target","_escFunction","keyCode","_closeSubmenu","categoryImageAltText","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","payLoad","getPayloadObject","document","body","addEventListener","_renderMobileMenu","_renderDesktopMenu","Module","Object","assign","menuItem","_renderDrawerMenu","Node","ref","tabIndex","_renderDisplay","_renderDrawer","_renderLinkMenuItem","toggleButtonText","toggleButtonImg","Drawer","key","_renderLinkText","countrySelectorIntroText","menuSubItem","_renderDrawerLink","linkImg","alt","_renderSpanMenuItem","i","_getFromSubMenu","_createMenuItemList","forEach","index","found","_renderSubMenu","_renderButtonMenuItem","IsSubMenu","levelClassName","menuOptions","option","hasOptions","haveSubmenu","_renderMenu","onFocus","imagesource","contentAction","etext","attributes","getTelemetryAttributes","currentLang","location","origin","sitePath","href","onTelemetryClick","level","currentItem","submenu","DivContainerClass","_props$context$reques","AccountLoyaltyTile","heading","description","links","description__no_decimals","tmp_account","user","customerAccountNumber","replace","usingNewLoyalty","cardBeingGeneratedText","AccountPreferencesSection","_ref","accountPreferences","personalization","extraPreferences","AccountPreferenceSection","preferenceSecton","_ref2","accountPreference","buttonWrapper","buttonYesText","button","buttonNoText","AccountProfileSection","_ref3","AccountProfileItem","AccountProfile","accountProfileWrapper","emailSection","nameSection","preferenceSection","customerAttributesWrapper","customerAttributesSection","getElementsByClassName","innerHTML","textGenericMarketing","textProfiling","textThirdParty","bd_input","canonicalDomain","setAttribute","LoyaltySignUp","memberHeading","signInLink","signUpText","signUpButton","detailsLink","loading","infoMessageBar","loyalty_join_toggle_btn","loyalty_join_btn","loyalty_join_flag","query","hasJoined","resources","joinedLoyaltyThankYouHeader","joinedLoyaltyParagraphContent","SignInLoading","modal","modalBody","icon","message","_props$resources$cont","signIn","viewState","defaultAADConainer","aadConainer","signInSection","signUpSection","signInSectionHeading","signInLocalAccount","signUpSectionHeading","signUpDescription","signUpLink","requestUrl","handleGaGuestCheckout","_window$dataLayer","_window$dataLayer$pus","dataLayer","call","handleGaSignUp","_window$dataLayer2","_window$dataLayer2$pu","isShowLoading","localAccount","items","forgetPassword","disclaimer","signInButton","wrapper","label","input","LocalAccount","continueAsGuest","createReviewModal","modalHeader","form","inputRow","rating","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","modalToggle","reviewModal","isAuthenticated","signInLabel","reviewButtonLabel","AccordionItem","moduleClassName","handleHeadingChange","accordionItemTitle","value","_onToggle","shouldComponentUpdate","nextProps","slots","accordionExpandedStateResult","accordionExpandedState","result","expanded","isAllExpanded","isExpandedOnInitialLoad","AccordionItemContainer","AccordionItemContent","drawer","ControlledDrawer","collapseProps","isOpen","onToggle","onTextChange","requestContext","accordionSlots","interactionStyle","accordionState","actionContext","update","createAccordionStateInput","observer","_renderAccordionItemContent","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","text","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","Msdyn365","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","toggleAllSeparator","collapseAllText","_this$collapseAllButt","_this$expandAllButton","AadGeneric","$i2e","$element","insertServiceContent","getElementContent","initialize","aadGeneric","aadAPIConainer","AccountAddressTile","handleLinkTextChange","linkIndex","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","accountAddressTileDescription","format","LinksComponent","DescriptionComponent","_mapEditableLinks","linkdata","editableLinks","link","editableLink","ariaLabel","openInNewTab","additionalProperties","AccountCustomerBalance","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","split","_get","account","includes","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","name","FirstName","LastName","customerCredit","customerAccountBalance","excess","InvoiceAccountCreditLimit","CreditLimit","Balance","InvoiceAccountBalance","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","isB2BSite","isChannelTypeB2B","actionBar","IsB2bAdmin","AdminRequestStatementButton","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","Heading","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","currencyCode","formatCurrency","toFixed","date","Intl","DateTimeFormat","month","day","year","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","type","onBlur","onChange","max","min","ModalFooter","_ref5","_ref6","_ref7","_ref8","BackToShopping","AccountGenericTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","url","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountProfileEdit","onTextBoxChange","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","accountProfileEdit","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","style","display","accountProfileEditLocalAccount","_renderLocalAccount","str","e","createElement","childNodes","nodeValue","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","errorMessage","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","AccountProfileEditItem","AccountProfileEditLoading","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","AccountWelcomeTile","accountInfo","accountInformation","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","RequestsTableColumnHeader","getUserName","StringExtensions","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","formatDate","cultureFormatter","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","ArrayExtensions","hasElements","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","reqContext","MsDyn365","isBrowser","URL","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","handleMemberHeadingChange","_issueLoyalty","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","then","catch","debug","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","accountProcessingPendingInfoMessage","status","joinLoyaltyButtonText","loyaltyProgramText","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","handleParagraphChange","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","invalidPasswordError","errorMessages","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","emailVerification","isRequired","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","surnameVerification","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","_ref4","SignUpLoading","noclick","attribute","itemProp","content","Separator","separator","Breadcrumb","_pageType","urlTokens","pageType","_getRootLink","root","_getCustomBreadcrumbLinks","itemPosition","keyIndex","toString","_getCategoryHierarchy","categoryHierarchy","_getFriendlyName","NameTranslations","Url","_nameTranslation","_getPDPLinks","categoryPaths","product","Name","hideProductName","_goBack","history","back","_getPDPBackButton","referrer","backToResultsText","rootLink","breadcrumbLinks","backButtonComponent","breaCrumbType","breadcrumbType","linkSeparator","breadcrumbViewProps","BreadcrumbContainer","BreadcrumbList","BreadcrumbListItem","backButton","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","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","_toggleStatementRequestDropdown","currentUser","users","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","Status","_viewport","submitButtonReference","addedReference","isNullOrWhitespace","businessUserSelectedUserDisplayName","_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","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","keys","headingSection","bodySection","footerSection","wrapClassName","applicationNode","ButtonList","_getForm","formProps","CountryPicker","_telemetryContent","_preferredSiteStorageKey","_cookieExpirationTime","closeModal","_handleStayOnSiteButtonClick","_this$props$context$r","currentBaseUrl","marketSettings","urlToStore","_appendProtocolToUrl","_writeToCookie","_handleClick","storageKey","storageValue","cookieOptions","secure","sameSite","maxAge","cookies","set","baseUrl","isCookieValueSet","get","_heading$tag","subheading","countryList","actionLink","isConsentGiven","countryPickerHeading","handleTextChange","countryPickerSubHeading","countryPickerActionLink","createLink","currentSiteButton","stayOnCurrentSiteButtonText","viewprops","modalContainer","modalTransition","timeout","shouldUpdateFocusToFirstElement","modalHeaderContainer","closeButtonTabIndex","modalFooterContainer","modalBodyContainer","renderCountryList","stayOnCurrentSiteButton","_this$props$config$ac","_link$linkText","localeItems","renderCountry","localeItem","_image$imageSettings","_image$src","localeBaseUrl","matchedCountryItem","imageSize","imageProps","displayString","altText","loadFailureBehavior","shouldSkipToMainImage","displaySubString","countryPickerView","country","_renderTextBlock","textBlocks","_renderSocialShare","socialShare","_renderCartAndActions","addToCart","addToOrderTemplate","addToWishlist","errorBlock","_renderConfigure","configure","ContainerProps","dropdowns","_renderConfigureDropdown","dropdown","LabelContainerProps","errors","select","_renderFindInStore","findInStore","storeSelector","productPickupOptionList","onChangeHandler","callbacks","newValue","updateQuantity","_renderQuantity","quantityComponent","extentionResources","quantityLimitsMessages","quantity","IncrementalQuantity","currentCount","inputQuantityAriaLabel","decrementButtonAriaLabel","incrementButtonAriaLabel","minQuantityText","maxQuantityText","_renderKeyInPrice","keyInPrice","_renderShopSimilarItem","shopSimilarItem","ModuleProps","MediaGalleryContainerProps","ProductInfoContainerProps","title","inventoryLabel","shopSimilarLook","shopSimilarDescription","unitOfMeasure","mediaGallery","bulkPurchaseLink","BackTopFooter","backtoTopText","destination","BackToTop","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","ariaHiddenAttr","FooterItemView","_renderElement","InteractiveFeatureCollectionLinks","InteractiveFeatureItem","paragraph","_this$props$config$li","indexItem","itemCounter","isMosaic","featureItemLinks","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","moduleType","typeName","imagePropertyName","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","OrderTemplateListViewComponent","OrderTemplateList","OrderTemplates","OrderTemplate","statusMessage","createOrderTemplateButton","templateHeaderStatusMessage","headingForEmptyOrderTemplateList","textForEmptyOrderTemplateList","orderTemplate","renderOrderTemplate","orderTemplateNodeProps","addToCartButton","orderTemplateImage","orderTemplateStatusMessage","removeButton","orderTemplateName","orderTemplateImageElement","currentImageListLength","children","buildReviewCard","isUserReview","cardProps","headerProps","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","generateImageUrl","Image","cropFocalRegion","renderProductImage","ItemId","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","selectRatingLabel","reviewTitleLabel","reviewTextLabel","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton"],"sourceRoot":""}