{"version":3,"file":"static/js/8.22a910d2a01116acff8c.chunk.js","mappings":"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","sources":["webpack:///./src/modules/password-reset/password-reset.tsx?0983","webpack:///./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack:///./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack:///./src/modules/account-customer-balance-tile/index.ts?ac48","webpack:///./src/modules/content-block/components/additional-content.tsx?d5f9","webpack:///./src/modules/content-block/components/links.tsx?abbf","webpack:///./src/modules/content-block/content-block.tsx?3084","webpack:///./src/modules/account-address-tile/components/index.ts?36d9","webpack:///./src/modules/social-share/social-share.view.tsx?dcdf","webpack:///./src/modules/password-reset/password-reset.view.tsx?b341","webpack:///./src/modules/site-picker/site-picker.view.tsx?5319","webpack:///./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack:///./src/modules/account-address-tile/index.ts?64d0","webpack:///./src/modules/loyalty-terms/components/index.ts?b748","webpack:///./src/modules/account-profile/index.ts?314c","webpack:///./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack:///./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack:///./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack:///./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack:///./src/modules/account-loyalty-tile/components/index.ts?823c","webpack:///./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack:///./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack:///./src/modules/accordion-item/accordion-item.tsx?36f7","webpack:///./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack:///./src/modules/aad-generic/aad-generic.view.tsx?b418","webpack:///./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack:///./src/modules/accordion/accordion.view.tsx?8c7b","webpack:///./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack:///./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack:///./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack:///./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack:///./src/modules/loyalty-sign-up/index.ts?808c","webpack:///./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack:///./src/modules/sign-in/index.ts?2167","webpack:///./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack:///./src/modules/account-loyalty-tile/index.ts?d287","webpack:///./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack:///./src/modules/aad-generic/aad-generic.tsx?c076","webpack:///./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack:///./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack:///./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack:///./src/index.ts?ffb4","webpack:///./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack:///./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack:///./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack:///./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack:///./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack:///./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack:///./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack:///./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack:///./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack:///./src/modules/sign-up/components/index.ts?1088","webpack:///./src/modules/navigation-menu/navigation-menu.data.ts?9815","webpack:///./src/modules/navigation-menu/navigation-menu.tsx?2bef","webpack:///./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack:///./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack:///./src/modules/account-profile/account-profile.tsx?fe69","webpack:///./src/modules/b2b-requests-status/index.ts?e82e","webpack:///./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack:///./src/modules/account-welcome-tile/index.ts?427b","webpack:///./src/modules/account-loyalty/index.ts?2f2c","webpack:///./src/modules/social-share/social-share.tsx?899b","webpack:///./src/modules/sign-up/index.ts?09e3","webpack:///./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack:///./src/modules/account-customer-balance-tile/components/index.ts?e7a2","webpack:///./src/modules/account-profile/account-profile.view.tsx?b964","webpack:///./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack:///./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack:///./src/modules/account-wishlist-tile/index.ts?2533","webpack:///./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack:///./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack:///./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack:///./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack:///./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack:///./src/modules/account-profile/components/index.ts?b8dc","webpack:///./src/modules/footer-item/footer-item.tsx?074a","webpack:///./src/modules/site-picker/site-picker.tsx?b9ec","webpack:///./src/modules/account-loyalty/account-loyalty.tsx?3672","webpack:///./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack:///./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack:///./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack:///./src/modules/accordion/accordion.tsx?78b1","webpack:///./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack:///./src/modules/navigation-menu/navigation-menu.view.tsx?c594","webpack:///./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack:///./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack:///./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack:///./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack:///./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack:///./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack:///./src/modules/account-loyalty/components/account-loyalty-small-components.tsx?c12b","webpack:///./src/modules/footer-item/footer-item.view.tsx?c5af","webpack:///./src/modules/account-loyalty/account-loyalty.view.tsx?4d8b","webpack:///./src/modules/account-customer-balance/index.tsx?e2e4","webpack:///./src/themes/fabrikam/views/search.view.tsx?dfe7","webpack:///./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack:///./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack:///./src/modules/account-order-templates-tile/index.ts?5fd2","webpack:///./src/modules/sign-in/components/index.ts?2246","webpack:///./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack:///./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack:///./src/modules/content-block/content-block.view.tsx?1773","webpack:///./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack:///./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack:///./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack:///./src/modules/loyalty-terms/index.ts?57be","webpack:///./src/modules/b2b-requests-tile/index.ts?8e8e","webpack:///./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5"],"sourcesContent":["/*!\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 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 * 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 AccountCustomerBalanceTile from './account-customer-balance-tile';\nimport AccountCustomerBalanceTileView from './account-customer-balance-tile.view';\n\nexport * from './account-customer-balance-tile';\nexport * from './account-customer-balance-tile.data';\nexport {\n IAccountCustomerBalanceTileConfig,\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileResources\n} from './account-customer-balance-tile.props.autogenerated';\nexport * from './account-customer-balance-tile.view';\nexport * from './components';\n\nexport { AccountCustomerBalanceTile, AccountCustomerBalanceTileView };\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 { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n }\n\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\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 btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\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 ContentCardLinks;\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, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock 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 render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: image?.imageSettings\n };\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n const contentBlockImage = (\n \n );\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className)\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-address-tile-description';\nexport * from './account-address-tile-links';\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 { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountAddressTile from './account-address-tile';\nimport AccountAddressTileView from './account-address-tile.view';\n\nexport * from './account-address-tile';\nexport * from './account-address-tile.data';\nexport {\n IAccountAddressTileConfig,\n IAccountAddressTileProps,\n IAccountAddressTileResources,\n ILinksData\n} from './account-address-tile.props.autogenerated';\nexport * from './account-address-tile.view';\nexport * from './components';\n\nexport { AccountAddressTile, AccountAddressTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './loyalty-terms-modal';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountProfile from './account-profile';\nimport AccountProfileView from './account-profile.view';\n\nexport * from './account-profile';\nexport * from './account-profile.data';\nexport {\n EmailAddressSectionHeadingTag,\n IAccountProfileConfig,\n IAccountProfileProps,\n IAccountProfileResources,\n IEmailAddressSectionHeadingData,\n INameSectionHeadingData,\n IPersonalizationSectionHeadingData,\n IPreferencesSectionHeadingData,\n NameSectionHeadingTag,\n PersonalizationSectionHeadingTag,\n PreferencesSectionHeadingTag\n} from './account-profile.props.autogenerated';\nexport * from './account-profile.view';\nexport * from './components';\n\nexport { AccountProfile, AccountProfileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

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

{description}

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

{emptyCartText}

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

{props.resources.emptyCartText}

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

\n

{groupTitle}

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

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

\n ) : null}\n

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

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-wishlist-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountWishlistTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport 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 LoyaltySignUp from './loyalty-sign-up';\nimport LoyaltySignUpView from './loyalty-sign-up.view';\n\nexport * from './loyalty-sign-up';\nexport * from './loyalty-sign-up.data';\nexport {\n ILoyaltySignUpConfig,\n ILoyaltySignUpProps,\n ILoyaltySignUpResources,\n IMemberHeadingData,\n MemberHeadingTag\n} from './loyalty-sign-up.props.autogenerated';\nexport * from './loyalty-sign-up.view';\n\nexport { LoyaltySignUp, LoyaltySignUpView };\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 SignIn from './sign-in';\nimport SignInView from './sign-in.view';\n\nexport * from './components';\nexport * from './sign-in';\nexport * from './sign-in.props.autogenerated';\nexport * from './sign-in.view';\n\nexport { SignIn, SignInView };\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 AccountLoyaltyTile from './account-loyalty-tile';\nimport AccountLoyaltyTileView from './account-loyalty-tile.view';\n\nexport * from './account-loyalty-tile';\nexport * from './account-loyalty-tile.data';\nexport {\n IAccountLoyaltyTileConfig,\n IAccountLoyaltyTileProps,\n IAccountLoyaltyTileResources\n} from './account-loyalty-tile.props.autogenerated';\nexport * from './account-loyalty-tile.view';\nexport * from './components';\n\nexport { AccountLoyaltyTile, AccountLoyaltyTileView };\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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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\nexport * from './modules/account-address-tile';\nexport * from './modules/account-customer-balance';\nexport * from './modules/account-customer-balance-tile';\nexport * from './modules/account-generic-tile';\nexport * from './modules/account-loyalty';\nexport * from './modules/account-loyalty-tile';\nexport * from './modules/account-order-templates-tile';\nexport * from './modules/account-profile';\nexport * from './modules/account-profile-edit';\nexport * from './modules/account-welcome-tile';\nexport * from './modules/account-wishlist-tile';\nexport * from './modules/b2b-requests-status';\nexport * from './modules/b2b-requests-tile';\nexport * from './modules/loyalty-sign-up';\nexport * from './modules/loyalty-terms';\nexport * from './modules/password-reset';\nexport * from './modules/password-reset-verification';\nexport * from './modules/sign-in';\nexport * from './modules/sign-up';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountAddressTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 { 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 { 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 { 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\nexport * from './sign-up-button';\nexport * from './sign-up-error';\nexport * from './sign-up-input';\nexport * from './sign-up-label';\nexport * from './sign-up-loading-icon';\nexport * from './sign-up-loading-message';\nexport * from './sign-up-success';\n","/*--------------------------------------------------------------\n * Copyright (c) Microsoft Corporation. All rights reserved.\n * See License.txt in the project root for license information.\n *--------------------------------------------------------------*/\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport { AsyncResult } from '@msdyn365-commerce/retail-proxy';\n\nimport { ICategoryPromotionalContentData } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuData {\n categories: AsyncResult;\n}\n\nexport interface IMenuItemData {\n id?: number;\n linkText?: string;\n linkURL?: string;\n imageSource?: string;\n imageDestinationURL?: string;\n subMenu?: IMenuItemData[];\n promotionalContent?: ICategoryPromotionalContentData[];\n menuSource?: string;\n shouldOpenNewTab?: boolean;\n ariaLabel?: string;\n}\n\n/**\n *\n * Menu type index id.\n */\nexport enum MenuTypeIndexId {\n Cms = 1000,\n Retail = 5000\n}\n\n/**\n *\n * Menu type source.\n */\nexport enum MenuSource {\n Cms = 'Cms',\n Retail = 'Retail'\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\nimport MsDyn365, { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject } from '@msdyn365-commerce/core';\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport * as React from 'react';\n\nimport { IMenuItemData, INavigationMenuData, MenuSource, MenuTypeIndexId } from './navigation-menu.data';\nimport { ICmsNavItemsData, INavigationMenuProps, ISubMenusData, navigationMenuSource } from './navigation-menu.props.autogenerated';\n\nexport interface INavigationMenuViewProps extends INavigationMenuProps {\n className: string;\n menuItemData: IMenuItemData[];\n Navigation: IModuleProps;\n MenuList: INodeProps;\n ListItem: INodeProps;\n Link: INodeProps;\n Button: INodeProps;\n Span: INodeProps;\n ImageContainer: INodeProps;\n MobileDescriptionContainer: INodeProps;\n MobileBackButton: INodeProps;\n MobileDescriptionLabel: INodeProps;\n imageSettings: IImageSettings;\n gridSettings: IGridSettings;\n isMobileView: boolean;\n DivContainer?: INodeProps;\n ImageDivContainer?: INodeProps;\n showCategoryImage?: boolean;\n showPromotionalContent?: boolean;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport interface INavigationMenuState {\n isMobile: boolean;\n}\n\n/**\n *\n * NavigationMenu component.\n * @extends {React.PureComponent>}\n */\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\n private static CMSItemIdInit: number = MenuTypeIndexId.Cms;\n\n private static RSItemIdInit: number = MenuTypeIndexId.Retail;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n private menuItemList: IMenuItemData[];\n\n private isRetail: boolean = true;\n\n private isCMS: boolean = true;\n\n @observable\n private viewport: GridSize;\n\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\n let nameTranslation: TextValueTranslation | undefined;\n if (locale && nameTranslations && nameTranslations.length > 0) {\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\n }\n\n return nameTranslation && nameTranslation.Text;\n }\n\n constructor(props: INavigationMenuProps) {\n super(props);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\n this.state = { isMobile: this.isMobile };\n this.menuItemList = [];\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n this.resizeThrottledEventHandler = addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n }\n this._updateViewport();\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n this.menuItemList = this._mapData();\n if (isEmptyOrNullObject(this.props.data)) {\n this.props.telemetry.error('Navigatiomenu returned null');\n return null;\n }\n\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=224&h=300&m=6', w: 0, h: 0 },\n xl: { q: 'w=224&h=300&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n\n const viewProps = {\n ...this.props,\n ...this.state,\n imageSettings: defaultImageSettings,\n gridSettings: this.props.context.request.gridSettings,\n Navigation: {\n moduleProps: this.props,\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\n tag: 'nav',\n role: this.isMobile ? 'listbox' : 'navigation'\n },\n MenuList: {\n className: 'ms-nav__list',\n tag: 'ul',\n role: this.isMobile ? 'listbox' : 'menu'\n },\n ListItem: {\n className: 'ms-nav__list__item',\n role: 'presentation',\n tag: 'li'\n },\n showCategoryImage: this.props.config.displayCategoryImage ?? false,\n showPromotionalContent: this.props.config.displayPromotionalImage ?? false,\n Link: {\n tag: 'a',\n className: 'ms-nav__list__item__link',\n role: this.isMobile ? 'option' : 'menuitem'\n },\n DivContainer: {\n tag: 'div',\n className: 'ms-nav__feature'\n },\n ImageDivContainer: {\n tag: 'div',\n className: 'category-image',\n role: 'tabpanel'\n },\n Button: {\n className: 'ms-nav__list__item__button',\n tag: 'button',\n role: this.isMobile ? 'option' : 'menuitem',\n onClick: this.props\n },\n ImageContainer: {\n className: 'ms-nav__list__item__image'\n },\n Span: {\n className: 'ms-nav__list__item__span',\n tag: 'span'\n },\n MobileDescriptionContainer: {\n className: 'ms-nav__list__mobile__container'\n },\n MobileBackButton: {\n className: 'ms-nav__list__mobile__container__button',\n tag: 'button',\n 'aria-label': this.props.resources.backButtonAriaLabel,\n onClick: this.props\n },\n MobileDescriptionLabel: {\n className: 'ms-nav__list__mobile__container__span',\n tag: 'span'\n },\n isMobileView: this.state.isMobile,\n menuItemData: this.menuItemList,\n className: classnames('ms-nav', this.props.config.className)\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _mapData(): IMenuItemData[] {\n const { data, config } = this.props;\n const mergedData: IMenuItemData[] = [];\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\n data.categories.result.map((item: CategoryHierarchy, index) =>\n mergedData.push(this._constructMenuItemData(item, undefined, true, index, true))\n );\n }\n\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) =>\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx + 1))\n );\n }\n return this._constructTopMenuItemData(mergedData);\n }\n\n private _constructTopMenuItemData(mergedData: IMenuItemData[]): IMenuItemData[] {\n const enableTopLevelMenu = this.props.config.enabletopMenu ?? false;\n if (!enableTopLevelMenu) {\n return mergedData;\n }\n const mergedRootMenuData: IMenuItemData[] = [];\n const topMenu = {\n id: 1,\n linkText: this.props.config.rootMenuNavigation ?? '...',\n linkURL: '#',\n imageSource: undefined,\n subMenu: mergedData\n } as IMenuItemData;\n mergedRootMenuData.push(topMenu);\n\n return mergedRootMenuData;\n }\n\n private _constructMenuItemData(\n retailItem?: CategoryHierarchy,\n cmsItem?: ICmsNavItemsData,\n isRetail?: boolean,\n idx?: number,\n addedAllMenu?: boolean\n ): IMenuItemData {\n const locale =\n this.props.context && this.props.context.request && this.props.context.request.locale\n ? this.props.context.request.locale\n : 'en-us';\n const { categoryPromotionalContent } = this.props.config;\n const cmsItemText = (cmsItem && cmsItem.linkText) || '';\n const { menuAriaLabel } = this.props.resources;\n\n // Filter category promotional data based on category name\n const promotionalData =\n retailItem &&\n categoryPromotionalContent?.filter(promoItem => promoItem.categoryName?.toLowerCase() === retailItem?.Name?.toLowerCase());\n\n // First check if image is available from promotional data else read from retail server\n let imageSource: string = 'empty';\n if (ArrayExtensions.hasElements(retailItem?.Images) && retailItem!.Images[0].Uri) {\n imageSource = retailItem!.Images[0].Uri;\n }\n if (isRetail) {\n return {\n id: NavigationMenu.RSItemIdInit++,\n linkText: NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? '',\n linkURL: retailItem?.Url,\n imageSource,\n subMenu: this._getNestedChildren(retailItem, imageSource, addedAllMenu),\n promotionalContent: this.props.config.displayPromotionalImage && promotionalData,\n menuSource: MenuSource.Retail,\n ariaLabel: `${NavigationMenu.getFriendlyName(locale, retailItem?.NameTranslations) ?? ''} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n return {\n id: NavigationMenu.CMSItemIdInit++,\n linkText: cmsItemText,\n linkURL: (cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl) || '',\n imageDestinationURL: (cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl) || '',\n imageSource: (cmsItem && cmsItem.image && cmsItem.image.src) || '',\n subMenu: this._getCMSNestedChildren(cmsItem),\n menuSource: MenuSource.Cms,\n shouldOpenNewTab: cmsItem?.openInNewTab,\n ariaLabel: `${cmsItemText} ${menuAriaLabel}`\n } as IMenuItemData;\n }\n\n private _getNestedChildren(category?: CategoryHierarchy, imageSourceUrl?: string, addedAllMenu: boolean = false): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n if (!category || !category.Children || category.Children.length === 0) {\n return [];\n }\n if (!this.props.config.enabletopMenu && addedAllMenu) {\n nestedChildren.push({\n linkText: this.props.resources.allCategoryMenuText,\n imageSource: imageSourceUrl,\n linkURL: getCategoryUrl(category, (this.props.context as unknown) as IActionContext, {})\n });\n }\n category.Children.map((item: CategoryHierarchy, index) => {\n nestedChildren.push(this._constructMenuItemData(item, undefined, true, index, false));\n });\n return nestedChildren;\n }\n\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\n const nestedChildren: IMenuItemData[] = [];\n\n if (!category || !category.subMenus || category.subMenus.length === 0) {\n return [];\n }\n\n category.subMenus.map((item: ISubMenusData, idx: number) => {\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\n });\n return nestedChildren;\n }\n\n private readonly _setNavigationSource = (sourceType?: navigationMenuSource): void => {\n switch (sourceType) {\n case navigationMenuSource.retailServerOnly:\n this.isRetail = true;\n this.isCMS = false;\n break;\n case navigationMenuSource.cmsOnly:\n this.isRetail = false;\n this.isCMS = true;\n break;\n case navigationMenuSource.all:\n this.isRetail = true;\n this.isCMS = true;\n break;\n default:\n }\n };\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n\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\nexport default NavigationMenu;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 25;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n \n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n \n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n isDisabled?: boolean;\n}\n\nexport interface IAccountProfileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountProfileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: link.isDisabled ? 'ms-account-profile__section-link-disable' : 'ms-account-profile__section-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountProfileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n ArrayExtensions,\n updateCustomerPersonalization,\n updateCustomerPersonalizationInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport {\n IAccountProfileProps,\n IEmailAddressSectionHeadingData,\n IHeadingData,\n INameSectionHeadingData\n} from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n private readonly payLoad: IPayLoad;\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel,\n isDisabled: invalidAsyncCustomerState\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n \n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n this.getDescription(customerInformation),\n Msdyn365.isOboRequest(this.props.context.request) ? undefined : [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n invalidAsyncCustomerState,\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.emailAddressSectionHeading!.text = event.target.value);\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.nameSectionHeading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private getDescription(customerInformation: Customer | undefined): string {\n let description = '';\n if (customerInformation !== undefined) {\n if (customerInformation.FirstName) {\n description += customerInformation.FirstName;\n }\n if (customerInformation.LastName) {\n description += customerInformation.FirstName ? ` ${customerInformation.LastName}` : customerInformation.LastName;\n }\n }\n return description;\n }\n\n private _renderEmailSection(\n className: string,\n heading?: IEmailAddressSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private _renderNameSection(\n className: string,\n heading?: INameSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n if (!ArrayExtensions.hasElements(links)) {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n description: description && (\n \n )\n };\n }\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(\n className: string,\n invalidAsyncCustomerState: boolean,\n customerInformation?: Customer\n ): IAccountPreferences | null {\n const {\n personalizationDescription,\n personalizationEnableButtonAriaLabel,\n webTrackingDescription,\n webTrackingEnableButtonAriaLabel\n } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity login preference if switch is enabled AND a heading is provided\n enableDataAnalytics &&\n webTrackingSectionHeading &&\n extraPreferences.push(\n this._renderPreference(\n 'web-tracking',\n webTrackingSectionHeading as IHeadingData,\n webTrackingEnableButtonAriaLabel,\n webTrackingDescription,\n customerInformation.OptOutWebActivityTracking || false,\n invalidAsyncCustomerState\n )\n );\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n \n ),\n personalization: this._renderPreference(\n 'personalization',\n personalizationSectionHeading as IHeadingData,\n personalizationEnableButtonAriaLabel,\n personalizationDescription,\n customerInformation.OptOutPersonalization || false,\n invalidAsyncCustomerState\n ),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (\n className: string,\n sectionHeading: IHeadingData,\n enableAriaLabel: string,\n description: string,\n isOptOut: boolean,\n disableBtn: boolean\n ) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, {\n 'ms-account-profile__personalization-updating': this.isUpdatingPreference\n })\n },\n heading: sectionHeading && (\n \n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`, {\n // Disable the toggle completely if customer is async.\n 'ms-account-profile__toggle-disabled': disableBtn\n })\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return ;\n };\n}\n\nexport default AccountProfile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport B2bRequestsStatus from './b2b-requests-status';\nimport B2bRequestsStatusView from './b2b-requests-status.view';\n\nexport * from './b2b-requests-status';\nexport * from './b2b-requests-status.data';\nexport { IB2bRequestsStatusConfig, IB2bRequestsStatusProps } from './b2b-requests-status.props.autogenerated';\nexport * from './b2b-requests-status.view';\n\nexport { B2bRequestsStatus, B2bRequestsStatusView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountWelcomeTile from './account-welcome-tile';\nimport AccountWelcomeTileView from './account-welcome-tile.view';\n\nexport * from './account-welcome-tile';\nexport * from './account-welcome-tile.data';\nexport { IAccountWelcomeTileConfig, IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\nexport * from './account-welcome-tile.view';\n\nexport { AccountWelcomeTile, AccountWelcomeTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountLoyalty from './account-loyalty';\nimport AccountLoyaltyView from './account-loyalty.view';\n\nexport * from './account-loyalty';\nexport * from './account-loyalty.data';\nexport { IAccountLoyaltyConfig, IAccountLoyaltyProps, IAccountLoyaltyResources } from './account-loyalty.props.autogenerated';\nexport * from './account-loyalty.view';\nexport * from './components';\n\nexport { AccountLoyalty, AccountLoyaltyView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport SignUp from './sign-up';\nimport SignUpView from './sign-up.view';\n\nexport * from './components';\nexport * from './sign-up';\nexport * from './sign-up.props.autogenerated';\nexport * from './sign-up.view';\n\nexport { SignUp, SignUpView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-customer-balance-tile-info';\nexport * from './account-customer-balance-tile-links';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n}\n\nexport default AccountWelcomeTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport AccountWishlistTile from './account-wishlist-tile';\nimport AccountWishlistTileView from './account-wishlist-tile.view';\n\nexport * from './account-wishlist-tile';\nexport * from './account-wishlist-tile.data';\nexport {\n IAccountWishlistTileConfig,\n IAccountWishlistTileProps,\n IAccountWishlistTileResources\n} from './account-wishlist-tile.props.autogenerated';\nexport * from './account-wishlist-tile.view';\n\nexport { AccountWishlistTile, AccountWishlistTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountGenericTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-generic-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountGenericTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-order-templates-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './account-profile-description';\nexport { IAccountProfileLinks } from './account-profile-links';\nexport * from './account-profile-text';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyCard, LoyaltyRewardPoint, LoyaltyRewardPointActivity } from '@msdyn365-commerce/retail-proxy';\nimport {\n getLoyaltyRewardPointActivityTimelineAsync,\n getLoyaltyRewardPointsExpiringSoonAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyData } from './account-loyalty.data';\nimport { IAccountLoyaltyProps } from './account-loyalty.props.autogenerated';\nimport { AccountLoyaltyLabel, AccountLoyaltyModalLabel } from './components';\n\nexport interface IAccountLoyaltyViewProps extends IAccountLoyaltyProps<{}> {\n AccountLoyalty: IModuleProps;\n className: string;\n totalPoints: number;\n heading?: React.ReactNode;\n Info: INodeProps;\n infoLabel: React.ReactNode;\n cardNumber: React.ReactNode;\n joinDate: React.ReactNode;\n Points: INodeProps;\n pointsLabel: React.ReactNode;\n points: React.ReactNode;\n Breakdown: INodeProps;\n RewardPoints: INodeProps;\n PointsBreakdown: INodeProps;\n rewardPoints?: IAccountLoyaltyRewardPointProps[];\n Button: INodeProps;\n homeButton: React.ReactNode;\n pointsModal: IAccountLoyaltyModalProps;\n}\n\nexport interface IAccountLoyaltyState {\n isModalOpen: boolean;\n currentModalData?: LoyaltyRewardPoint;\n isModalExpiring: boolean;\n modalID: string;\n currentFocus?: React.RefObject;\n pointsActivity: LoyaltyRewardPointActivity[] | undefined;\n}\n\nexport interface IAccountLoyaltyRewardPointProps {\n label: React.ReactNode;\n availableModalLabel: React.ReactNode;\n availableModalTrigger: React.ReactNode;\n expiringModalLabel: React.ReactNode;\n expiringModalTrigger: React.ReactNode;\n}\n\nexport type horizontalModalPosition = 'left' | 'center' | 'right';\nexport type verticalModalPosition = 'top' | 'center' | 'bottom';\n\nexport interface IAccountLoyaltyModalProps {\n isOpen: boolean;\n horizontalPosition?: horizontalModalPosition;\n verticalPosition?: verticalModalPosition;\n modalClassName?: string;\n modalHeaderClassName?: string;\n modalHeader?: string;\n modalBodyClassName?: string;\n ModalBodyTop: INodeProps;\n pointsDescription?: React.ReactNode;\n totalPoints?: React.ReactNode;\n ModalBodyHeaders: INodeProps;\n date?: React.ReactNode;\n balanceLabel?: React.ReactNode;\n rewardPointsActivity?: IAccountLoyaltyActivityProps[];\n returnFocusRef?: React.RefObject;\n onClose(): void;\n onOpened?(): void;\n}\n\nexport interface IAccountLoyaltyActivityProps {\n Activity: INodeProps;\n activityType: React.ReactNode;\n activityDate: React.ReactNode;\n activityPoints: React.ReactNode;\n}\n\nexport interface IProps extends IAccountLoyaltyProps {}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountLoyalty extends React.PureComponent {\n private readonly _buttonAvailableRef: React.RefObject;\n\n private readonly _buttonExpireRef: React.RefObject;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly decimalPrecision = 2;\n\n constructor(props: IAccountLoyaltyProps) {\n super(props);\n this._buttonAvailableRef = React.createRef();\n this._buttonExpireRef = React.createRef();\n this.state = {\n isModalOpen: false,\n currentModalData: undefined,\n isModalExpiring: false,\n modalID: '',\n pointsActivity: undefined\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, TelemetryConstant.BackToShopping);\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n const { loyaltyCard } = this.props.data;\n const { loyaltyCardLabel, totalAvailablePointsLabel, backToShoppingText } = this.props.resources;\n const { actionContext } = this.props.context;\n const { isModalOpen } = this.state;\n const backToShopAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n if (!loyaltyCard || !loyaltyCard.result || !loyaltyCard.result.CardNumber) {\n this.props.context.telemetry.error('Loyalty card content is empty, module wont render');\n return null;\n }\n\n const loyaltyCardData = loyaltyCard.result;\n const rewardPoints = loyaltyCard && loyaltyCardData.RewardPoints;\n const homeLink = Msdyn365.getUrlSync('home', actionContext) ?? '';\n\n const viewProps = {\n ...this.props,\n AccountLoyalty: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty', className),\n modalTransition: {\n /**\n * On Entered in Modal function.\n * @param node - The current node element.\n * @param isAppearing - The Boolean value.\n */\n onEntered: (node: HTMLElement, isAppearing: boolean) => {\n const childNode = node.firstChild as HTMLElement;\n if (isAppearing) {\n childNode.focus();\n }\n }\n }\n },\n totalPoints: rewardPoints && this._getTotalPoints(),\n className: classnames('msc-account-loyalty', className),\n rewardPoints:\n loyaltyCardData.RewardPoints && loyaltyCardData.RewardPoints.length > 0 && this._renderRewardPoints(loyaltyCardData),\n pointsModal: (isModalOpen && this._renderModal()) || {\n isOpen: false,\n returnFocusRef: this.state.currentFocus,\n onOpened: this._onOpenModal\n },\n Info: { className: 'ms-account-loyalty__info' },\n Points: { className: 'ms-account-loyalty__points' },\n Breakdown: { className: 'ms-account-loyalty__breakdown' },\n RewardPoints: { className: 'ms-account-loyalty__reward-points' },\n PointsBreakdown: { className: 'ms-account-loyalty__point-breakdown' },\n Button: { className: 'ms-account-loyalty__link' },\n heading: heading && (\n \n ),\n\n // Account info\n infoLabel: ,\n cardNumber: ,\n joinDate: (\n \n ),\n\n // Points\n pointsLabel: ,\n points: rewardPoints && (\n \n ),\n\n homeButton: rewardPoints && (\n \n {backToShoppingText}\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 private _formatJoinDate(date: Date): string {\n return format(\n this.props.resources.joinDateFormatted,\n new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n }).format(new Date(date))\n );\n }\n\n private _renderRewardPoints(loyaltyCard: LoyaltyCard): IAccountLoyaltyRewardPointProps[] {\n return loyaltyCard.RewardPoints!.map((loyaltyPoints, index) => {\n const availableId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-available-${index}`) || 'available-points';\n const expiringId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-expiring-${index}`) || 'expiring-points';\n const {\n availablePointsLabel,\n availablePointsAriaLabel,\n expiringPointsFormatLabel,\n expiringPointsFormatAriaLabel\n } = this.props.resources;\n this.payLoad.contentAction.etext = TelemetryConstant.AvailablePoints;\n const availablePointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.ExpiringPoints;\n const expiringPointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const expireDaysDefaultValue = 30;\n\n return {\n label: ,\n availableModalLabel: loyaltyPoints.ActivePoints !== undefined && (\n \n ),\n availableModalTrigger: loyaltyPoints.ActivePoints !== undefined && (\n \n {loyaltyPoints.ActivePoints.toFixed(this.decimalPrecision)}\n \n ),\n expiringModalLabel: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n ),\n expiringModalTrigger: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n {loyaltyPoints.PointsExpiringSoon.toFixed(this.decimalPrecision)}\n \n )\n };\n });\n }\n\n private _renderModal(): IAccountLoyaltyModalProps | null {\n const { totalAvailablePointsLabel, loyaltyActivityDateLabel, loyaltyActivityBalanceLabel } = this.props.resources;\n const { isModalOpen, currentModalData } = this.state;\n\n if (!isModalOpen || !currentModalData) {\n // Return empty modal\n this.props.context.telemetry.error('Account loyalty modal content is empty, module wont render');\n return null;\n }\n\n return {\n isOpen: isModalOpen,\n returnFocusRef: this.state.currentFocus,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n modalClassName: 'ms-account-loyalty__points-modal',\n modalHeaderClassName: 'ms-account-loyalty__points-modal-header',\n modalHeader: currentModalData.Description ?? '',\n modalBodyClassName: 'ms-account-loyalty__points-modal-body',\n ModalBodyTop: { className: 'ms-account-loyalty__points-modal-body-top' },\n ModalBodyHeaders: { className: 'ms-account-loyalty__points-modal-body-header' },\n rewardPointsActivity: this._renderPointsActivity(),\n pointsDescription: ,\n totalPoints: ,\n date: ,\n balanceLabel: ,\n onClose: this._closeModal,\n onOpened: this._onOpenModal\n };\n }\n\n private _getTotalPoints(): number {\n const rewardPoints = this.props.data.loyaltyCard.result && this.props.data.loyaltyCard.result.RewardPoints;\n\n let total = 0;\n rewardPoints &&\n rewardPoints.forEach(loyaltyPoints => {\n total += loyaltyPoints.ActivePoints ?? 0;\n });\n\n return total;\n }\n\n private _getPoints(): string {\n const { currentModalData, isModalExpiring } = this.state;\n const rewardPoints: number = (isModalExpiring ? currentModalData!.PointsExpiringSoon : currentModalData!.ActivePoints) ?? 0;\n\n return `${rewardPoints.toFixed(this.decimalPrecision)}`;\n }\n\n private _renderPointsActivity(): IAccountLoyaltyActivityProps[] | undefined {\n const { pointsActivity } = this.state;\n\n if (!pointsActivity) {\n this.props.context.telemetry.error('Points activity content is empty, module wont render');\n return undefined;\n }\n\n return pointsActivity.map(activity => {\n return {\n Activity: { className: 'ms-account-loyalty__points-modal-activity' },\n activityType: (\n \n ),\n activityDate: (\n \n ),\n activityPoints: (\n \n )\n };\n });\n }\n\n private _parseDate(date: Date | string): Date {\n /* Dates for loyalty are coming as formatted strings yyyy-mm-ddT:00:00.000z\n Javascript was interpreting this as an iso format, thus causing the wrong date to be rendered */\n if (typeof date === 'string') {\n let dateString = date.toString();\n dateString = dateString.replace(/-/g, '/');\n dateString = dateString.substring(0, 10);\n return new Date(dateString);\n }\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n }\n\n private _getTimelineType(pointActivity: LoyaltyRewardPointActivity): string {\n if (pointActivity.LoyaltyRewardPointTimelineEntryType) {\n return pointActivity.LoyaltyRewardPointTimelineEntryType;\n }\n\n const { earnedPointsLabel, redeemedPointsLabel, adjustedPointsLabel, refundedPointsLabel } = this.props.resources;\n switch (pointActivity.ExtensibleLoyaltyRewardPointActivityEntryTypeValue) {\n case 1:\n return earnedPointsLabel;\n case 2:\n return refundedPointsLabel;\n case 3:\n return redeemedPointsLabel;\n case 5:\n return adjustedPointsLabel;\n default:\n return '';\n }\n }\n\n private readonly _populateModalData = (\n focusRef: React.RefObject,\n loyaltyCard: LoyaltyCard,\n currentLoyaltyPoints: LoyaltyRewardPoint,\n expiring: boolean\n ) => () => {\n if (!loyaltyCard || !loyaltyCard.CardNumber || !currentLoyaltyPoints.RewardPointId) {\n this.props.context.telemetry.error('Modal data is empty, module wont render');\n return null;\n }\n\n const { actionContext } = this.props.context;\n\n // Open modal\n this.setState({\n isModalOpen: true,\n currentModalData: currentLoyaltyPoints,\n isModalExpiring: expiring,\n modalID: '',\n currentFocus: focusRef\n });\n\n if (expiring) {\n getLoyaltyRewardPointsExpiringSoonAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId,\n 30\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.exception(error);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n } else {\n getLoyaltyRewardPointActivityTimelineAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n }\n // eslint-disable-next-line no-useless-return, consistent-return -- Auto-suppressed.\n return;\n };\n\n private readonly _closeModal = () => {\n this.setState({\n isModalOpen: false,\n currentModalData: undefined,\n pointsActivity: undefined\n });\n };\n\n /**\n * On open modal function.\n */\n private readonly _onOpenModal = () => {\n if (this.state.currentFocus?.current) {\n this.state.currentFocus.current.focus();\n }\n };\n}\n\nexport default AccountLoyalty;\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 { 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 * as React from 'react';\n\ninterface IAccountProfileText {\n className: string;\n text: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileText: React.FC = ({ className, text }) => {text};\n\nexport default IAccountProfileText;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\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 } 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, { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent,\n Module,\n Node,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { INavigationMenuViewProps } from './navigation-menu';\nimport { IMenuItemData } from './navigation-menu.data';\n\ninterface INavigationState {\n parentMenu?: number;\n activeMenu?: number;\n categoryImage?: IImageData[] | null;\n mobileViewLabelText?: string;\n categoryImageAltText: string;\n}\n\n/**\n *\n * NavigationMenuView component.\n * @extends {React.PureComponent}\n */\nexport class NavigationMenuView extends React.PureComponent {\n private static isBackTrack: boolean = false;\n\n private currentLevel: number = 0;\n\n private readonly menuNode: React.RefObject;\n\n private readonly menuItemRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: INavigationMenuViewProps) {\n super(props);\n this.menuNode = React.createRef();\n this.menuItemRef = React.createRef();\n this.state = { activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined, categoryImageAltText: '' };\n this._closeSubmenu = this._closeSubmenu.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 }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document.body.addEventListener('mousedown', this._handleClickOutside);\n document.body.addEventListener('focusout', this._handleFocusOutside);\n }\n }\n\n public componentDidUpdate(): void {\n if (this.menuItemRef.current?.children[0] && this.props.isMobileView) {\n (this.menuItemRef.current.children[0] as HTMLElement).focus();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document.body.removeEventListener('mousedown', this._handleClickOutside, false);\n document.body.removeEventListener('focusout', this._handleFocusOutside, false);\n }\n }\n\n public render(): JSX.Element | null {\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation } = this.props;\n\n this.currentLevel = 1;\n return (\n \n \n {isMobileView && this.state.activeMenu !== undefined && (\n \n \n {this.state.mobileViewLabelText}\n \n )}\n {this._renderDisplay()}\n \n \n );\n }\n\n private _renderDisplay(): JSX.Element[] {\n const { ListItem, menuItemData, isMobileView } = this.props;\n const { activeMenu } = this.state;\n const menuItemList: JSX.Element[] = [];\n\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\n let menuItem: IMenuItemData = {};\n for (const menuItemDatum of menuItemData) {\n if (menuItemDatum && menuItemDatum.id === activeMenu) {\n menuItem = menuItemDatum;\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: undefined })\n : this.setState({ parentMenu: undefined, mobileViewLabelText: menuItemDatum.linkText });\n break;\n }\n menuItem = this._getFromSubMenu(menuItemDatum) as IMenuItemData;\n if (menuItem && menuItem.id === activeMenu) {\n break;\n }\n }\n\n menuItem &&\n menuItemList.push(\n \n {' '}\n {this._createMenuItemList(menuItem)}{' '}\n \n );\n } else {\n menuItemData.forEach((item: IMenuItemData, index: number) => {\n menuItemList.push(\n \n {this._createMenuItemList(item)}\n \n );\n });\n }\n\n return menuItemList;\n }\n\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\n const subMenus = item && item.subMenu;\n if (subMenus && subMenus.length > 0) {\n for (let i = 0; i <= subMenus.length - 1; i++) {\n if (subMenus[i].id === this.state.activeMenu) {\n !NavigationMenuView.isBackTrack\n ? this.setState({ parentMenu: item?.id })\n : this.setState({ parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText });\n return subMenus[i];\n }\n const found = this._getFromSubMenu(subMenus[i]);\n if (found) {\n return found;\n }\n }\n }\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\n return null;\n }\n\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\n return this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false);\n }\n return (\n <>\n {this._renderButtonMenuItem(menuItemData)}\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id, false)}\n \n );\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\n return this._renderLinkMenuItem(menuItemData, menuItemData.id, false, true);\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\n return this._renderSpanMenuItem(menuItemData, menuItemData.id, true);\n }\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\n return null;\n }\n\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number, IsSubMenu?: boolean): JSX.Element | null {\n const { isMobileView, ListItem } = this.props;\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\n\n // Const isParentMenu:boolean= false;\n if (activeMenu && this.state.activeMenu !== activeMenu) {\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\n return null;\n }\n\n if (!subMenus || subMenus.length === 0) {\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\n return null;\n }\n\n let levelClassName: string = '';\n const menuOptions =\n subMenus &&\n subMenus.map((option: IMenuItemData, idx: number) => {\n const hasOptions = option.subMenu && option.subMenu.length > 0;\n let menuItem: JSX.Element | null;\n if (hasOptions && isMobileView) {\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\n } else {\n menuItem = option.linkURL ? this._renderLinkMenuItem(option, idx) : this._renderSpanMenuItem(option);\n }\n\n let subMenu;\n const haveSubmenu = hasOptions && enableMultiSupportMenu && this.currentLevel <= Math.round(multiLevelSupportedMenu) - 1;\n if (haveSubmenu) {\n this.currentLevel++;\n levelClassName = enableMultiSupportMenu ? `level-${this.currentLevel.toString()}` : '';\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined, true);\n }\n return (\n \n {menuItem}\n {subMenu}\n
\n );\n });\n return this._renderMenu(levelClassName, menuOptions, activeMenu, IsSubMenu);\n }\n\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\n const { Button } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderLinkMenuItem(\n option: IMenuItemData,\n index?: number,\n hoverEffect: boolean = true,\n isParent: boolean = false\n ): JSX.Element | null {\n const { Link } = this.props;\n const linkText = option.linkText ? option.linkText : '';\n const imagesource = option.imageSource ? option.imageSource : '';\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderPromotionalLink(linkText?: string, linkUrl?: string): JSX.Element | null {\n const { Link } = this.props;\n this.payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n if (linkText && linkUrl) {\n return (\n \n {linkText}\n \n );\n }\n return null;\n }\n\n private _renderSpanMenuItem(option: IMenuItemData, index?: number, isParent: boolean = false): JSX.Element | null {\n const { Span } = this.props;\n return (\n \n {option.linkText}\n \n );\n }\n\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number, submenu?: boolean): JSX.Element | null {\n const { DivContainer, MenuList, ImageDivContainer, showCategoryImage, showPromotionalContent, isMobileView } = this.props;\n const categoryImageDisplay =\n !isMobileView &&\n (showCategoryImage || showPromotionalContent) &&\n !ArrayExtensions.hasElements(this.state.categoryImage) &&\n !submenu;\n const promotionalContentDisplay =\n !isMobileView && showPromotionalContent && ArrayExtensions.hasElements(this.state.categoryImage) && !submenu;\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className : 'ms-nav__deafult';\n this.currentLevel = 1;\n return (\n \n 2 &&\n 'navmenu-multi-level'\n )}\n >\n {menuOptions}\n \n {categoryImageDisplay &&\n this.state.categoryImage &&\n this.state.categoryImage.map(item => (\n \n {this.state.categoryImage && this._getCategoryImage(item)}\n {promotionalContentDisplay && this._renderPromotionalLink(item.altText, item.additionalProperties?.linkUrl)}\n \n ))}\n \n );\n }\n\n private readonly _updateCategoryImage = (categoryImageSrc: string, option: IMenuItemData) => () => {\n const linkText = option && option.linkText ? option.linkText : '';\n const promotionalImage: IImageData[] = [{ src: categoryImageSrc, altText: linkText }];\n\n // Read category and promotional image in one array\n if (ArrayExtensions.hasElements(option.promotionalContent)) {\n option.promotionalContent.map(item => {\n if (item && item.image) {\n const imageSrc = item.image.src;\n const promotionalItemImageSettings = item.image.imageSettings;\n promotionalImage.push({\n src: imageSrc,\n altText: item.text,\n imageSettings: promotionalItemImageSettings,\n additionalProperties: { linkUrl: item.linkUrl.destinationUrl }\n });\n }\n });\n }\n this.setState({\n categoryImage: promotionalImage.length > 0 ? promotionalImage : [{ src: 'empty' }],\n categoryImageAltText: linkText\n });\n };\n\n private readonly _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\n if (!this.props.isMobileView) {\n this.setState({\n activeMenu: this.state.activeMenu && this.state.activeMenu === data.id! ? undefined : data.id!,\n parentMenu: parentId\n });\n if (this.props.showCategoryImage) {\n this._updateCategoryImage(data.imageSource!, data)();\n }\n } else {\n NavigationMenuView.isBackTrack = false;\n this.setState({\n activeMenu: data.id,\n mobileViewLabelText: data.linkText!,\n parentMenu: parentId\n });\n }\n };\n\n private readonly _handleGoBack = () => () => {\n NavigationMenuView.isBackTrack = true;\n this.setState({ activeMenu: this.state.parentMenu });\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleClickOutside = (event: MouseEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.target as Node)) {\n this.setState({\n activeMenu: undefined,\n mobileViewLabelText: '',\n categoryImage: null\n });\n }\n };\n\n /**\n * Method to handle click outside of menu.\n * @param event -HTML event.\n */\n private readonly _handleFocusOutside = (event: FocusEvent) => {\n if (this.menuNode.current && !this.menuNode.current.contains(event.relatedTarget as Node)) {\n this._closeSubmenu();\n }\n };\n\n /**\n * Checks to assign a ref for focus.\n * @param index -Sub menu list index.\n * @param mobileViewLabelText -Parent user clicked Sub menu list.\n * @param optionLinkText -Sub menu list.\n * @returns Ref.\n */\n private readonly _shouldAddFocusMenuRef = (index: number, mobileViewLabelText?: string, optionLinkText?: string) => {\n if (!NavigationMenuView.isBackTrack && index === 0) {\n return true;\n }\n if (!optionLinkText || !mobileViewLabelText) {\n return false;\n }\n return mobileViewLabelText === optionLinkText;\n };\n\n private _closeSubmenu(): void {\n if (!this.props.isMobileView) {\n this.setState({ activeMenu: undefined, categoryImage: null, mobileViewLabelText: '' });\n }\n }\n\n private readonly _getCategoryImage = (categoryImage?: IImageData): React.ReactNode | null => {\n if (!categoryImage || !categoryImage.src) {\n return null;\n }\n\n const categoryImageUrl = generateImageUrl(`${categoryImage.src}`, this.props.context.actionContext.requestContext.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\n },\n lazyload: true\n };\n if (categoryImageUrl !== undefined) {\n return (\n \n );\n }\n return null;\n };\n}\n\nexport default NavigationMenuView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\n});\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-address-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountAddressTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as 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\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 IAccountLoyaltyLabel {\n className?: string;\n text?: string | number;\n}\n\nexport const AccountLoyaltyLabel: React.FC = ({ className, text }) =>

{text}

;\n\nexport interface IAccountLoyaltyModalLabel {\n className?: string;\n text?: string | number;\n labelFor?: string;\n}\n\nexport const AccountLoyaltyModalLabel: React.FC = ({ className, text, labelFor }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyViewProps } from './account-loyalty';\n\nconst AccountLoyaltyView: React.FC = props => {\n const {\n AccountLoyalty,\n Info,\n Points,\n Breakdown,\n RewardPoints,\n PointsBreakdown,\n Button,\n heading,\n infoLabel,\n cardNumber,\n joinDate,\n pointsLabel,\n points,\n rewardPoints,\n homeButton,\n pointsModal\n } = props;\n const { ModalBodyTop, ModalBodyHeaders } = pointsModal;\n return (\n \n {heading}\n \n {infoLabel}\n {cardNumber}\n {joinDate}\n \n \n {pointsLabel}\n {points}\n\n \n {rewardPoints &&\n rewardPoints.map((activity, index) => {\n return (\n \n {activity.label}\n \n {activity.availableModalLabel}\n {activity.availableModalTrigger}\n \n\n \n {activity.expiringModalLabel}\n {activity.expiringModalTrigger}\n \n \n );\n })}\n \n \n\n {homeButton}\n\n {(!pointsModal.isOpen && ) || (\n \n \n {pointsModal.modalHeader}\n \n \n \n {pointsModal.pointsDescription}\n {pointsModal.totalPoints}\n \n \n {pointsModal.date}\n {pointsModal.balanceLabel}\n \n {pointsModal.rewardPointsActivity &&\n pointsModal.rewardPointsActivity.map((activity, index) => {\n const { Activity, activityType, activityDate, activityPoints } = activity;\n return (\n \n {activityType}\n {activityDate}\n {activityPoints}\n \n );\n })}\n \n \n )}\n \n );\n};\n\nexport default AccountLoyaltyView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { AdminRequestStatementButton, RequestStatementModal } from './components';\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n\nexport * from './account-customer-balance';\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 { INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n ISearchCategoryViewProps,\r\n ISearchFormViewProps,\r\n ISearchKeywordViewProps,\r\n ISearchProductViewProps\r\n} from '@msdyn365-commerce-modules/search/src/modules/search/./components';\r\nimport { ISearchViewProps } from '@msdyn365-commerce-modules/search/src/modules/search/./search';\r\n\r\nconst SearchView: React.FC = props => {\r\n const {\r\n Search,\r\n AutoSuggestAriaLabel,\r\n AutoSuggestAriaLabelText,\r\n searchText,\r\n AutoSuggest,\r\n KeywordSuggest,\r\n ProductSuggest,\r\n CategorySuggest,\r\n UlKeyword,\r\n UlProduct,\r\n UlCategory,\r\n form,\r\n autosuggestCategory,\r\n autosuggestKeyword,\r\n autosuggestProduct,\r\n SearchForm,\r\n FormWrapper,\r\n label\r\n } = props;\r\n\r\n return (\r\n \r\n {label}\r\n {_renderForm(form as ISearchFormViewProps, SearchForm, FormWrapper)}\r\n \r\n {searchText && searchText.length > 0 ? {AutoSuggestAriaLabelText} : ''}\r\n {_renderKeywordSuggestions(KeywordSuggest, UlKeyword, autosuggestKeyword)}\r\n {_renderProductSuggestions(ProductSuggest, UlProduct, autosuggestProduct)}\r\n {_renderCategorySuggestions(CategorySuggest, UlCategory, autosuggestCategory)}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderForm = (form: ISearchFormViewProps, SearchForm: INodeProps, FormWrapper: INodeProps) => {\r\n return (\r\n \r\n \r\n {form.submitBtn}\r\n {form.input}\r\n {form.cancelBtn}\r\n \r\n \r\n );\r\n};\r\n\r\nconst _renderKeywordSuggestions = (KeywordSuggest: INodeProps, UlKeyword: INodeProps, keywordSuggestions?: ISearchKeywordViewProps) => {\r\n return (\r\n keywordSuggestions && (\r\n \r\n \r\n {keywordSuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderProductSuggestions = (ProductSuggest: INodeProps, UlProduct: INodeProps, productSuggestions?: ISearchProductViewProps) => {\r\n return (\r\n productSuggestions && (\r\n \r\n \r\n {productSuggestions.title}\r\n {productSuggestions.items.map((item, index) => {\r\n return (\r\n \r\n \r\n {item.thumbnail}\r\n {item.text}\r\n {item.price}\r\n \r\n \r\n );\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nconst _renderCategorySuggestions = (\r\n CategorySuggest: INodeProps,\r\n UlCategory: INodeProps,\r\n categorySuggestions?: ISearchCategoryViewProps\r\n) => {\r\n return (\r\n categorySuggestions && (\r\n \r\n \r\n {categorySuggestions.title}\r\n {categorySuggestions.text.map(text => {\r\n return text;\r\n })}\r\n \r\n \r\n )\r\n );\r\n};\r\n\r\nexport default SearchView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 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 AccountOrderTemplatesTile from './account-order-templates-tile';\nimport AccountOrderTemplatesTileView from './account-order-templates-tile.view';\n\nexport * from './account-order-templates-tile';\nexport * from './account-order-templates-tile.data';\nexport {\n IAccountOrderTemplatesTileConfig,\n IAccountOrderTemplatesTileProps,\n IAccountOrderTemplatesTileResources\n} from './account-order-templates-tile.props.autogenerated';\nexport * from './account-order-templates-tile.view';\n\nexport { AccountOrderTemplatesTile, AccountOrderTemplatesTileView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nexport * from './sign-in-button';\nexport * from './sign-in-description';\nexport * from './sign-in-error';\nexport * from './sign-in-input';\nexport * from './sign-in-label';\nexport * from './sign-in-link';\nexport * from './sign-in-loading-icon';\nexport * from './sign-in-loading-message';\nexport * from './sign-in-text';\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountOrganizationUsersTileDescription {\n description: string;\n}\n\nexport const AccountOrganizationUsersTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport LoyaltyTerms from './loyalty-terms';\nimport LoyaltyTermsView from './loyalty-terms.view';\n\nexport * from './components';\nexport * from './loyalty-terms';\nexport * from './loyalty-terms.data';\nexport { ILoyaltyTermsConfig, ILoyaltyTermsProps, ILoyaltyTermsResources } from './loyalty-terms.props.autogenerated';\nexport * from './loyalty-terms.view';\n\nexport { LoyaltyTerms, LoyaltyTermsView };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport B2bRequestsTile from './b2b-requests-tile';\nimport B2bRequestsTileView from './b2b-requests-tile.view';\n\nexport * from './b2b-requests-tile';\nexport * from './b2b-requests-tile.data';\nexport { IB2bRequestsTileConfig, IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nexport * from './b2b-requests-tile.view';\n\nexport { B2bRequestsTile, B2bRequestsTileView };\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"],"names":["PasswordReset","React","constructor","props","super","moduleClassName","handleHeadingChange","event","this","config","heading","text","target","value","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","setTimeout","clearInterval","window","isInitialized","map","obj","ID","toLowerCase","newPasswordRegex","PAT","reenterPasswordRegex","resources","message","verifying_blurb","loadingMessage","Object","assign","PasswordRegex","defaultRegex","source","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","componentDidMount","componentDidUpdate","shouldComponentUpdate","nextProps","nextState","state","data","render","viewProps","_objectSpread","viewState","isShowLoading","passwordReset","moduleProps","className","classnames","loading","modal","tag","Modal","isOpen","modalBody","ModalBody","icon","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","defaultAADConainer","id","style","display","aadConainer","Msdyn365","editProps","onEdit","requestContext","passwordResetLocalAccount","_renderLocalAccount","renderView","localAccount","items","_renderInput","newPasswordLabelText","confirmPasswordLabelText","errorMessage","PasswordResetErrorComponent","key","passwordEntryMismatchError","requiredFieldMissingError","fieldIncorrectError","buttonsWrapper","buttons","PasswordResetButtonComponent","ariaLabel","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","type","labelText","pattern","wrapper","label","PasswordResetLabelComponent","forId","input","PasswordResetInputComponent","__decorate","observable","observer","PasswordResetError","_ref","errorClassName","role","AccountProfileEditLoadingIcon","assembleNode","item","itemIndex","_item$links","renderHeading","additionalContentHeading","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","links","ctaLink","index","renderLinks","linkIndex","editableLink","linkText","linkUrl","destinationUrl","openInNewTab","link","onTextChange","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","push","additionalContentNode","additionalContentItems","ContentCardLinks","_mapEditableLinks","linkdata","length","editableLinks","forEach","payLoad","getPayloadObject","contentAction","etext","attributes","getTelemetryAttributes","btnClass","additionalProperties","onClick","onTelemetryClick","ContentBlock","handleTextChange","handleParagraphChange","paragraph","handleLinkTextChange","Number","_heading$tag","_this$props$context$r","_this$props$config$im","image","imageAriaLabel","contentBlockTitle","imageProps","gridSettings","imageSettings","contentBlockLinks","ArrayExtensions","hasElements","LinksComponent","msdyn365__moduleLayout","contentBlockText","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","shouldSkipToMainImage","error","contentBlockviewProps","title","moduleClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","SocialShareView","SocialShareList","SocialShareItemElements","SocialShareItem","SocialShare","createElement","Module","Node","SocialShareElement","PasswordResetItem","PasswordResetLoading","_ref3","PasswordResetView","_ref2","button","LocalAccount","_renderSitePicker","_renderSiteOptionsList","SitePickerMenuList","SitePickerMenuListItem","SitePickerMenuListItemArray","options","onMouseLeave","resetSiteOptionsState","isMobileView","SitePicker","_props$SitePickerMenu","SitePickerMobileContainer","renderSiteOptions","_renderMobileView","_props$config$heading","SitePickerMenu","SitePickerMenuSpan","siteOptionsState","_renderDesktopView","AccountAddressTileView","AccountAddressTile","description","AccountInvoiceTileDescription","AccountInvoiceTileLinks","AccountInvoiceTile","_data$customerBalance","cultureFormatter","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","result","OpenInvoiceBalance","toFixed","format","_renderAccordionItemContent","AccordionItemView","drawer","accordionSlots","AccordionItemContainer","AccordionItemContent","accordionItemContent","AccountProfileEditButton","disabled","Button","IAccountProfileDescription","AccordionItem","accordionItemTitle","_onToggle","bind","slots","accordionExpandedStateResult","accordionExpandedState","expanded","undefined","isAllExpanded","isExpandedOnInitialLoad","ControlledDrawer","toggleButtonText","collapseProps","onToggle","interactionStyle","accordionState","actionContext","update","createAccordionStateInput","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","MsDyn365","isBrowser","toString","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","TelemetryConstant","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","errors","Wrapper","header","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","channel","EmailDeliveryModeCode","multiplePickUpEnabled","count","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","StringExtensions","isNullOrEmpty","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","CartView","_props$cart","_props$context$action","_props$cart2","renderModuleAttributes","promotionOptions","cart","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","aadGeneric","aadAPIConainer","CatalogPickerViewFunctionComponent","catalogPicker","catalogs","accordionView","AccordionContainer","accordionItems","accordionButtons","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionItemContainer","IAccountWishlistTileDescription","AccountWishlistTileLinks","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","DescriptionComponent","B2bRequestsStatusView","b2bRequestsStatus","table","PasswordResetLoadingMessage","AccountProfileEditLabel","htmlFor","BusinessFormItem","BusinessUserForm","modalClassName","FormWrapper","modalHeading","modalDescription","inputs","toggle","modalFooter","_renderModal","BusinessUserDetails","selectedUser","FirstName","LastName","userFullName","keys","InputID","isModalOpen","headingSection","bodySection","footerSection","toggleModal","wrapClassName","autoFocus","fade","applicationNode","ModalHeader","ModalFooter","BusinessOrganizationList","OrganizationUserList","moduleContainer","noUsersText","addUserButton","organizationListTable","form","formType","requestAccountStatementButton","requestStatementModal","ButtonList","_getForm","formProps","AadGeneric","$i2e","$element","insertServiceContent","getElementContent","initialize","FormInput","maxLength","isRequired","isDisabled","onChange","fieldReference","placeholder","GetMaxLength","ref","FormLabel","asteriskText","FormButton","FormFieldError","_ref4","parsedMaxLength","parseInt","isNaN","FormType","InputType","renderInputSection","asteriskAfterLabel","onInputChange","element","customClass","maxChars","_this$props$config","BusinessFormDefaultInputs","Text","businessUserFirstNameLabelText","businessUserLastNameLabelText","Email","businessUserEmailAddressLabelText","EmailRegex","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","B2BUserId","Random","Guid","generateGuid","setState","isFormActive","Add","referenceBack","addUserButtonReference","current","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","then","location","reload","catch","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","find","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","user","_handleDeleteIcon","displayedUserData","TableDataType","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","URL","href","url","requestUrl","_getViewport","device","Type","innerWidth","xs","w","sm","md","lg","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_promoteToSeller","promoteToSellerUrl","getUrlSync","_requestStatement","customer","customerInformation","currentUser","users","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","requestAccountStatementAsync","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","focus","_onSelectRow","records","selectedRow","rowProps","isSelected","row","_toggleModal","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","split","isNullOrWhitespace","businessUserSelectedUserDisplayName","replace","addEventListener","componentWillUnmount","removeEventListener","_this$formChildRefere","_this$submitButtonRef","_this$props$data$cust","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","fullOrganizationLabel","requestStatementButtonLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","cancelLabel","fromDateLabel","toDateLabel","submitRequestLabel","sendToEmailLabel","selectedUserLabel","hasUsers","AddUser","addUserAttributes","status","errorProps","Heading","headingTag","innerRef","modalState","Table","_createTableProps","_renderUserForm","_renderUserDetails","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","promoteToSellerLabel","onPromoteToSeller","RequestStatementModal","email","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","modalHeaderLabel","onSubmitRequest","selectedOrganizationLabel","selectedUserName","modalAriaLabel","maxDateString","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","isMobile","includes","name","sortable","rows","editLinkText","deleteLinkText","viewLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","actions","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","computed","AccountGenericTile","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","accountAddressTileDescription","AccountProfileEditError","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","_ref5","headerProps","orderCountLabel","extraActions","OrderHistorySalesOder","_ref6","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","OrderHistoryView","_ref8","orderHistoryProps","alert","emptyMessage","backToShoppingLink","list","moreButton","CatalogPicker","PureComponent","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","RecordId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","firstOrDefault","Images","tabIndex","Name","Image","src","generateImageUrl","apiSettings","Uri","galleryImageSettings","altText","AltText","loadFailureBehavior","AccountLoyaltyTileLinks","AccountLoyaltyTile","signUpLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","AccountGenericTileView","AccountOrderTemplatesTileView","AccountOrderTemplatesTile","AccountProfileEditItem","AccountProfileEditLoading","AccountProfileEditView","accountProfileEdit","accountProfileEditLocalAccount","MenuTypeIndexId","MenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","viewport","navigationMenuSource","menuItemList","locale","nameTranslations","nameTranslation","Language","resizeThrottledEventHandler","addThrottledEvent","_this$props$config$di","_this$props$config$di2","_mapData","isEmptyOrNullObject","viewports","q","h","xl","lazyload","Navigation","MenuList","ListItem","showCategoryImage","displayCategoryImage","showPromotionalContent","displayPromotionalImage","Link","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","menuItemData","mergedData","categories","_constructMenuItemData","cmsNavItems","idx","_constructTopMenuItemData","_this$props$config$en","_this$props$config$ro","enabletopMenu","mergedRootMenuData","topMenu","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","categoryPromotionalContent","cmsItemText","menuAriaLabel","promotionalData","filter","promoItem","_promoItem$categoryNa","_retailItem$Name","categoryName","_NavigationMenu$getFr","_NavigationMenu$getFr2","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","promotionalContent","menuSource","Retail","CMSItemIdInit","imageDestinationURL","_getCMSNestedChildren","Cms","shouldOpenNewTab","category","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","hasError","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","att","attributeDefinition","attribute","IsHidden","toLocaleLowerCase","_renderAttribute","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","attributesContainerRef","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","selected","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","attributePayloadData","isMandatory","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","DecimalValue","StringValue","BooleanValue","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","KeyName","Phone","VATNumber","VatNumber","updateCustomerAttributesInput","AccountNumber","updateCustomerAttributes","initialCustomerAttributes","exception","debug","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","reaction","AccountProfileLinks","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","get","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountWishlistTileView","socialShareItems","cookies","isConsentGiven","params","isEditor","viewprops","caption","orientation","OrganizationUsersTileView","OrganizationUsersTile","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountProfileView","PasswordResetInput","AccountWelcomeTile","accountInfo","accountInformation","IAccountAddressTileDescription","AccountGenericTileLinks","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","isChannelTypeB2B","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","ariaHiddenAttr","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","document","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","createRef","_renderSiteOptions","_document","_document2","body","_document3","_document4","_this$props$config$he","_this$props$config$he2","Drawer","openGlyph","closeGlyph","glyphPlacement","_renderSitePickerImage","expandSiteOptionsState","e","preventDefault","cookieConfig","maxAge","defaultImageSettings","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","siteRedirectUrl","siteName","AccountLoyalty","_populateModalData","focusRef","currentLoyaltyPoints","expiring","RewardPointId","currentModalData","isModalExpiring","modalID","currentFocus","getLoyaltyRewardPointsExpiringSoonAsync","queryResultSettings","pointsActivity","getLoyaltyRewardPointActivityTimelineAsync","_closeModal","_onOpenModal","_this$state$currentFo","_buttonAvailableRef","_buttonExpireRef","BackToShopping","_Msdyn365$getUrlSync","loyaltyCardLabel","totalAvailablePointsLabel","backToShoppingText","backToShopAttributes","loyaltyCardData","rewardPoints","homeLink","modalTransition","onEntered","node","isAppearing","childNode","firstChild","totalPoints","_getTotalPoints","_renderRewardPoints","pointsModal","returnFocusRef","onOpened","Info","Points","Breakdown","PointsBreakdown","infoLabel","AccountLoyaltyLabel","cardNumber","joinDate","_formatJoinDate","_parseDate","LoyaltyEnrollmentDateLocal","pointsLabel","homeButton","date","joinDateFormatted","Intl","DateTimeFormat","month","day","year","loyaltyPoints","availableId","expiringId","availablePointsLabel","availablePointsAriaLabel","expiringPointsFormatLabel","expiringPointsFormatAriaLabel","AvailablePoints","availablePointsAttributes","ExpiringPoints","expiringPointsAttributes","AccountLoyaltyModalLabel","Description","availableModalLabel","labelFor","availableModalTrigger","color","expiringModalLabel","PointsExpiringSoon","expiringModalTrigger","_currentModalData$Des","loyaltyActivityDateLabel","loyaltyActivityBalanceLabel","horizontalPosition","verticalPosition","modalHeaderClassName","modalHeader","modalBodyClassName","ModalBodyTop","ModalBodyHeaders","rewardPointsActivity","_renderPointsActivity","pointsDescription","_getPoints","balanceLabel","onClose","total","_loyaltyPoints$Active","activity","_toFixed","Activity","activityType","_getTimelineType","activityDate","formatDate","ActivityDate","activityPoints","LoyaltyPoints","dateString","getUTCFullYear","getUTCMonth","getUTCDate","pointActivity","LoyaltyRewardPointTimelineEntryType","earnedPointsLabel","redeemedPointsLabel","adjustedPointsLabel","refundedPointsLabel","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","AccountLoyaltyTileView","PasswordResetButton","IAccountProfileText","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","headingComponent","accordionViewProps","_renderAccordionButton","_getAccordionItem","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","toggleAllSeparator","collapseAllText","_this$collapseAllButt","_this$expandAllButton","AccountWelcomeTileView","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","promotionalImage","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","menuNode","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","_categoryImage$imageS","categoryImageSettings","menuItemRef","_this$menuItemRef$cur","children","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","_createMenuItemList","i","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","Math","round","_renderMenu","onFocus","hoverEffect","isParent","imagesource","onMouseOver","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","msdyn365Commerce","createComponent","component","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","IsB2bAdmin","selectorState","setSelectorState","useState","currentSelectorState","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","AccountProfileEditLoadingMessage","AccountAddressTileLinks","PasswordResetLabel","IAccountLoyaltyTileDescription","FooterItemView","_renderElement","AccountLoyaltyView","zIndex","onClosed","_renderForm","SearchForm","submitBtn","cancelBtn","_renderKeywordSuggestions","KeywordSuggest","UlKeyword","keywordSuggestions","_renderProductSuggestions","ProductSuggest","UlProduct","productSuggestions","LiProduct","AProduct","thumbnail","_renderCategorySuggestions","CategorySuggest","UlCategory","categorySuggestions","SearchView","Search","AutoSuggestAriaLabel","AutoSuggestAriaLabelText","searchText","AutoSuggest","autosuggestCategory","autosuggestKeyword","autosuggestProduct","AccountProfileEditInput","PasswordResetLoadingIcon","RequestsTableColumnHeader","getUserName","UserFirstName","UserLastName","b2bRequestsNameDisplay","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","operationRequests","_request$TypeValue","_request$StatusValue","b2bRequestsTypeColumn","b2bRequestsRequestDateColumn","CreatedDateTime","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","createTableItems","b2bRequestsPreviousText","b2bRequestsNextText","B2bRequestsTable","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","renderAdditionalContent","_additionalContent$ad","ContentBlockView","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","accountOrganizationUsersTileDescription","AccountProfileEdit","onTextBoxChange","givenName","surname","emailRegex","invalidEmailAddressError","PRE","_htmlDecode","PAT_DESC","required_field","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","str","innerHTML","childNodes","nodeValue","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","AccountProfileEditButtonComponent","showEmail","emailAddressLabelText","AccountProfileEditLabelComponent","AccountProfileEditInputComponent"],"sourceRoot":""}