{"version":3,"file":"static/js/12.bd21e37ad6321d937a50.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/order-lookup/order-lookup.view.tsx?b8e5","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/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/lds-store-locator/lds-store-locator.tsx?eae1","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/fabrikam/views/cart.view.tsx?ac8f","webpack:///./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack:///./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack:///./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","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/order-lookup/utilities/order-lookup-utility.tsx?c60b","webpack:///./src/modules/order-lookup/components/order-lookup-additional-fields.tsx?9951","webpack:///./src/modules/order-lookup/components/order-lookup-fields.tsx?297b","webpack:///./src/modules/order-lookup/order-lookup.tsx?72d3","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/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-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/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","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/lds-store-locator/components/timeHelper.ts?3597","webpack:///./src/modules/lds-store-locator/components/StoreLocationSelector.tsx?e484","webpack:///./src/modules/lds-store-locator/components/StoreLocatorTable.tsx?c0dc","webpack:///./src/modules/lds-store-locator/lds-store-locator.view.tsx?e6de","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-wishlist-tile/index.ts?2533","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/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/navigation-menu/navigation-menu.view.tsx?c594","webpack:///./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack:///./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","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-customer-balance/index.tsx?e2e4","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 { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\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 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","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport * as React from 'react';\r\n\r\nimport { ILdsStoreLocatorData } from './lds-store-locator.data';\r\nimport { ILdsStoreLocatorProps } from './lds-store-locator.props.autogenerated';\r\n\r\nexport interface ILdsStoreProps extends ILdsStoreLocatorProps {}\r\n\r\n/**\r\n *\r\n * LdsContactUs Component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass LdsContactUs extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n return this.props.renderView(this.props);\r\n }\r\n}\r\n\r\nexport default LdsContactUs;\r\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 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 React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as 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 { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return
{value}
;\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage &&
{responseErrorMessage}
;\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string\n): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (\n
\n {message}\n \n {signInText}\n \n {infoMessage}\n
\n );\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (\n orderStatusLookUpParameter: string,\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return
{orderLookupFieldValidationErrorMessage}
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\n
\n )\n };\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\n
\n )\n };\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes\n} from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: { paragraph, heading },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const { responseErrorMessage, isDisabled, orderNumber, isOrdNumberError } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage:\n (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(\n resources,\n context.request.user.signInUrl ?? '',\n signinLinkClassName,\n registeredUserClassName\n ),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: actionContext });\n this.orderLookupExtensibleEnum =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(\n orderLookupAdditionalParameter,\n this.orderLookupExtensibleEnum\n );\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.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: Msdyn365.ContentEditableEvent): void => {\n const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const { orderStatusLookUpParametersType } = config;\n const orderLookupName = orderStatusLookUpParametersType !== undefined ? orderStatusLookUpParametersType : '';\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel)\n ? item.ariaLabel.replace(' ', '').toLocaleLowerCase()\n : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (\n this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupEmailValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isEmailError, email, isValidEmailError, isReqError } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupOrderNumberValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isOrdNumberError, isReqError } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: { orderStatusLookUpParametersType },\n resources: { orderLookupEmailLabel, orderLookupEmailAriaLabel }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (\n orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email &&\n StringExtensions.isNullOrWhitespace(email)\n ) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\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 {\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 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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","/*--------------------------------------------------------------\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 { RegularStoreHours } from '@msdyn365-commerce/retail-proxy';\r\nimport get from 'lodash/get';\r\n\r\n// import { IStoreSelectorLocationLineItemResources } from './timeHelperData';\r\n\r\ninterface IStoreSelectorLocationLineItemResources {\r\n contactInfoHeader: string;\r\n storeHoursHeader: string;\r\n availabilityInfoHeader: string;\r\n\r\n closedText: string;\r\n\r\n outOfStock: string;\r\n inStock: string;\r\n\r\n currentLocation: string;\r\n selectLocation: string;\r\n selectLocationAriaLabelFormat: string;\r\n setAsPreferredStoreText: string;\r\n setAsPreferredStoreTextAriaLabel: string;\r\n preferredStoreText: string;\r\n preferredStoreAriaLabel: string;\r\n\r\n days: {\r\n monday: string;\r\n tuesday: string;\r\n wednesday: string;\r\n thursday: string;\r\n friday: string;\r\n saturday: string;\r\n sunday: string;\r\n mondayFull: string;\r\n tuesdayFull: string;\r\n wednesdayFull: string;\r\n thursdayFull: string;\r\n fridayFull: string;\r\n saturdayFull: string;\r\n sundayFull: string;\r\n };\r\n}\r\n\r\nexport interface IHoursDisplayInfo {\r\n startDayShort: string;\r\n startDayFull: string;\r\n endDayShort?: string;\r\n endDayFull?: string;\r\n timeRange: string;\r\n}\r\n\r\ninterface IHoursInfo {\r\n isClosed: boolean;\r\n openTime?: number;\r\n closeTime?: number;\r\n}\r\n\r\ntype DayType = 'MON' | 'TUE' | 'WED' | 'THU' | 'FRI' | 'SAT' | 'SUN';\r\n\r\nexport const secondsToTime = (seconds: number | undefined): string | undefined => {\r\n if (seconds === undefined) {\r\n return undefined;\r\n }\r\n let hours = Math.floor(seconds / (60 * 60));\r\n const ampm = hours >= 12 ? 'pm' : 'am';\r\n hours %= 12;\r\n hours = hours ? hours : 12;\r\n const divisorForMinutes = seconds % (60 * 60);\r\n const minutes = Math.floor(divisorForMinutes / 60) < 10 ? `0${Math.floor(divisorForMinutes / 60)}` : Math.floor(divisorForMinutes / 60);\r\n return `${hours}:${minutes} ${ampm}`;\r\n};\r\n\r\nconst getShortTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.monday;\r\n case 'TUE':\r\n return resources.days.tuesday;\r\n case 'WED':\r\n return resources.days.wednesday;\r\n case 'THU':\r\n return resources.days.thursday;\r\n case 'FRI':\r\n return resources.days.friday;\r\n case 'SAT':\r\n return resources.days.saturday;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sunday;\r\n }\r\n};\r\n\r\nconst getFullTimeString = (day: DayType, resources: IStoreSelectorLocationLineItemResources): string => {\r\n switch (day) {\r\n case 'MON':\r\n return resources.days.mondayFull;\r\n case 'TUE':\r\n return resources.days.tuesdayFull;\r\n case 'WED':\r\n return resources.days.wednesdayFull;\r\n case 'THU':\r\n return resources.days.thursdayFull;\r\n case 'FRI':\r\n return resources.days.fridayFull;\r\n case 'SAT':\r\n return resources.days.saturdayFull;\r\n default:\r\n // Case 'SUN':\r\n return resources.days.sundayFull;\r\n }\r\n};\r\n\r\nconst buildHoursDisplayInfo = (\r\n startDay: DayType,\r\n endDay: DayType,\r\n hoursInfo: string,\r\n resources: IStoreSelectorLocationLineItemResources\r\n): IHoursDisplayInfo => {\r\n return {\r\n startDayShort: getShortTimeString(startDay, resources),\r\n startDayFull: getFullTimeString(startDay, resources),\r\n endDayShort: startDay !== endDay ? getShortTimeString(endDay, resources) : undefined,\r\n endDayFull: startDay !== endDay ? getFullTimeString(endDay, resources) : undefined,\r\n timeRange: hoursInfo\r\n };\r\n};\r\n\r\nconst shouldMergeLines = (firstLine: IHoursInfo, secondLine: IHoursInfo): boolean => {\r\n if (firstLine.isClosed && secondLine.isClosed) {\r\n return true;\r\n }\r\n\r\n if (!firstLine.isClosed && !secondLine.isClosed) {\r\n return firstLine.openTime === secondLine.openTime && firstLine.closeTime === secondLine.closeTime;\r\n }\r\n\r\n return false;\r\n};\r\n\r\nconst getStoreHoursData = (storeHours: RegularStoreHours, dateForLookup: string): IHoursInfo => {\r\n return {\r\n isClosed: get(storeHours, `CLOSEDON${dateForLookup}`, false),\r\n openTime: get(storeHours, `${dateForLookup}OPENTIME`, undefined),\r\n closeTime: get(storeHours, `${dateForLookup}CLOSETIME`, undefined)\r\n };\r\n};\r\n\r\nlet closedText: string;\r\n\r\nconst buildStoreHoursString = (hoursInfo: IHoursInfo, resources: IStoreSelectorLocationLineItemResources): string => {\r\n if (hoursInfo.isClosed) {\r\n return closedText;\r\n }\r\n const openFrom: string | undefined = secondsToTime(hoursInfo.openTime);\r\n const openTo: string | undefined = secondsToTime(hoursInfo.closeTime);\r\n\r\n return `${openFrom} – ${openTo}`;\r\n};\r\n\r\nexport const buildStoreHours = (storeHours: RegularStoreHours, resources: IStoreSelectorLocationLineItemResources): IHoursDisplayInfo[] => {\r\n const storeHoursList: IHoursDisplayInfo[] = [];\r\n\r\n const mondayHours = getStoreHoursData(storeHours, 'MONDAY');\r\n const tuesdayHours = getStoreHoursData(storeHours, 'TUESDAY');\r\n const wednesdayHours = getStoreHoursData(storeHours, 'WEDNESDAY');\r\n const thursdayHours = getStoreHoursData(storeHours, 'THURSDAY');\r\n const fridayHours = getStoreHoursData(storeHours, 'FRIDAY');\r\n const saturdayHours = getStoreHoursData(storeHours, 'SATURDAY');\r\n const sundayHours = getStoreHoursData(storeHours, 'SUNDAY');\r\n\r\n let periodStart: DayType = 'MON';\r\n let periodEnd: DayType = 'MON';\r\n\r\n if (!shouldMergeLines(mondayHours, tuesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(mondayHours, resources), resources));\r\n\r\n periodStart = 'TUE';\r\n }\r\n periodEnd = 'TUE';\r\n if (!shouldMergeLines(tuesdayHours, wednesdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(tuesdayHours, resources), resources));\r\n\r\n periodStart = 'WED';\r\n }\r\n periodEnd = 'WED';\r\n\r\n if (!shouldMergeLines(wednesdayHours, thursdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(wednesdayHours, resources), resources));\r\n\r\n periodStart = 'THU';\r\n }\r\n periodEnd = 'THU';\r\n\r\n if (!shouldMergeLines(thursdayHours, fridayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(thursdayHours, resources), resources));\r\n\r\n periodStart = 'FRI';\r\n }\r\n periodEnd = 'FRI';\r\n\r\n if (!shouldMergeLines(fridayHours, saturdayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(fridayHours, resources), resources));\r\n\r\n periodStart = 'SAT';\r\n }\r\n periodEnd = 'SAT';\r\n\r\n if (!shouldMergeLines(saturdayHours, sundayHours)) {\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(saturdayHours, resources), resources));\r\n\r\n periodStart = 'SUN';\r\n }\r\n periodEnd = 'SUN';\r\n\r\n storeHoursList.push(buildHoursDisplayInfo(periodStart, periodEnd, buildStoreHoursString(sundayHours, resources), resources));\r\n\r\n return storeHoursList;\r\n};\r\n","import React from 'react';\r\nimport { ICountryLanguageEntity, IChurchGlobalStoreLocatorInformation } from '../../../actions/DataServiceEntities.g';\r\nimport { Waiting } from '@msdyn365-commerce-modules/utilities';\r\n\r\ninterface StoreLocationProps {\r\n storeRegion: string;\r\n handleChange: any;\r\n state: string;\r\n handleClick: any;\r\n regionList: ICountryLanguageEntity[] | undefined;\r\n displayState: boolean;\r\n stateList: Object[];\r\n resources: any;\r\n regionStores: IChurchGlobalStoreLocatorInformation[];\r\n}\r\n\r\nexport const StoreLocationSelector: React.FC = ({\r\n storeRegion,\r\n handleChange,\r\n handleClick,\r\n state,\r\n regionList,\r\n displayState,\r\n stateList,\r\n resources,\r\n regionStores\r\n}) => {\r\n if (regionStores && regionStores[0] !== undefined) {\r\n return (\r\n
\r\n
\r\n \r\n handleChange(e.target.value)}\r\n >\r\n \r\n {regionList ? (\r\n regionList.map(region => {\r\n return (\r\n \r\n );\r\n })\r\n ) : (\r\n \r\n )}\r\n \r\n
\r\n {displayState ? (\r\n
\r\n \r\n \r\n
\r\n ) : null}\r\n
\r\n );\r\n } else {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n};\r\n","import React from 'react';\r\nimport { IChurchGlobalStoreLocatorInformation } from '../../../actions/DataServiceEntities.g';\r\nimport { IHoursDisplayInfo } from './timeHelper';\r\n\r\ninterface StoreLocatorTableProps {\r\n regionStores: IChurchGlobalStoreLocatorInformation[];\r\n storeHours: IHoursDisplayInfo[][] | undefined;\r\n resources: any;\r\n}\r\n\r\nexport const StoreLocatorTable: React.FC = ({ regionStores, storeHours, resources }) => {\r\n if (regionStores && regionStores[0] !== undefined && storeHours !== undefined) {\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n\r\n {regionStores && regionStores[0] !== undefined && storeHours !== undefined\r\n ? regionStores.map((store, index) => {\r\n const storeIndex = index;\r\n return (\r\n \r\n \r\n \r\n \r\n {storeHours[0] ? (\r\n \r\n ) : null}\r\n \r\n );\r\n })\r\n : null}\r\n
{resources.storeLocatorTableHeader}{resources.storeLocatorTableHeaderHours}
{resources.storeLocatorTableHeader}\r\n
\r\n
{store.NAME}
\r\n
{store.STREET}
\r\n
{store.DISTRICTNAME}
\r\n
{`${store.CITY}, ${store.STATE} ${store.ZIPCODE}`}
\r\n
{store.PHONE}
\r\n
\r\n
{resources.storeLocatorTableHeaderHours}\r\n
{resources.storeLocatorStoreHoursMessage}
\r\n \r\n
\r\n {/* eslint-disable-next-line security/detect-object-injection */}\r\n {storeHours[storeIndex]\r\n ? /* eslint-disable-next-line security/detect-object-injection */\r\n storeHours[storeIndex].map((hours, index) => {\r\n return (\r\n <>\r\n
\r\n {hours.endDayFull\r\n ? `${hours.startDayFull} - ${hours.endDayFull}`\r\n : `${hours.startDayFull}`}{' '}\r\n {hours.timeRange\r\n ? `${hours.timeRange}`\r\n : resources.storeHoursClosedText}\r\n
\r\n {/*
{hours.timeRange ? `${hours.timeRange}` : 'Closed'}
*/}\r\n \r\n );\r\n })\r\n : null}\r\n
\r\n {' '}\r\n
\r\n
\r\n );\r\n } else {\r\n return <>;\r\n }\r\n};\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport React, { useState, useEffect } from 'react';\r\n\r\n//@ts-ignore\r\nimport { Primary } from '@churchofjesuschrist/eden-buttons';\r\nimport { ILdsStoreProps } from './lds-store-locator';\r\nimport { IChurchGlobalStoreLocatorInformation, ICountryLanguageEntity } from '../../actions/DataServiceEntities.g';\r\n\r\nimport { IStoreSelectorLocationLineItemResources } from './components/timeHelperData';\r\nimport { IHoursDisplayInfo, buildStoreHours } from './components/timeHelper';\r\nimport { StoreLocationSelector } from './components/StoreLocationSelector';\r\nimport { StoreLocatorTable } from './components/StoreLocatorTable';\r\n\r\nimport { getStoreHoursAsync } from '../../actions/DataActionExtension.g';\r\n\r\nconst LdsStoreLocatorView: React.FC = props => {\r\n const StatesDefaultList = [\r\n { name: 'Alabama', abbreviation: 'AL' },\r\n { name: 'Alaska', abbreviation: 'AK' },\r\n { name: 'Arizona', abbreviation: 'AZ' },\r\n { name: 'Arkansas', abbreviation: 'AR' },\r\n { name: 'California', abbreviation: 'CA' },\r\n { name: 'Colorado', abbreviation: 'CO' },\r\n { name: 'Connecticut', abbreviation: 'CT' },\r\n { name: 'Delaware', abbreviation: 'DE' },\r\n { name: 'Florida', abbreviation: 'FL' },\r\n { name: 'Georgia', abbreviation: 'GA' },\r\n { name: 'Hawaii', abbreviation: 'HI' },\r\n { name: 'Idaho', abbreviation: 'ID' },\r\n { name: 'Illinois', abbreviation: 'IL' },\r\n { name: 'Indiana', abbreviation: 'IN' },\r\n { name: 'Iowa', abbreviation: 'IA' },\r\n { name: 'Kansas', abbreviation: 'KS' },\r\n { name: 'Kentucky', abbreviation: 'KY' },\r\n { name: 'Louisiana', abbreviation: 'LA' },\r\n { name: 'Maine', abbreviation: 'ME' },\r\n { name: 'Maryland', abbreviation: 'MD' },\r\n { name: 'Massachusetts', abbreviation: 'MA' },\r\n { name: 'Michigan', abbreviation: 'MI' },\r\n { name: 'Minnesota', abbreviation: 'MN' },\r\n { name: 'Mississippi', abbreviation: 'MS' },\r\n { name: 'Missouri', abbreviation: 'MO' },\r\n { name: 'Montana', abbreviation: 'MT' },\r\n { name: 'Nebraska', abbreviation: 'NE' },\r\n { name: 'Nevada', abbreviation: 'NV' },\r\n { name: 'New Hampshire', abbreviation: 'NH' },\r\n { name: 'New Jersey', abbreviation: 'NJ' },\r\n { name: 'New Mexico', abbreviation: 'NM' },\r\n { name: 'New York', abbreviation: 'NY' },\r\n { name: 'North Carolina', abbreviation: 'NC' },\r\n { name: 'North Dakota', abbreviation: 'ND' },\r\n { name: 'Ohio', abbreviation: 'OH' },\r\n { name: 'Oklahoma', abbreviation: 'OK' },\r\n { name: 'Oregon', abbreviation: 'OR' },\r\n { name: 'Pennsylvania', abbreviation: 'PA' },\r\n { name: 'Rhode Island', abbreviation: 'RI' },\r\n { name: 'South Carolina', abbreviation: 'SC' },\r\n { name: 'South Dakota', abbreviation: 'SD' },\r\n { name: 'Tennessee', abbreviation: 'TN' },\r\n { name: 'Texas', abbreviation: 'TX' },\r\n { name: 'Utah', abbreviation: 'UT' },\r\n { name: 'Vermont', abbreviation: 'VT' },\r\n { name: 'Virginia', abbreviation: 'VA' },\r\n { name: 'Washington', abbreviation: 'WA' },\r\n { name: 'West Virginia', abbreviation: 'WV' },\r\n { name: 'Wisconsin', abbreviation: 'WI' },\r\n { name: 'Wyoming', abbreviation: 'WY' }\r\n ];\r\n const [stateList, setStateList] = useState(StatesDefaultList);\r\n\r\n const [storeRegion, setStoreRegion] = useState('');\r\n const [regionList, setRegionList] = useState();\r\n const [state, setState] = useState('');\r\n const [displayState, setDisplayStates] = useState(false);\r\n const [regionStores, setRegionStores] = useState([]);\r\n const [storeHours, setStoreHours] = useState();\r\n const [filteredRegions, setFilteredRegions] = useState();\r\n const [storesFound, setStoresFound] = useState(true);\r\n\r\n const RegionList = props.data.countries?.result;\r\n let formattedStoreHours: any;\r\n const StoreHoursContext: IStoreSelectorLocationLineItemResources = {\r\n contactInfoHeader: props.resources.contactText,\r\n storeHoursHeader: props.resources.timeText,\r\n availabilityInfoHeader: props.resources.availabilityText,\r\n\r\n closedText: props.resources.storeHoursClosedText,\r\n outOfStock: props.resources.outOfStockText,\r\n inStock: props.resources.inStockText,\r\n\r\n currentLocation: props.resources.selectedStoreLocationText,\r\n selectLocation: props.resources.selectStoreText,\r\n selectLocationAriaLabelFormat: props.resources.selectStoreAriaFormatText,\r\n setAsPreferredStoreText: props.resources.setAsPreferredStoreText,\r\n setAsPreferredStoreTextAriaLabel: props.resources.setAsPreferredStoreTextAriaLabel,\r\n preferredStoreText: props.resources.preferredStoreText,\r\n preferredStoreAriaLabel: props.resources.preferredStoreAriaLabel,\r\n\r\n days: {\r\n monday: props.resources.storeHoursMondayText,\r\n tuesday: props.resources.storeHoursTuesdayText,\r\n wednesday: props.resources.storeHoursWednesdayText,\r\n thursday: props.resources.storeHoursThursdayText,\r\n friday: props.resources.storeHoursFridayText,\r\n saturday: props.resources.storeHoursSaturdayText,\r\n sunday: props.resources.storeHoursSundayText,\r\n mondayFull: props.resources.storeHoursMondayFullText,\r\n tuesdayFull: props.resources.storeHoursTuesdayFullText,\r\n wednesdayFull: props.resources.storeHoursWednesdayFullText,\r\n thursdayFull: props.resources.storeHoursThursdayFullText,\r\n fridayFull: props.resources.storeHoursFridayFullText,\r\n saturdayFull: props.resources.storeHoursSaturdayFullText,\r\n sundayFull: props.resources.storeHoursSundayFullText\r\n }\r\n };\r\n let StateSelectOptions: any = StatesDefaultList;\r\n const cart = props.data.cart?.result;\r\n const filterFunction = async () => {\r\n const storesWithHours = await getStoreHoursAsync({ callerContext: props.context.actionContext }, '0');\r\n if (storesWithHours && regionList) {\r\n const filteredRegions = regionList.filter(el => {\r\n return storesWithHours.some(f => {\r\n return f.COUNTRYREGIONID === el.countryRegionId;\r\n });\r\n });\r\n setFilteredRegions(filteredRegions);\r\n }\r\n };\r\n const getAvailableState = async () => {\r\n await handleChange('USA');\r\n setDisplayStates(true);\r\n StateSelectOptions = StatesDefaultList.filter(({ abbreviation: id1 }) => regionStores.some(({ STATE: id2 }) => id2 === id1));\r\n setStateList(StateSelectOptions);\r\n };\r\n\r\n useEffect(() => {\r\n if (cart && !storeRegion && cart.cart.ExtensionProperties) {\r\n const userCountry = cart.cart.ExtensionProperties?.find((x: any) => x.Key === 'Country')?.Value?.StringValue;\r\n setStoreRegion(userCountry);\r\n void handleChange(userCountry!);\r\n }\r\n if (storeRegion === 'USA' && !displayState) {\r\n void getAvailableState();\r\n } else if (storeRegion !== 'USA') {\r\n setDisplayStates(false);\r\n }\r\n\r\n if (RegionList && !filteredRegions) {\r\n const sortedRegions = RegionList.sort((a, b) =>\r\n a.CountryName! > b.CountryName! ? 1 : b.CountryName! > a.CountryName! ? -1 : 0\r\n );\r\n setRegionList(sortedRegions);\r\n void filterFunction();\r\n }\r\n\r\n if (regionStores.length >= 1) {\r\n formattedStoreHours = regionStores.map(store => {\r\n return buildStoreHours(store, StoreHoursContext);\r\n });\r\n setStoreHours(formattedStoreHours);\r\n }\r\n if (!storesFound && filteredRegions && filteredRegions[0]) {\r\n void handleChange(filteredRegions[0].countryRegionId);\r\n }\r\n }, [storeRegion, regionStores, RegionList, storesFound, filteredRegions]);\r\n\r\n const handleChange = async (value: string) => {\r\n const getRegionStores = await getStoreHoursAsync({ callerContext: props.context.actionContext }, value);\r\n if (getRegionStores[0] !== undefined) {\r\n const sortedRegionStores = getRegionStores.sort((a: any, b: any) => {\r\n const compareStrings = (str1: any, str2: any) => {\r\n const trimmedStr1 = str1.startsWith('DS ') ? str1.slice(3) : str1.startsWith('Deseret Book ') ? str1.slice(13) : str1;\r\n const trimmedStr2 = str2.startsWith('DS ') ? str2.slice(3) : str2.startsWith('Deseret Book ') ? str2.slice(13) : str2;\r\n\r\n for (let i = 0; i < Math.min(trimmedStr1.length, trimmedStr2.length); i++) {\r\n const charCode1 = trimmedStr1.charCodeAt(i);\r\n const charCode2 = trimmedStr2.charCodeAt(i);\r\n\r\n if (charCode1 < charCode2) {\r\n return -1;\r\n } else if (charCode1 > charCode2) {\r\n return 1;\r\n }\r\n }\r\n\r\n if (trimmedStr1.length < trimmedStr2.length) {\r\n return -1;\r\n } else if (trimmedStr1.length > trimmedStr2.length) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n return compareStrings(a.NAME, b.NAME);\r\n });\r\n\r\n // formattedStoreHours = getRegionStores.map(store => {\r\n // return buildStoreHours(store, StoreHoursContext);\r\n // });\r\n formattedStoreHours = sortedRegionStores.map(store => {\r\n return buildStoreHours(store, StoreHoursContext);\r\n });\r\n\r\n setStoreHours(formattedStoreHours);\r\n\r\n // setRegionStores(getRegionStores);\r\n setRegionStores(sortedRegionStores);\r\n setStoreRegion(value);\r\n setStoresFound(true);\r\n } else {\r\n setStoresFound(false);\r\n }\r\n };\r\n\r\n const handleClick = async (state: string) => {\r\n const getStores = await getStoreHoursAsync({ callerContext: props.context.actionContext }, storeRegion);\r\n setState(state);\r\n\r\n const filteredStores = state\r\n ? getStores.filter(store => {\r\n return store.STATE === state;\r\n })\r\n : null;\r\n let sortedRegionStores;\r\n if (filteredStores) {\r\n sortedRegionStores = filteredStores.sort((a: any, b: any) => {\r\n const compareStrings = (str1: any, str2: any) => {\r\n const trimmedStr1 = str1.startsWith('DS ') ? str1.slice(3) : str1.startsWith('Deseret Book ') ? str1.slice(13) : str1;\r\n const trimmedStr2 = str2.startsWith('DS ') ? str2.slice(3) : str2.startsWith('Deseret Book ') ? str2.slice(13) : str2;\r\n\r\n for (let i = 0; i < Math.min(trimmedStr1.length, trimmedStr2.length); i++) {\r\n const charCode1 = trimmedStr1.charCodeAt(i);\r\n const charCode2 = trimmedStr2.charCodeAt(i);\r\n\r\n if (charCode1 < charCode2) {\r\n return -1;\r\n } else if (charCode1 > charCode2) {\r\n return 1;\r\n }\r\n }\r\n\r\n if (trimmedStr1.length < trimmedStr2.length) {\r\n return -1;\r\n } else if (trimmedStr1.length > trimmedStr2.length) {\r\n return 1;\r\n }\r\n\r\n return 0;\r\n };\r\n\r\n // Compare the strings using the custom comparison function\r\n return compareStrings(a.NAME, b.NAME);\r\n });\r\n }\r\n\r\n // if (filteredStores) {\r\n // formattedStoreHours = filteredStores.map(store => {\r\n // return buildStoreHours(store, StoreHoursContext);\r\n // });\r\n // setStoreHours(formattedStoreHours);\r\n // }\r\n if (sortedRegionStores) {\r\n formattedStoreHours = sortedRegionStores.map(store => {\r\n return buildStoreHours(store, StoreHoursContext);\r\n });\r\n setStoreHours(formattedStoreHours);\r\n }\r\n\r\n // setRegionStores(filteredStores ? filteredStores : getStores);\r\n setRegionStores(sortedRegionStores ? sortedRegionStores : getStores);\r\n };\r\n\r\n const { storeLocatorHeader, storeLocatorMessage } = props.resources;\r\n\r\n return (\r\n
\r\n
\r\n <>\r\n

{storeLocatorHeader}

\r\n

{storeLocatorMessage}

\r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default LdsStoreLocatorView;\r\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 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 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 { 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 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 * 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 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 { AdminRequestStatementButton, RequestStatementModal } from './components';\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n\nexport * from './account-customer-balance';\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","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","paragraph","orderLookupForm","renderOrderLookupInputField","orderNumberInput","submitButton","additionalProperties","registeredUserMessage","fieldErrorMessage","Module","Node","ArrayExtensions","hasElements","item","submitButtonLabelText","AccountProfileEditLoadingIcon","assembleNode","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","onClick","onTelemetryClick","ContentBlock","handleTextChange","handleParagraphChange","handleLinkTextChange","Number","_heading$tag","_this$props$context$r","_this$props$config$im","image","imageAriaLabel","contentBlockTitle","imageProps","gridSettings","imageSettings","contentBlockLinks","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","SocialShareElement","PasswordResetItem","PasswordResetLoading","_ref3","PasswordResetView","_ref2","button","LocalAccount","AccountInvoiceTileDescription","description","AccountInvoiceTileLinks","AccountInvoiceTile","_data$customerBalance","cultureFormatter","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","result","OpenInvoiceBalance","toFixed","format","LdsContactUs","AccountProfileEditButton","disabled","Button","IAccountProfileDescription","_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","actionContext","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","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","setState","IssueLoyaltyInput","apiSettings","issueLoyalty","then","location","catch","debug","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","undefined","CardTenderTypeValue","customerInformation","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","status","signInLink","href","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","CatalogPickerViewFunctionComponent","catalogPicker","catalogs","IAccountWishlistTileDescription","AccountWishlistTileLinks","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","DescriptionComponent","B2bRequestsStatusView","b2bRequestsStatus","table","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","onChange","name","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","ref","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleSubmit","orderNumber","email","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","_Msdyn365$getUrlSync","actionContextValue","orderDetailsPath","baseUrl","URL","redirectUrl","searchParameters","searchParams","set","fieldName","isNullOrWhitespace","replace","toLocaleLowerCase","fieldValue","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","current","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","isDisabled","_renderAlert","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isValid","isDisable","trim","EmailRegex","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","headingTag","orderLookupHeading","_createParagraph","autoComplete","onSubmit","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","getExtensibleEnumerationsAsync","callerContext","find","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","Name","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","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","FormInput","maxLength","isRequired","fieldReference","placeholder","GetMaxLength","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","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newForm","formItems","newUser","B2BUserId","Random","Guid","generateGuid","isFormActive","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","prev","refresh","isReady","_isFormReady","formItem","match","_formatPrice","price","_getCurrentUrl","reqContext","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","currentUser","users","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","BusinessPartnerUsersDataActions","requestAccountStatementAsync","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","focus","_onSelectRow","records","selectedRow","rowProps","isSelected","row","_toggleModal","bind","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","split","businessUserSelectedUserDisplayName","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","errorProps","Heading","innerRef","modalState","Table","_createTableProps","_renderUserForm","_renderUserDetails","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","promoteToSellerLabel","onPromoteToSeller","RequestStatementModal","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","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","AccountProfileEditError","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","address","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","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","String","firstOrDefault","Images","tabIndex","Image","src","generateImageUrl","Uri","galleryImageSettings","altText","AltText","loadFailureBehavior","LoyaltySignUpView","AccountLoyaltyTileLinks","AccountLoyaltyTile","signUpLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","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","isMobileView","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","secondsToTime","seconds","hours","Math","floor","ampm","divisorForMinutes","getShortTimeString","day","days","monday","tuesday","wednesday","thursday","friday","saturday","sunday","getFullTimeString","mondayFull","tuesdayFull","wednesdayFull","thursdayFull","fridayFull","saturdayFull","sundayFull","buildHoursDisplayInfo","startDay","endDay","hoursInfo","startDayShort","startDayFull","endDayShort","endDayFull","timeRange","shouldMergeLines","firstLine","secondLine","isClosed","openTime","closeTime","getStoreHoursData","storeHours","dateForLookup","get","buildStoreHoursString","buildStoreHours","storeHoursList","mondayHours","tuesdayHours","wednesdayHours","thursdayHours","fridayHours","saturdayHours","sundayHours","periodStart","periodEnd","StoreLocationSelector","storeRegion","handleChange","handleClick","regionList","displayState","stateList","regionStores","storeLocatorCountryLabel","e","selected","defaultDropdown","region","countryRegionId","Id","CountryName","storeLocatorStateLabel","defalutDropdown","abbreviation","width","justifyContent","Waiting","StoreLocatorTable","storeLocatorTableHeader","storeLocatorTableHeaderHours","store","storeIndex","NAME","STREET","DISTRICTNAME","CITY","STATE","ZIPCODE","PHONE","padding","storeLocatorStoreHoursMessage","flexDirection","Fragment","storeHoursClosedText","LdsStoreLocatorView","_props$data$countries","_props$data$cart","StatesDefaultList","setStateList","useState","setStoreRegion","setRegionList","setDisplayStates","setRegionStores","setStoreHours","filteredRegions","setFilteredRegions","storesFound","setStoresFound","RegionList","countries","formattedStoreHours","StoreHoursContext","contactInfoHeader","contactText","storeHoursHeader","timeText","availabilityInfoHeader","availabilityText","closedText","outOfStock","outOfStockText","inStock","inStockText","currentLocation","selectedStoreLocationText","selectLocation","selectStoreText","selectLocationAriaLabelFormat","selectStoreAriaFormatText","setAsPreferredStoreText","setAsPreferredStoreTextAriaLabel","preferredStoreText","preferredStoreAriaLabel","storeHoursMondayText","storeHoursTuesdayText","storeHoursWednesdayText","storeHoursThursdayText","storeHoursFridayText","storeHoursSaturdayText","storeHoursSundayText","storeHoursMondayFullText","storeHoursTuesdayFullText","storeHoursWednesdayFullText","storeHoursThursdayFullText","storeHoursFridayFullText","storeHoursSaturdayFullText","storeHoursSundayFullText","StateSelectOptions","useEffect","ExtensionProperties","_cart$cart$ExtensionP","userCountry","x","Key","Value","StringValue","id1","id2","getAvailableState","sortedRegions","sort","a","b","storesWithHours","getStoreHoursAsync","el","f","COUNTRYREGIONID","filterFunction","getRegionStores","sortedRegionStores","compareStrings","str1","str2","trimmedStr1","startsWith","slice","trimmedStr2","i","min","charCode1","charCodeAt","charCode2","storeLocatorHeader","storeLocatorMessage","getStores","filteredStores","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","_renderAttribute","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","attributesContainerRef","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","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","BooleanValue","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","KeyName","Phone","VATNumber","VatNumber","updateCustomerAttributesInput","AccountNumber","updateCustomerAttributes","initialCustomerAttributes","exception","_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","editButtonAriaLabel","shouldRenderAttributes","editLink","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountWishlistTileView","slots","socialShareItems","cookies","isConsentGiven","viewprops","caption","orientation","OrganizationUsersTileView","OrganizationUsersTile","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountProfileView","PasswordResetInput","AccountGenericTileLinks","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","isChannelTypeB2B","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountLoyaltyTileView","PasswordResetButton","IAccountProfileText","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","promotionalImage","imageSrc","promotionalItemImageSettings","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_handleGoBack","_handleClickOutside","menuNode","contains","_handleFocusOutside","relatedTarget","_closeSubmenu","_shouldAddFocusMenuRef","optionLinkText","_getCategoryImage","defaultImageSettings","_categoryImage$imageS","categoryImageSettings","menuItemRef","document","body","_this$menuItemRef$cur","children","_renderDisplay","menuItem","menuItemDatum","_getFromSubMenu","_createMenuItemList","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","hasOptions","haveSubmenu","round","_renderMenu","onFocus","hoverEffect","isParent","imagesource","onMouseOver","_renderPromotionalLink","level","currentItem","submenu","categoryImageDisplay","promotionalContentDisplay","DivContainerClass","_item$additionalPrope","AccountProfileEditLoadingMessage","PasswordResetLabel","IAccountLoyaltyTileDescription","AccountProfileEditInput","PasswordResetLoadingIcon","RequestsTableColumnHeader","getUserName","UserFirstName","UserLastName","b2bRequestsNameDisplay","formatDate","date","year","month","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","IsB2bAdmin","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":""}