{"version":3,"file":"static/js/14.b3c1f1ee0ceee721fd55.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://Msdyn365.Commerce.Online/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://Msdyn365.Commerce.Online/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://Msdyn365.Commerce.Online/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7"],"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 { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps<IAccountAddressTileData> {\n    AccountAddressTile: IModuleProps;\n    className: string;\n    heading?: React.ReactNode;\n    links?: React.ReactNode;\n    description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent<IAccountAddressTileProps<IAccountAddressTileData>>}\n */\nclass AccountAddressTile extends React.PureComponent<IAccountAddressTileProps<IAccountAddressTileData>> {\n    private readonly telemetryContent: ITelemetryContent;\n\n    constructor(props: IAccountAddressTileProps<IAccountAddressTileData>) {\n        super(props);\n        this.telemetryContent = getTelemetryObject(\n            this.props.context.request.telemetryPageName!,\n            this.props.friendlyName,\n            this.props.telemetry\n        );\n    }\n\n    public render(): JSX.Element {\n        const { config, resources, data } = this.props;\n        const { className, heading, links } = config;\n        const { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n        const { address } = data;\n        const addressCount = (address && address.result && address.result.length) || 0;\n        const accountAddressTileDescription =\n            addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n        const description = format(accountAddressTileDescription, addressCount);\n\n        const viewProps = {\n            ...this.props,\n            className,\n            AccountAddressTile: {\n                moduleProps: this.props,\n                className: classnames('ms-account-address-tile', config.className)\n            },\n            heading: heading && heading.text && (\n                <Msdyn365.Text\n                    className='ms-account-address-tile__heading'\n                    tag={heading.tag || 'h2'}\n                    text={heading.text}\n                    editProps={{ onEdit: this.handleHeadingChange, requestContext: this.props.context.request }}\n                />\n            ),\n            links: links && links.length > 0 && (\n                <LinksComponent\n                    {...{\n                        links,\n                        onTextChange: this.handleLinkTextChange,\n                        requestContext: this.props.context.request,\n                        telemetryContent: this.telemetryContent\n                    }}\n                />\n            ),\n            description: <DescriptionComponent 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 AccountAddressTile;\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<IAccountWishlistTileDescription> = ({ description }) => (\n    <p className='ms-account-wishlist-tile__description'>{description}</p>\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<IAccountWishlistTileLinks> = ({ links, telemetryContent, onTextChange, requestContext }) => {\n    if (links.length === 0) {\n        return null;\n    }\n    const editableLinks = _mapEditableLinks(links, telemetryContent);\n    return (\n        <div className='ms-account-wishlist-tile__links'>\n            {editableLinks && editableLinks.length > 0 ? (\n                <Msdyn365.Links links={editableLinks} editProps={{ onTextChange, requestContext }} />\n            ) : null}\n        </div>\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<IAccountWishlistTileData> {\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<IAccountWishlistTileProps<IAccountWishlistTileData>>}\n */\nclass AccountWishlistTile extends React.PureComponent<IAccountWishlistTileProps<IAccountWishlistTileData>> {\n    private readonly telemetryContent?: ITelemetryContent;\n\n    constructor(props: IAccountWishlistTileProps<IAccountWishlistTileData>) {\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                <Msdyn365.Text\n                    className='ms-account-wishlist-tile__heading'\n                    tag={heading.tag}\n                    text={heading.text}\n                    editProps={{ onEdit: this.handleHeadingChange, requestContext: this.props.context.request }}\n                />\n            ),\n            links: links && links.length > 0 && (\n                <LinksComponent\n                    {...{\n                        links,\n                        onTextChange: this.handleLinkTextChange,\n                        requestContext: this.props.context.request,\n                        telemetryContent: this.telemetryContent\n                    }}\n                />\n            ),\n            description: <DescriptionComponent 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 AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../../..';\n\nexport interface IB2bRequestsTileLinksProps {\n    links: ILinksData[];\n    requestContext: Msdyn365.IRequestContext;\n\n    /**\n     * The telemetry content\n     */\n    telemetryContent?: ITelemetryContent;\n    onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst defaultClassName = 'ms-account-b2b-requests-tile';\n\nexport const B2bRequestsTileLinks: React.FC<IB2bRequestsTileLinksProps> = ({ links, telemetryContent, onTextChange, requestContext }) => {\n    if (!ArrayExtensions.hasElements(links)) {\n        return null;\n    }\n    const editableLinks = _mapEditableLinks(links, telemetryContent);\n    return (\n        <div className={`${defaultClassName}__links`}>\n            {ArrayExtensions.hasElements(editableLinks) ? (\n                <Msdyn365.Links links={editableLinks} editProps={{ onTextChange, requestContext }} />\n            ) : null}\n        </div>\n    );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n    if (!ArrayExtensions.hasElements(linkdata)) {\n        return null;\n    }\n\n    const payLoad = getPayloadObject('click', telemetryContent!, '');\n\n    return linkdata.map(link => {\n        payLoad.contentAction.etext = link.linkText;\n        const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n        return {\n            ariaLabel: link.ariaLabel,\n            className: `${defaultClassName}__link`,\n            linkText: link.linkText,\n            linkUrl: link.linkUrl.destinationUrl,\n            openInNewTab: link.openInNewTab,\n            role: 'link',\n            additionalProperties: attributes\n        } as Msdyn365.ILinksData;\n    });\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileData } from './b2b-requests-tile.data';\nimport { IB2bRequestsTileProps } from './b2b-requests-tile.props.autogenerated';\nimport { B2bRequestsTileLinks } from './components/account-b2b-requests-tile-links';\n\nexport interface IB2bRequestsTileViewProps extends IB2bRequestsTileProps<IB2bRequestsTileData> {\n    b2bRequestsTile: IModuleProps;\n    className: string;\n    heading?: React.ReactNode;\n    links?: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsTile component.\n * @extends {React.PureComponent<IB2bRequestsTileProps<IB2bRequestsTileData>>}\n */\nclass B2bRequestsTile extends React.PureComponent<IB2bRequestsTileProps<IB2bRequestsTileData>> {\n    private readonly telemetryContent?: ITelemetryContent;\n\n    constructor(props: IB2bRequestsTileProps<IB2bRequestsTileData>) {\n        super(props);\n        this.telemetryContent = getTelemetryObject(\n            this.props.context.request.telemetryPageName!,\n            this.props.friendlyName,\n            this.props.telemetry\n        );\n    }\n\n    public render(): JSX.Element | null {\n        const { config } = this.props;\n        const { className, heading, links } = config;\n\n        const defaultClassName = 'ms-account-b2b-requests-tile';\n\n        if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n            return null;\n        }\n\n        const viewProps = {\n            ...this.props,\n            className,\n            b2bRequestsTile: {\n                moduleProps: this.props,\n                className: classnames(defaultClassName, config.className)\n            },\n            heading: heading && heading.text && (\n                <Msdyn365.Text\n                    className={`${defaultClassName}__heading`}\n                    tag={heading.tag}\n                    text={heading.text}\n                    editProps={{ onEdit: this.handleHeadingChange, requestContext: this.props.context.request }}\n                />\n            ),\n            links: ArrayExtensions.hasElements(links) && (\n                <B2bRequestsTileLinks\n                    links={links}\n                    onTextChange={this.handleLinkTextChange}\n                    requestContext={this.props.context.request}\n                    telemetryContent={this.telemetryContent}\n                />\n            )\n        };\n\n        return this.props.renderView(viewProps) as React.ReactElement;\n    }\n\n    public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n    public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n        if (this.props.config.links && this.props.config.links[linkIndex]) {\n            this.props.config.links[linkIndex].linkText = event.target.value;\n        }\n    };\n}\n\nexport default B2bRequestsTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC<IAccountAddressTileViewProps> = props => {\n    const { AccountAddressTile, heading, description, links } = props;\n\n    return (\n        <Module {...AccountAddressTile}>\n            {heading}\n            {description}\n            {links}\n        </Module>\n    );\n};\n\nexport default AccountAddressTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC<IAccountWishlistTileViewProps> = props => {\n    const { AccountWishlistTile, heading, description, links } = props;\n\n    return (\n        <Module {...AccountWishlistTile}>\n            {heading}\n            {description}\n            {links}\n        </Module>\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsTileViewProps } from './b2b-requests-tile';\n\nconst B2bRequestsTileView: React.FC<IB2bRequestsTileViewProps> = props => {\n    const { b2bRequestsTile, heading, links } = props;\n\n    return (\n        <Module {...b2bRequestsTile}>\n            {heading}\n            {links}\n        </Module>\n    );\n};\n\nexport default B2bRequestsTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps<IAadGenericData> {\n    aadGeneric: IModuleProps;\n    aadConainer: INodeProps;\n    aadAPIConainer: React.ReactNode;\n    heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component<IAadGenericProps<IAadGenericData>>}\n */\nclass AadGeneric extends React.Component<IAadGenericProps<IAadGenericData>> {\n    private readonly moduleClassName: string = 'ms-aad-generic';\n\n    public componentDidMount(): void {\n        // @ts-expect-error\n        const { $i2e, $element } = window || {};\n\n        if ($i2e && $element) {\n            $i2e.insertServiceContent($element.getElementContent());\n            $element.initialize();\n        }\n    }\n\n    public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n        if (nextProps.config.heading !== this.props.config.heading) {\n            return true;\n        }\n        return false;\n    }\n\n    public render(): JSX.Element | null {\n        const { className, heading } = this.props.config;\n\n        const viewProps = {\n            ...this.props,\n            aadGeneric: {\n                moduleProps: this.props,\n                className: classnames(this.moduleClassName, className)\n            },\n            aadConainer: {\n                className: `${this.moduleClassName}__container`\n            },\n            aadAPIConainer: <div id='api' />,\n            heading: heading && (\n                <Msdyn365.Text\n                    className={`${this.moduleClassName}__heading`}\n                    {...heading}\n                    editProps={{ onEdit: this.handleHeadingChange, requestContext: this.props.context.request }}\n                />\n            )\n        };\n\n        return this.props.renderView(viewProps);\n    }\n\n    public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n        if (this.props.config.heading) {\n            this.props.config.heading.text = event.target.value;\n        }\n    };\n}\n\nexport default AadGeneric;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n    AccountStatementRequest,\n    BusinessPartnerOperationDeliveryType,\n    CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n    AccountLabels,\n    AccountValues,\n    ActionBar,\n    AdminRequestStatementButton,\n    AvailableCreditComponent,\n    BackButton,\n    BalanceOwedComponent,\n    CreditExcessComponent,\n    RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps<IAccountCustomerBalanceData> {\n    heading: string;\n    homeButton: React.ReactNode;\n    accountSectionHeading: React.ReactNode;\n    accountLabels: React.ReactNode;\n    accountValues: React.ReactNode;\n    creditSummarySectionHeading: React.ReactNode;\n    creditSummaryLabels?: React.ReactNode;\n    creditSummaryValues?: React.ReactNode;\n    actions: React.ReactNode;\n    requestStatementModal: React.ReactNode;\n    availableCredit?: React.ReactNode;\n    balanceOwed?: React.ReactNode;\n    creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n    isStatementRequestModalOpen: boolean;\n    statementRequestFromDateString: string;\n    statementRequestToDateString: string;\n    isStatementRequestAdminDropdownOpen: boolean;\n    statementRequestFullOrg: boolean;\n    statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent<IAccountCustomerBalanceProps<IAccountCustomerBalanceData>>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n    IAccountCustomerBalanceProps<IAccountCustomerBalanceData>,\n    IAccountCustomerBalanceState\n> {\n    private readonly telemetryContent?: ITelemetryContent;\n    private readonly requestStatementButtonRef: React.RefObject<HTMLButtonElement> = React.createRef<HTMLButtonElement>();\n\n    @computed get canSubmitStatementRequest(): boolean {\n        return this.state.statementRequestFromDateString !== '' && this.state.statementRequestToDateString !== '';\n    }\n\n    constructor(props: IAccountCustomerBalanceProps<IAccountCustomerBalanceData>) {\n        super(props);\n        this.telemetryContent = getTelemetryObject(\n            this.props.context.request.telemetryPageName!,\n            this.props.friendlyName,\n            this.props.telemetry\n        );\n        this.state = {\n            isStatementRequestModalOpen: false,\n            statementRequestFromDateString: '',\n            statementRequestToDateString: '',\n            isStatementRequestAdminDropdownOpen: false,\n            statementRequestFullOrg: false,\n            statementRequestMaxDateString: new Date().toISOString().split('T')[0]\n        };\n    }\n\n    public render(): JSX.Element | null {\n        const customer = get(this.props, 'data.customerInformation.result');\n        const account: CustomerBalances = get(this.props, 'data.balance.result');\n        if ([customer, account].includes(undefined)) {\n            this.props.context.telemetry.error('Customer data is unavailable, module will not render');\n            return null;\n        }\n\n        const { config, resources, context } = this.props;\n        const { heading } = config;\n        const {\n            creditSummarySectionHeading,\n            accountSectionHeading,\n            backToShoppingText,\n            customerSincePrefix,\n            availableCreditLabel,\n            balanceOwedLabel,\n            creditExcessLabel,\n            requestStatementButtonLabel,\n            modalHeaderLabel,\n            sendToEmailLabel,\n            fromDateLabel,\n            toDateLabel,\n            submitRequestLabel,\n            cancelLabel,\n            myAccountStatementLabel,\n            fullOrganizationLabel,\n            modalAriaLabel\n        } = resources;\n\n        const {\n            isStatementRequestModalOpen,\n            statementRequestFromDateString,\n            statementRequestToDateString,\n            statementRequestMaxDateString\n        } = this.state;\n\n        const accountNumber = customer.AccountNumber;\n        const createdOn = this._formatJoinDate(new Date(customer.CreatedDateTime));\n        const name = `${customer.FirstName} ${customer.LastName}`;\n        let customerCredit = 0;\n        let customerAccountBalance = 0;\n        let excess = 0;\n\n        if (account.InvoiceAccountCreditLimit === 0) {\n            customerCredit = account.CreditLimit - account.Balance;\n            customerAccountBalance = account.Balance;\n            excess = account.Balance - account.CreditLimit;\n        } else {\n            customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n            customerAccountBalance = account.InvoiceAccountBalance;\n            excess = account.InvoiceAccountBalance - account.InvoiceAccountCreditLimit;\n        }\n\n        const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n        const availableCredit = this._formatCurrency(customerCredit);\n        const balanceOwed = this._formatCurrency(customerAccountBalance);\n        const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n        const emailAddress = customer.Email;\n        const isB2BSite = isChannelTypeB2B(this.props.context.request);\n        const isB2BAdmin = isB2BSite && customer.IsB2bAdmin;\n\n        const actionBar = isB2BAdmin ? (\n            <AdminRequestStatementButton\n                buttonReference={this.requestStatementButtonRef}\n                className='ms-account-customer-balance'\n                onRequestStatement={this._adminShowRequestStatementModal}\n                requestStatementButtonLabel={requestStatementButtonLabel}\n                onToggleDropdown={this._toggleDropdown}\n                myUserAccountLabel={myAccountStatementLabel}\n                fullOrganizationLabel={fullOrganizationLabel}\n                isDropdownShowing={this.state.isStatementRequestAdminDropdownOpen}\n            />\n        ) : (\n            isB2BSite && (\n                <ActionBar\n                    buttonReference={this.requestStatementButtonRef}\n                    className='ms-account-customer-balance'\n                    onRequestStatement={this._showRequestStatementModal}\n                    requestStatementButtonLabel={requestStatementButtonLabel}\n                />\n            )\n        );\n\n        const viewProps = {\n            ...this.props,\n            heading: <Heading text={heading.text} tag={heading.tag} />,\n            accountSectionHeading: (\n                <Heading tag={HeadingTag.h3} text={accountSectionHeading} className='ms-account-customer-balance__account-heading' />\n            ),\n            accountLabels: (\n                <AccountLabels name={name} accountNumber={accountNumber} createdOn={createdOn} customerSincePrefix={customerSincePrefix} />\n            ),\n            accountValues: <AccountValues availableCredit={availableCredit} availableCreditLabel={availableCreditLabel} />,\n            creditSummarySectionHeading: (\n                <Heading\n                    tag={HeadingTag.h3}\n                    text={creditSummarySectionHeading}\n                    className='ms-account-customer-balance__credit-summary-heading'\n                />\n            ),\n            availableCredit: <AvailableCreditComponent availableCreditLabel={availableCreditLabel} availableCredit={availableCredit} />,\n            balanceOwed: <BalanceOwedComponent balanceOwedLabel={balanceOwedLabel} balanceOwed={balanceOwed} />,\n            creditExcess: <CreditExcessComponent creditExcessLabel={creditExcessLabel} creditExcess={creditExcess} />,\n            homeButton: <BackButton label={backToShoppingText} link={backLink} telemetryContent={this.telemetryContent} />,\n            actions: actionBar,\n            requestStatementModal: isB2BSite && (\n                <RequestStatementModal\n                    email={emailAddress}\n                    isModalOpen={isStatementRequestModalOpen}\n                    toggle={this._toggleModal}\n                    fromDateString={statementRequestFromDateString}\n                    toDateString={statementRequestToDateString}\n                    onChangeFromDate={this._updateFromDate}\n                    onChangeToDate={this._updateToDate}\n                    canSubmitRequest={this.canSubmitStatementRequest}\n                    modalHeaderLabel={modalHeaderLabel}\n                    sendToEmailLabel={sendToEmailLabel}\n                    fromDateLabel={fromDateLabel}\n                    toDateLabel={toDateLabel}\n                    submitRequestLabel={submitRequestLabel}\n                    cancelLabel={cancelLabel}\n                    onSubmitRequest={this._requestStatement}\n                    className='ms-account-customer-balance'\n                    selectedUser=''\n                    selectedUserLabel=''\n                    modalAriaLabel={modalAriaLabel}\n                    maxDateString={statementRequestMaxDateString}\n                />\n            )\n        };\n\n        return this.props.renderView(viewProps);\n    }\n\n    private _formatCurrency(currency: number): string {\n        const currencyCode = get(this.props, 'context.request.channel.Currency');\n        const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n\n        return `${formatCurrency(currency.toFixed(2), currencyCode)}`;\n    }\n\n    private _formatJoinDate(date: Date): string {\n        const i14nDate = new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n            month: 'long',\n            day: 'numeric',\n            year: 'numeric'\n        });\n\n        return i14nDate.format(date);\n    }\n\n    private readonly _showRequestStatementModal = (): void => {\n        if (!this.state.isStatementRequestModalOpen) {\n            this.setState({\n                isStatementRequestModalOpen: true\n            });\n        }\n    };\n\n    private readonly _toggleModal = (): void => {\n        this.setState({\n            isStatementRequestModalOpen: false\n        });\n        this.requestStatementButtonRef.current?.focus();\n    };\n\n    private readonly _toggleDropdown = (): void => {\n        this.setState({\n            isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n        });\n    };\n\n    private readonly _updateFromDate = (newFromDate: string) => {\n        this.setState({\n            statementRequestFromDateString: newFromDate\n        });\n    };\n\n    private readonly _updateToDate = (newToDate: string) => {\n        this.setState({\n            statementRequestToDateString: newToDate\n        });\n    };\n\n    private readonly _adminShowRequestStatementModal = (isFullOrg: boolean) => {\n        this.setState({\n            statementRequestFullOrg: isFullOrg,\n            isStatementRequestAdminDropdownOpen: false\n        });\n\n        this._showRequestStatementModal();\n    };\n\n    private readonly _requestStatement = () => {\n        const customer = this.props.data.customerInformation.result!;\n        const B2BUserId = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n\n        const statementRequest: AccountStatementRequest = {\n            FromDate: new Date(this.state.statementRequestFromDateString),\n            ToDate: new Date(this.state.statementRequestToDateString),\n            IsForFullOrganization: this.state.statementRequestFullOrg,\n            RequestedUserId: B2BUserId,\n            RequestingUserEmail: customer.Email,\n            DeliveryTypeValue: BusinessPartnerOperationDeliveryType.Email\n        };\n\n        const context = { callerContext: this.props.context.actionContext };\n\n        BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n        this.setState({\n            isStatementRequestModalOpen: false\n        });\n\n        this.requestStatementButtonRef.current?.focus();\n    };\n}\n\nexport default AccountCustomerBalance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n    description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC<IAccountInvoiceTileDescription> = ({ description }) => (\n    <p className='ms-account-invoice-tile__description'>{description}</p>\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<IAccountInvoiceTileLinks> = ({ links, telemetryContent, requestContext, onTextChange }) => {\n    if (links.length === 0) {\n        return null;\n    }\n    const editableLinks = _mapEditableLinks(links, telemetryContent);\n    return (\n        <div className='ms-account-invoice-tile__links'>\n            {editableLinks && editableLinks.length > 0 ? (\n                <Msdyn365.Links links={editableLinks} editProps={{ onTextChange, requestContext }} />\n            ) : null}\n        </div>\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<IAccountInvoiceTileData> {\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<IAccountInvoiceTileProps<IAccountInvoiceTileData>>}\n */\nclass AccountInvoiceTile extends React.PureComponent<IAccountInvoiceTileProps<IAccountInvoiceTileData>> {\n    private readonly telemetryContent: ITelemetryContent;\n\n    constructor(props: IAccountInvoiceTileProps<IAccountInvoiceTileData>) {\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                <Msdyn365.Text\n                    className='ms-account-invoice-tile__heading'\n                    tag={heading.tag || 'h2'}\n                    text={heading.text}\n                    editProps={{ onEdit: this.handleHeadingChange, requestContext: this.props.context.request }}\n                />\n            ),\n            links: links && links.length > 0 && (\n                <LinksComponent\n                    {...{\n                        links,\n                        onTextChange: this.handleLinkTextChange,\n                        requestContext: this.props.context.request,\n                        telemetryContent: this.telemetryContent\n                    }}\n                />\n            ),\n            description: description && <AccountInvoiceTileDescription description={description} />\n        };\n\n        return this.props.renderView(viewProps) as React.ReactElement;\n    }\n\n    public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n    public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n        if (this.props.config.links && this.props.config.links[linkIndex]) {\n            this.props.config.links[linkIndex].linkText = event.target.value;\n        }\n    };\n}\n\nexport default AccountInvoiceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n    className?: string;\n    buttonReference?: React.RefObject<HTMLButtonElement>;\n    requestStatementButtonLabel: string;\n    onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n    className?: string;\n    requestStatementButtonLabel: string;\n    myUserAccountLabel: string;\n    fullOrganizationLabel: string;\n    isDropdownShowing: boolean;\n    buttonReference?: React.RefObject<HTMLButtonElement>;\n    promoteToSellerLabel?: string;\n    onToggleDropdown(): void;\n    onRequestStatement(isFullOrg: boolean): void;\n    onPromoteToSeller?(): void;\n}\n\nexport const ActionBar: React.FC<IAccountCustomerBalanceActions> = ({\n    className,\n    onRequestStatement,\n    requestStatementButtonLabel,\n    buttonReference\n}) => {\n    const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef<HTMLButtonElement>();\n    return (\n        <div className={className}>\n            <Button className={`${className}__action__requestStatement`} innerRef={popoverReference} onClick={onRequestStatement}>\n                {requestStatementButtonLabel}\n            </Button>\n        </div>\n    );\n};\n\nexport const AdminRequestStatementButton: React.FC<IAdminRequestStatementProps> = ({\n    className,\n    onRequestStatement,\n    requestStatementButtonLabel,\n    onToggleDropdown,\n    onPromoteToSeller,\n    promoteToSellerLabel,\n    myUserAccountLabel,\n    fullOrganizationLabel,\n    isDropdownShowing,\n    buttonReference\n}) => {\n    const onSelectCustomerAccount = React.useCallback(() => {\n        onRequestStatement(false);\n    }, [onRequestStatement]);\n\n    const onSelectFullOrg = React.useCallback(() => {\n        onRequestStatement(true);\n    }, [onRequestStatement]);\n\n    const onSelectPromoteToSeller = React.useCallback(() => {\n        onPromoteToSeller?.();\n    }, [onPromoteToSeller]);\n\n    const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef<HTMLButtonElement>();\n    const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n    return (\n        <div className={`${className}__dropdown`}>\n            <Button\n                className={\n                    isDropdownShowing\n                        ? `${className}__action__requestStatement__toggleUp`\n                        : `${className}__action__requestStatement__toggleDown`\n                }\n                onClick={onToggleDropdown}\n                innerRef={popoverReference}\n                aria-haspopup='true'\n                aria-expanded={isDropdownShowing}\n                id={requestStatementDropdownString}\n            >\n                <span className={`${className}__action__requestStatement__buttonLabel`}>{requestStatementButtonLabel}</span>\n            </Button>\n            <Popover\n                aria-labelledby={requestStatementDropdownString}\n                className={`${className}__action__requestStatement__dropdownVisible`}\n                isOpen={isDropdownShowing}\n                placement='bottom'\n                target={popoverReference}\n                toggle={onToggleDropdown}\n                role='listbox'\n                aria-hidden={!isDropdownShowing}\n            >\n                <Button\n                    onClick={onSelectCustomerAccount}\n                    className={`${className}__action__requestStatement__dropdownOption`}\n                    role='option'\n                >\n                    {myUserAccountLabel}\n                </Button>\n                <Button onClick={onSelectFullOrg} className={`${className}__action__requestStatement__dropdownOption`} role='option'>\n                    {fullOrganizationLabel}\n                </Button>\n                {promoteToSellerLabel && (\n                    <Button\n                        onClick={onSelectPromoteToSeller}\n                        className={`${className}__action__requestStatement__dropdownOption`}\n                        role='option'\n                    >\n                        {promoteToSellerLabel}\n                    </Button>\n                )}\n            </Popover>\n        </div>\n    );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n    email: string;\n    isModalOpen: boolean;\n    fromDateString: string;\n    toDateString: string;\n    canSubmitRequest: boolean;\n    modalHeaderLabel: string;\n    sendToEmailLabel: string;\n    fromDateLabel: string;\n    toDateLabel: string;\n    submitRequestLabel: string;\n    cancelLabel: string;\n    className: string;\n    selectedUser: string;\n    selectedUserLabel: string;\n    toggle(): void;\n    onChangeFromDate(newFromDate: string): void;\n    onChangeToDate(newToDate: string): void;\n    onSubmitRequest(): void;\n    modalAriaLabel?: string;\n    maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC<IAccountStatementRequestModalProps> = ({\n    className,\n    email,\n    isModalOpen,\n    toggle,\n    fromDateString,\n    toDateString,\n    onChangeFromDate,\n    onChangeToDate,\n    canSubmitRequest,\n    modalHeaderLabel,\n    sendToEmailLabel,\n    fromDateLabel,\n    toDateLabel,\n    submitRequestLabel,\n    cancelLabel,\n    onSubmitRequest,\n    selectedUser,\n    selectedUserLabel,\n    modalAriaLabel,\n    maxDateString\n}) => {\n    const onChangeFromDateEvent = React.useCallback(\n        (event: React.ChangeEvent<HTMLInputElement>) => {\n            const value = event.target.value;\n\n            onChangeFromDate(value);\n        },\n        [onChangeFromDate]\n    );\n\n    const onChangeToDateEvent = React.useCallback(\n        (event: React.ChangeEvent<HTMLInputElement>) => {\n            const value = event.target.value;\n\n            onChangeToDate(value);\n        },\n        [onChangeToDate]\n    );\n\n    /**\n     * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n     * @param event - The event that is triggering onBlur.\n     */\n    const onBlurFromDate = React.useCallback(\n        (event: React.ChangeEvent<HTMLInputElement>) => {\n            if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n                event.target.focus();\n            }\n        },\n        [fromDateString]\n    );\n\n    /**\n     * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n     * @param event - The event that is triggering onBlur.\n     */\n    const onBlurToDate = React.useCallback(\n        (event: React.ChangeEvent<HTMLInputElement>) => {\n            if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n                event.target.focus();\n            }\n        },\n        [toDateString]\n    );\n\n    return (\n        <Modal\n            className='msc-modal-input-required'\n            isOpen={isModalOpen}\n            horizontalPosition='center'\n            verticalPosition='center'\n            autoFocus\n            fade={false}\n            toggle={toggle}\n            aria-label={modalAriaLabel}\n        >\n            <ModalHeader toggle={toggle}>{modalHeaderLabel}</ModalHeader>\n            <ModalBody>\n                {selectedUser && (\n                    <div>\n                        <label className={`${className}__subheaderFormat`}>{selectedUserLabel}</label>\n                        <br />\n                        <div className={`${className}__selectedUser`}>{selectedUser}</div>\n                    </div>\n                )}\n                <label htmlFor='sendToEmail' className={`${className}__subheaderFormat`}>\n                    {sendToEmailLabel}\n                </label>\n                <div id='sendToEmail' className={`${className}__sendToEmail`}>\n                    {email}\n                </div>\n                <div>\n                    <div className={`${className}__requestStatement__fromDate`}>\n                        <label htmlFor='fromDateSelector'>{fromDateLabel}</label>\n                        <input\n                            id='fromDateSelector'\n                            type='date'\n                            value={fromDateString}\n                            onBlur={onBlurFromDate}\n                            onChange={onChangeFromDateEvent}\n                            max={toDateString ? toDateString : maxDateString}\n                            className={`${className}__dateSelector form-control`}\n                        />\n                    </div>\n                    <div className={`${className}__requestStatement__toDate`}>\n                        <label htmlFor='toDateSelector'>{toDateLabel}</label>\n                        <input\n                            id='toDateSelector'\n                            type='date'\n                            value={toDateString}\n                            onBlur={onBlurToDate}\n                            onChange={onChangeToDateEvent}\n                            min={fromDateString}\n                            max={maxDateString}\n                            className={`${className}__dateSelector form-control`}\n                        />\n                    </div>\n                </div>\n            </ModalBody>\n            <ModalFooter>\n                <button\n                    className={`${className}__action__submitRequest`}\n                    onClick={onSubmitRequest}\n                    disabled={!canSubmitRequest}\n                    aria-disabled={!canSubmitRequest}\n                >\n                    {submitRequestLabel}\n                </button>\n                {` `}\n                <button className={`${className}__action__cancelRequest`} onClick={toggle}>\n                    {cancelLabel}\n                </button>\n            </ModalFooter>\n        </Modal>\n    );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n    name: string;\n    accountNumber: string;\n    createdOn: string;\n    customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n    availableCredit: string;\n    availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n    availableCreditLabel: string;\n    availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n    balanceOwedLabel: string;\n    balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n    creditExcessLabel: string | null;\n    creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n    availableCredit: string;\n    balanceOwed: string;\n    creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n    availableCredit: string;\n    balanceOwed: string;\n    creditExcess: string | null;\n}\n\ninterface IBackButton {\n    link: string;\n    label: string;\n    telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC<IAccountLabel> = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n    <div className='ms-account-customer-balance__account__details'>\n        <h4>{name}</h4>\n        <div className='ms-account-customer-balance__account-number'>#{accountNumber}</div>\n        <div className='ms-account-customer-balance__created-on'>\n            {customerSincePrefix} {createdOn}\n        </div>\n    </div>\n);\n\nexport const AccountValues: React.FC<IAccountValues> = ({ availableCredit, availableCreditLabel }) => (\n    <div className='ms-account-customer-balance__account__credit'>\n        <div className='ms-account-customer-balance__available-credit-label'>{availableCreditLabel}</div>\n        <div className='ms-account-customer-balance__available-credit-amount'>{availableCredit}</div>\n    </div>\n);\n\nexport const CreditSummaryLabels: React.FC<ICreditSummaryLabel> = ({ availableCredit, balanceOwed, creditExcess }) => (\n    <div className='ms-account-customer-balance__credit-summary__labels'>\n        <div className='ms-account-customer-balance__available-credit-label'>{availableCredit}</div>\n        <div className='ms-account-customer-balance__balance-owed-label'>{balanceOwed}</div>\n        <div className='ms-account-customer-balance__credit-excess-label'>{creditExcess}</div>\n    </div>\n);\n\nexport const CreditSummaryValues: React.FC<ICreditSummaryValues> = ({ availableCredit, balanceOwed, creditExcess }) => (\n    <div className='ms-account-customer-balance__credit-summary__values'>\n        <div className='ms-account-customer-balance__available-credit-label'>{availableCredit}</div>\n        <div className='ms-account-customer-balance__balance-owed-label'>{balanceOwed}</div>\n        {creditExcess && <div className='ms-account-customer-balance__excess-credit-label'>{creditExcess}</div>}\n    </div>\n);\n\n/**\n * Available credit component.\n * @param props - ICreditSummaryAvailableCredit.\n * @param props.availableCreditLabel - Available credit label.\n * @param props.availableCredit - Available credit value.\n * @returns - React Node for available credit component.\n */\nexport const AvailableCreditComponent: React.FC<ICreditSummaryAvailableCredit> = ({ availableCreditLabel, availableCredit }) => (\n    <div className='ms-account-customer-balance__credit-summary__wrapper'>\n        <div className='ms-account-customer-balance__credit-summary__labels'>\n            <div className='ms-account-customer-balance__available-credit-label'>{availableCreditLabel}</div>\n        </div>\n        <div className='ms-account-customer-balance__credit-summary__values'>\n            <div className='ms-account-customer-balance__available-credit-label'>{availableCredit}</div>\n        </div>\n    </div>\n);\n\n/**\n * Balance Owed Component.\n * @param props - ICreditSummaryBalanceOwed.\n * @param props.balanceOwedLabel - Balance Owed label.\n * @param props.balanceOwed - Balance Owed value.\n * @returns - React Node for balance owed component.\n */\nexport const BalanceOwedComponent: React.FC<ICreditSummaryBalanceOwed> = ({ balanceOwedLabel, balanceOwed }) => (\n    <div className='ms-account-customer-balance__credit-summary__wrapper'>\n        <div className='ms-account-customer-balance__credit-summary__labels'>\n            <div className='ms-account-customer-balance__balance-owed-label'>{balanceOwedLabel}</div>\n        </div>\n        <div className='ms-account-customer-balance__credit-summary__values'>\n            <div className='ms-account-customer-balance__balance-owed-label'>{balanceOwed}</div>\n        </div>\n    </div>\n);\n\n/**\n * Credit Excess Component.\n * @param props - ICreditSummaryCreditExcess.\n * @param props.creditExcessLabel - Credit excess label.\n * @param props.creditExcess - Credit excess value.\n * @returns - React Node for credit excess component.\n */\nexport const CreditExcessComponent: React.FC<ICreditSummaryCreditExcess> = ({ creditExcessLabel, creditExcess }) => (\n    <div className='ms-account-customer-balance__credit-summary__wrapper'>\n        {creditExcess && (\n            <div className='ms-account-customer-balance__credit-summary__labels'>\n                <div className='ms-account-customer-balance__credit-excess-label'>{creditExcessLabel}</div>\n            </div>\n        )}\n        <div className='ms-account-customer-balance__credit-summary__values'>\n            {creditExcess && <div className='ms-account-customer-balance__excess-credit-label'>{creditExcess}</div>}\n        </div>\n    </div>\n);\nexport const BackButton: React.FC<IBackButton> = ({ link, label, telemetryContent }) => {\n    const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.BackToShopping);\n    const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n    return (\n        <a className='ms-account-loyalty__home-link msc-btn' href={link} {...attributes}>\n            {label}\n        </a>\n    );\n};\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountAddressTileDescription {\n    description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC<IAccountAddressTileDescription> = ({ description }) => (\n    <p className='ms-account-address-tile__description'>{description}</p>\n);\n\nexport default IAccountAddressTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\n    links: ILinksData[];\n    requestContext: Msdyn365.IRequestContext;\n\n    /**\n     * The telemetry content\n     */\n    telemetryContent?: ITelemetryContent;\n    onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountAddressTileLinks: React.FC<IAccountAddressTileLinks> = ({ links, telemetryContent, requestContext, onTextChange }) => {\n    if (links.length === 0) {\n        return null;\n    }\n    const editableLinks = _mapEditableLinks(links, telemetryContent);\n\n    return (\n        <div className='ms-account-address-tile__links'>\n            {editableLinks && editableLinks.length > 0 ? (\n                <Msdyn365.Links links={editableLinks} editProps={{ onTextChange, requestContext }} />\n            ) : null}\n        </div>\n    );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n    if (!linkdata || linkdata.length === 0) {\n        return null;\n    }\n    const editableLinks: Msdyn365.ILinksData[] = [];\n    const payLoad = getPayloadObject('click', telemetryContent!, '');\n    linkdata.forEach((link, index) => {\n        payLoad.contentAction.etext = link.linkText;\n        const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n        const editableLink: Msdyn365.ILinksData = {\n            ariaLabel: link.ariaLabel,\n            className: 'ms-account-address-tile__link',\n            linkText: link.linkText,\n            linkUrl: link.linkUrl.destinationUrl,\n            openInNewTab: link.openInNewTab,\n            role: 'link',\n            additionalProperties: attributes\n        };\n        editableLinks.push(editableLink);\n    });\n\n    return editableLinks;\n};\n\nexport default AccountAddressTileLinks;\n"],"names":["AccountAddressTile","React","constructor","props","super","handleHeadingChange","event","this","config","heading","text","target","value","handleLinkTextChange","linkIndex","links","linkText","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","render","resources","data","className","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","result","length","accountAddressTileDescription","description","format","viewProps","_objectSpread","moduleProps","classnames","Msdyn365","tag","editProps","onEdit","requestContext","LinksComponent","Object","assign","onTextChange","DescriptionComponent","renderView","_ref","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","forEach","link","index","contentAction","etext","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","defaultClassName","B2bRequestsTileLinks","ArrayExtensions","hasElements","map","B2bRequestsTile","isChannelTypeB2B","actionContext","b2bRequestsTile","Module","AadGeneric","moduleClassName","componentDidMount","$i2e","$element","window","insertServiceContent","getElementContent","initialize","shouldComponentUpdate","nextProps","aadGeneric","aadConainer","aadAPIConainer","id","AccountCustomerBalance","requestStatementButtonRef","_showRequestStatementModal","state","isStatementRequestModalOpen","setState","_toggleModal","_this$requestStatemen","current","focus","_toggleDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_adminShowRequestStatementModal","isFullOrg","statementRequestFullOrg","_requestStatement","_this$props$data$b2bU","_this$requestStatemen2","customer","customerInformation","B2BUserId","b2bUserInformation","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","Email","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","statementRequestMaxDateString","toISOString","split","_get","account","includes","undefined","error","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","requestStatementButtonLabel","modalHeaderLabel","sendToEmailLabel","fromDateLabel","toDateLabel","submitRequestLabel","cancelLabel","myAccountStatementLabel","fullOrganizationLabel","modalAriaLabel","accountNumber","AccountNumber","createdOn","_formatJoinDate","CreatedDateTime","name","FirstName","LastName","customerCredit","customerAccountBalance","excess","InvoiceAccountCreditLimit","CreditLimit","Balance","InvoiceAccountBalance","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","isB2BSite","actionBar","IsB2bAdmin","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","ActionBar","Heading","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","label","actions","requestStatementModal","RequestStatementModal","email","isModalOpen","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","onSubmitRequest","selectedUser","selectedUserLabel","maxDateString","currency","currencyCode","formatCurrency","toFixed","date","Intl","DateTimeFormat","locale","month","day","year","__decorate","computed","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","cultureFormatter","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","popoverReference","Button","innerRef","onClick","_ref2","onPromoteToSeller","promoteToSellerLabel","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","requestStatementDropdownString","Random","Guid","generateGuid","Popover","isOpen","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","Modal","horizontalPosition","verticalPosition","autoFocus","fade","ModalHeader","ModalBody","htmlFor","type","onBlur","onChange","max","min","ModalFooter","disabled","_ref5","_ref6","_ref7","_ref8","TelemetryConstant","BackToShopping","href"],"sourceRoot":""}