{"version":3,"file":"static/js/10.86d5c61054e1f4818811.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/absolute-content-block-sm/components/links.tsx?0851","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-content-block-sm/absolute-content-block-sm.tsx?d7ef","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-content-block-sm/absolute-content-block-sm.view.tsx?e184","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-content-block/components/links.tsx?562c","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-content-block/absolute-content-block.tsx?ce7c","webpack://Msdyn365.Commerce.Online/./src/modules/absolute-content-block/absolute-content-block.view.tsx?434c","webpack://Msdyn365.Commerce.Online/./src/modules/connelly-background-video/connelly-background-video.tsx?5ec9","webpack://Msdyn365.Commerce.Online/./src/modules/connelly-background-video/connelly-background-video.view.tsx?85b6","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-content-block-simple/components/links.tsx?6efc","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-content-block-simple/obrien-content-block-simple.tsx?34a8","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-content-block-simple/obrien-content-block-simple.view.tsx?2f4d","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-content-block/components/links.tsx?944c","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-content-block/obrien-content-block.tsx?aa26","webpack://Msdyn365.Commerce.Online/./src/modules/obrien-content-block/obrien-content-block.view.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/themes/arborbb/views/content-block.view.tsx?87a8","webpack://Msdyn365.Commerce.Online/./src/themes/freedom23/views/content-block.view.tsx?5646","webpack://Msdyn365.Commerce.Online/./src/themes/watersportdiscounts/views/search-result-container.view.tsx?78e0","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/back-top-footer/back-top-footer.tsx?f47e","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.tsx?96a6","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-collection/interactive-feature-collection.view.tsx?db52","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/components/links.tsx?7423","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.tsx?792c","webpack://Msdyn365.Commerce.Online/./src/modules/interactive-feature-item/interactive-feature-item.view.tsx?bdcc","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.tsx?6111","webpack://Msdyn365.Commerce.Online/./src/modules/map/map.view.tsx?5db9","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?0efc"],"sourcesContent":["import * as React from 'react';\r\nimport { ILinksData } from '../absolute-content-block-sm.props.autogenerated';\r\n\r\nexport interface IContentCardLinks {\r\n links: ILinksData[];\r\n}\r\n\r\nconst ContentCardLinks: React.FC = ({ links }) => (\r\n
\r\n {links.map((cta: ILinksData, index: number) => {\r\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\r\n return \r\n {cta.linkText}\r\n ;\r\n })}\r\n
\r\n);\r\n\r\nexport default ContentCardLinks;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport LinksComponent from './components/links';\r\nimport { IAbsoluteContentBlockSmProps} from './absolute-content-block-sm.props.autogenerated';\r\n\r\nexport interface IContentBlockSmViewProps extends IAbsoluteContentBlockSmProps<{}> {\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n links?: React.ReactNode;\r\n className?: string;\r\n identifier?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer:INodeProps;\r\n detailsContainer:INodeProps;\r\n}\r\n/**\r\n *\r\n * ContentCard component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nclass ContentBlockSm extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { heading, paragraph, image, links, identifier, className} = this.props.config;\r\n const contentBlockTitle = heading && heading.text && ;\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings || {},\r\n imageSettings: image && image.imageSettings\r\n };\r\n const contentBlockLinks = links && links.length > 0 && ;\r\n const contentBlockText = paragraph && ;\r\n const contentBlockImage = image && ;\r\n\r\n if (!contentBlockTitle && !contentBlockText && !contentBlockImage && !contentBlockLinks) {\r\n return null;\r\n }\r\n\r\n const ContentBlockSmViewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n links: contentBlockLinks,\r\n identifier: this.props.config.identifier,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n id: identifier,\r\n className: classnames('absolute-content-block-sm', className)\r\n },\r\n imageContainer: {className: 'absolute-content-block__image'},\r\n detailsContainer: {className: 'absolute-content-block__details flex-vertical'}\r\n };\r\n\r\n return this.props.renderView(ContentBlockSmViewProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default ContentBlockSm;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockSmViewProps } from './absolute-content-block-sm';\r\n\r\nconst ContentBlockSmView: React.FC = props => {\r\n const { contentBlockContainer, imageContainer, detailsContainer, title, text, links, image } = props;\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n \r\n
\r\n
\r\n {title}\r\n {text}\r\n {links}\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ContentBlockSmView;\r\n","import * as React from 'react';\r\nimport { ILinksData } from '../absolute-content-block.props.autogenerated';\r\n\r\nexport interface IContentCardLinks {\r\n links: ILinksData[];\r\n}\r\n\r\nconst ContentCardLinks: React.FC = ({ links }) => (\r\n
\r\n {links.map((cta: ILinksData, index: number) => {\r\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\r\n return \r\n {cta.linkText}\r\n ;\r\n })}\r\n
\r\n);\r\n\r\nexport default ContentCardLinks;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport LinksComponent from './components/links';\r\nimport { IAbsoluteContentBlockProps} from './absolute-content-block.props.autogenerated';\r\n\r\nexport interface IContentBlockViewProps extends IAbsoluteContentBlockProps<{}> {\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n links?: React.ReactNode;\r\n className?: string;\r\n identifier?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer:INodeProps;\r\n detailsContainer:INodeProps;\r\n}\r\n/**\r\n *\r\n * ContentCard component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nclass ContentBlock extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { heading, paragraph, image, links, identifier, className} = this.props.config;\r\n const contentBlockTitle = heading && heading.text && ;\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings || {},\r\n imageSettings: image && image.imageSettings\r\n };\r\n const contentBlockLinks = links && links.length > 0 && ;\r\n const contentBlockText = paragraph && ;\r\n const contentBlockImage = image && ;\r\n\r\n if (!contentBlockTitle && !contentBlockText && !contentBlockImage && !contentBlockLinks) {\r\n return null;\r\n }\r\n\r\n const contentBlockviewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n links: contentBlockLinks,\r\n identifier: this.props.config.identifier,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n id: identifier,\r\n className: classnames('absolute-content-block', className)\r\n },\r\n imageContainer: {className: 'absolute-content-block__image'},\r\n detailsContainer: {className: 'absolute-content-block__details flex-vertical'}\r\n };\r\n\r\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default ContentBlock;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockViewProps } from './absolute-content-block';\r\n\r\nconst ContentBlockView: React.FC = props => {\r\n const { contentBlockContainer, imageContainer, detailsContainer, title, text, links, image } = props;\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n \r\n
\r\n
\r\n {title}\r\n {text}\r\n {links}\r\n
\r\n
\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default ContentBlockView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { Heading } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { IConnellyBackgroundVideoData } from './connelly-background-video.data';\r\nimport { IConnellyBackgroundVideoProps } from './connelly-background-video.props.autogenerated';\r\n\r\nexport interface IConnellyBackgroundVideoViewProps extends IConnellyBackgroundVideoProps {\r\n title?: React.ReactNode;\r\n videoId?: string;\r\n overlay?: string;\r\n className?: string;\r\n \r\n\r\n}\r\n\r\n/**\r\n *\r\n * ConnellyBackgroundVideo component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass ConnellyBackgroundVideo extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n\r\n const { heading } = this.props.config;\r\n\r\n const headingTitle = heading && heading.text && ;\r\n\r\n const { config } = this.props;\r\n\r\n const VideoId = config.videoId ? config.videoId : '';\r\n const Overlay = config.overlay ? config.overlay : '';\r\n const ClassName = config.className ? config.className : '';\r\n \r\n\r\n const VideoProps = {\r\n ...this.props,\r\n title: headingTitle,\r\n videoId: VideoId,\r\n overlay: Overlay,\r\n className: ClassName\r\n };\r\n\r\n return this.props.renderView(VideoProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default ConnellyBackgroundVideo;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\nimport { IConnellyBackgroundVideoViewProps } from './connelly-background-video';\r\n\r\n//@ts-ignore\r\nimport YoutubeBackground from 'react-youtube-background';\r\n\r\nexport default (props: IConnellyBackgroundVideoViewProps) => {\r\n\r\n const { \r\n videoId,\r\n overlay,\r\n className,\r\n title\r\n\r\n } = props;\r\n\r\n return (\r\n
\r\n
{title}
\r\n \r\n
\r\n );\r\n};\r\n","import * as React from 'react';\r\nimport { ILinksData } from '../obrien-content-block-simple.props.autogenerated';\r\n\r\nexport interface IContentCardLinks {\r\n links: ILinksData[];\r\n}\r\n\r\nconst ContentCardLinks: React.FC = ({ links }) => (\r\n
\r\n {links.map((cta: ILinksData, index: number) => {\r\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\r\n return \r\n {cta.linkText}\r\n ;\r\n })}\r\n
\r\n);\r\n\r\nexport default ContentCardLinks;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport LinksComponent from './components/links';\r\nimport { IObrienContentBlockSimpleProps} from './obrien-content-block-simple.props.autogenerated';\r\n\r\nexport interface IContentBlockSimpleViewProps extends IObrienContentBlockSimpleProps<{}> {\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n links?: React.ReactNode;\r\n className?: string;\r\n identifier?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer:INodeProps;\r\n detailsContainer:INodeProps;\r\n}\r\n/**\r\n *\r\n * ContentCard component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nclass ContentBlock extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { heading, paragraph, image, links, identifier, className} = this.props.config;\r\n const contentBlockTitle = heading && heading.text && ;\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings || {},\r\n imageSettings: image && image.imageSettings\r\n };\r\n const contentBlockLinks = links && links.length > 0 && ;\r\n const contentBlockText = paragraph && ;\r\n const contentBlockImage = image && ;\r\n\r\n if (!contentBlockTitle && !contentBlockText && !contentBlockImage && !contentBlockLinks) {\r\n return null;\r\n }\r\n\r\n const ContentBlockSimpleviewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n links: contentBlockLinks,\r\n identifier: this.props.config.identifier,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n id: identifier,\r\n className: classnames('obrien-content-block-simple', className)\r\n },\r\n imageContainer: {className: 'obrien-content-block-simple__image'},\r\n detailsContainer: {className: 'obrien-content-block-simple__details'}\r\n };\r\n\r\n return this.props.renderView(ContentBlockSimpleviewProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default ContentBlock;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockSimpleViewProps } from './obrien-content-block-simple';\r\n\r\nconst ContentBlockSimpleView: React.FC = props => {\r\n const { contentBlockContainer, imageContainer, detailsContainer, title, text, links, image } = props;\r\n return (\r\n \r\n \r\n \r\n \r\n {image}\r\n \r\n \r\n
\r\n
\r\n {title}\r\n {text}\r\n {links}\r\n
\r\n
\r\n
\r\n
\r\n \r\n );\r\n};\r\n\r\nexport default ContentBlockSimpleView;\r\n","import * as React from 'react';\r\nimport { ILinksData } from '../obrien-content-block.props.autogenerated';\r\n\r\nexport interface IContentCardLinks {\r\n links: ILinksData[];\r\n}\r\n\r\nconst ContentCardLinks: React.FC = ({ links }) => (\r\n
\r\n {links.map((cta: ILinksData, index: number) => {\r\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\r\n return \r\n {cta.linkText}\r\n ;\r\n })}\r\n
\r\n);\r\n\r\nexport default ContentCardLinks;","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Heading, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport LinksComponent from './components/links';\r\nimport { IObrienContentBlockProps} from './obrien-content-block.props.autogenerated';\r\n\r\nexport interface IContentBlockViewProps extends IObrienContentBlockProps<{}> {\r\n title?: React.ReactNode;\r\n text?: React.ReactNode;\r\n image?: React.ReactNode;\r\n links?: React.ReactNode;\r\n className?: string;\r\n identifier?: string;\r\n contentBlockContainer: IModuleProps;\r\n imageContainer:INodeProps;\r\n detailsContainer:INodeProps;\r\n}\r\n/**\r\n *\r\n * ContentCard component\r\n * @extends {React.PureComponent}\r\n */\r\n\r\nclass ContentBlock extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { heading, paragraph, image, links, identifier, className} = this.props.config;\r\n const contentBlockTitle = heading && heading.text && ;\r\n const imageProps = {\r\n gridSettings: this.props.context.request.gridSettings || {},\r\n imageSettings: image && image.imageSettings\r\n };\r\n const contentBlockLinks = links && links.length > 0 && ;\r\n const contentBlockText = paragraph && ;\r\n const contentBlockImage = image && ;\r\n\r\n if (!contentBlockTitle && !contentBlockText && !contentBlockImage && !contentBlockLinks) {\r\n return null;\r\n }\r\n\r\n const contentBlockviewProps = {\r\n ...this.props,\r\n title: contentBlockTitle,\r\n text: contentBlockText,\r\n image: contentBlockImage,\r\n links: contentBlockLinks,\r\n identifier: this.props.config.identifier,\r\n moduleClass: this.props.config.className,\r\n contentBlockContainer: {\r\n moduleProps: this.props,\r\n id: identifier,\r\n className: classnames('ms-content-block', className)\r\n },\r\n imageContainer: {className: 'ms-content-block__image'},\r\n detailsContainer: {className: 'ms-content-block__details'}\r\n };\r\n\r\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default ContentBlock;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IContentBlockViewProps } from './obrien-content-block';\r\n\r\nconst ContentBlockView: React.FC = props => {\r\n const { contentBlockContainer, imageContainer, detailsContainer, title, text, links, image } = props;\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ContentBlockView;\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 { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from '@msdyn365-commerce-modules/content-block/src/modules/content-block/./components/additional-content';\r\nimport { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block/src/modules/content-block/./content-block';\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: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n \r\n {item.links}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\nconst ContentBlockView: React.FC = (props) => {\r\n const {\r\n //contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n\r\n if (imageLink) {\r\n return (\r\n
\r\n \r\n \r\n {image}\r\n \r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n
\r\n );\r\n }\r\n return (\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n\r\n};\r\n\r\nexport default ContentBlockView;\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 { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from '@msdyn365-commerce-modules/content-block/src/modules/content-block/./components/additional-content';\r\nimport { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block/src/modules/content-block/./content-block';\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: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n \r\n {item.links}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n\r\n\r\n\r\nconst ContentBlockView: React.FC = (props) => {\r\n \r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport default ContentBlockView;\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 React, {useState} from 'react'\r\n\r\nimport { ISearchResultModalViewProps } from '@msdyn365-commerce-modules/search-result-container/src/modules/search-result-container/./components';\r\nimport {\r\n ICategoryHierarchyViewProps,\r\n IRefineMenuViewProps,\r\n ISearchResultContainerViewProps,\r\n ISortByViewProps,\r\n ITitleViewProps\r\n} from '@msdyn365-commerce-modules/search-result-container/src/modules/search-result-container/./search-result-container';\r\n\r\nconst SearchResultContainerView: React.FC = props => {\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 sortByOptions,\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 if (isMobile) {\r\n return (\r\n \r\n {renderCategoryHierarchy(categoryHierarchy)}\r\n {renderTitle(TitleViewProps)}\r\n {choiceSummary}\r\n {modalToggle}\r\n {createSearchResultModal(searchResultModal, refineMenu, sortByOptions, 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 \r\n \r\n {refineMenu && renderRefiner(refineMenu)}\r\n \r\n \r\n {categoryHierarchy && renderCategoryHierarchy(categoryHierarchy)}\r\n {TitleViewProps && renderTitleCount(TitleViewProps)}\r\n \r\n {TitleViewProps && renderTitle(TitleViewProps)}\r\n {choiceSummary}\r\n {sortByOptions && !isRecoSearchPage && renderSort(sortByOptions)}\r\n {similarLookProduct}\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 [navigate,setNavigate] = useState(false);\r\n const changeBackground = () => { \r\n if(window.scrollY >= 177) {\r\n setNavigate(true)\r\n }else {\r\n setNavigate(false)\r\n }\r\n }\r\n if (typeof window !== `undefined`) {\r\n window.addEventListener('scroll', changeBackground);\r\n }\r\n const { refiners, RefineMenuContainer, RefinerSectionContainer } = props;\r\n if (refiners) {\r\n return (\r\n \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 }\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}\r\n

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

{name}

\n
#{accountNumber}
\n
\n {customerSincePrefix} {createdOn}\n
\n
\n);\n\nexport const AccountValues: React.FC = ({ availableCredit, availableCreditLabel }) => (\n
\n
{availableCreditLabel}
\n
{availableCredit}
\n
\n);\n\nexport const CreditSummaryLabels: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n
{creditExcess}
\n
\n);\n\nexport const CreditSummaryValues: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n {creditExcess &&
{creditExcess}
}\n
\n);\n\n/**\n * Available credit component.\n * @param props - ICreditSummaryAvailableCredit.\n * @param props.availableCreditLabel - Available credit label.\n * @param props.availableCredit - Available credit value.\n * @returns - React Node for available credit component.\n */\nexport const AvailableCreditComponent: React.FC = ({ availableCreditLabel, availableCredit }) => (\n
\n
\n
{availableCreditLabel}
\n
\n
\n
{availableCredit}
\n
\n
\n);\n\n/**\n * Balance Owed Component.\n * @param props - ICreditSummaryBalanceOwed.\n * @param props.balanceOwedLabel - Balance Owed label.\n * @param props.balanceOwed - Balance Owed value.\n * @returns - React Node for balance owed component.\n */\nexport const BalanceOwedComponent: React.FC = ({ balanceOwedLabel, balanceOwed }) => (\n
\n
\n
{balanceOwedLabel}
\n
\n
\n
{balanceOwed}
\n
\n
\n);\n\n/**\n * Credit Excess Component.\n * @param props - ICreditSummaryCreditExcess.\n * @param props.creditExcessLabel - Credit excess label.\n * @param props.creditExcess - Credit excess value.\n * @returns - React Node for credit excess component.\n */\nexport const CreditExcessComponent: React.FC = ({ creditExcessLabel, creditExcess }) => (\n
\n {creditExcess && (\n
\n
{creditExcessLabel}
\n
\n )}\n
\n {creditExcess &&
{creditExcess}
}\n
\n
\n);\nexport const BackButton: React.FC = ({ link, label, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.BackToShopping);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {label}\n \n );\n};\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountGenericTileConfig, IAccountGenericTileProps } from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountGenericTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountGenericTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-generic-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountGenericTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountLoyaltyTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-loyalty-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountLoyaltyTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

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

{description}

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

{props.text}

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

{props.resources.loyaltyTermsHeading}

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

{props.resources.loyaltyAgreeToTerms}

\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\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 } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading } = config;\n const {\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { BackToTop, getTelemetryObject, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBackTopFooterProps } from './back-top-footer.props.autogenerated';\n\n/**\n *\n * BackTopFooter component.\n * @extends {React.PureComponent>}\n */\nclass BackTopFooter extends React.PureComponent> {\n private readonly editProps: Msdyn365.ITextEditProps = {\n requestContext: this.props.context.request,\n onEdit: (event: Msdyn365.ContentEditableEvent) => (this.props.config.backtoTopText = event.target.value)\n };\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IBackTopFooterProps<{}>) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n if (!this.props.config.destination) {\n this.props.telemetry.error('BackToTop.destination has not been provided, module wont render.');\n return null;\n }\n\n return (\n \n );\n }\n}\n\nexport default BackTopFooter;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\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 React from 'react';\n\nimport { IInteractiveFeatureCollectionProps, ITitleData } 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 _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\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.interactiveFeatureItems;\n const itemsFeatureCounter = 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 viewProps = {\n ...this.props,\n title: InteractiveFeatureCollection._createHeading(title),\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\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.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `interactive-feature-carousel-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n \n );\n};\n\nexport default interactiveFeatureCollectionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature links.\n */\nexport interface IInteractiveFeatureLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * IInteractiveFeatureLinks component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureCollectionLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\n \n ) : null}\n
\n );\n }\n\n /**\n * IInteractiveFeatureLinks component.\n * @param linkdata - Link data.\n * @returns Editable links.\n */\n private readonly _mapEditableLinks = (linkdata?: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || !ArrayExtensions.hasElements(linkdata)) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n for (const link of linkdata) {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-interactive-feature-collection__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'button',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n }\n\n return editableLinks;\n };\n}\nexport default InteractiveFeatureCollectionLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { InteractiveFeatureCollectionLinks } from './components';\nimport { IHeadingData, IInteractiveFeatureItemProps } from './interactive-feature-item.props.autogenerated';\n\n/**\n * Interactive Feature Item view props.\n */\nexport interface IInteractiveFeatureItemViewProps extends IInteractiveFeatureItemProps<{}> {\n title: React.ReactNode;\n paragraph: React.ReactNode;\n image: React.ReactNode;\n links: React.ReactNode;\n featureItem: IModuleProps;\n isMosaic: boolean;\n indexItem?: number;\n itemCounter?: number;\n\n interactiveFeatureCollectionCarouselContainer: INodeProps;\n interactiveFeatureCollectionCarouselImage: INodeProps;\n interactiveFeatureCollectionCarouselContent: INodeProps;\n\n interactiveFeatureCollectionMosaicContainer: INodeProps;\n interactiveFeatureCollectionMosaicImage: INodeProps;\n interactiveFeatureCollectionMosaicDetails: INodeProps;\n}\n\n/**\n * Interactive Feature Item Extented props.\n */\nexport interface IInteractiveFeatureItemExtentedProps extends IInteractiveFeatureItemProps<{}> {\n isMosaic?: boolean;\n indexItem?: number;\n itemCounter?: number;\n}\n\n/**\n *\n * InteractiveFeatureItem component.\n * @extends {React.PureComponent}\n */\nexport class InteractiveFeatureItem extends React.PureComponent {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: IInteractiveFeatureItemProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { indexItem, itemCounter, isMosaic } = this.props;\n const { heading, paragraph, image, links } = this.props.config;\n const featureItemLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n\n const viewProps = {\n ...this.props,\n indexItem,\n itemCounter,\n isMosaic: isMosaic ? isMosaic : false,\n title: this._createHeading(heading),\n paragraph: this._createParagraph(paragraph),\n image: this._renderImage(image),\n links: featureItemLinks,\n featureItem: {\n moduleProps: this.props,\n className: ''\n },\n interactiveFeatureCollectionCarouselContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__container'\n },\n interactiveFeatureCollectionCarouselImage: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__image'\n },\n interactiveFeatureCollectionCarouselContent: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-carousel__heading'\n },\n interactiveFeatureCollectionMosaicContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-interactive-feature-collection-mosaic',\n 'aria-label': heading?.text,\n tabindex: '0',\n role: 'group'\n },\n interactiveFeatureCollectionMosaicImage: {\n className: 'ms-interactive-feature-collection-mosaic__image'\n },\n interactiveFeatureCollectionMosaicDetails: {\n className: 'ms-interactive-feature-collection-mosaic__details'\n }\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n /**\n * Handles paragraph content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\n if (this.props.config.links?.[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\n if (!heading) {\n return null;\n }\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _renderImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\n // Even if image.src is null, we render the Image component to render the fallback SVG\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=328&h=459&m=6', w: 328, h: 459 },\n sm: { q: 'w=348&h=487&m=6', w: 348, h: 487 },\n md: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n lg: { q: 'w=650&h=366&m=6', w: 650, h: 366 },\n xl: { q: 'w=650&h=366&m=6', w: 650, h: 366 }\n },\n lazyload: true\n };\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\n return (\n \n );\n }\n}\n\nexport default InteractiveFeatureItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IInteractiveFeatureItemViewProps } from './interactive-feature-item';\n\n/**\n * Enumerator used to make some calculations to set the proper classnames\n * using modular calculations to see if they are in a right or left column or on first or last row.\n */\nenum MagicNumber {\n modularDivisor = 4,\n caseNumberZero = 0,\n caseNumberOne = 1,\n caseNumberTwo = 2\n}\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @param indexItem - Feature Item view props.\n * @param itemCounter - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nconst renderMosaic = (thisProps: IInteractiveFeatureItemViewProps, indexItem?: number, itemCounter?: number): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionMosaicContainer,\n interactiveFeatureCollectionMosaicImage,\n interactiveFeatureCollectionMosaicDetails\n } = thisProps;\n const indexAux = indexItem ? indexItem + MagicNumber.caseNumberOne : MagicNumber.caseNumberOne;\n const itemCounterAux = itemCounter ? itemCounter : MagicNumber.caseNumberZero;\n const modularAux = indexAux % MagicNumber.modularDivisor;\n const firstRow = indexAux <= MagicNumber.caseNumberTwo ? 'firstRow' : '';\n const lastRow =\n itemCounterAux && (indexAux === itemCounterAux || indexAux === itemCounterAux - MagicNumber.caseNumberOne) ? 'lastRow' : '';\n const onCornerRight = modularAux === MagicNumber.caseNumberZero ? 'item-corner-right' : '';\n const onCornerLeft = modularAux === MagicNumber.caseNumberOne ? 'item-corner-left' : '';\n const containerClasses = classnames('ms-interactive-feature-collection-mosaic', onCornerLeft, onCornerRight, firstRow, lastRow);\n\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param thisProps - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */ const renderCarousel = (thisProps: IInteractiveFeatureItemViewProps): JSX.Element | null => {\n const {\n title,\n paragraph,\n image,\n links,\n interactiveFeatureCollectionCarouselContainer,\n interactiveFeatureCollectionCarouselImage,\n interactiveFeatureCollectionCarouselContent\n } = thisProps;\n return (\n \n {image}\n \n {title}\n {paragraph}\n {links}\n \n \n );\n};\n\n/**\n * Feature Item View.\n * @param props - Feature Item view props.\n * @returns Feature item View.\n * @extends {} InteractiveFeatureItem\n */\nexport const FeatureItemViewComponent: React.FC = props => {\n const { isMosaic, featureItem, indexItem, itemCounter } = props;\n if (isMosaic) {\n return <>{renderMosaic(props, indexItem, itemCounter)};\n }\n return {renderCarousel(props)};\n};\n\nexport default FeatureItemViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\n/// \n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { OrgUnitLocation } from '@msdyn365-commerce/retail-proxy';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observable, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IMapData } from './map.data';\nimport { IMapProps, IPushpinOptionsData } from './map.props.autogenerated';\n\n/**\n * Header Interface.\n */\nexport interface IHeader {\n headerProps: INodeProps;\n heading: React.ReactNode;\n}\n\n/**\n * MapViewProps Interface.\n */\nexport interface IMapViewProps extends IMapProps {\n ModuleProps: IModuleProps;\n Header: IHeader;\n MapProps: INodeProps;\n Map: Microsoft.Maps.Map | undefined;\n}\n\n/**\n *\n * Map component.\n * @extends {React.Component>}\n */\n@observer\nclass Map extends React.PureComponent> {\n @observable public map: Microsoft.Maps.Map | undefined;\n\n private readonly mapRef: React.RefObject = React.createRef();\n\n public constructor(props: IMapProps) {\n super(props);\n }\n\n public componentDidMount(): void {\n const {\n context: {\n telemetry,\n actionContext: {\n requestContext: { channel }\n }\n }\n } = this.props;\n\n if (channel && !channel.BingMapsApiKey) {\n telemetry.error('BingMapsApiKey is missing.');\n return;\n }\n\n if (channel && !channel.BingMapsEnabled) {\n telemetry.error('Map is disabled from HQ.');\n return;\n }\n\n if (this.props.data.storeSelectorStateManager.result?.isMapApiLoaded) {\n this._initMap();\n this._updateMap();\n }\n\n when(\n () => !!this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded,\n () => {\n this.props.data.storeSelectorStateManager.result?.setMapModuleLoaded(true);\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.loadMapApi,\n () => {\n this.props.data.storeSelectorStateManager.result?.loadMapApi({\n key: channel?.BingMapsApiKey,\n lang: this.props.context.actionContext.requestContext.locale,\n market: this.props.context?.actionContext?.requestContext?.channel?.ChannelCountryRegionISOCode\n });\n }\n );\n\n reaction(\n () => this.props.data.storeSelectorStateManager.result?.isMapApiLoaded,\n () => {\n this._initMap();\n }\n );\n\n reaction(\n () => {\n return [\n this.props.data.storeSelectorStateManager.result?.context?.orgUnitStoreInformation,\n this.props.data.storeSelectorStateManager.result?.selectedStoreLocationId,\n this.map\n ];\n },\n () => {\n this._updateMap();\n }\n );\n }\n\n public render(): JSX.Element | null {\n const {\n config: { heading, className },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n\n const shouldDisplayMap = storeSelectorStateManager?.listMapViewState.displayMap;\n\n const viewProps: IMapViewProps = {\n ...this.props,\n ModuleProps: {\n tag: 'div',\n moduleProps: this.props,\n className: classname('ms-map', { show: shouldDisplayMap }, className)\n },\n Header: {\n headerProps: { className: 'ms-map__header' },\n heading: heading?.text && (\n \n )\n },\n MapProps: {\n tag: 'div',\n className: 'ms-map__body',\n ref: this.mapRef\n },\n Map: this.map\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Method to be called on heading change.\n * @param event -Content Edit Event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Initialize the map.\n */\n private readonly _initMap = () => {\n const {\n context: {\n actionContext: {\n requestContext: { channel }\n }\n },\n data: {\n storeSelectorStateManager: { result: storeSelectorStateManager }\n }\n } = this.props;\n if (storeSelectorStateManager?.isMapApiLoaded) {\n this.map = new Microsoft.Maps.Map(this.mapRef.current as HTMLElement, {\n credentials: channel?.BingMapsApiKey,\n pushpinAccessible: true\n });\n Microsoft.Maps.Events.addHandler(this.map, 'click', async () => {\n await storeSelectorStateManager.setSelectedStoreLocationId(undefined);\n });\n }\n };\n\n /**\n * Update the map.\n */\n private readonly _updateMap = () => {\n const pushpinOptions = this.props.config.pushpinOptions;\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager?.result;\n const orgUnitStoreInformation = storeSelectorStateManager?.context?.orgUnitStoreInformation;\n const selectedStoreLocationId = storeSelectorStateManager?.selectedStoreLocationId;\n\n if (this.map && orgUnitStoreInformation) {\n let mapLocation: OrgUnitLocation | undefined;\n this.map.entities.clear();\n const pushpins: Microsoft.Maps.IPrimitive[] = [];\n\n const storeLocationList = orgUnitStoreInformation.filter(store => store.OrgUnitAvailability !== undefined);\n\n for (const [index, unitStoreInfo] of storeLocationList.entries()) {\n const storeLocation = unitStoreInfo.OrgUnitAvailability?.OrgUnitLocation;\n\n if (storeLocation?.Latitude && storeLocation.Longitude) {\n const isSelectedLocation = selectedStoreLocationId === storeLocation.OrgUnitNumber;\n const options = this._getPushpinOptions(isSelectedLocation, index, pushpinOptions);\n const pushpin = new Microsoft.Maps.Pushpin(\n new Microsoft.Maps.Location(storeLocation.Latitude, storeLocation.Longitude),\n options\n );\n\n Microsoft.Maps.Events.addHandler(pushpin, 'click', () => {\n this.handleClickEvent(storeLocation.OrgUnitNumber);\n });\n isSelectedLocation ? pushpins.unshift(pushpin) : pushpins.push(pushpin);\n\n if (isSelectedLocation) {\n mapLocation = storeLocation;\n }\n }\n }\n\n if (mapLocation) {\n const currentLocation = new Microsoft.Maps.Location(mapLocation.Latitude, mapLocation.Longitude);\n this.map.setView({ center: currentLocation });\n } else {\n // Create a LocationRect from array of pushpins and set the map view.\n this.map.setView({\n bounds: Microsoft.Maps.LocationRect.fromShapes(pushpins)\n });\n }\n\n this.map.setOptions({ pushpinAccessible: true });\n this.map.entities.push(pushpins);\n }\n };\n\n /**\n * Handle click event.\n * @param orgUnitNumber - Organization unit number.\n */\n private readonly handleClickEvent = (orgUnitNumber: string | undefined): void => {\n const storeSelectorStateManager = this.props.data.storeSelectorStateManager.result;\n storeSelectorStateManager?.setSelectedStoreLocationId(undefined);\n if (orgUnitNumber) {\n setTimeout(() => {\n storeSelectorStateManager?.setSelectedStoreLocationId(orgUnitNumber);\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- Time out.\n }, 500);\n }\n };\n\n /**\n * Get the pushpin option.\n * @param isSelectedLocation - Is selected location.\n * @param index - Index.\n * @param pushpinOptions - PushpinOptions.\n * @returns - The pushpin options.\n */\n private readonly _getPushpinOptions = (isSelectedLocation: boolean, index: number, pushpinOptions?: IPushpinOptionsData) => {\n const text = pushpinOptions?.showIndex ? (index + 1).toString() : undefined;\n\n const size = pushpinOptions?.size || 1;\n const color = isSelectedLocation ? pushpinOptions?.selectionColor || pushpinOptions?.color : pushpinOptions?.color;\n const icon = this._getSvgIcon(size, color, text);\n\n return {\n // Fallback if icon doesn't render properly\n color: isSelectedLocation ? pushpinOptions?.selectionColor : pushpinOptions?.color,\n icon\n };\n };\n\n private readonly _getSvgIcon = (size: number, color?: string, text?: string) => {\n const baseValue: number = 32;\n return `\n \n ${text ? `${text}` : ''}\n `;\n };\n}\n\nexport default Map;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IHeader, IMapViewProps } from './map';\n\n/**\n * Render the heading.\n * @param param0 -- Heading props.\n * @param param0.headerProps -- Heading Props.\n * @param param0.heading -- Heading Node.\n * @returns -- Returns the node.\n */\nconst MapHeader: React.FC = ({ headerProps, heading }) => {heading};\n\n/**\n * Renders the map view props.\n * @param param0 -- Map view props.\n * @param param0.ModuleProps -- Module props.\n * @param param0.Header -- Header props.\n * @param param0.MapProps -- Map props.\n * @returns -- Returns the map module.\n */\nconst MapView: React.FC = ({ ModuleProps, Header, MapProps }) => (\n \n {Header && }\n \n \n);\n\nexport default MapView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n}) => (\n \n <>\n {label}\n {paymentAmountInput}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\n"],"names":["_ref","links","React","className","map","cta","index","btnClass","key","role","title","linkText","href","linkUrl","destinationUrl","ariaLabel","target","openInNewTab","undefined","ContentBlockSm","render","heading","paragraph","image","identifier","this","props","config","contentBlockTitle","text","Heading","headingTag","tag","imageProps","gridSettings","context","request","imageSettings","contentBlockLinks","length","LinksComponent","Object","assign","contentBlockText","Msdyn365","contentBlockImage","ContentBlockSmViewProps","_objectSpread","moduleClass","contentBlockContainer","moduleProps","id","classnames","imageContainer","detailsContainer","renderView","Module","Node","ContentBlock","contentBlockviewProps","ConnellyBackgroundVideo","headingTitle","VideoId","videoId","Overlay","overlay","ClassName","VideoProps","YoutubeBackground","ContentBlockSimpleviewProps","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","item","additionalContentItemContainer","additionalContentItemLinks","contentBlockAnchorTag","imageLink","imageAriaLabel","createSearchResultModal","modalProps","refineMenu","sortByDropDown","isRecoSearchPage","modal","modalHeader","createModalBody","modalFooter","modalBody","renderSort","renderRefiner","navigate","setNavigate","useState","changeBackground","window","scrollY","addEventListener","refiners","RefineMenuContainer","RefinerSectionContainer","submenu","SortingContainer","renderCategoryHierarchy","CategoryHierarchyContainer","categoryHierarchyList","categoryHierarchySeparator","category","renderTitle","TitleContainer","titleText","renderTitleCount","titleCount","_props$context$action","SearchResultContainer","products","pagination","ProductsContainer","ProductSectionContainer","choiceSummary","isMobile","modalToggle","searchResultModal","TitleViewProps","categoryHierarchy","sortByOptions","CategoryNavContainer","RefineAndProductSectionContainer","errorMessage","FeatureSearchContainer","similarLookProduct","actionContext","requestContext","query","recommendation","AccordionItem","constructor","super","moduleClassName","handleHeadingChange","event","accordionItemTitle","value","_onToggle","bind","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","shouldComponentUpdate","nextProps","data","slots","accordionExpandedStateResult","accordionExpandedState","result","expanded","isAllExpanded","isExpandedOnInitialLoad","AccordionItemContainer","AccordionItemContent","drawer","ControlledDrawer","toggleButtonText","collapseProps","isOpen","onToggle","onTextChange","accordionSlots","state","interactionStyle","accordionState","update","createAccordionStateInput","__decorate","observer","_renderAccordionItemContent","items","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","payLoad","getPayloadObject","isDisabled","headingComponent","editProps","onEdit","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","resources","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","getTelemetryAttributes","CollapseAll","attributeCollapseAll","showToggleAll","disabled","expandAllText","onClick","ref","toggleAllSeparator","collapseAllText","error","setState","setTimeout","_this$collapseAllButt","current","focus","_this$expandAllButton","AccountCustomerBalance","_showRequestStatementModal","isStatementRequestModalOpen","_toggleModal","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","_this$props$data$b2bU2","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","split","canSubmitStatementRequest","_get","account","includes","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","name","FirstName","LastName","customerCredit","customerAccountBalance","excess","InvoiceAccountCreditLimit","CreditLimit","Balance","InvoiceAccountBalance","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","isB2BUser","IsB2b","actionBar","IsB2bAdmin","AdminRequestStatementButton","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","viewProps","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","label","link","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","currencyCode","formatCurrency","toFixed","date","Intl","DateTimeFormat","locale","month","day","year","format","computed","creditSummaryLabels","creditSummaryValues","Button","_ref2","buttonReference","onSelectCustomerAccount","onSelectFullOrg","popoverReference","requestStatementDropdownString","Random","Guid","generateGuid","innerRef","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","type","onBlur","onChange","max","min","ModalFooter","_ref5","_ref6","_ref7","_ref8","BackToShopping","attributes","AccountGenericTile","handleLinkTextChange","linkIndex","_mapEditableLinks","linkdata","editableLinks","forEach","editableLink","additionalProperties","push","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","description","url","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","DescriptionComponent","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","_this$props$data$feat","_this$props$data$cust","RetailB2BEcommerceFeatureState","featureState","find","Name","params","isEditor","IsEnabled","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","message","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","EmailRegex","defaultRegex","source","componentDidMount","componentDidUpdate","nextState","viewState","isShowLoading","accountProfileEdit","loading","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","buttons","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","maxLength","pattern","wrapper","AccountProfileEditLabelComponent","forId","input","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","_ref3","button","LocalAccount","errorClassName","GetMaxLength","parsedMaxLength","Number","parseInt","isNaN","AccountWelcomeTile","accountInfo","accountInformation","RequestsTableColumnHeader","getUserName","StringExtensions","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","replace","formatDate","cultureFormatter","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","tableData","operationRequests","ArrayExtensions","hasElements","_request$TypeValue","_request$StatusValue","row","b2bRequestsTypeColumn","TableDataType","Text","b2bRequestsRequestDateColumn","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","StatusValue","isSelected","createTableItems","headings","filter","mobileExcludedColumns","sortable","columnSortAriaLabel","rows","editLinkText","deleteLinkText","enableToModify","actionLinkText","showCheckBoxes","isSortable","showPagination","minifyActions","excludedColumns","paginationProperty","skipCount","skip","itemPerPage","prevText","b2bRequestsPreviousText","nextText","b2bRequestsNextText","paginationText","reqContext","MsDyn365","isBrowser","URL","location","requestUrl","isSingleSelectOnly","onDelete","onView","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","B2bRequestsTable","Table","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","_data$customerInforma","_data$b2bUserInformat","b2bRequestsStatus","table","defaultClassName","B2bRequestsTileLinks","B2bRequestsTile","b2bRequestsTile","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","then","catch","debug","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_this$props$context$a","_this$props$context$a2","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTermsModal","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","applicationNode","returnFocusRef","returnRef","cancelButton","cancelLoyaltyTermsText","submitButton","onSubmit","checked","joinLoyaltyTermsText","loyaltyTermsHeading","terms","agreeSection","checkbox","onCheck","agreeText","loyaltyAgreeToTerms","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","search","isJoining","substring","qsps","qsp","splitQsp","hideToggle","serviceTerms","joinLoyaltytermsToggleText","card","redirectToLoyalty","getUrlSync","getLoyaltyCardAsync","fullCard","GetLoyaltyCardInput","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","handleParagraphChange","disclaimer","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","invalidPasswordError","errorMessages","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","emailVerification","isRequired","buttonWrapper","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","surnameVerification","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","_ref4","SignUpLoading","FormType","InputType","InputID","renderInputSection","inputs","asteriskAfterLabel","onInputChange","element","customClass","maxChars","fieldReference","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","isFormActive","formType","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","toString","_getCurrentUrl","_getViewport","device","Type","innerWidth","xs","w","sm","md","lg","_toggleStatementRequestDropdown","currentUser","users","_getB2BUserId","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","Status","_viewport","_updateViewport","submitButtonReference","addedReference","isNullOrWhitespace","selectedUserName","businessUserSelectedUserDisplayName","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","statementRequestModalHeaderLabel","hasUsers","AddUser","addUserAttributes","errorProps","OrganizationUserList","moduleContainer","addUserButton","noUsersText","modalState","organizationListTable","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","tableSort","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserActionButtonText","businessUserPaginationAriaLabel","_createTableItems","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","resourcePrefix","tableAriaLabel","tableTabIndex","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","FormWrapper","modalHeading","modalDescription","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","keys","headingSection","bodySection","footerSection","wrapClassName","ButtonList","_getForm","formProps","BackTopFooter","backtoTopText","destination","BackToTop","InteractiveFeatureCollection","_telemetryContent","static","itemsCounter","keyIndex","indexItem","itemCounter","isMosaic","_this$props$config$cl","interactiveItems","interactiveFeatureItems","itemsFeatureCounter","singleSlideCarouselComponentProps","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","_createHeading","interactiveFeatureCollectionHeading","interactiveFeatureCollectionContainer","interactiveFeatureCollectionDesktopContainer","interactiveFeatureCollectionMobileContainer","singleSlideCarouselItemContainer","interactiveFeatureCollectionMobileItems","interactiveFeatureCollectionDesktopItems","_getFeatureItem","interactiveFeatureCollectionView","tileItem","InteractiveFeatureCollectionLinks","onTelemetryClick","InteractiveFeatureItem","_this$props$config$li","featureItemLinks","_createParagraph","_renderImage","featureItem","interactiveFeatureCollectionCarouselContainer","interactiveFeatureCollectionCarouselImage","interactiveFeatureCollectionCarouselContent","interactiveFeatureCollectionMosaicContainer","tabindex","interactiveFeatureCollectionMosaicImage","interactiveFeatureCollectionMosaicDetails","_heading$tag","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$im","verifiedImageSettings","viewports","q","h","xl","lazyload","loadFailureBehavior","moduleType","typeName","imagePropertyName","MagicNumber","FeatureItemViewComponent","renderMosaic","thisProps","indexAux","caseNumberOne","itemCounterAux","caseNumberZero","modularAux","modularDivisor","firstRow","caseNumberTwo","lastRow","onCornerRight","onCornerLeft","containerClasses","renderCarousel","Map","mapRef","_initMap","channel","storeSelectorStateManager","isMapApiLoaded","Microsoft","Maps","credentials","BingMapsApiKey","pushpinAccessible","Events","addHandler","setSelectedStoreLocationId","_updateMap","_this$props$data$stor","_storeSelectorStateMa","pushpinOptions","orgUnitStoreInformation","selectedStoreLocationId","mapLocation","entities","clear","pushpins","storeLocationList","store","OrgUnitAvailability","unitStoreInfo","entries","_unitStoreInfo$OrgUni","storeLocation","OrgUnitLocation","Latitude","Longitude","isSelectedLocation","OrgUnitNumber","options","_getPushpinOptions","pushpin","Pushpin","Location","handleClickEvent","unshift","currentLocation","setView","center","bounds","LocationRect","fromShapes","setOptions","orgUnitNumber","showIndex","size","color","selectionColor","_getSvgIcon","_this$props$data$stor2","BingMapsEnabled","when","_this$props$data$stor3","setMapModuleLoaded","_this$props$data$stor4","reaction","_this$props$data$stor5","loadMapApi","_this$props$data$stor6","_this$props$context","_this$props$context$a3","lang","market","ChannelCountryRegionISOCode","_this$props$data$stor7","_this$props$data$stor8","_this$props$data$stor9","_this$props$data$stor10","shouldDisplayMap","listMapViewState","displayMap","ModuleProps","show","Header","headerProps","MapProps","MapHeader","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","SummaryForm","addPaymentButton","appliedLine","bottomBorder","paymentAmountInput","EditForm","inputLabel","inputAmount","customerName","customerAccountNumber","customerSince","accountCredit","alert","accountDetails","checkoutCustomerAccount","checkoutErrorRef","summaryView","editView","moduleState"],"sourceRoot":""}