{"version":3,"file":"static/js/5.795921a1cafa41612533.chunk.js","mappings":"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","sources":["webpack://nile.commerce.online/./src/modules/clarity-cookie-compliance/components/accept-button.tsx?d8f8","webpack://nile.commerce.online/./src/modules/clarity-cookie-compliance/components/links.tsx?03fc","webpack://nile.commerce.online/./src/modules/clarity-cookie-compliance/clarity-cookie-compliance.tsx?5eb0","webpack://nile.commerce.online/./src/modules/clarity-cookie-compliance/clarity-cookie-compliance.view.tsx?5236","webpack://nile.commerce.online/./src/themes/nile-theme/views/accordion-item.view.tsx?0bc2","webpack://nile.commerce.online/./src/themes/nile-theme/views/account-loyalty.view.tsx?65cc","webpack://nile.commerce.online/./src/themes/nile-theme/views/account-management-address.view.tsx?1c5f","webpack://nile.commerce.online/./src/themes/nile-theme/views/cart-icon.view.tsx?5acd","webpack://nile.commerce.online/./src/themes/nile-theme/views/footer-category.view.tsx?7a90","webpack://nile.commerce.online/./src/themes/nile-theme/views/search-result-container.view.tsx?45ff","webpack://nile.commerce.online/./src/themes/nile-theme/views/video-player.view.tsx?8f55","webpack://nile.commerce.online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://nile.commerce.online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://nile.commerce.online/./src/modules/accordion/accordion.tsx?78b1","webpack://nile.commerce.online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://nile.commerce.online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://nile.commerce.online/./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack://nile.commerce.online/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://nile.commerce.online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://nile.commerce.online/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://nile.commerce.online/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://nile.commerce.online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://nile.commerce.online/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://nile.commerce.online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://nile.commerce.online/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://nile.commerce.online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://nile.commerce.online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://nile.commerce.online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://nile.commerce.online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://nile.commerce.online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://nile.commerce.online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://nile.commerce.online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://nile.commerce.online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://nile.commerce.online/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://nile.commerce.online/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://nile.commerce.online/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://nile.commerce.online/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://nile.commerce.online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://nile.commerce.online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://nile.commerce.online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://nile.commerce.online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://nile.commerce.online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://nile.commerce.online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://nile.commerce.online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://nile.commerce.online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://nile.commerce.online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://nile.commerce.online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://nile.commerce.online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://nile.commerce.online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://nile.commerce.online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://nile.commerce.online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://nile.commerce.online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://nile.commerce.online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://nile.commerce.online/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://nile.commerce.online/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://nile.commerce.online/./src/modules/account-profile/account-profile.tsx?fe69","webpack://nile.commerce.online/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://nile.commerce.online/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://nile.commerce.online/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://nile.commerce.online/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://nile.commerce.online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://nile.commerce.online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://nile.commerce.online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://nile.commerce.online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://nile.commerce.online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://nile.commerce.online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://nile.commerce.online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://nile.commerce.online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://nile.commerce.online/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://nile.commerce.online/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://nile.commerce.online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://nile.commerce.online/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://nile.commerce.online/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://nile.commerce.online/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://nile.commerce.online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://nile.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://nile.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://nile.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://nile.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://nile.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://nile.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://nile.commerce.online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://nile.commerce.online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://nile.commerce.online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://nile.commerce.online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://nile.commerce.online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://nile.commerce.online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://nile.commerce.online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://nile.commerce.online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://nile.commerce.online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://nile.commerce.online/./src/modules/password-reset/password-reset.tsx?0983","webpack://nile.commerce.online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://nile.commerce.online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://nile.commerce.online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://nile.commerce.online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://nile.commerce.online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://nile.commerce.online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://nile.commerce.online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://nile.commerce.online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://nile.commerce.online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://nile.commerce.online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://nile.commerce.online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://nile.commerce.online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://nile.commerce.online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://nile.commerce.online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://nile.commerce.online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://nile.commerce.online/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://nile.commerce.online/./src/modules/footer-item/footer-item.tsx?074a","webpack://nile.commerce.online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://nile.commerce.online/./src/modules/image-list/image-list.tsx?5602","webpack://nile.commerce.online/./src/modules/image-list/image-list.view.tsx?2bed","webpack://nile.commerce.online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://nile.commerce.online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://nile.commerce.online/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://nile.commerce.online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://nile.commerce.online/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://nile.commerce.online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://nile.commerce.online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_Hash.js?1cc1","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_ListCache.js?448e","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_Map.js?0f08","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_MapCache.js?81ec","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_Symbol.js?9be5","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_arrayMap.js?d3fb","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_assocIndexOf.js?1704","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_baseGet.js?bf8f","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_baseGetTag.js?5174","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_baseIsNative.js?f166","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_baseToString.js?84dc","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_castPath.js?e55a","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_coreJsData.js?5766","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_freeGlobal.js?1cda","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_getMapData.js?bdae","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_getNative.js?c9e4","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_getRawTag.js?3b7b","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_getValue.js?3be0","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_hashClear.js?4150","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_hashDelete.js?b56e","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_hashGet.js?c75a","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_hashHas.js?0fd4","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_hashSet.js?c4a8","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_isKey.js?1c53","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_isKeyable.js?e8a9","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_isMasked.js?cc75","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_listCacheClear.js?6438","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_listCacheDelete.js?9b1a","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_listCacheGet.js?4373","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_listCacheHas.js?6675","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_listCacheSet.js?2390","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_mapCacheClear.js?28c5","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_mapCacheDelete.js?8a4e","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_mapCacheGet.js?b9e2","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_mapCacheHas.js?b800","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_mapCacheSet.js?fa65","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_memoizeCapped.js?9ac4","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_nativeCreate.js?1600","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_objectToString.js?4301","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_root.js?d4c7","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_stringToPath.js?1b14","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_toKey.js?e808","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/_toSource.js?7561","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/eq.js?6cb8","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/get.js?992c","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/isArray.js?d1e9","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/isFunction.js?a9e0","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/isObject.js?d50c","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/isObjectLike.js?6318","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/isSymbol.js?41eb","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/memoize.js?adcd","webpack://nile.commerce.online/./node_modules/@msdyn365-commerce-modules/account-management/node_modules/lodash/toString.js?1e1c"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface ICookieComplianceAcceptButton {\r\n acceptCookiesButtonText?: string;\r\n acceptCookiesButtonAriaLabel?: string;\r\n\r\n /**\r\n * The telemetry content\r\n */\r\n telemetryContent?: ITelemetryContent;\r\n onClose(): void;\r\n}\r\n\r\nexport const CookieComplianceAcceptButton: React.FC = ({\r\n acceptCookiesButtonText,\r\n acceptCookiesButtonAriaLabel,\r\n telemetryContent,\r\n onClose\r\n}) => {\r\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\r\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\r\n\r\n return (\r\n \r\n {acceptCookiesButtonText}\r\n \r\n );\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IActionLinksData } from '../clarity-cookie-compliance.props.autogenerated';\r\n\r\nexport interface ICookieComplianceLinks {\r\n links: IActionLinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ContentCardLinks component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class CookieComplianceLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\r\n return (\r\n \r\n {editableLinks && editableLinks.length > 0 ? (\r\n \r\n ) : null}\r\n \r\n );\r\n }\r\n\r\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\r\n if (!linkdata || linkdata.length === 0) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n linkdata.forEach((link, index) => {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'link',\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n });\r\n\r\n return editableLinks;\r\n };\r\n}\r\n\r\nexport default CookieComplianceLinks;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\r\nimport { IClarityCookieComplianceConfig, IClarityCookieComplianceProps } from './clarity-cookie-compliance.props.autogenerated';\r\n\r\n/**\r\n * Alert state interface.\r\n */\r\nexport interface IAlertState {\r\n visible: boolean;\r\n}\r\n\r\n/**\r\n * Cookie compliance view props interface.\r\n */\r\nexport interface ICookieComplianceViewProps extends IClarityCookieComplianceProps<{}> {\r\n CookieComplianceBanner: IModuleProps;\r\n AlertProps: IAlertProps;\r\n Content: INodeProps;\r\n text?: React.ReactNode;\r\n links?: React.ReactNode;\r\n acceptButton?: React.ReactNode;\r\n className: string;\r\n onDismiss(): void;\r\n}\r\n\r\n/**\r\n *\r\n * CookieCompliance component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CookieCompliance extends React.PureComponent, IAlertState> {\r\n private readonly cookieRef: React.RefObject;\r\n\r\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n public constructor(props: IClarityCookieComplianceProps) {\r\n super(props);\r\n this.state = { visible: false };\r\n this.cookieRef = React.createRef();\r\n this._onDismiss = this._onDismiss.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n const { context } = this.props;\r\n\r\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\r\n this.setState({ visible: true });\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { config, context, resources, telemetry } = this.props;\r\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\r\n const { visible } = this.state;\r\n\r\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\r\n let moduleConfig: IClarityCookieComplianceConfig;\r\n\r\n try {\r\n moduleConfig = config;\r\n } catch (error) {\r\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\r\n return
{error}
;\r\n }\r\n\r\n if (isConsentGiven && !visible) {\r\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\r\n return <>;\r\n }\r\n\r\n const viewProps = {\r\n ...this.props,\r\n onDismiss: this._onDismiss,\r\n CookieComplianceBanner: {\r\n moduleProps: this.props,\r\n className: classnames('ms-cookie-compliance', moduleConfig.className),\r\n ref: this.cookieRef\r\n },\r\n AlertProps: {\r\n className: 'ms-cookie-compliance__container',\r\n color: 'white',\r\n fade: false\r\n },\r\n Content: {\r\n className: 'ms-cookie-compliance__content'\r\n },\r\n text: moduleConfig.content && (\r\n \r\n ),\r\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\r\n \r\n ),\r\n acceptButton: (\r\n \r\n )\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handles Link content change event.\r\n * @param linkIndex - Index of link in linkarray.\r\n * @returns Void.\r\n */\r\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\r\n if (this.props.config.actionLinks?.[linkIndex]) {\r\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\r\n }\r\n };\r\n\r\n /**\r\n * Handles content change event.\r\n * @param event - Event.\r\n */\r\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\r\n this.props.config.content = event.target.value;\r\n };\r\n\r\n private _onDismiss(): void {\r\n const { context } = this.props;\r\n\r\n if (context && context.request && context.request.cookies) {\r\n context.request.cookies.setConsentCookie();\r\n if (MsDyn365.msdyn365Commerce.isBrowser && window.frames['clarity'] !== null) {\r\n // https://learn.microsoft.com/en-us/clarity/setup-and-installation/cookie-consent#step-2\r\n // @ts-expect-error\r\n window.clarity('consent');\r\n }\r\n location.reload();\r\n }\r\n this.setState({ visible: false });\r\n }\r\n}\r\n\r\nexport default CookieCompliance;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICookieComplianceViewProps } from './clarity-cookie-compliance';\r\n\r\nconst CookieComplianceView: React.FC = props => {\r\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\r\n\r\n return (\r\n \r\n \r\n \r\n {text}\r\n {links}\r\n \r\n {acceptButton}\r\n \r\n \r\n );\r\n};\r\nexport default CookieComplianceView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport IAccordionItemData from \"@msdyn365-commerce-modules/accordion/src/modules/accordion-item/./accordion-item\"\r\nimport { IAccordionItemProps } from '../definition-extensions/accordion-item.ext.props.autogenerated';\r\nimport { IAccordionItemViewProps } from '@msdyn365-commerce-modules/accordion/src/modules/accordion-item/./accordion-item';\r\n\r\nconst AccordionItemView: React.FC & IAccordionItemViewProps> = props => {\r\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\r\n return (\r\n \r\n \r\n \r\n {accordionSlots &&\r\n accordionSlots.accordionItemContent &&\r\n accordionSlots.accordionItemContent.length &&\r\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\r\n {accordionSlots &&\r\n accordionSlots.paymentSlot &&\r\n _renderAccordionItemContent(accordionSlots.paymentSlot)\r\n }\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\r\n return (\r\n <>\r\n {items && items.length > 0\r\n ? items.map((item: React.ReactNode, index: number) => {\r\n return {item};\r\n })\r\n : null}\r\n \r\n );\r\n};\r\nexport default AccordionItemView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountLoyaltyViewProps } from '@msdyn365-commerce-modules/account-management/src/modules/account-loyalty/./account-loyalty';\r\nimport {IAccountLoyaltyProps, IAccountLoyaltyResources} from '../definition-extensions/account-loyalty.ext.props.autogenerated';\r\n\r\nconst AccountLoyaltyView: React.FC> = props => {\r\n\r\n const { AccountLoyalty, Info, Points, Button, heading, infoLabel, cardNumber, /*joinDate,*/ pointsLabel, points, homeButton, pointsModal, resources } = props;\r\n const { ModalBodyTop, ModalBodyHeaders } = pointsModal;\r\n return (\r\n \r\n {heading}\r\n \r\n {infoLabel}\r\n {cardNumber}\r\n {/*joinDate*/}\r\n \r\n \r\n {pointsLabel}\r\n {points}\r\n\r\n \r\n

\r\n \r\n \r\n {homeButton}\r\n \r\n\r\n {!pointsModal.isOpen &&\r\n ||\r\n \r\n\r\n \r\n {pointsModal.modalHeader}\r\n \r\n \r\n \r\n {pointsModal.pointsDescription}\r\n {pointsModal.totalPoints}\r\n \r\n \r\n {pointsModal.date}\r\n {pointsModal.balanceLabel}\r\n \r\n {pointsModal.rewardPointsActivity && pointsModal.rewardPointsActivity.map((activity, index) => {\r\n const { Activity, activityType, activityDate, activityPoints } = activity;\r\n return (\r\n \r\n {activityType}\r\n {activityDate}\r\n {activityPoints}\r\n \r\n );\r\n })}\r\n \r\n }\r\n \r\n );\r\n};\r\n\r\nexport default AccountLoyaltyView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAddressAddItem, IAddressAddUpdateProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-add';\r\nimport { IAddressList, IAddressListItem, IAddressListProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-list';\r\nimport { IAddressShowItem, IAddressShowProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/../../common/components/address-show';\r\nimport { IAccountManagementAddressViewProps } from '@msdyn365-commerce-modules/address/src/modules/account-management-address/./account-management-address';\r\n\r\ninterface IAddressListExtended extends IAddressList {\r\n classNameExtended: string;\r\n}\r\n\r\n/**\r\n * Address show component.\r\n * @param param0 - Root param.\r\n * @param param0.AddressDetail - Address detail.\r\n * @param param0.items - IAddressShowItem[].\r\n * @returns - Address Node.\r\n */\r\nconst AddressShow: React.FC = ({\r\n AddressDetail,\r\n items\r\n}) => {\r\n\r\n return (\r\n \r\n {items.map((item: IAddressShowItem) => {\r\n return (\r\n <>\r\n {item.description}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Address List Component.\r\n * @param param0 - Root param.\r\n * @param param0.List - Address list.\r\n * @param param0.isShowList - Boolean.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressListItem[].\r\n * @returns - AddressListComponent Node.\r\n */\r\nconst AddressList: React.FC = ({\r\n List,\r\n isShowList,\r\n heading,\r\n items,\r\n classNameExtended\r\n}) => {\r\n\r\n if (!isShowList) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {items.length ? : null}\r\n \r\n {heading}\r\n {items.map((item: IAddressListItem) => {\r\n const { Item, key, error, showItems, isShowPrimaryButton, primaryButton, editButton, removeButton } = item;\r\n const { Error, isShowError, title, message } = error;\r\n return (\r\n \r\n {isShowError && \r\n {title}\r\n {message}\r\n }\r\n {isShowPrimaryButton && primaryButton}\r\n {editButton}\r\n {removeButton}\r\n );\r\n })}\r\n \r\n \r\n\r\n );\r\n};\r\n\r\n/**\r\n * Address Lists Component.\r\n * @param param0 - Root param.\r\n * @param param0.ListAddress - List address.\r\n * @param param0.heading - List heading.\r\n * @param param0.isShowEmptyListMessage - Boolean.\r\n * @param param0.emptyListMessage - Empty list message.\r\n * @param param0.addButton - Add button.\r\n * @param param0.primaryAddressList - Primary address.\r\n * @param param0.otherAddressList - Other address.\r\n * @returns Address Lists Component Node.\r\n */\r\nconst AddressLists: React.FC = ({\r\n ListAddress,\r\n heading,\r\n isShowEmptyListMessage,\r\n emptyListMessage,\r\n addButton,\r\n primaryAddressList,\r\n otherAddressList\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {isShowEmptyListMessage && emptyListMessage}\r\n {addButton}\r\n {/**/}\r\n \r\n {/**/}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * AddressAddUpdateComponent.\r\n * @param param0 - Root param.\r\n * @param param0.AddressForm - Address form.\r\n * @param param0.heading - Address heading.\r\n * @param param0.items - IAddressAddItem[].\r\n * @param param0.hasError - Boolean.\r\n * @param param0.error - Error message.\r\n * @param param0.isShowSaveButton - Boolean.\r\n * @param param0.saveButton - Save button.\r\n * @param param0.isShowCancelButton - Boolean.\r\n * @param param0.cancelButton - Cancel button.\r\n * @returns Address add update component node.\r\n */\r\nconst AddressAddUpdate: React.FC = ({\r\n AddressForm,\r\n heading,\r\n items,\r\n hasError,\r\n error,\r\n isShowSaveButton,\r\n saveButton,\r\n isShowCancelButton,\r\n cancelButton\r\n}) => {\r\n\r\n return (\r\n \r\n {heading}\r\n {items.map((item: IAddressAddItem) => {\r\n const { AddressItem, key, label, alert, input } = item;\r\n return (\r\n {label}\r\n {alert}\r\n {input}\r\n );\r\n })}\r\n {hasError && \r\n {error.title}\r\n {error.message}\r\n }\r\n {isShowSaveButton && saveButton}\r\n {isShowCancelButton && cancelButton}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Account Management Address View Component.\r\n * @param props - Props.\r\n * @returns - AccountAddressManagement Module.\r\n */\r\nconst AccountManagementAddressView: React.FC = props => {\r\n const { AccountAddressManagement, viewState, showAddressList, showAddOrUpdateAddress, screenReaderNotification } = props;\r\n\r\n return (\r\n \r\n {viewState.isShowAddresList && }\r\n {viewState.isShowAddOrUpdateAddress && }\r\n {screenReaderNotification}\r\n \r\n );\r\n};\r\n\r\nexport default AccountManagementAddressView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICartIconViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart-icon/./cart-icon';\r\nimport { IFlyoutCartLineItemViewProps } from '@msdyn365-commerce-modules/cart/src/modules/cart-icon/./components/flyout-cart-line-items';\r\n//import { useEffect } from 'react';\r\nimport { ICartIconProps as ICartIconExtensionProps } from '../definition-extensions/cart-icon.ext.props.autogenerated';\r\n\r\nconst _renderCartlines = (cartLines: IFlyoutCartLineItemViewProps[] | undefined, props: ICartIconViewProps): JSX.Element[] | null => {\r\n if (!cartLines) {\r\n props.context.telemetry.error('Cartlines content is empty, module wont render');\r\n return null;\r\n }\r\n return cartLines.map((cartLine, index) => {\r\n return (\r\n \r\n {cartLine.cartline}\r\n {cartLine.storeLocation}\r\n {/* {cartLine.remove} */}\r\n {React.cloneElement(cartLine.remove as React.ReactElement, { 'data-article-number': cartLine.data?.product?.ItemId })}\r\n \r\n );\r\n });\r\n};\r\n\r\nconst CartIconView: React.FC> = props => {\r\n return (\r\n \r\n {props.cartIcon}\r\n {props.FlyoutContainer ? (\r\n \r\n {props.flyoutTitle}\r\n {props.checkoutBlockedDueToUnavailableFunds}\r\n {_renderCartlines(props.cartlines, props)}\r\n {props.totalPrice}\r\n {props.checkoutAsSignInUserButton}\r\n {/* {props.checkoutAsGuestButton} */}\r\n {props.goToCartButton}\r\n \r\n ) : (\r\n false\r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default CartIconView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport React, { ReactNode } from 'react';\r\n\r\nimport { IFooterCategoryViewProps } from '@msdyn365-commerce-modules/footer/src/modules/footer-category/./footer-category';\r\nimport msdyn365Commerce from '@msdyn365-commerce/core-internal';\r\nimport { noop } from 'lodash';\r\n\r\nexport const FooterCategoryView: React.FC = props => {\r\n const { categories, FooterList, FooterListItem } = props;\r\n if (!categories || categories.length === 0) {\r\n props.context.telemetry.error('Footer content is empty, module wont render');\r\n return null;\r\n }\r\n \r\n React.useEffect(() => {\r\n if (msdyn365Commerce.isBrowser && document.URL.includes(\"b2clogin.com\")){\r\n function getCookie(cname:string) {\r\n var name = cname + \"=\";\r\n var ca = document.cookie.split(';');\r\n for(var i=0; i -1 )|| backnum == \"\"){\r\n noop;\r\n } else {\r\n const here = document.URL;\r\n const last = getCookie(\"lastURL\");\r\n count = parseInt(backnum);\r\n if (last == here || last == \"\"){\r\n setCookie(\"lastURL\", here);\r\n } else {\r\n count++;\r\n }\r\n }\r\n setCookie(\"backnum\",count);\r\n let el = document.querySelector('.change-country-link a');\r\n if (el){\r\n el.href = \"javascript:history.go(-\" + count +\")\";\r\n }\r\n }\r\n }\r\n }, []);\r\n\r\n\r\n \r\n\r\n\r\n return (\r\n \r\n { categories.map((category: ReactNode, index: number) => {\r\n return (\r\n \r\n {category}\r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nexport default FooterCategoryView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport {\r\n ICategoryHierarchyViewProps,\r\n IRefineMenuViewProps,\r\n ISearchResultContainerViewProps,\r\n ISearchResultModalViewProps,\r\n ISortByViewProps,\r\n ITitleViewProps\r\n} from '@msdyn365-commerce-modules/search-result-container';\r\nimport {\r\n Module,\r\n Node,\r\n LabeledDropdown,\r\n ILabeledDropdownOption,\r\n ILabeledDropdownOnChangeNotification\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport { ProductRefinerValue, SortColumn } from '@msdyn365-commerce/retail-proxy';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport * as React from 'react';\r\nimport MsDyn365, { IRequestContext } from '@msdyn365-commerce/core';\r\nimport { transaction } from 'mobx';\r\nimport { useEffect } from 'react';\r\n\r\nconst SearchResultContainerView: React.FC = (props: {\r\n context?: any;\r\n resources?: any;\r\n data?: any;\r\n telemetry?: any;\r\n SearchResultContainer?: any;\r\n products?: any;\r\n pagination?: any;\r\n ProductsContainer?: any;\r\n ProductSectionContainer?: any;\r\n choiceSummary?: any;\r\n isMobile?: any;\r\n modalToggle?: any;\r\n searchResultModal?: any;\r\n TitleViewProps?: any;\r\n refineMenu?: any;\r\n categoryHierarchy?: any;\r\n CategoryNavContainer?: any;\r\n RefineAndProductSectionContainer?: any;\r\n errorMessage?: any;\r\n FeatureSearchContainer?: any;\r\n similarLookProduct?: any;\r\n}) => {\r\n const {\r\n SearchResultContainer,\r\n products,\r\n pagination,\r\n ProductsContainer,\r\n ProductSectionContainer,\r\n choiceSummary,\r\n isMobile,\r\n modalToggle,\r\n searchResultModal,\r\n TitleViewProps,\r\n refineMenu,\r\n categoryHierarchy,\r\n CategoryNavContainer,\r\n RefineAndProductSectionContainer,\r\n errorMessage,\r\n FeatureSearchContainer,\r\n similarLookProduct\r\n } = props;\r\n const isRecoSearchPage = props.context.actionContext.requestContext.query?.recommendation;\r\n\r\n const newOptions: ILabeledDropdownOption[] = [\r\n { key: 'Ranking-Desc', value: props.resources.sortByOptionRelevanceDesc },\r\n { key: 'BestSelling', value: props.resources.sortByOptionBestSelling },\r\n { key: 'NewScore', value: props.resources.sortByOptionNewScore }\r\n ];\r\n\r\n const parseQueryParam = (key: string, requestContext: IRequestContext): SortColumn[] | null => {\r\n if (requestContext.query && requestContext.query[key]) {\r\n return JSON.parse(decodeURIComponent(requestContext.query[key]));\r\n }\r\n return null;\r\n };\r\n\r\n useEffect(() => {\r\n swatchDisable();\r\n });\r\n\r\n let _sortAndFilterContainerRef: React.RefObject = React.createRef();\r\n\r\n let _getSortCriteriaColumn = (): SortColumn | undefined => {\r\n const sortCriteria = props.data.listPageState.result?.sortingCritera;\r\n if (ArrayExtensions.hasElements(sortCriteria?.Columns)) {\r\n return sortCriteria!.Columns[0];\r\n }\r\n\r\n const queryColumns = parseQueryParam('sorting', props.context.request);\r\n if (ArrayExtensions.hasElements(queryColumns)) {\r\n return queryColumns[0];\r\n }\r\n\r\n return undefined;\r\n };\r\n\r\n let _getCurrentlySelectedOption = (): ILabeledDropdownOption | undefined => {\r\n const activeSortColumn = _getSortCriteriaColumn();\r\n\r\n const searchConfiguration = props.data.searchConfiguration.result;\r\n\r\n if (!activeSortColumn || !searchConfiguration) {\r\n return undefined;\r\n }\r\n\r\n const activeMappedConfig = searchConfiguration.find(\r\n (mappedSearchConfig: { sortColumn: { ColumnName: string | undefined; IsDescending: boolean | undefined } }) =>\r\n mappedSearchConfig.sortColumn.ColumnName === activeSortColumn.ColumnName &&\r\n mappedSearchConfig.sortColumn.IsDescending === activeSortColumn.IsDescending\r\n );\r\n if (!activeMappedConfig) {\r\n return undefined;\r\n }\r\n\r\n return newOptions.find(dropdownOption => dropdownOption.key === activeMappedConfig.key);\r\n };\r\n\r\n const compressRefiners = (refiners: ProductRefinerValue[]) => {\r\n const compressedRefiners: (string | number)[][] = [];\r\n\r\n refiners.forEach(refiner => {\r\n const compressedRefiner: (string | number)[] = [];\r\n const compressedRefinerKeys = [\r\n 'DataTypeValue',\r\n 'LeftValueBoundString',\r\n 'RefinerRecordId',\r\n 'RefinerSourceValue',\r\n 'RightValueBoundString',\r\n 'UnitText'\r\n ];\r\n compressedRefinerKeys.forEach(refinerKey => {\r\n compressedRefiner.push(refiner[refinerKey]);\r\n });\r\n compressedRefiners.push(compressedRefiner);\r\n });\r\n\r\n return compressedRefiners;\r\n };\r\n\r\n const buildListPageUrl = (fullUrl: URL, refiners?: ProductRefinerValue[], sortingColumns?: SortColumn[], skipCount?: number) => {\r\n // Refiner Change flow\r\n if (refiners !== undefined) {\r\n if (refiners.length === 0) {\r\n fullUrl.searchParams.delete('refiners');\r\n } else {\r\n const sortedRefiners = refiners.sort((first, second) =>\r\n first.RefinerRecordId && second.RefinerRecordId && first.RefinerRecordId > second.RefinerRecordId ? 1 : -1\r\n );\r\n fullUrl.searchParams.set('refiners', JSON.stringify(compressRefiners(sortedRefiners)));\r\n }\r\n\r\n // Adding or removing a refiner means we want to always load page 1\r\n fullUrl.searchParams.delete('skip');\r\n return fullUrl.href;\r\n }\r\n\r\n if (sortingColumns !== undefined) {\r\n if (sortingColumns.length === 0) {\r\n fullUrl.searchParams.delete('sorting');\r\n } else {\r\n fullUrl.searchParams.set('sorting', JSON.stringify(sortingColumns));\r\n }\r\n\r\n // Changing the sort means always load page 1\r\n fullUrl.searchParams.delete('skip');\r\n return fullUrl.href;\r\n }\r\n\r\n if (skipCount) {\r\n fullUrl.searchParams.set('skip', skipCount.toString());\r\n }\r\n\r\n return fullUrl.href;\r\n };\r\n\r\n const getCurrentUrl = (requestContext: IRequestContext): URL => {\r\n if (MsDyn365.isBrowser) {\r\n return new URL(window.location.href);\r\n }\r\n\r\n // NOTE: Typing on requestURL is incorrect\r\n //@ts-ignore\r\n if (requestContext.url.requestUrl.href) {\r\n //@ts-ignore\r\n return new URL(requestContext.url.requestUrl.href);\r\n }\r\n // @ts-ignore\r\n return new URL(requestContext.url.requestUrl);\r\n };\r\n\r\n const _updateSortByDropdown = (notification: ILabeledDropdownOnChangeNotification): void => {\r\n const { context } = props;\r\n const requestContext = context && context.request;\r\n const actionContext = context && context.actionContext;\r\n\r\n if (!requestContext || !actionContext || !props.data.listPageState.result) {\r\n const error = `[sort-by-category] cannot sort without context: ${!requestContext ? 'requestContext ' : ''} ${\r\n !actionContext ? 'actionContext ' : ''\r\n } could not be found`;\r\n props.telemetry.warning(error);\r\n }\r\n\r\n window.history.pushState(\r\n {},\r\n '',\r\n buildListPageUrl(\r\n getCurrentUrl(props.context.request),\r\n undefined,\r\n [_getSortColumnFromSelectedOption(notification.selectedOption)],\r\n undefined\r\n )\r\n );\r\n transaction(() => {\r\n props.data.listPageState.result!.currentPageNumber = 0;\r\n props.data.listPageState.result!.sortingCritera = { Columns: [_getSortColumnFromSelectedOption(notification.selectedOption)] };\r\n });\r\n };\r\n\r\n const _getSortColumnFromSelectedOption = (option: ILabeledDropdownOption): SortColumn => {\r\n const { data } = props;\r\n if (!data.searchConfiguration.result) {\r\n return {};\r\n }\r\n const mappedConfiguration = data.searchConfiguration.result.find((searchConfiguration: { key: string }) => {\r\n return searchConfiguration.key === option.key;\r\n });\r\n if (mappedConfiguration) {\r\n return mappedConfiguration.sortColumn;\r\n }\r\n return {};\r\n };\r\n\r\n let state = {\r\n pending: false,\r\n selectedSortByOption: newOptions[0]\r\n };\r\n\r\n const activeDropdown = _getCurrentlySelectedOption() || state.selectedSortByOption;\r\n\r\n const newdd = (\r\n \r\n );\r\n\r\n // props.data.listPageState;\r\n let newSortOptions: ISortByViewProps = {\r\n SortingContainer: { className: 'ms-search-result-container__Sort-by-category' },\r\n sortByDropDown: newdd\r\n };\r\n\r\n const swatchDisable = () => {\r\n if (document) {\r\n const _strikeSVG =\r\n 'data:image/svg+xml;utf8,' +\r\n \"\" +\r\n \"\";\r\n\r\n /* Task 1217 & 1312 */\r\n const imgCollect = document.querySelectorAll('img.msc-swatch-container__item__image');\r\n\r\n if (imgCollect.length > 0) {\r\n imgCollect.forEach(node => {\r\n if (node.classList.contains('msc-swatch-container__item__disabled')) {\r\n const thisColour = node.src;\r\n node.src = _strikeSVG;\r\n node.style.backgroundImage = node.style.backgroundImage = \"url('\" + thisColour + \"')\";\r\n if (isMobile) {\r\n node.style.maxWidth = '20px';\r\n } else {\r\n node.style.maxWidth = '30px';\r\n }\r\n }\r\n });\r\n }\r\n }\r\n };\r\n\r\n if (isMobile) {\r\n return (\r\n \r\n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\r\n {renderTitle(TitleViewProps)}\r\n {choiceSummary}\r\n {modalToggle}\r\n {createSearchResultModal(searchResultModal, refineMenu, newSortOptions, isRecoSearchPage)}\r\n {similarLookProduct}\r\n \r\n {errorMessage}\r\n {products}\r\n \r\n {pagination}\r\n \r\n );\r\n }\r\n return (\r\n \r\n {categoryHierarchy && {renderCategoryHierarchy(categoryHierarchy)}}\r\n \r\n {refineMenu && renderRefiner(refineMenu)}\r\n \r\n {similarLookProduct}\r\n

\r\n {TitleViewProps && renderTitle(TitleViewProps)}\r\n {choiceSummary}\r\n
\r\n
\r\n {newSortOptions && !isRecoSearchPage && renderSort(newSortOptions)}\r\n
\r\n \r\n {errorMessage}\r\n {products}\r\n \r\n {pagination}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst createSearchResultModal = (\r\n modalProps: ISearchResultModalViewProps,\r\n refineMenu: IRefineMenuViewProps,\r\n sortByDropDown: ISortByViewProps,\r\n isRecoSearchPage?: string\r\n): JSX.Element => {\r\n return React.cloneElement(\r\n modalProps.modal,\r\n {},\r\n modalProps.modalHeader,\r\n createModalBody(modalProps, refineMenu, sortByDropDown, isRecoSearchPage),\r\n modalProps.modalFooter\r\n );\r\n};\r\n\r\nconst createModalBody = (\r\n props: ISearchResultModalViewProps,\r\n refineMenu: IRefineMenuViewProps,\r\n sortByDropDown: ISortByViewProps,\r\n isRecoSearchPage?: string\r\n): JSX.Element | null => {\r\n if (sortByDropDown) {\r\n return React.cloneElement(props.modalBody, {}, renderSort(sortByDropDown, isRecoSearchPage), renderRefiner(refineMenu));\r\n }\r\n return null;\r\n};\r\n\r\nconst renderRefiner = (props: IRefineMenuViewProps): JSX.Element | null => {\r\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\r\n if (refiners) {\r\n return (\r\n \r\n \r\n {refiners.map((submenu, index) => (\r\n {submenu}\r\n ))}\r\n \r\n \r\n );\r\n }\r\n return null;\r\n};\r\n\r\nconst renderSort = (props: ISortByViewProps, isRecoSearchPage?: string): JSX.Element | null => {\r\n const { SortingContainer, sortByDropDown } = props;\r\n if (sortByDropDown && !isRecoSearchPage) {\r\n return {sortByDropDown};\r\n }\r\n return null;\r\n};\r\n\r\nconst renderCategoryHierarchy = (props: ICategoryHierarchyViewProps): JSX.Element | null => {\r\n const { CategoryHierarchyContainer, categoryHierarchyList, categoryHierarchySeparator } = props;\r\n if (categoryHierarchyList) {\r\n return (\r\n \r\n {categoryHierarchyList.map((category, index) => (\r\n \r\n {category}\r\n {categoryHierarchyList && categoryHierarchyList[index + 1] && categoryHierarchySeparator}\r\n \r\n ))}\r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst renderTitle = (props: ITitleViewProps): JSX.Element | null => {\r\n const { title, TitleContainer } = props;\r\n if (title) {\r\n return (\r\n \r\n

\r\n {title.titlePrefix}\r\n {title.titleText}({title.titleCount})\r\n

\r\n
\r\n );\r\n }\r\n return null;\r\n};\r\n\r\nexport default SearchResultContainerView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IVideoPlayerAdditionalContentViewProps } from '@msdyn365-commerce-modules/video-player/src/modules/video-player/./components/additional-content';\r\nimport { IVideoPlayerViewProps } from '@msdyn365-commerce-modules/video-player/src/modules/video-player/./video-player';\r\nimport {\r\n IVideoPlayerProps as IVideoPlayerViewExtensionProps\r\n } from '../definition-extensions/video-player.ext.props.autogenerated';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IVideoPlayerAdditionalContentViewProps) => {\r\n if (additionalContent.additionalContentItems) {\r\n return (\r\n \r\n <>\r\n {additionalContent.additionalContentItems.heading}\r\n \r\n {additionalContent.additionalContentItems.text}\r\n \r\n {additionalContent.additionalContentItems.links}\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n\r\n return null;\r\n};\r\n\r\nconst VideoPlayerView: React.FC> = props => {\r\n const [yPosition, setYPosition] = React.useState(0);\r\n\r\n React.useEffect(() => {\r\n const onScroll = () => setYPosition(window.pageYOffset);\r\n window.removeEventListener('scroll', onScroll);\r\n window.addEventListener('scroll', onScroll, { passive: true });\r\n return () => window.removeEventListener('scroll', onScroll);\r\n });\r\n \r\n const scrollDownClickHandler = (id: string) => {\r\n const element = document.getElementById(id);\r\n const header = document.getElementsByTagName('header').item(0);\r\n const videoPlayerHeight = element ? element.clientHeight : 0;\r\n const headerHeight = header ? header.clientHeight : 0;\r\n return window.scrollTo(0, headerHeight+videoPlayerHeight) ;\r\n }\r\n return (\r\n \r\n {props.player}\r\n \r\n {props.title}\r\n {props.text}\r\n {props.additionalContent && renderAdditionalContent(props.additionalContent)}\r\n \r\n {props.links}\r\n \r\n \r\n \r\n {props.config.showScrollDownButton && yPosition <= 0 &&
scrollDownClickHandler(props.id)}>{props.resources.scrollDownButton}
}\r\n \r\n );\r\n};\r\n\r\nexport default VideoPlayerView;\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 { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileViewProps } from './account-customer-balance-tile';\n\nconst AccountCustomerBalanceTileView: React.FC = props => {\n const { AccountCustomerBalanceTile, heading, content, links } = props;\n\n return (\n \n {heading}\n {content}\n {links}\n \n );\n};\n\nexport default AccountCustomerBalanceTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\n
\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountCustomerBalanceTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-customer-balance-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountCustomerBalanceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly requestStatementButtonRef: React.RefObject = React.createRef();\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 this.requestStatementButtonRef.current?.focus();\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 this.requestStatementButtonRef.current?.focus();\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 buttonReference?: React.RefObject;\n requestStatementButtonLabel: string;\n onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n promoteToSellerLabel?: string;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n onPromoteToSeller?(): void;\n}\n\nexport const ActionBar: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n buttonReference\n}) => {\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n onPromoteToSeller,\n promoteToSellerLabel,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const onSelectPromoteToSeller = React.useCallback(() => {\n onPromoteToSeller?.();\n }, [onPromoteToSeller]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n {promoteToSellerLabel && (\n \n {promoteToSellerLabel}\n \n )}\n \n
\n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\n \n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

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

{description}

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

{description}

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

{description}

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

{description}

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

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, 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 MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

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

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

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

{props.resources.emptyCartText}

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

\n

{groupTitle}

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

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

\n ) : null}\n

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

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IImageListConfig, IImageListProps, IImagesData } from './image-list.props.autogenerated';\n\n/**\n * The interface for IImageListViewProps.\n */\nexport interface IImageListViewProps extends IImageListProps {\n imageList: IModuleProps;\n imageListHeading?: React.ReactNode;\n imageListContainer: INodeProps;\n imageListItem: INodeProps;\n imageListItemAnchorTag: INodeProps;\n imageListItems: IImageListItem[] | undefined;\n}\n\n/**\n * The interface for IImageListItem.\n */\nexport interface IImageListItem {\n image: JSX.Element | undefined;\n text: JSX.Element | undefined;\n link: string | undefined;\n linkAltText: string | undefined;\n linkAriaLabel: string | undefined;\n linkOpenInNewTab?: boolean;\n}\n\n/**\n *\n * ImageList component.\n * @extends {React.PureComponent>}\n */\nclass ImageList extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { heading } = this.props.config;\n const imageListTitle = heading && ;\n const viewProps: IImageListViewProps = {\n ...this.props,\n imageList: {\n moduleProps: this.props,\n className: classnames('ms-image-list', this.props.config.className),\n tag: 'div'\n },\n imageListHeading: imageListTitle,\n imageListContainer: {\n className: 'ms-image-list__list',\n role: 'list',\n tag: 'ul'\n },\n imageListItem: {\n className: 'ms-image-list__list-item',\n role: 'listitem',\n tag: 'li'\n },\n imageListItemAnchorTag: {\n tag: 'a',\n className: 'ms-image-list__link',\n role: 'link'\n },\n imageListItems: this._renderImageListItems()\n };\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle paragraph change.\n * @param index - Index of image item in array of image items.\n * @returns Void.\n */\n public handleParagraphChange = (index: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.images![index]) {\n this.props.config.images![index].paragraph = event.target.value;\n }\n };\n\n /**\n * Render list of images.\n * @returns List of images with text and redirection link.\n */\n private readonly _renderImageListItems = (): IImageListItem[] | undefined => {\n const imageList: IImagesData[] | undefined = this.props.config.images;\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n lg: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 },\n xl: { q: 'w=65&h=65&q=80&m=6', w: 65, h: 65 }\n },\n lazyload: false,\n disableLazyLoad: true\n };\n return imageList?.map((item, index) => {\n const { image, link, paragraph } = item;\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: (image?.imageSettings ?? defaultImageSettings) as Msdyn365.IImageSettings | undefined\n };\n\n const imageLink: string | undefined = link?.linkUrl.destinationUrl;\n const imageLinkText: string | undefined = link?.linkText ?? link?.ariaLabel;\n const imageLinkAriaLabel: string | undefined = link?.ariaLabel;\n const imageLinkOpenInNewTab = link?.openInNewTab;\n\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\n const imageImage = (\n \n );\n\n const imageText = paragraph && (\n \n );\n const imageListItem: IImageListItem = {\n image: imageImage,\n text: imageText,\n link: imageLink,\n linkAltText: imageLinkText,\n linkAriaLabel: imageLinkAriaLabel,\n linkOpenInNewTab: imageLinkOpenInNewTab\n };\n return imageListItem;\n });\n };\n}\n\nexport default ImageList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IImageListViewProps } from './image-list';\n\n/**\n * Render the thumbnail item images.\n * @param props - The image list view props.\n * @returns Return HTML having IImageListViewProps props with image List.\n */\nexport const imageListView = (props: IImageListViewProps): JSX.Element => {\n const { imageList, imageListContainer, imageListHeading, imageListItem, imageListItems, imageListItemAnchorTag } = props;\n return (\n \n {imageListHeading}\n \n {imageListItems?.map(item => {\n let indexKey: string;\n\n if (item.image) {\n const image = (item.image as unknown) as Msdyn365.Image;\n indexKey = image.props.src as string;\n } else {\n const text = (item.text as unknown) as Msdyn365.RichTextComponent;\n indexKey = text.props.text as string;\n }\n return (\n \n {item.image && (\n \n {item.image}\n \n )}\n {item.text}\n \n );\n })}\n \n \n );\n};\n\nexport default imageListView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n getTelemetryObject,\n IComponentNodeProps,\n IModuleProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureCollectionProps } from './interactive-feature-collection.props.autogenerated';\n\n/**\n * Interactive Feature Collection view props.\n */\nexport interface IInteractiveFeatureCollectionViewProps extends IInteractiveFeatureCollectionProps<{}> {\n title: React.ReactNode;\n interactiveFeatureCollectionHeading: INodeProps;\n interactiveFeatureCollectionContainer: IModuleProps;\n interactiveFeatureCollectionDesktopContainer: INodeProps;\n interactiveFeatureCollectionDesktopItems: React.ReactNode[];\n interactiveFeatureCollectionMobileContainer: INodeProps;\n interactiveFeatureCollectionMobileItems: React.ReactNode[];\n singleSlideCarouselComponentProps: INodeProps;\n singleSlideCarouselItemContainer: INodeProps;\n}\n\n/**\n *\n * InteractiveFeatureCollection component.\n * @extends {React.PureComponent>}\n */\nexport class InteractiveFeatureCollection extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n private static _getFeatureItem(item: React.ReactNode, index: number, itemsCounter: number): React.ReactNode {\n const keyIndex = `interactive-feature-mosaic-item__${index}`;\n return (\n \n {React.cloneElement(item as React.ReactElement, { indexItem: index, itemCounter: itemsCounter, isMosaic: true })}\n \n );\n }\n\n public constructor(props: IInteractiveFeatureCollectionProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const interactiveItems = this.props.slots && this.props.slots.interactiveFeatureItems;\n const itemsFeatureCounter = interactiveItems && interactiveItems.length;\n const singleSlideCarouselComponentProps: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n const initItemsFeatureCounter = 0;\n const createHeading = title && (\n \n );\n const viewProps = {\n ...this.props,\n title: createHeading,\n interactiveFeatureCollectionHeading: {\n className: 'ms-interactive-feature-collection__heading'\n },\n interactiveFeatureCollectionContainer: {\n moduleProps: this.props,\n className: classnames('ms-interactive-feature-collection', className)\n },\n interactiveFeatureCollectionDesktopContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-desktop'\n },\n interactiveFeatureCollectionMobileContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mobile'\n },\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel',\n role: 'listitem'\n },\n interactiveFeatureCollectionMobileItems: this.props.slots.interactiveFeatureItems,\n interactiveFeatureCollectionDesktopItems:\n itemsFeatureCounter > initItemsFeatureCounter &&\n interactiveItems.map((item: React.ReactNode, index: number) =>\n InteractiveFeatureCollection._getFeatureItem(item, index, itemsFeatureCounter)\n )\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.title!.text = event.target.value);\n}\n\nexport default InteractiveFeatureCollection;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { IInteractiveFeatureCollectionViewProps } from './interactive-feature-collection';\n\n/**\n * Feature Collection View.\n * @param props - Feature Collection view props.\n * @returns Feature Collection View.\n */\nexport const interactiveFeatureCollectionView: React.FC = props => {\n const {\n title,\n interactiveFeatureCollectionHeading,\n interactiveFeatureCollectionContainer,\n interactiveFeatureCollectionDesktopContainer,\n interactiveFeatureCollectionDesktopItems,\n interactiveFeatureCollectionMobileItems,\n interactiveFeatureCollectionMobileContainer,\n singleSlideCarouselComponentProps,\n singleSlideCarouselItemContainer\n } = props;\n return (\n \n {title}\n {interactiveFeatureCollectionDesktopItems}\n \n \n {interactiveFeatureCollectionMobileItems &&\n interactiveFeatureCollectionMobileItems.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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","var hashClear = require('./_hashClear'),\n hashDelete = require('./_hashDelete'),\n hashGet = require('./_hashGet'),\n hashHas = require('./_hashHas'),\n hashSet = require('./_hashSet');\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\nmodule.exports = Hash;\n","var listCacheClear = require('./_listCacheClear'),\n listCacheDelete = require('./_listCacheDelete'),\n listCacheGet = require('./_listCacheGet'),\n listCacheHas = require('./_listCacheHas'),\n listCacheSet = require('./_listCacheSet');\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\nmodule.exports = ListCache;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Map = getNative(root, 'Map');\n\nmodule.exports = Map;\n","var mapCacheClear = require('./_mapCacheClear'),\n mapCacheDelete = require('./_mapCacheDelete'),\n mapCacheGet = require('./_mapCacheGet'),\n mapCacheHas = require('./_mapCacheHas'),\n mapCacheSet = require('./_mapCacheSet');\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\nmodule.exports = MapCache;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","/**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\nfunction arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n}\n\nmodule.exports = arrayMap;\n","var eq = require('./eq');\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\nmodule.exports = assocIndexOf;\n","var castPath = require('./_castPath'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\nfunction baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n}\n\nmodule.exports = baseGet;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","var isFunction = require('./isFunction'),\n isMasked = require('./_isMasked'),\n isObject = require('./isObject'),\n toSource = require('./_toSource');\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\nmodule.exports = baseIsNative;\n","var Symbol = require('./_Symbol'),\n arrayMap = require('./_arrayMap'),\n isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n/**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = baseToString;\n","var isArray = require('./isArray'),\n isKey = require('./_isKey'),\n stringToPath = require('./_stringToPath'),\n toString = require('./toString');\n\n/**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\nfunction castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n}\n\nmodule.exports = castPath;\n","var root = require('./_root');\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\nmodule.exports = coreJsData;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var isKeyable = require('./_isKeyable');\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\nmodule.exports = getMapData;\n","var baseIsNative = require('./_baseIsNative'),\n getValue = require('./_getValue');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\nmodule.exports = getValue;\n","var nativeCreate = require('./_nativeCreate');\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n}\n\nmodule.exports = hashClear;\n","/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = hashDelete;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\nmodule.exports = hashGet;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n}\n\nmodule.exports = hashHas;\n","var nativeCreate = require('./_nativeCreate');\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\nmodule.exports = hashSet;\n","var isArray = require('./isArray'),\n isSymbol = require('./isSymbol');\n\n/** Used to match property names within property paths. */\nvar reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/;\n\n/**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\nfunction isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n}\n\nmodule.exports = isKey;\n","/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\nmodule.exports = isKeyable;\n","var coreJsData = require('./_coreJsData');\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\nmodule.exports = isMasked;\n","/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n}\n\nmodule.exports = listCacheClear;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype;\n\n/** Built-in value references. */\nvar splice = arrayProto.splice;\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n}\n\nmodule.exports = listCacheDelete;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\nmodule.exports = listCacheGet;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\nmodule.exports = listCacheHas;\n","var assocIndexOf = require('./_assocIndexOf');\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\nmodule.exports = listCacheSet;\n","var Hash = require('./_Hash'),\n ListCache = require('./_ListCache'),\n Map = require('./_Map');\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\nmodule.exports = mapCacheClear;\n","var getMapData = require('./_getMapData');\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n}\n\nmodule.exports = mapCacheDelete;\n","var getMapData = require('./_getMapData');\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\nmodule.exports = mapCacheGet;\n","var getMapData = require('./_getMapData');\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\nmodule.exports = mapCacheHas;\n","var getMapData = require('./_getMapData');\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n}\n\nmodule.exports = mapCacheSet;\n","var memoize = require('./memoize');\n\n/** Used as the maximum memoize cache size. */\nvar MAX_MEMOIZE_SIZE = 500;\n\n/**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\nfunction memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n}\n\nmodule.exports = memoizeCapped;\n","var getNative = require('./_getNative');\n\n/* Built-in method references that are verified to be native. */\nvar nativeCreate = getNative(Object, 'create');\n\nmodule.exports = nativeCreate;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var memoizeCapped = require('./_memoizeCapped');\n\n/** Used to match property names within property paths. */\nvar rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n/** Used to match backslashes in property paths. */\nvar reEscapeChar = /\\\\(\\\\)?/g;\n\n/**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\nvar stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n});\n\nmodule.exports = stringToPath;\n","var isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar INFINITY = 1 / 0;\n\n/**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\nfunction toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n}\n\nmodule.exports = toKey;\n","/** Used for built-in method references. */\nvar funcProto = Function.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\nmodule.exports = toSource;\n","/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\nmodule.exports = eq;\n","var baseGet = require('./_baseGet');\n\n/**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\nfunction get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n}\n\nmodule.exports = get;\n","/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\nmodule.exports = isArray;\n","var baseGetTag = require('./_baseGetTag'),\n isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar asyncTag = '[object AsyncFunction]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n proxyTag = '[object Proxy]';\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n}\n\nmodule.exports = isFunction;\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var MapCache = require('./_MapCache');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\nfunction memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n}\n\n// Expose `MapCache`.\nmemoize.Cache = MapCache;\n\nmodule.exports = memoize;\n","var baseToString = require('./_baseToString');\n\n/**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\nfunction toString(value) {\n return value == null ? '' : baseToString(value);\n}\n\nmodule.exports = toString;\n"],"names":["CookieComplianceAcceptButton","_ref","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","telemetryContent","onClose","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","Object","assign","type","className","onClick","CookieComplianceLinks","constructor","_mapEditableLinks","linkdata","length","editableLinks","forEach","link","index","this","props","linkText","contentAction","etext","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","onTelemetryClick","push","render","links","Msdyn365","editProps","onTextChange","requestContext","CookieCompliance","super","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","handleLinkTextChange","linkIndex","event","_this$props$config$ac","config","actionLinks","target","value","handleContentChange","content","state","visible","cookieRef","_onDismiss","bind","componentDidMount","cookies","isConsentGiven","setState","resources","acceptCookiesAriaLabel","moduleConfig","error","MsDyn365","isBrowser","viewProps","_objectSpread","onDismiss","CookieComplianceBanner","moduleProps","classnames","ref","AlertProps","color","fade","Content","text","onEdit","ArrayExtensions","hasElements","acceptButton","renderView","setConsentCookie","window","frames","clarity","location","reload","Module","Alert","Node","_renderAccordionItemContent","items","map","item","key","drawer","accordionSlots","AccordionItemContainer","AccordionItemContent","accordionItemContent","paymentSlot","AccountLoyalty","Info","Points","Button","heading","infoLabel","cardNumber","pointsLabel","points","homeButton","pointsModal","ModalBodyTop","ModalBodyHeaders","dangerouslySetInnerHTML","__html","nilemsg","isOpen","Modal","returnFocusRef","tag","autoFocus","horizontalPosition","verticalPosition","modalClassName","zIndex","onClosed","onOpened","toggle","ModalHeader","modalHeaderClassName","modalHeader","ModalBody","modalBodyClassName","pointsDescription","totalPoints","date","balanceLabel","rewardPointsActivity","activity","Activity","activityType","activityDate","activityPoints","AddressShow","AddressDetail","description","AddressList","_ref2","List","isShowList","classNameExtended","Item","showItems","isShowPrimaryButton","primaryButton","editButton","removeButton","Error","isShowError","title","message","AddressLists","_ref3","ListAddress","isShowEmptyListMessage","emptyListMessage","addButton","primaryAddressList","otherAddressList","AddressAddUpdate","_ref4","AddressForm","hasError","isShowSaveButton","saveButton","isShowCancelButton","cancelButton","AddressItem","label","alert","input","AddressError","AccountAddressManagement","viewState","showAddressList","showAddOrUpdateAddress","screenReaderNotification","isShowAddresList","isShowAddOrUpdateAddress","miniCartWrapper","renderModuleAttributes","cartIcon","FlyoutContainer","flyoutTitle","checkoutBlockedDueToUnavailableFunds","CartlinesWrapper","_renderCartlines","cartLines","cartLine","_cartLine$data","miniCartItemWrapper","cartline","storeLocation","remove","data","product","ItemId","cartlines","totalPrice","checkoutAsSignInUserButton","goToCartButton","FooterCategoryView","categories","FooterList","FooterListItem","msdyn365Commerce","document","URL","includes","getCookie","cname","name","ca","cookie","split","i","c","charAt","substring","indexOf","setCookie","cvalue","currentDate","Date","expiry","getTime","backnum","referrer","_noop","count","here","last","parseInt","el","querySelector","href","category","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modal","createModalBody","modalFooter","modalBody","renderSort","renderRefiner","refiners","RefineMenuContainer","RefinerSectionContainer","submenu","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","renderTitle","TitleContainer","titlePrefix","titleText","titleCount","_props$context$action","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","CategoryNavContainer","RefineAndProductSectionContainer","errorMessage","FeatureSearchContainer","similarLookProduct","actionContext","query","recommendation","newOptions","sortByOptionRelevanceDesc","sortByOptionBestSelling","sortByOptionNewScore","useEffect","swatchDisable","_sortAndFilterContainerRef","_getSortCriteriaColumn","_props$data$listPageS","sortCriteria","listPageState","result","sortingCritera","Columns","queryColumns","JSON","parse","decodeURIComponent","parseQueryParam","_getSortColumnFromSelectedOption","option","searchConfiguration","mappedConfiguration","find","sortColumn","pending","selectedSortByOption","activeDropdown","_getCurrentlySelectedOption","activeSortColumn","activeMappedConfig","mappedSearchConfig","ColumnName","IsDescending","dropdownOption","newSortOptions","LabeledDropdown","labelClassname","labelText","sortByDropdownLabel","dropdownId","dropdownClassname","toggleColor","dropdownOptions","selectedOption","onSelectOption","notification","warning","history","pushState","buildListPageUrl","fullUrl","sortingColumns","skipCount","undefined","searchParams","delete","sortedRefiners","sort","first","second","RefinerRecordId","set","stringify","compressedRefiners","refiner","compressedRefiner","refinerKey","compressRefiners","toString","url","requestUrl","getCurrentUrl","transaction","currentPageNumber","_strikeSVG","imgCollect","querySelectorAll","node","classList","contains","thisColour","src","style","backgroundImage","maxWidth","yPosition","setYPosition","onScroll","pageYOffset","removeEventListener","addEventListener","passive","id","player","detailsContainer","additionalContent","additionalContentItems","additionalContentNode","additionalContentItemContainer","additionalContentItemLinks","detailsContainerCta","showScrollDownButton","e","element","getElementById","header","getElementsByTagName","videoPlayerHeight","clientHeight","headerHeight","scrollTo","scrollDownClickHandler","scrollDownButton","AccordionItem","moduleClassName","handleHeadingChange","accordionItemTitle","_onToggle","shouldComponentUpdate","nextProps","slots","accordionExpandedStateResult","accordionExpandedState","expanded","isAllExpanded","isExpandedOnInitialLoad","ControlledDrawer","toggleButtonText","collapseProps","onToggle","interactionStyle","accordionState","update","createAccordionStateInput","__decorate","observer","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","toggleAllSeparator","collapseAllText","setTimeout","_this$collapseAllButt","current","focus","_this$expandAllButton","AadGeneric","$i2e","$element","insertServiceContent","getElementContent","initialize","aadGeneric","aadConainer","aadAPIConainer","AccountAddressTile","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","accountAddressTileDescription","format","LinksComponent","DescriptionComponent","AccountCustomerBalanceTile","_initState","reaction","ErrorComponent","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","nextState","isCustomerAccountPaymentEnabled","Heading","headingTag","isDetailsLinkDisplayed","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","formatCurrency","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","computed","AccountCustomerBalance","requestStatementButtonRef","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_this$requestStatemen","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","_this$requestStatemen2","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","_get","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","FirstName","LastName","customerAccountBalance","excess","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","actionBar","IsB2bAdmin","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","BackButton","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","Intl","DateTimeFormat","locale","month","day","year","creditSummaryLabels","creditSummaryValues","popoverReference","innerRef","onPromoteToSeller","promoteToSellerLabel","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","requestStatementDropdownString","Random","Guid","generateGuid","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","htmlFor","onBlur","onChange","max","min","ModalFooter","_ref5","_ref6","_ref7","_ref8","BackToShopping","AccountGenericTile","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","cultureFormatter","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","CardNumber","decimalPrecision","RewardPoints","rewardPoint","ActivePoints","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountProfileEdit","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidUpdate","isShowLoading","accountProfileEdit","loading","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","display","accountProfileEditLocalAccount","_renderLocalAccount","str","createElement","innerHTML","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","button","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","isNaN","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","att","attributeDefinition","attribute","IsHidden","Name","toLocaleLowerCase","RecordId","_renderAttribute","edit","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","attributesContainerRef","Text","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","replace","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","selected","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","StringExtensions","isNullOrWhitespace","attributePayloadData","isMandatory","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","keys","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","async","updateCustomerAttributesInput","apiSettings","updateCustomerAttributes","initialCustomerAttributes","exception","debug","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountWelcomeTile","accountInfo","accountInformation","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","RequestsTableColumnHeader","getUserName","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","formatDate","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","reqContext","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","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","SignUp","handleParagraphChange","disclaimer","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","SignUpLoading","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","customClass","maxChars","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","then","catch","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","lastName","possibleCell","dataCell","user","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","_getViewport","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_toggleStatementRequestDropdown","_promoteToSeller","promoteToSellerUrl","getUrlSync","currentUser","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","Status","_viewport","_updateViewport","submitButtonReference","addedReference","businessUserSelectedUserDisplayName","componentWillUnmount","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","status","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","selectedOrganizationLabel","selectedUserName","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","applicationNode","ButtonList","_getForm","formProps","CatalogPicker","handleTextChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","changeCatalogButtonText","_this$props$data$cata2","reactKey","image","firstOrDefault","Images","tabIndex","Image","generateImageUrl","Uri","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","CatalogPickerViewFunctionComponent","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","errors","Wrapper","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","channel","EmailDeliveryModeCode","multiplePickUpEnabled","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","_props$cart","_props$cart2","promotionOptions","cart","hasInvoiceLine","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","ariaHiddenAttr","viewports","q","h","lazyload","shouldSkipToMainImage","FooterItemView","_renderElement","ImageList","images","_renderImageListItems","imageList","defaultImageSettings","xl","disableLazyLoad","_image$imageSettings","_link$linkText","imageProps","imageLink","imageLinkText","imageLinkAriaLabel","imageLinkOpenInNewTab","linkAltText","linkAriaLabel","linkOpenInNewTab","imageListTitle","imageListHeading","imageListContainer","imageListItem","imageListItemAnchorTag","imageListItems","imageListView","indexKey","InteractiveFeatureCollection","_telemetryContent","itemsCounter","keyIndex","indexItem","itemCounter","isMosaic","_this$props$config$cl","_title$tag","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","createComponent","component","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","selectorState","setSelectorState","currentSelectorState","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","viewport","_document","_document2","body","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","preventDefault","cookieConfig","maxAge","siteOptions","_item$siteRedirectUrl","siteImage","siteRedirectUrl","siteName","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","buildReviewCard","isUserReview","cardProps","headerProps","rating","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","cropFocalRegion","renderProductImage","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","reviewModal","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","submitButton","createReviewModal","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","hashClear","hashDelete","hashGet","hashHas","hashSet","Hash","clear","entry","prototype","has","module","exports","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","ListCache","Map","getNative","mapCacheClear","mapCacheDelete","mapCacheGet","mapCacheHas","mapCacheSet","MapCache","Symbol","array","iteratee","Array","eq","castPath","toKey","object","path","getRawTag","objectToString","symToStringTag","toStringTag","isMasked","isObject","toSource","reIsHostCtor","funcProto","Function","objectProto","funcToString","hasOwnProperty","reIsNative","RegExp","call","test","arrayMap","isArray","isSymbol","symbolProto","symbolToString","baseToString","isKey","stringToPath","coreJsData","freeGlobal","g","isKeyable","__data__","baseIsNative","nativeObjectToString","isOwn","unmasked","nativeCreate","size","reIsDeepProp","reIsPlainProp","uid","maskSrcKey","exec","IE_PROTO","func","assocIndexOf","pop","getMapData","memoize","cache","freeSelf","self","root","memoizeCapped","rePropName","reEscapeChar","string","charCodeAt","number","quote","subString","other","baseGet","baseGetTag","isObjectLike","resolver","TypeError","memoized","args","arguments","apply","Cache"],"sourceRoot":""}