{"version":3,"file":"static/js/5.ddde124aea89f58697e9.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/nos-subscription-details/enums/subscription-status-enum.ts?a903","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://Msdyn365.Commerce.Online/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","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","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-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.tsx?fe69","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-text.tsx?8115"],"sourcesContent":["export enum SubscriptionStatus {\r\n ACTIVE = 0,\r\n ONHOLD = 1,\r\n LASTBILLING = 2,\r\n TERMINATED = 3,\r\n ARCHIVED = 4\r\n}\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountAddressTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

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

{description}

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

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-order-templates-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IDictionary, Text } from '@msdyn365-commerce/core';\nimport { AttributeDefinition, Customer, CustomerAttribute } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { StringExtensions, updateCustomerAttributes, updateCustomerAttributesInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable, reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from '../account-profile.data';\nimport { IAccountProfileProps } from '../account-profile.props.autogenerated';\nimport TextComponent from './account-profile-text';\n\ninterface IAttributePropertiesType {\n Name?: string;\n IsMandatory?: boolean;\n}\n\nexport interface IAccountProfileAttributesProps {\n accountProfileProps: IAccountProfileProps;\n}\n\nexport enum AccountAttributeDataTypeValue {\n Decimal = 3,\n Integer = 4,\n Text = 5,\n TrueFalse = 6\n}\n\nexport interface IAttributePayloadData {\n recordId?: number;\n name?: string;\n dataTypeValue?: number;\n isEnumeration?: boolean;\n lowerBoundValue?: number;\n upperBoundValue?: number;\n decimalValue?: number;\n integerValue?: number;\n textValue?: string;\n booleanValue?: boolean;\n isMandatory?: boolean;\n defaultValue?: string;\n}\n\nexport interface IAccountProfileAttributesState extends React.ComponentState {\n editAttributes: boolean;\n phone: string;\n vatNumber: string;\n attributes: IDictionary;\n attributeError: IDictionary;\n}\n\n/**\n *\n * AccountProfileAttributes class.\n * @extends {React.PureComponentIAccountProfileAttributesProps, IAccountProfileAttributesState>}\n */\n@observer\nclass AccountProfileAttributes extends React.Component {\n private readonly attributePayloadData: IAttributePayloadData[];\n\n @observable private isUpdatingAttributes: boolean = false;\n\n @observable private gotException: boolean = false;\n\n private hasError: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private initialAttributes: IDictionary;\n\n private initialCustomerAttributes?: CustomerAttribute[];\n\n private initialPhone: string;\n\n private initialVatNumber: string;\n\n private readonly payLoad: IPayLoad;\n\n private readonly editRef: React.RefObject;\n\n private readonly attributesContainerRef: React.RefObject;\n\n private readonly attributeClassName: string = 'ms-account-profile__attributes-element';\n\n private readonly maxIntegerLimit: number = 2_100_000_000;\n\n private readonly minIntegerLimit: number = -2_100_000_000;\n\n private readonly maxDecimalLimit: number = 7_900_000_000_000;\n\n private readonly minDecimalLimit: number = -7_900_000_000_000;\n\n private readonly maxStringLength: number = 1000;\n\n private readonly maxVATNumberLength: number = 20;\n\n private readonly maxPhoneLength: number = 25;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n
\n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n \n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n isDisabled?: boolean;\n}\n\nexport interface IAccountProfileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountProfileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: link.isDisabled ? 'ms-account-profile__section-link-disable' : 'ms-account-profile__section-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountProfileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n ArrayExtensions,\n updateCustomerPersonalization,\n updateCustomerPersonalizationInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport {\n IAccountProfileProps,\n IEmailAddressSectionHeadingData,\n IHeadingData,\n INameSectionHeadingData\n} from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n private readonly payLoad: IPayLoad;\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel,\n isDisabled: invalidAsyncCustomerState\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n \n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n this.getDescription(customerInformation),\n Msdyn365.isOboRequest(this.props.context.request) ? undefined : [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n invalidAsyncCustomerState,\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.emailAddressSectionHeading!.text = event.target.value);\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.nameSectionHeading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private getDescription(customerInformation: Customer | undefined): string {\n let description = '';\n if (customerInformation !== undefined) {\n if (customerInformation.FirstName) {\n description += customerInformation.FirstName;\n }\n if (customerInformation.LastName) {\n description += customerInformation.FirstName ? ` ${customerInformation.LastName}` : customerInformation.LastName;\n }\n }\n return description;\n }\n\n private _renderEmailSection(\n className: string,\n heading?: IEmailAddressSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private _renderNameSection(\n className: string,\n heading?: INameSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n if (!ArrayExtensions.hasElements(links)) {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n description: description && (\n \n )\n };\n }\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(\n className: string,\n invalidAsyncCustomerState: boolean,\n customerInformation?: Customer\n ): IAccountPreferences | null {\n const {\n personalizationDescription,\n personalizationEnableButtonAriaLabel,\n webTrackingDescription,\n webTrackingEnableButtonAriaLabel\n } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity login preference if switch is enabled AND a heading is provided\n enableDataAnalytics &&\n webTrackingSectionHeading &&\n extraPreferences.push(\n this._renderPreference(\n 'web-tracking',\n webTrackingSectionHeading as IHeadingData,\n webTrackingEnableButtonAriaLabel,\n webTrackingDescription,\n customerInformation.OptOutWebActivityTracking || false,\n invalidAsyncCustomerState\n )\n );\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n \n ),\n personalization: this._renderPreference(\n 'personalization',\n personalizationSectionHeading as IHeadingData,\n personalizationEnableButtonAriaLabel,\n personalizationDescription,\n customerInformation.OptOutPersonalization || false,\n invalidAsyncCustomerState\n ),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (\n className: string,\n sectionHeading: IHeadingData,\n enableAriaLabel: string,\n description: string,\n isOptOut: boolean,\n disableBtn: boolean\n ) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, {\n 'ms-account-profile__personalization-updating': this.isUpdatingPreference\n })\n },\n heading: sectionHeading && (\n \n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`, {\n // Disable the toggle completely if customer is async.\n 'ms-account-profile__toggle-disabled': disableBtn\n })\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return ;\n };\n}\n\nexport default AccountProfile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountPreference, IAccountPreferences, IAccountProfileItem, IAccountProfileViewProps } from './account-profile';\n\nconst AccountPreferencesSection: React.FC = ({ accountPreferences, heading, personalization, extraPreferences }) => {\n return (\n \n {heading}\n \n {extraPreferences &&\n extraPreferences.map((preferenceSecton, index) => {\n return ;\n })}\n \n );\n};\n\nconst AccountPreferenceSection: React.FC = ({\n accountPreference,\n heading,\n description,\n buttonWrapper,\n buttonYesText,\n button,\n buttonNoText\n}) => {\n return (\n \n {heading}\n {description}\n \n {buttonNoText}\n {button}\n {buttonYesText}\n \n \n );\n};\n\nconst AccountProfileSection: React.FC = ({ AccountProfileItem, heading, links, description }) => {\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nconst AccountProfileView: React.FC = props => {\n const {\n AccountProfile,\n infoMessageBar,\n accountProfileWrapper,\n heading,\n emailSection,\n nameSection,\n preferenceSection,\n customerAttributesWrapper,\n customerAttributesSection\n } = props;\n\n return (\n \n {infoMessageBar}\n {accountProfileWrapper && (\n \n {heading}\n \n \n \n \n )}\n {customerAttributesWrapper && {customerAttributesSection}}\n \n );\n};\n\nexport default AccountProfileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileDescription {\n className: string;\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileDescription: React.FC = ({ className, description }) => (\n

{description}

\n);\n\nexport default IAccountProfileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountProfileText {\n className: string;\n text: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountProfileText: React.FC = ({ className, text }) => {text};\n\nexport default IAccountProfileText;\n"],"names":["SubscriptionStatus","AadGeneric","React","constructor","moduleClassName","handleHeadingChange","event","this","props","config","heading","text","target","value","componentDidMount","$i2e","$element","window","insertServiceContent","getElementContent","initialize","shouldComponentUpdate","nextProps","render","className","viewProps","_objectSpread","aadGeneric","moduleProps","classnames","aadConainer","aadAPIConainer","id","Msdyn365","Object","assign","editProps","onEdit","requestContext","context","request","renderView","AccountAddressTile","super","handleLinkTextChange","linkIndex","links","linkText","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","resources","data","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","result","length","accountAddressTileDescription","description","format","tag","LinksComponent","onTextChange","DescriptionComponent","Module","_ref","_mapEditableLinks","linkdata","editableLinks","payLoad","getPayloadObject","forEach","link","index","contentAction","etext","attributes","getTelemetryAttributes","editableLink","ariaLabel","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","push","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","cultureFormatter","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","toFixed","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","isChannelTypeB2B","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","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","split","map","att","attributeDefinition","find","attribute","IsHidden","Name","toLocaleLowerCase","RecordId","_renderAttribute","edit","state","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","customerInformation","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","ref","attributesContainerRef","Text","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","Button","onClick","_enableAttributes","innerRef","editRef","title","disabled","_saveAttributes","_disableAttributes","phoneSectionHeading","replace","type","onChange","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","key","selected","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","error","attributeError","StringExtensions","isNullOrWhitespace","attributePayloadData","name","isMandatory","setState","MsDyn365","isBrowser","setTimeout","current","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","customer","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","keys","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","Number","isNaN","typeError","attributeInputTypeErrorText","undefined","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","includes","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","async","input","updateCustomerAttributesInput","AccountNumber","apiSettings","updateCustomerAttributes","actionContext","initialCustomerAttributes","exception","debug","element","focus","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","reaction","nextState","__decorate","observable","observer","isDisabled","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","button","toString","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","get","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","Email","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","FirstName","LastName","AccountProfileItem","ArrayExtensions","hasElements","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","computed","AccountPreferencesSection","Node","AccountPreferenceSection","preferenceSecton","_ref2","AccountProfileSection","_ref3"],"sourceRoot":""}