{"version":3,"file":"static/js/11.2a6f04b822f4dde9fa4d.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-button.tsx?6d02","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-error.tsx?88d7","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-input.tsx?8d0b","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-label.tsx?fc00","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.tsx?c6ac","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.view.tsx?17ef","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/business-organization-list.view.tsx?8bf1","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/content-block.view.tsx?7751","webpack://Msdyn365.Commerce.Online/./src/themes/pallionlivadi/views/footer-item.view.tsx?afd6","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.tsx?36f7","webpack://Msdyn365.Commerce.Online/./src/modules/accordion-item/accordion-item.view.tsx?a302","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.tsx?78b1","webpack://Msdyn365.Commerce.Online/./src/modules/accordion/accordion.view.tsx?8c7b","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://Msdyn365.Commerce.Online/./src/modules/aad-generic/aad-generic.view.tsx?b418","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-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://Msdyn365.Commerce.Online/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://Msdyn365.Commerce.Online/./src/modules/account-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","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/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://Msdyn365.Commerce.Online/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-button.tsx?c1c2","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-error.tsx?347f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-input.tsx?fd25","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-label.tsx?aab5","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-icon.tsx?d70e","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-loading-message.tsx?d239","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/components/password-reset-verification-success.tsx?3c81","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.tsx?691f","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset-verification/password-reset-verification.view.tsx?dffa","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.tsx?0983","webpack://Msdyn365.Commerce.Online/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://Msdyn365.Commerce.Online/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/components/small-components.tsx?c4b5","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.tsx?074a","webpack://Msdyn365.Commerce.Online/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://Msdyn365.Commerce.Online/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.tsx?899b","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/media-gallery.view.tsx?7624","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpButtonProps {\r\n id?: string;\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n link?: string;\r\n telemetryContent: ITelemetryContent;\r\n onClick?(event: React.MouseEvent): void;\r\n}\r\n\r\nexport const SignUpButton: React.FC = ({\r\n id,\r\n className,\r\n text,\r\n ariaLabel,\r\n telemetryContent,\r\n disabled,\r\n link,\r\n onClick\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent, text);\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default SignUpButton;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpErrorProps {\r\n id?: string;\r\n className: string;\r\n type?: string;\r\n message?: string;\r\n}\r\n\r\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\r\n const errorClassName = `${className}__${type}-error`;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpError;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { InputType } from '../business-sign-up';\r\n\r\nexport interface IBusinessSignUpInputProps {\r\n id?: string;\r\n type: InputType;\r\n value?: string;\r\n pattern?: string;\r\n className: string;\r\n maxLength?: string;\r\n isRequired: boolean;\r\n fieldReference?: React.RefObject;\r\n onChange?(event: React.ChangeEvent): void;\r\n}\r\n\r\nexport interface IBusinessSignUpInput {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nconst GetMaxLength = (maxLength?: string): number | undefined => {\r\n if (maxLength) {\r\n const parsedMaxLength = Number.parseInt(maxLength, 10);\r\n if (!isNaN(parsedMaxLength)) {\r\n return parsedMaxLength;\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const SignUpInput: React.FC = ({\r\n id,\r\n type,\r\n value,\r\n pattern,\r\n className,\r\n maxLength,\r\n isRequired,\r\n onChange,\r\n fieldReference\r\n}) => {\r\n if (type === InputType.TextArea) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpInput;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpLabelProps {\r\n id: string;\r\n forId: string;\r\n className: string;\r\n text: string;\r\n}\r\n\r\nexport const SignUpLabel: React.FC = ({ id, forId, className, text }) => (\r\n \r\n);\r\n\r\nexport default SignUpLabel;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { ContentEditableEvent, getUrlSync, RichTextComponent, Text } from '@msdyn365-commerce/core';\r\nimport { Address, BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\r\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\r\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessSignUpConfig, IBusinessSignUpProps } from './business-sign-up.props.autogenerated';\r\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components';\r\n\r\nexport interface IBusinessSignUpExtendedProps extends IBusinessSignUpProps {\r\n formItems?: IFormItem[];\r\n}\r\n\r\nexport interface IBusinessSignUpItem {\r\n wrapper: INodeProps;\r\n isAddressInput?: boolean;\r\n id: string;\r\n label: React.ReactNode;\r\n errorMessage: React.ReactNode;\r\n input?: React.ReactNode;\r\n}\r\n\r\nexport interface IBusinessState {\r\n isReady: boolean;\r\n formItems: IFormItem[];\r\n addressHasErrors: boolean;\r\n showAddressErrors: boolean;\r\n hasSubmitErrors: boolean;\r\n}\r\n\r\nexport interface IBusinessSignUpLocalAccount {\r\n FormWrapper: INodeProps;\r\n items: IBusinessSignUpItem[];\r\n buttons: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n disclaimer: React.ReactNode;\r\n}\r\n\r\nexport interface IBusinessSignUpViewProps {\r\n className: string;\r\n businessSignUp: IModuleProps;\r\n ContainerWrapper: INodeProps;\r\n heading: React.ReactNode;\r\n businessSignUpForm: IBusinessSignUpLocalAccount;\r\n formItems: IFormItem[];\r\n}\r\n\r\nexport interface IFormItem {\r\n id: string;\r\n type: InputType;\r\n label: string;\r\n value: string;\r\n maxChars?: string;\r\n isRequired: boolean;\r\n pattern?: string;\r\n address?: Address;\r\n customClass?: string;\r\n fieldReference?: React.RefObject;\r\n}\r\n\r\nexport enum InputType {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\r\n Text = 'text',\r\n Address = 'address',\r\n Email = 'email',\r\n TextArea = 'textarea'\r\n}\r\n\r\nexport enum InputID {\r\n FirstName = 'FirstName',\r\n LastName = 'LastName',\r\n Email = 'CompanyEmail',\r\n CompanyName = 'CompanyName',\r\n Address = 'CompanyAddress',\r\n JobTitle = 'JobTitle',\r\n Size = 'CompanySize',\r\n Department = 'Department',\r\n Comment = 'Comment'\r\n}\r\n\r\nexport const renderInputSection = (\r\n inputs: IFormItem[],\r\n className: string,\r\n needToReset: boolean,\r\n onInputChange: (event: React.ChangeEvent) => void,\r\n showErrors: boolean,\r\n addressForm?: React.ReactNode,\r\n updateAddress?: (errors: boolean, currAddress?: Address) => void\r\n): IBusinessSignUpItem[] => {\r\n return inputs.map((element, index) => {\r\n const { id, type, label, maxChars, isRequired, pattern, customClass, value, fieldReference } = element;\r\n\r\n const baseSignUpItem: IBusinessSignUpItem = {\r\n wrapper: {\r\n className: classnames(className, `${className}-${id}`, customClass)\r\n },\r\n id,\r\n label: ,\r\n errorMessage: \r\n };\r\n\r\n if (type === InputType.Address) {\r\n if (addressForm) {\r\n baseSignUpItem.isAddressInput = true;\r\n baseSignUpItem.input = (\r\n <>\r\n {React.cloneElement(addressForm as React.ReactElement, {\r\n updateForm: updateAddress,\r\n hasError: showErrors,\r\n isRequired: isRequired === undefined ? false : isRequired,\r\n resetAddress: needToReset\r\n })}\r\n \r\n );\r\n } else {\r\n // If the address slot is not filled, remove this input from the form\r\n inputs.splice(index, 1);\r\n }\r\n } else {\r\n baseSignUpItem.input = (\r\n \r\n );\r\n }\r\n\r\n return baseSignUpItem;\r\n });\r\n};\r\n\r\n/**\r\n *\r\n * Business Request Form Modules\r\n * Form that a business can use to submit a request to become a partner with Microsoft.\r\n * @extends {React.Component>}\r\n */\r\nclass BusinessSignUp extends React.Component {\r\n // Used as default data\r\n public BusinessSignUpDefaultInputs: IFormItem[] = [\r\n {\r\n id: InputID.FirstName,\r\n type: InputType.Text,\r\n label: this.props.resources.firstNameLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-25'\r\n },\r\n {\r\n id: InputID.LastName,\r\n type: InputType.Text,\r\n label: this.props.resources.lastNameLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-25'\r\n },\r\n {\r\n id: InputID.Email,\r\n type: InputType.Email,\r\n label: this.props.resources.emailAddressLabel,\r\n value: '',\r\n isRequired: true,\r\n pattern: EmailRegex.defaultRegex.source,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.CompanyName,\r\n type: InputType.Text,\r\n label: this.props.resources.companyLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.Department,\r\n type: InputType.Text,\r\n label: this.props.resources.departmentLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.JobTitle,\r\n type: InputType.Text,\r\n label: this.props.resources.jobTitleLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.Size,\r\n type: InputType.Text,\r\n label: this.props.resources.companySizeLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.Address,\r\n type: InputType.Address,\r\n label: this.props.resources.companyAddressLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-100'\r\n },\r\n {\r\n id: InputID.Comment,\r\n type: InputType.TextArea,\r\n label: this.props.resources.commentLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-100'\r\n }\r\n ];\r\n\r\n private readonly formChildReference: React.RefObject = React.createRef();\r\n\r\n private readonly moduleClassName: string = 'ms-business-sign-up';\r\n\r\n private needsToReset: boolean = false;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n constructor(props: IBusinessSignUpExtendedProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isReady: false,\r\n formItems: this.props.formItems || this._addedReference(),\r\n addressHasErrors: false,\r\n showAddressErrors: false,\r\n hasSubmitErrors: false\r\n };\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.formChildReference.current?.focus();\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { config } = this.props;\r\n const { formItems } = this.state;\r\n const { className, heading } = config;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n businessSignUp: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, className)\r\n },\r\n ContainerWrapper: {\r\n className: `${this.moduleClassName}__container`\r\n },\r\n heading: (\r\n \r\n ),\r\n businessSignUpForm: this._renderForm(),\r\n formItems\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handle the heading change event.\r\n * @param event - Content Editable Event.\r\n */\r\n public handleHeadingChange = (event: ContentEditableEvent): void => {\r\n this.props.config.heading.text = event.target.value;\r\n };\r\n\r\n private _renderForm(): IBusinessSignUpLocalAccount {\r\n const { config, resources, slots } = this.props;\r\n const { showAddressErrors, hasSubmitErrors, isReady, formItems } = this.state;\r\n const {\r\n signUpButtonArialabel,\r\n signUpButtonText,\r\n cancelButtonArialabel,\r\n cancelButtonText,\r\n errorMessage,\r\n partialAddressErrorMessage\r\n } = resources;\r\n const addressForm = (slots && slots.addressSlot && slots.addressSlot.length > 0 && slots.addressSlot[0]) || undefined;\r\n const successPageURL =\r\n (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\r\n getUrlSync('home', this.props.context.actionContext);\r\n\r\n const form = {\r\n FormWrapper: {\r\n className: `${this.moduleClassName}__form `\r\n },\r\n items: renderInputSection(\r\n formItems,\r\n `${this.moduleClassName}__form-item`,\r\n this.needsToReset,\r\n this._onInputChange,\r\n showAddressErrors,\r\n addressForm,\r\n this._onAddressChange\r\n ),\r\n buttons: [\r\n ,\r\n \r\n ],\r\n errorMessage: [\r\n hasSubmitErrors && ,\r\n showAddressErrors && (\r\n \r\n )\r\n ],\r\n disclaimer: config.disclaimer && (\r\n \r\n )\r\n };\r\n\r\n if (this.needsToReset) {\r\n this.needsToReset = false;\r\n }\r\n\r\n return form;\r\n }\r\n\r\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\r\n const newForm = this.state.formItems;\r\n newForm.forEach(item => {\r\n if (item.id === event.target.id) {\r\n item.value = event.target.value;\r\n }\r\n });\r\n\r\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private _addedReference(): IFormItem[] {\r\n const newFormFields = this.BusinessSignUpDefaultInputs;\r\n newFormFields[0].fieldReference = this.formChildReference;\r\n return newFormFields;\r\n }\r\n\r\n private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\r\n // Find address item\r\n const newForm = this.state.formItems;\r\n const addressItem = newForm.find(item => {\r\n return item.type === InputType.Address;\r\n });\r\n\r\n // If found --> set to currentAddress\r\n if (addressItem) {\r\n addressItem.address = currentAddress;\r\n\r\n // Update state with new values and set errors to false if address is not required field\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n addressHasErrors: errors,\r\n showAddressErrors: false\r\n });\r\n }\r\n };\r\n\r\n private readonly _isFormReady = (): boolean => {\r\n const { formItems } = this.state;\r\n\r\n for (const currentInput of formItems) {\r\n // Will return FALSE if:\r\n // - input field is required\r\n // IF is address AND addressHasErrors === true\r\n // ELSE value is undefined OR empty\r\n // OR\r\n // - pattern provided and value does not match pattern\r\n\r\n if (currentInput.isRequired) {\r\n if (currentInput.type === InputType.Address) {\r\n if (this.state.addressHasErrors) {\r\n return false;\r\n }\r\n } else if (currentInput.value === undefined || currentInput.value === '') {\r\n return false;\r\n }\r\n }\r\n if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n private readonly _onSubmit = (event: React.MouseEvent) => {\r\n if (this.state.addressHasErrors) {\r\n this.setState({\r\n showAddressErrors: true\r\n });\r\n\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const { context } = this.props;\r\n\r\n // Check for matching id and if not empty\r\n const firstName = this._getItem(InputID.FirstName);\r\n const lastName = this._getItem(InputID.LastName);\r\n const companyName = this._getItem(InputID.CompanyName);\r\n const companyEmail = this._getItem(InputID.Email);\r\n const companyAddress = this._getItem(InputID.Address, true);\r\n const jobTitle = this._getItem(InputID.JobTitle);\r\n const department = this._getItem(InputID.Department);\r\n const companySize = this._getItem(InputID.Size);\r\n const comments = this._getItem(InputID.Comment);\r\n\r\n // API gets email as part of the address object, but I do not use the email input from the address component, thus we need to copy it over\r\n if (companyEmail && companyEmail.value && companyAddress && companyAddress.address) {\r\n companyAddress.address.Email = companyEmail.value;\r\n }\r\n\r\n const newPartner: BusinessPartnerProspect = {\r\n FirstName: firstName && firstName.value,\r\n LastName: lastName && lastName.value,\r\n CompanyName: companyName && companyName.value,\r\n Address: companyAddress && companyAddress.address && companyAddress.address,\r\n JobTitle: jobTitle && jobTitle.value,\r\n Department: department && department.value,\r\n CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\r\n Comments: comments && comments.value\r\n };\r\n\r\n // Create business partner request\r\n createProspectAsync({ callerContext: context.actionContext }, newPartner).catch(() => {\r\n this.setState({\r\n hasSubmitErrors: true,\r\n isReady: false\r\n });\r\n });\r\n };\r\n\r\n private readonly _onCancel = () => {\r\n // Reset values of the form\r\n const cleanForm = this.state.formItems;\r\n cleanForm.forEach(input => {\r\n input.value = '';\r\n });\r\n\r\n // Set reset flag so address input will get reset on next renderInputSection() call\r\n this.needsToReset = true;\r\n\r\n this.setState({\r\n isReady: false,\r\n formItems: cleanForm,\r\n addressHasErrors: true,\r\n showAddressErrors: false,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private readonly _getItem = (id: string, isAddress: boolean = false) => {\r\n if (isAddress) {\r\n return this.state.formItems.find(item => {\r\n return item.id === id && item.address;\r\n });\r\n }\r\n return this.state.formItems.find(item => {\r\n return item.id === id && item.value !== '';\r\n });\r\n };\r\n}\r\n\r\nexport default BusinessSignUp;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessSignUpItem, IBusinessSignUpViewProps } from './business-sign-up';\r\n\r\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\r\n // Hide label and error message if rendering address section\r\n return (\r\n \r\n {!isAddressInput && label}\r\n {!isAddressInput && errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst BusinesSignUpView: React.FC = props => {\r\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\r\n\r\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n {items &&\r\n items.map((item: IBusinessSignUpItem) => {\r\n return ;\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n {disclaimer}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BusinesSignUpView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IBusinessFormItem, IBusinessOrganizationListViewProps, IFormViewProps, InputID } from '@msdyn365-commerce-modules/business-organization-list';\r\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources }\r\n from '../definition-extensions/business-organization-list.ext.props.autogenerated';\r\n\r\n/**\r\n * Business Form Item component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\r\n const {\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n } = props;\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * To render modal.\r\n * @param className - The modal classname.\r\n * @param isModalOpen - The boolean for modal open status.\r\n * @param headingSection - The heading section of modal.\r\n * @param bodySection - The body section of modal.\r\n * @param footerSection - The footer section of modal.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst renderModal = (className: string, isModalOpen: boolean, headingSection: React.ReactNode, bodySection: React.ReactNode, footerSection: React.ReactNode,\r\n toggleModal?: () => void) => {\r\n return (\r\n \r\n \r\n {headingSection}\r\n \r\n \r\n {bodySection}\r\n \r\n \r\n {footerSection}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Business User Form component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\r\n\r\n const modalBody = (\r\n <>\r\n {modalDescription}\r\n \r\n {inputs && inputs.map((item: IBusinessFormItem) => {\r\n return (\r\n\r\n \r\n );\r\n })}\r\n {errorMessage?.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n \r\n \r\n\r\n );\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * Selected user interface.\r\n */\r\ninterface ISelectedUser {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n FirstName?: string;\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n LastName?: string;\r\n}\r\n\r\n/**\r\n * Business User Details component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\r\n let modalBody = null;\r\n const selectedUser = props.selectedUser as ISelectedUser | string;\r\n\r\n if (!selectedUser) {\r\n modalBody = errorMessage;\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { FirstName, LastName } = selectedUser as ISelectedUser;\r\n const userFullName = `${FirstName as string} ${LastName as string}`;\r\n\r\n modalBody = (\r\n <>\r\n { modalDescription }\r\n \r\n \r\n {userFullName}\r\n \r\n { Object.keys(selectedUser).map((data, index) => {\r\n if (data === InputID.FirstName || data === InputID.LastName) {\r\n return null;\r\n }\r\n const label = resources[`table${data}HeadingText`] as string || data;\r\n return (\r\n {label}\r\n {': '}\r\n {selectedUser[data]}\r\n );\r\n\r\n })}\r\n \r\n \r\n );\r\n }\r\n\r\n const modalFooter = buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n });\r\n\r\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\n/**\r\n * To get form.\r\n * @param type - The type of form.\r\n * @param formProps - The form props.\r\n * @param toggleModal - The toggle modal callback function.\r\n * @returns The JSX Element.\r\n */\r\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\r\n switch (type) {\r\n case 'ADD':\r\n case 'EDIT':\r\n return ;\r\n case 'VIEW':\r\n case 'REMOVE':\r\n return ;\r\n default:\r\n return null;\r\n }\r\n};\r\n\r\n/**\r\n * Business Organization List component.\r\n * @param props - View props.\r\n * @returns The JSX Element.\r\n */\r\nconst BusinessOrganizationListComponent: React.FC> = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\r\n const { OrganizationUserList, moduleContainer, heading, noUsersText, addUserButton, organizationListTable, form, formType,\r\n toggleModal, requestAccountStatementButton, requestStatementModal } = props;\r\n\r\n const buttonList: React.ReactNode =\r\n (\r\n \r\n {addUserButton}\r\n {requestAccountStatementButton}\r\n \r\n );\r\n\r\n if (noUsersText) {\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n \r\n {props.resources.headingForEmptyUserOrganizationList}\r\n \r\n \r\n {props.resources.textForEmptyUserOrganizationList}\r\n \r\n {buttonList}\r\n \r\n {requestStatementModal}\r\n {noUsersText}\r\n \r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n {buttonList}\r\n {requestStatementModal}\r\n {organizationListTable}\r\n \r\n { form && getForm(formType, form, toggleModal) }\r\n \r\n );\r\n};\r\n\r\nexport default BusinessOrganizationListComponent;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IContentBlockAdditionalContentItemViewProps,\r\n IContentBlockAdditionalContentViewProps, IContentBlockViewProps\r\n} from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\n/**\r\n * Render Additional Content.\r\n * @param additionalContent - Additional content view props.\r\n * @returns JSX Element.\r\n */\r\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\r\n return (\r\n \r\n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\r\n return (\r\n <>\r\n {item.heading}\r\n \r\n {item.text}\r\n \r\n {item.links}\r\n \r\n \r\n \r\n );\r\n })}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render View.\r\n * @param props - The view props.\r\n * @returns -The JSX Element.\r\n */\r\nconst contentBlockView: React.FC = (props) => {\r\n const {\r\n contentBlockContainer,\r\n imageContainer,\r\n detailsContainer,\r\n title,\r\n text,\r\n links,\r\n image,\r\n contentBlockAnchorTag,\r\n imageLink,\r\n imageAriaLabel,\r\n additionalContent\r\n } = props;\r\n\r\n // @ts-expect-error HTML element need to be clear on run time.\r\n const hasImage: boolean = image.props.src;\r\n const imageClass: string = hasImage ? `${detailsContainer.className} withImage` : `${detailsContainer.className} withoutImage`;\r\n\r\n if (imageLink) {\r\n return (\r\n \r\n \r\n \r\n {image}\r\n \r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n }\r\n return (\r\n \r\n \r\n {image}\r\n \r\n \r\n {title}\r\n {text}\r\n {links}\r\n {additionalContent && renderAdditionalContent(additionalContent)}\r\n \r\n \r\n );\r\n\r\n};\r\n\r\nexport default contentBlockView;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IFooterViewProps } from '@msdyn365-commerce-modules/footer';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IFooterItemProps } from '../definition-extensions/footer-item.ext.props.autogenerated';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n/**\r\n *\r\n * FooterItemView component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class FooterItemView extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\r\n const { FooterItem } = this.props;\r\n return (\r\n \r\n {this._renderElement(this.props)}\r\n \r\n );\r\n }\r\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\r\n if (!item || !item.src || item.src.length === 0) {\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\r\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n return (\r\n \r\n );\r\n }\r\n private _renderElement(props: IFooterViewProps & IFooterItemProps<{}>): React.ReactNode | null {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Cannot change the prop names as props are from business logic.\r\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink, config } = props;\r\n if (config.image && config.logoSvgUrl) {\r\n config.image.src = config.logoSvgUrl;\r\n }\r\n if (heading) {\r\n return (\r\n {' '}\r\n );\r\n } else if (Link && image) {\r\n return (\r\n \r\n {linkText}\r\n {this._createImageMarkup(config.image!)}\r\n \r\n );\r\n } else if (Link) {\r\n return (EditableLink);\r\n }\r\n return (\r\n <>\r\n {text}\r\n {image}\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default FooterItemView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ControlledDrawer, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { IDrawerState } from '@msdyn365-commerce-modules/utilities/dist/types/drawer/Drawer';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput, interactionStyle } from '../..';\nimport { IAccordionItemData } from './accordion-item.data';\nimport { IAccordionItemProps } from './accordion-item.props.autogenerated';\n\nexport interface IAccordionItemViewProps {\n AccordionItemContainer: IModuleProps;\n drawer: INodeProps;\n accordionSlots: INodeProps;\n AccordionItemContent: INodeProps;\n className: string;\n}\n\nexport interface IAccordionItemExtentedProps extends IAccordionItemProps {\n interactionStyle?: interactionStyle;\n}\n\n/**\n *\n * AccordionItem component.\n * @extends {React.Component}\n */\n@observer\nclass AccordionItem extends React.Component {\n private readonly moduleClassName: string = 'ms-accordion-item';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccordionItemProps) {\n super(props);\n this._onToggle = this._onToggle.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccordionItemProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { slots, renderView, config, data } = this.props;\n const accordionExpandedStateResult = data && data.accordionExpandedState && data.accordionExpandedState.result;\n const expanded =\n accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded === undefined\n ? data && config.isExpandedOnInitialLoad\n : accordionExpandedStateResult && accordionExpandedStateResult.isAllExpanded;\n const viewProps = {\n ...this.props,\n AccordionItemContainer: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n AccordionItemContent: {\n className: 'ms-accordion-item-content'\n },\n drawer: {\n tag: ControlledDrawer,\n className: `${this.moduleClassName}__drawer`,\n toggleButtonText: (config.accordionItemTitle && config.accordionItemTitle) || '',\n collapseProps: { isOpen: expanded },\n onToggle: this._onToggle,\n onTextChange: this.handleHeadingChange,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n },\n accordionSlots: slots\n };\n return renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.accordionItemTitle = event.target.value);\n\n private _onToggle(state: IDrawerState): void {\n if (!state.isOpen && this.props.interactionStyle === interactionStyle.ExpandOneItemOnly) {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n }\n }\n}\nexport default AccordionItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionItemViewProps } from './accordion-item';\n\nconst AccordionItemView: React.FC = props => {\n const { drawer, accordionSlots, AccordionItemContainer, AccordionItemContent } = props;\n return (\n \n \n \n {accordionSlots &&\n accordionSlots.accordionItemContent &&\n accordionSlots.accordionItemContent.length &&\n _renderAccordionItemContent(accordionSlots.accordionItemContent)}\n \n \n \n );\n};\n\nconst _renderAccordionItemContent = (items: React.ReactNode[]): JSX.Element | null => {\n return (\n <>\n {items && items.length > 0\n ? items.map((item: React.ReactNode, index: number) => {\n return {item};\n })\n : null}\n \n );\n};\nexport default AccordionItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n NodeTag,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { createAccordionStateInput } from '../..';\nimport { IAccordionData } from './accordion.data';\nimport { IAccordionProps } from './accordion.props.autogenerated';\n\n/**\n *\n * Accordion component.\n * @extends {React.PureComponent>}\n */\n\nexport interface ICallToActionProps {\n link: INodeProps[];\n}\n\n/**\n * Added interface for state management.\n */\nexport interface IAccordianState {\n isDisabled: boolean;\n}\n\nexport interface IAccordionViewProps extends IAccordionProps<{}> {\n heading?: React.ReactNode;\n AccordionContainer: IModuleProps;\n HeaderSection: INodeProps;\n HeadingWrapper: INodeProps;\n accordianButtonsContainer: INodeProps;\n accordionButtons: React.ReactNode;\n accordionItemContainer: INodeProps;\n accordionItems: React.ReactNode;\n}\n\n/**\n *\n * Accordion component.\n * @extends {React.Component>}\n */\n@observer\nclass Accordion extends React.PureComponent, IAccordianState> {\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly expandAllButtonRef: React.RefObject = React.createRef();\n\n private readonly collapseAllButtonRef: React.RefObject = React.createRef();\n\n constructor(props: IAccordionProps) {\n super(props);\n this._onExpandAll = this._onExpandAll.bind(this);\n this._onCollapseAll = this._onCollapseAll.bind(this);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.state = { isDisabled: false };\n }\n\n public render(): JSX.Element {\n const { slots } = this.props;\n const { heading, className } = this.props.config;\n const headingComponent = heading && heading.text && (\n \n );\n\n const accordionViewProps = {\n ...this.props,\n AccordionContainer: {\n moduleProps: this.props,\n className: classnames('ms-accordion', className)\n },\n HeaderSection: { className: 'ms-accordion-header-section' },\n HeadingWrapper: { className: 'ms-accordion-header-section-container' },\n heading: headingComponent,\n config: this.props && this.props.config,\n accordianButtonsContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-header-section-toggle-button-container'\n },\n accordionButtons: this._renderAccordionButton(),\n accordionItemContainer: {\n tag: 'div' as NodeTag,\n className: 'ms-accordion-item-section'\n },\n accordionItems:\n slots &&\n slots.accordionItems &&\n slots.accordionItems.length > 0 &&\n slots.accordionItems.map((item: React.ReactNode, index: number) => this._getAccordionItem(item, index))\n };\n return this.props.renderView(accordionViewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _renderAccordionButton(): React.ReactNode | null {\n const { config, resources } = this.props;\n const { heading } = config;\n this.payLoad.contentAction.etext = TelemetryConstant.ExpandAll;\n const attributeExpandAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.CollapseAll;\n const attributeCollapseAll = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n if (!config.showToggleAll) {\n this.props.context.telemetry.error('Accordion button content is empty, module wont render');\n return null;\n }\n return (\n <>\n \n {resources.expandAllText}\n \n  \n {resources.toggleAllSeparator}\n  \n \n {resources.collapseAllText}\n \n \n );\n }\n\n private _onExpandAll(): void {\n const accordionState = { isAllExpanded: true };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (accordionState.isAllExpanded) {\n this.setState({\n isDisabled: true\n });\n setTimeout(() => {\n this.collapseAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _onCollapseAll(): void {\n const accordionState = { isAllExpanded: false };\n this.props.context.actionContext.update(createAccordionStateInput(accordionState), accordionState);\n if (!accordionState.isAllExpanded) {\n this.setState({\n isDisabled: false\n });\n setTimeout(() => {\n this.expandAllButtonRef.current?.focus();\n }, 50);\n }\n }\n\n private _getAccordionItem(item: React.ReactNode, index: number): React.ReactNode {\n return (\n \n {React.cloneElement(item as React.ReactElement, { interactionStyle: this.props.config.interactionStyle })}\n \n );\n }\n}\n\nexport default Accordion;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccordionViewProps } from './accordion';\n\nconst accordionView: React.FC = props => {\n const { heading, AccordionContainer, accordionItems } = props;\n if (!props.heading && !props.accordionButtons && !props.accordionItems) {\n props.context.telemetry.error('Accordion content is empty, module wont render');\n return null;\n }\n return (\n \n \n {heading}\n {props.accordionButtons && {props.accordionButtons}}\n \n {accordionItems}\n \n );\n};\n\nexport default accordionView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAadGenericViewProps } from './aad-generic';\n\nexport default (props: IAadGenericViewProps) => {\n const { aadGeneric, aadConainer, aadAPIConainer, heading } = props;\n\n return (\n \n \n {heading}\n {aadAPIConainer}\n \n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountLoyaltyTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountLoyaltyTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-loyalty-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountLoyaltyTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyRewardPoint } from '@msdyn365-commerce/retail-proxy';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileData } from './account-loyalty-tile.data';\nimport { IAccountLoyaltyTileProps } from './account-loyalty-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-loyalty-tile-description';\nimport LinksComponent from './components/account-loyalty-tile-links';\n\nexport interface IAccountLoyaltyTileViewProps extends IAccountLoyaltyTileProps {\n AccountLoyaltyTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.PureComponent>}\n */\nclass AccountLoyaltyTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountLoyaltyTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, data, resources, context } = this.props;\n const { className, heading, signUpLinkText, signUpLinkAriaLabel, viewLinkText, viewLinkAriaLabel } = config;\n const { accountLoyaltySummary, accountLoyaltyMemberSummary } = resources;\n const { loyaltyCard } = data;\n\n let description = accountLoyaltySummary;\n let url = Msdyn365.getUrlSync('loyaltyJoin', context.actionContext) || '';\n const link = { linkText: signUpLinkText, linkUrl: { destinationUrl: url }, ariaLabel: signUpLinkAriaLabel };\n\n if (loyaltyCard && loyaltyCard.result && loyaltyCard.result.CardNumber) {\n const decimalPrecision = 2;\n let points = 0;\n\n if (loyaltyCard.result.RewardPoints && loyaltyCard.result.RewardPoints.length > 0) {\n loyaltyCard.result.RewardPoints.forEach((rewardPoint: LoyaltyRewardPoint) => {\n points += rewardPoint.ActivePoints!;\n });\n }\n link.ariaLabel = viewLinkAriaLabel;\n link.linkText = viewLinkText;\n url = Msdyn365.getUrlSync('loyalty', context.actionContext) || '';\n link.linkUrl.destinationUrl = url;\n description = format(accountLoyaltyMemberSummary, points.toFixed(decimalPrecision));\n }\n\n const viewProps = {\n ...this.props,\n className,\n AccountLoyaltyTile: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty-tile', config.className)\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.signUpLinkText && this.props.config.viewLinkText) {\n this.props.config.viewLinkText = event.target.value;\n }\n };\n}\n\nexport default AccountLoyaltyTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyTileViewProps } from './account-loyalty-tile';\n\nconst AccountLoyaltyTileView: React.FC = props => {\n const { AccountLoyaltyTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountLoyaltyTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountLoyaltyTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountLoyaltyTileDescription: React.FC = ({ description }) => (\n

{description}

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

{description}

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

{description}

\n);\n\nexport default IAccountWishlistTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-wishlist-tile.props.autogenerated';\n\nexport interface IAccountWishlistTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountWishlistTileLinks: React.FC = ({ links, telemetryContent, onTextChange, requestContext }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-wishlist-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountWishlistTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileData } from './account-wishlist-tile.data';\nimport { IAccountWishlistTileProps } from './account-wishlist-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-wishlist-tile-description';\nimport LinksComponent from './components/account-wishlist-tile-links';\n\nexport interface IAccountWishlistTileViewProps extends IAccountWishlistTileProps {\n AccountWishlistTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountWishlist component.\n * @extends {React.PureComponent>}\n */\nclass AccountWishlistTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IAccountWishlistTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountWishlistTileDescription } = resources;\n const wishlists = data.wishlists.result;\n\n const wishlistsCount = ((wishlists && wishlists.length && wishlists[0].CommerceListLines) || []).length;\n const description = format(accountWishlistTileDescription || 'You have {0} items in the Wishlist.', wishlistsCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountWishlistTile: {\n moduleProps: this.props,\n className: classnames('ms-account-wishlist-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountWishlistTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWishlistTileViewProps } from './account-wishlist-tile';\n\nconst AccountWishlistTileView: React.FC = props => {\n const { AccountWishlistTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountWishlistTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport React from 'react';\n\nexport const SignUpText: React.FC<{ text: string }> = (props: { text: string }) => {\n return

{props.text}

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

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../organization-users-tile.props.autogenerated';\n\nexport interface IAccountOrganizationUsersTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrganizationUsersTileLinks: React.FC = ({\n links,\n telemetryContent,\n onTextChange,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-organization-users-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { AccountOrganizationUsersTileDescription, AccountOrganizationUsersTileLinks } from './components';\nimport { IOrganizationUsersTileData } from './organization-users-tile.data';\nimport { IOrganizationUsersTileProps } from './organization-users-tile.props.autogenerated';\n\nexport interface IOrganizationUsersTileViewProps extends IOrganizationUsersTileProps {\n OrganizationUsersTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * OrganizationUsersTile component.\n * @extends {React.PureComponent>}\n */\nclass OrganizationUsersTile extends React.PureComponent> {\n private readonly telemetryContent?: ITelemetryContent;\n\n constructor(props: IOrganizationUsersTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element | null {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountOrganizationUsersTileDescriptionForSingleUser, accountOrganizationUsersTileDescriptionForMultipleUsers } = resources;\n const numUsers = data.users && data.users.result;\n const accountOrganizationUsersTileDescription =\n numUsers === 1 ? accountOrganizationUsersTileDescriptionForSingleUser : accountOrganizationUsersTileDescriptionForMultipleUsers;\n const customerInformation = data.customerInformation.result;\n\n // Organization-users tile will not be render for non-admin users.\n if (!customerInformation?.IsB2bAdmin) {\n return null;\n }\n\n const viewProps = {\n ...this.props,\n className,\n OrganizationUsersTile: {\n moduleProps: this.props,\n className: classnames('ms-account-organization-users-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default OrganizationUsersTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrganizationUsersTileViewProps } from './organization-users-tile';\n\nconst OrganizationUsersTileView: React.FC = props => {\n const { OrganizationUsersTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default OrganizationUsersTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetVerificationButton: React.FC = ({\n id,\n className,\n text,\n ariaLabel,\n telemetryContent,\n disabled,\n onClick\n}) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetVerificationButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetVerificationInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetVerificationInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n onChange\n}) => (\n \n);\n\nexport default PasswordResetVerificationInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetVerificationLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetVerificationLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingIcon {\n className: string;\n}\n\nconst PasswordResetVerificationLoadingIcon: React.FC = ({ className }) => (\n
\n);\n\nexport default PasswordResetVerificationLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetVerificationLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetVerificationLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetVerificationSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetVerificationSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default PasswordResetVerificationSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetVerificationButtonComponent from './components/password-reset-verification-button';\nimport PasswordResetVerificationErrorComponent from './components/password-reset-verification-error';\nimport PasswordResetVerificationInputComponent from './components/password-reset-verification-input';\nimport PasswordResetVerificationLabelComponent from './components/password-reset-verification-label';\nimport PasswordResetVerificationLoadingIconComponent from './components/password-reset-verification-loading-icon';\nimport PasswordResetVerificationLoadingMessageComponent from './components/password-reset-verification-loading-message';\nimport PasswordResetVerificationSuccessComponent from './components/password-reset-verification-success';\nimport { IPasswordResetVerificationConfig, IPasswordResetVerificationProps } from './password-reset-verification.props.autogenerated';\n\nexport interface IPasswordResetVerificationViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetVerificationItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationLocalAccount {\n localAccount: INodeProps;\n verificationControlWrapper: INodeProps;\n items: IPasswordResetVerificationItem[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationButtonsWrapper: INodeProps;\n verificationButtons: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetVerificationLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetVerificationViewProps {\n className: string;\n viewState: IPasswordResetVerificationViewState;\n loading: IPasswordResetVerificationLoading;\n passwordResetVerification: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetVerificationLocalAccount: IPasswordResetVerificationLocalAccount;\n}\n\n/**\n *\n * PasswordResetVerification component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordResetVerification extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset-verification';\n\n private readonly telemetryContent: ITelemetryContent;\n\n @observable private emailRegex: string;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetVerificationProps) {\n super(props);\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.isInitialized = false;\n this.templateVersion = '';\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IPasswordResetVerificationProps,\n nextState: IPasswordResetVerificationViewState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordResetVerification: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: (\n \n )\n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetVerificationLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private _prePopulateData(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n if (obj.ID.toLowerCase() === 'email') {\n this.emailRegex = obj.PAT;\n } else if (obj.ID.toLowerCase() === 'emailverificationcontrol') {\n this.templateVersion = 'v2';\n }\n });\n if (!this.templateVersion) {\n this.templateVersion = 'v1';\n }\n }\n }\n\n private _updateErrorMessage(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: this.props.resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n }\n\n private _renderLocalAccount(): IPasswordResetVerificationLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n items: [\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n )\n ],\n successMessage: [\n ,\n\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n ,\n \n ],\n verificationButtonsWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n verificationButtons: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): IPasswordResetVerificationItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n}\n\nexport default PasswordResetVerification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IPasswordResetVerificationItem,\n IPasswordResetVerificationLoading,\n IPasswordResetVerificationLocalAccount,\n IPasswordResetVerificationViewProps\n} from './password-reset-verification';\n\nconst PasswordResetVerificationItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n verificationControlWrapper,\n items,\n successMessage,\n errorMessage,\n verificationButtonsWrapper,\n verificationButtons,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n \n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {verificationButtons &&\n verificationButtons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n \n );\n};\n\nconst PasswordResetVerificationLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetVerificationView: React.FC = props => {\n const {\n passwordResetVerification,\n viewState,\n loading,\n defaultAADConainer,\n aadConainer,\n heading,\n passwordResetVerificationLocalAccount\n } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetVerificationLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetVerificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst PasswordResetButton: React.FC = ({ id, className, text, ariaLabel, disabled, telemetryContent, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport default PasswordResetButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IPasswordResetErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst PasswordResetError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default PasswordResetError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IPasswordResetInputProps {\n id?: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface IPasswordResetInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst PasswordResetInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default PasswordResetInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst PasswordResetLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default PasswordResetLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingIcon {\n className: string;\n}\n\nconst PasswordResetLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default PasswordResetLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IPasswordResetLoadingMessage {\n className: string;\n message: string;\n}\n\nconst PasswordResetLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default PasswordResetLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport PasswordResetButtonComponent from './components/password-reset-button';\nimport PasswordResetErrorComponent from './components/password-reset-error';\nimport PasswordResetInputComponent from './components/password-reset-input';\nimport PasswordResetLabelComponent from './components/password-reset-label';\nimport PasswordResetLoadingIconComponent from './components/password-reset-loading-icon';\nimport PasswordResetLoadingMessageComponent from './components/password-reset-loading-message';\nimport { IPasswordResetConfig, IPasswordResetProps } from './password-reset.props.autogenerated';\n\nexport interface IPasswordResetViewState {\n isShowLoading: boolean;\n}\n\nexport interface IPasswordResetItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IPasswordResetLocalAccount {\n localAccount: INodeProps;\n items: IPasswordResetItem[];\n errorMessage: React.ReactNode[];\n buttonsWrapper: INodeProps;\n buttons: React.ReactNode[];\n verificationSuccessModal: INodeProps;\n verificationSuccessModalMessage: INodeProps;\n}\n\nexport interface IPasswordResetLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface IPasswordResetViewProps {\n className: string;\n viewState: IPasswordResetViewState;\n loading: IPasswordResetLoading;\n passwordReset: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n passwordResetLocalAccount: IPasswordResetLocalAccount;\n}\n\n/**\n *\n * PasswordReset component.\n * @extends {React.Component>}\n */\n@observer\nclass PasswordReset extends React.Component> {\n private readonly moduleClassName: string = 'ms-password-reset';\n\n private readonly telemetryContent?: ITelemetryContent;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isInitialized: boolean;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: IPasswordResetProps) {\n super(props);\n\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isInitialized = false;\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: IPasswordResetProps, nextState: IPasswordResetViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n passwordReset: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: config.heading && (\n \n ),\n passwordResetLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map((obj: { ID: string; PAT: string }) => {\n switch (obj.ID.toLowerCase()) {\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n });\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const { resources } = this.props;\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const message = {\n verifying_blurb: resources.loadingMessage\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], message);\n }\n };\n\n private _renderLocalAccount(): IPasswordResetLocalAccount {\n const { resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('newPassword', 'password', resources.newPasswordLabelText, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, this.reenterPasswordRegex)\n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n buttonsWrapper: {\n className: `${this.moduleClassName}__buttons`\n },\n buttons: [\n ,\n \n ],\n verificationSuccessModal: {\n className: `${this.moduleClassName}__verifying-modal verifying-modal`\n },\n verificationSuccessModalMessage: {\n id: 'verifying_blurb',\n className: `${this.moduleClassName}__verifying-modal-message`\n }\n };\n }\n\n private _renderInput(id: string, type: string, labelText: string, pattern?: string): IPasswordResetItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry')\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default PasswordReset;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IPasswordResetItem, IPasswordResetLoading, IPasswordResetLocalAccount, IPasswordResetViewProps } from './password-reset';\n\nconst PasswordResetItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n errorMessage,\n buttonsWrapper,\n buttons,\n verificationSuccessModal,\n verificationSuccessModalMessage\n}) => {\n return (\n \n {items &&\n items.map((item: IPasswordResetItem) => {\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n \n\n \n \n \n \n );\n};\n\nconst PasswordResetLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst PasswordResetView: React.FC = props => {\n const { passwordReset, viewState, loading, defaultAADConainer, aadConainer, heading, passwordResetLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(passwordResetLocalAccount)}\n \n \n );\n};\n\nexport default PasswordResetView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n onClick?(event: React.MouseEvent): void;\n}\n\nconst SignUpButton: React.FC = ({ id, className, text, ariaLabel, disabled, onClick }) => (\n \n);\n\nexport default SignUpButton;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nexport default SignUpError;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ISignUpInputProps {\n id?: string;\n hasFocus?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n type: any;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport interface ISignUpInput {\n key: string;\n AddressItem: INodeProps;\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n\nconst SignUpInput: React.FC = ({ id, type, value, pattern, className, maxLength, onChange }) => (\n \n);\n\nexport default SignUpInput;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n}\n\nconst SignUpLabel: React.FC = ({ id, forId, className, text }) => (\n \n);\n\nexport default SignUpLabel;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingIcon {\n className: string;\n}\n\nconst SignUpLoadingIcon: React.FC = ({ className }) =>
;\n\nexport default SignUpLoadingIcon;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface ISignUpLoadingMessage {\n className: string;\n message: string;\n}\n\nconst SignUpLoadingMessage: React.FC = ({ className, message }) => (\n
{message}
\n);\n\nexport default SignUpLoadingMessage;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface ISignUpSuccess {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nconst SignUpSuccess: React.FC = ({ id, className, type = 'page', message }) => {\n const successClassName = `${className}__${type}-success`;\n\n return (\n \n );\n};\n\nexport default SignUpSuccess;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { EmailRegex, PasswordRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps, Modal, ModalBody } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport SignUpButtonComponent from './components/sign-up-button';\nimport SignUpErrorComponent from './components/sign-up-error';\nimport SignUpInputComponent from './components/sign-up-input';\nimport SignUpLabelComponent from './components/sign-up-label';\nimport SignUpLoadingIconComponent from './components/sign-up-loading-icon';\nimport SignUpLoadingMessageComponent from './components/sign-up-loading-message';\nimport SignUpSuccessComponent from './components/sign-up-success';\nimport { ISignUpConfig, ISignUpProps, ISignUpResources } from './sign-up.props.autogenerated';\n\nexport interface ISignUpViewState {\n isShowLoading: boolean;\n}\n\nexport interface ISignUpItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface ISignUpEmailVerification {\n isRequired: boolean;\n email: ISignUpItem;\n buttonWrapper: INodeProps;\n buttons: React.ReactNode[];\n successMessage: React.ReactNode[];\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Given Name Verification Interface.\n */\nexport interface ISignUpGivenNameVerification {\n isRequired: boolean;\n givenName: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\n/**\n * SignUp Surname Verification Interface.\n */\nexport interface ISignUpSurnameVerification {\n isRequired: boolean;\n surname: ISignUpItem;\n errorMessage: React.ReactNode[];\n verificationControlWrapper: INodeProps;\n}\n\nexport interface ISignUpLocalAccount {\n localAccount: INodeProps;\n items: ISignUpItem[];\n emailVerification: ISignUpEmailVerification;\n givenNameVerification: ISignUpGivenNameVerification;\n surnameVerification: ISignUpSurnameVerification;\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n disclaimer: React.ReactNode;\n}\n\nexport interface ISignUpLoading {\n modal: INodeProps;\n modalBody: INodeProps;\n icon: React.ReactNode;\n message: React.ReactNode;\n}\n\nexport interface ISignUpViewProps {\n className: string;\n viewState: ISignUpViewState;\n loading: ISignUpLoading;\n signUp: IModuleProps;\n defaultAADConainer: INodeProps;\n aadConainer: INodeProps;\n heading: React.ReactNode;\n signUpLocalAccount: ISignUpLocalAccount;\n}\n\n/**\n *\n * SignUp component\n * All AAD related module is rendered on AAD page and we need to respect HTML contract provide by AAD.\n * Please ensure any change in module don't break contract with AAD.\n * @extends {React.Component>}\n */\n@observer\nclass SignUp extends React.Component> {\n @observable private isGivenNameVerificationRequried: boolean;\n\n @observable private isSurnameVerificationRequried: boolean;\n\n private readonly moduleClassName: string = 'ms-sign-up';\n\n @observable private emailRegex: string;\n\n @observable private newPasswordRegex: string;\n\n @observable private reenterPasswordRegex: string;\n\n @observable private isEmailVerificationRequried: boolean;\n\n @observable private isInitialized: boolean;\n\n @observable private templateVersion: string;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private initializationTimer: any;\n\n constructor(props: ISignUpProps) {\n super(props);\n\n this.emailRegex = EmailRegex.defaultRegex.source;\n this.newPasswordRegex = PasswordRegex.defaultRegex.source;\n this.reenterPasswordRegex = PasswordRegex.defaultRegex.source;\n this.isEmailVerificationRequried = false;\n this.isGivenNameVerificationRequried = false;\n this.isSurnameVerificationRequried = false;\n this.isInitialized = false;\n this.templateVersion = '';\n }\n\n public componentDidMount(): void {\n this._onInit();\n }\n\n // After successful AAD initialization, call initialize method provided by AAD to attach events.\n public componentDidUpdate(): void {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (this.isInitialized && window && window['$element'] && window['$element']['initialize']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['$element']['initialize']();\n }\n }\n\n public shouldComponentUpdate(nextProps: ISignUpProps, nextState: ISignUpViewState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources } = this.props;\n\n const viewProps = {\n ...this.props,\n viewState: {\n isShowLoading: !this.isInitialized\n },\n signUp: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, config.className)\n },\n loading: {\n modal: {\n tag: Modal,\n isOpen: true\n },\n modalBody: {\n tag: ModalBody\n },\n icon: ,\n message: \n },\n defaultAADConainer: {\n id: 'api',\n style: { display: 'none' }\n },\n aadConainer: {\n id: this.isInitialized ? 'api' : null,\n className: `${this.moduleClassName}__container`\n },\n heading: (\n \n ),\n signUpLocalAccount: this._renderLocalAccount()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles heading content change event.\n * @param event - Content editable event.\n * @returns - Heading Text.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n /**\n * Handles paragraph content change event.\n * @param event - Content editable event.\n * @returns - Paragraph Text.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.disclaimer = event.target.value);\n\n // eslint-disable-next-line @typescript-eslint/naming-convention\n public _onInit = () => {\n this._prePopulateData();\n this._updateErrorMessage();\n\n // Check if AAD initialization is complete. AAD do not provide any event to subscribe so we need to check variable set by AAD to check initialization status.\n this.initializationTimer = setInterval(() => {\n this._isInitializationSuccessful();\n }, 100);\n setTimeout(() => {\n clearInterval(this.initializationTimer);\n }, 10_000);\n };\n\n // After successful AAD initialization, remove waiting and preload any data, if needed.\n private readonly _isInitializationSuccessful = () => {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window && window['$diags'] && window['$diags']['initializationSuccessful']) {\n clearInterval(this.initializationTimer);\n this.isInitialized = true;\n }\n };\n\n private readonly _prePopulateData = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n if (window['SA_FIELDS'] && window['SA_FIELDS']['AttributeFields']) {\n // eslint-disable-next-line @typescript-eslint/dot-notation, @typescript-eslint/no-unsafe-member-access -- Auto-suppressed.\n window['SA_FIELDS']['AttributeFields'].map(\n (obj: { ID: string; PAT: string; UX_INPUT_TYPE: string; PAT_DESC: string; VERIFY: boolean }) => {\n switch (obj.ID.toLowerCase()) {\n case 'emailverificationcontrol': {\n this.isEmailVerificationRequried = true;\n this.templateVersion = 'v2';\n break;\n }\n case 'email': {\n this.emailRegex = obj.PAT;\n this.isEmailVerificationRequried = obj.VERIFY;\n this.templateVersion = 'v1';\n break;\n }\n case 'givennameverificationcontrol': {\n this.isGivenNameVerificationRequried = true;\n break;\n }\n case 'givenname': {\n this.isGivenNameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'surnameverificationcontrol': {\n this.isEmailVerificationRequried = true;\n break;\n }\n case 'surname': {\n this.isSurnameVerificationRequried = obj.VERIFY;\n break;\n }\n case 'newpassword': {\n this.newPasswordRegex = obj.PAT;\n break;\n }\n case 'reenterpassword': {\n this.reenterPasswordRegex = obj.PAT;\n break;\n }\n default:\n }\n\n switch (obj.UX_INPUT_TYPE.toLowerCase()) {\n case 'password': {\n obj.PAT_DESC = resources.invalidPasswordError;\n break;\n }\n case 'emailbox': {\n obj.PAT_DESC = resources.invalidEmailAddressError;\n break;\n }\n default:\n }\n }\n );\n }\n };\n\n private readonly _updateErrorMessage = () => {\n const resources: ISignUpResources = this.props.resources || {};\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n if (window && window['CONTENT']) {\n const errorMessages = {\n required_field: resources.requiredFieldMissingError\n };\n\n // eslint-disable-next-line @typescript-eslint/dot-notation -- Auto-suppressed.\n Object.assign(window['CONTENT'], errorMessages);\n }\n };\n\n private readonly getValue = (v1Value: string, v2Value: string): string => {\n if (this.templateVersion) {\n return this.templateVersion === 'v1' ? v1Value : v2Value;\n }\n return '';\n };\n\n private _renderLocalAccount(): ISignUpLocalAccount {\n const { config, resources } = this.props;\n return {\n localAccount: {\n id: 'attributeList',\n className: `${this.moduleClassName}__account-items attr`\n },\n items: [\n this._renderInput('givenName', 'text', resources.firstNameLabelText, resources.firstNameMaxLength),\n this._renderInput('surname', 'text', resources.lastNameLabelText, resources.lastNameMaxLength),\n this._renderInput('email', 'email', resources.emailAddressLabelText, undefined, this.emailRegex),\n this._renderInput('newPassword', 'password', resources.passwordLabelText, undefined, this.newPasswordRegex),\n this._renderInput('reenterPassword', 'password', resources.confirmPasswordLabelText, undefined, this.reenterPasswordRegex)\n ],\n emailVerification: {\n isRequired: this.isEmailVerificationRequried,\n email: this._renderInput(\n this.getValue('email_ver_input', 'emailVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'emailVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n buttonWrapper: {\n className: `${this.moduleClassName}__email-verification-buttons ${this.getValue('verify', '')}`,\n 'data-claim_id': 'email'\n },\n buttons: [\n ,\n ,\n ,\n \n ],\n successMessage: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n ,\n ,\n ,\n \n ]\n },\n givenNameVerification: {\n isRequired: this.isGivenNameVerificationRequried,\n givenName: this._renderInput(\n this.getValue('givenName_ver_input', 'givenNameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'givenNameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n surnameVerification: {\n isRequired: this.isSurnameVerificationRequried,\n surname: this._renderInput(\n this.getValue('surname_ver_input', 'surnameVerificationCode'),\n 'text',\n resources.verificationCodeLabelText,\n undefined,\n undefined,\n 'VerificationCode'\n ),\n verificationControlWrapper: {\n id: 'surnameVerificationControl',\n className: `${this.moduleClassName}__verification-control-content verificationControlContent`\n },\n errorMessage: [\n \n ]\n },\n buttons: [\n ,\n \n ],\n errorMessage: [\n ,\n ,\n ,\n \n ],\n disclaimer: config.disclaimer && (\n \n )\n };\n }\n\n private _renderInput(\n id: string,\n type: string,\n labelText: string,\n maxLength?: string,\n pattern?: string,\n cssClassName?: string\n ): ISignUpItem {\n const className = `${this.moduleClassName}__account-item`;\n return {\n wrapper: {\n className: classnames(className, `${className}-${id}`, 'entry-item', 'attrEntry', cssClassName)\n },\n key: id,\n label: (\n \n ),\n errorMessage: (\n \n ),\n input: (\n \n )\n };\n }\n}\n\nexport default SignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n ISignUpEmailVerification,\n ISignUpGivenNameVerification,\n ISignUpItem,\n ISignUpLoading,\n ISignUpLocalAccount,\n ISignUpSurnameVerification,\n ISignUpViewProps\n} from './sign-up';\n\nconst SignUpItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst SignUpEmailVerification: React.FC = ({ email, buttonWrapper, buttons, successMessage, errorMessage }) => {\n return (\n <>\n {successMessage &&\n successMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {errorMessage &&\n errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n {buttons &&\n buttons.map((button: React.ReactNode) => {\n return <>{button};\n })}\n \n \n );\n};\n\n/**\n * Handles validation of sign-up givenName.\n * @param event - Content editable event.\n * @param event.givenName - Event Given Name.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for Given Name.\n */\nconst SignUpGivenNameVerificationComponent: React.FC = ({ givenName, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\n/**\n * Handles validation of signUp surname.\n * @param event - Content editable event.\n * @param event.surname - Event surname.\n * @param event.errorMessage - Event Error Message.\n * @returns - Error Message for surname.\n */\nconst SignUpSurnameVerificationComponent: React.FC = ({ surname, errorMessage }) => {\n return (\n <>\n \n {errorMessage.map((message: React.ReactNode) => {\n return <>{message};\n })}\n \n );\n};\n\nconst LocalAccount: React.FC = ({\n localAccount,\n items,\n emailVerification,\n givenNameVerification,\n surnameVerification,\n buttons,\n errorMessage,\n disclaimer\n}) => {\n return (\n \n {items &&\n items.map((item: ISignUpItem) => {\n if (item.key === 'email' && emailVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'givenName' && givenNameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n if (item.key === 'surname' && surnameVerification.isRequired) {\n return (\n \n \n \n \n );\n }\n // eslint-disable-next-line react/jsx-key\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n {buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n })}\n {disclaimer}\n \n );\n};\n\nconst SignUpLoading: React.FC = ({ modal, modalBody, icon, message }) => {\n return (\n \n \n {icon}\n {message}\n \n \n );\n};\n\nconst SignUpView: React.FC = props => {\n const { signUp, viewState, loading, defaultAADConainer, aadConainer, heading, signUpLocalAccount } = props;\n\n return (\n \n {viewState.isShowLoading && }\n {viewState.isShowLoading && }\n \n {heading}\n {LocalAccount(signUpLocalAccount)}\n \n \n );\n};\n\nexport default SignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading } = config;\n const {\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserRemoveModalDescription}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { InputType } from '../business-organization-list';\n\nexport interface IBusinessForm {\n FormWrapper: INodeProps;\n message?: React.ReactNode;\n items: IBusinessFormItem[];\n buttons: React.ReactNode[];\n errorMessage: React.ReactNode[];\n}\n\nexport interface IBusinessFormItem {\n wrapper: INodeProps;\n key: string;\n label: React.ReactNode;\n errorMessage: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IBusinessFormInput {\n label: React.ReactNode;\n alert: React.ReactNode;\n input: React.ReactNode;\n}\n\nexport interface IUserFormItem {\n id: string;\n type: InputType;\n label: string;\n value: string;\n maxChars?: string;\n isRequired: boolean;\n pattern?: string;\n isDisabled?: boolean;\n customClass?: string;\n fieldReference?: React.RefObject;\n}\n\nexport interface IBusinessFormInputProps {\n id?: string;\n type: string;\n value?: string;\n pattern?: string;\n className: string;\n maxLength?: string;\n isRequired: boolean;\n isDisabled?: boolean;\n placeholder?: string;\n fieldReference?: React.RefObject;\n onChange?(event: React.ChangeEvent): void;\n}\n\nexport const FormInput: React.FC = ({\n id,\n type,\n value,\n pattern,\n className,\n maxLength,\n isRequired,\n isDisabled,\n onChange,\n fieldReference,\n placeholder\n}) => (\n \n);\n\nexport interface IBusinessFormLabel {\n id: string;\n forId: string;\n className: string;\n text: string;\n asteriskText: string;\n}\n\nexport const FormLabel: React.FC = ({ id, forId, className, text, asteriskText }) => (\n \n);\n\nexport interface IBusinessFormButton {\n id?: string;\n className: string;\n text: string;\n ariaLabel: string;\n disabled?: boolean;\n telemetryContent?: ITelemetryContent;\n onClick?(event: React.MouseEvent): void;\n}\n\nexport const FormButton: React.FC = ({ id, className, text, ariaLabel, telemetryContent, disabled, onClick }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, text);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n );\n};\n\nexport interface IBusinessFormErrorProps {\n id?: string;\n className: string;\n type?: string;\n message?: string;\n}\n\nexport const FormFieldError: React.FC = ({ id, className, type = 'page', message }) => {\n const errorClassName = `${className}__${type}-error`;\n\n return (\n \n );\n};\n\nconst GetMaxLength = (maxLength?: string): number | undefined => {\n if (maxLength) {\n const parsedMaxLength = Number.parseInt(maxLength, 10);\n if (!isNaN(parsedMaxLength)) {\n return parsedMaxLength;\n }\n }\n\n return undefined;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

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

{emptyCartText}

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

{props.resources.emptyCartText}

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

\n

{groupTitle}

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

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

\n ) : null}\n

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

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (slots && slots.socialShareItems.length === 0) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * To get form.\n * @param type - The type of form.\n * @param formProps - The form props.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\n/**\n * Business Organization List component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessOrganizationListComponent: React.FC> = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const buttonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n \n \n {props.resources.headingForEmptyUserOrganizationList}\n \n \n {props.resources.textForEmptyUserOrganizationList}\n \n {buttonList}\n \n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {buttonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationListComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IMediaGalleryThumbnailItemViewProps,\n IMediaGalleryThumbnailsViewProps,\n IMediaGalleryViewProps\n} from '@msdyn365-commerce-modules/media-gallery';\nimport { getFallbackImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, KeyCodes, Module, Node, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport React from 'react';\n\n/**\n * Render the thumbnail item images.\n * @param thumbnail - The carousel thumbnail line props.\n * @returns Return HTML having thumnailcontainer props with image.\n */\nconst renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\n\n return {Picture};\n};\n\n/**\n * Gets the thumbnail item to display media gallery images.\n * @param image - The media gallery images.\n * @param imageSettings - Image settings for the image gallery items.\n * @param imageId - Image id.\n * @param modifiedActiveIndex - Modified Index of the images when selection changes.\n * @param props - The Media gallery view props from business layer.\n * @returns Return thumbnail view props which will be used to render images.\n */\nconst GetThumbnailItemComponent = (\n image: IImageData,\n imageSettings: IImageSettings,\n imageId: number,\n modifiedActiveIndex: number,\n props: IMediaGalleryViewProps\n): IMediaGalleryThumbnailItemViewProps => {\n let fallbackImage: string | undefined = '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Site level config can be of any type.\n const emptyPlaceHolderImage = props.context.app.config?.placeholderImageName as string;\n if (props.data.product.result) {\n fallbackImage = getFallbackImageUrl(props.data.product.result.ItemId, props.context.request.apiSettings);\n }\n if (emptyPlaceHolderImage && fallbackImage) {\n fallbackImage = `${fallbackImage},${emptyPlaceHolderImage}`;\n }\n\n /**\n * OnClick method of media gallery item.\n */\n const onClick = () => {\n props.callbackToggle?.();\n props.callbackThumbnailClick?.(imageId);\n props.state.activeIndex = imageId;\n };\n\n const classes = classnames(\n 'ms-media-gallery__thumbnail-item',\n modifiedActiveIndex === imageId ? 'ms-media-gallery__thumbnail-item-active' : ''\n );\n\n /**\n * Keydown event of media gallery item.\n * @param event - React.KeyboardEvent.\n */\n const handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === KeyCodes.Enter) {\n event.preventDefault();\n onClick();\n }\n };\n const defaultIndex = 0;\n return {\n ThumbnailItemContainerProps: {\n tag: 'li' as NodeTag,\n className: classes,\n role: 'presentation',\n key: imageId\n },\n Picture: (\n \n \n \n \n \n \n \n \n )\n };\n};\n\n/**\n * Gets the empty thumbnail item to display media gallery images.\n * @param imageSettings - Image settings for the image gallery items.\n * @param props - The Media gallery view props from business layer.\n * @returns Return thumbnail view props which will be used to render empty images.\n */\nconst GetEmptyThumbnailItemComponent = (\n imageSettings: IImageSettings,\n props: IMediaGalleryViewProps\n): IMediaGalleryThumbnailItemViewProps => {\n let fallbackImage: string | undefined = '';\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access -- Site level config can be of any type.\n const emptyPlaceHolderImage = props.context.app.config?.placeholderImageName as string;\n if (props.data.product.result) {\n fallbackImage = getFallbackImageUrl(props.data.product.result.ItemId, props.context.request.apiSettings);\n }\n if (emptyPlaceHolderImage && fallbackImage) {\n fallbackImage = `${fallbackImage},${emptyPlaceHolderImage}`;\n }\n return {\n ThumbnailItemContainerProps: {\n tag: 'li' as NodeTag,\n className: 'ms-media-gallery__thumbnail-item',\n role: 'tab',\n tabIndex: 0,\n key: 0,\n 'aria-label': '',\n 'aria-selected': true\n },\n Picture: (\n \n )\n };\n};\n\n/**\n * Update media gallery items method.\n * @param items - The media gallery thumbnail item view props.\n * @returns The IImageData array.\n */\nconst getMediaGalleryItems = (items?: IMediaGalleryThumbnailItemViewProps[]): IImageData[] | undefined => {\n return items?.map(item => {\n return {\n altText: item.Picture.props.altText,\n src: item.Picture.props.src\n };\n });\n};\n\nconst defaultThumbnailImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 },\n xl: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 }\n },\n lazyload: true,\n cropFocalRegion: true\n};\n\n/**\n * Render the Media gallery thumbnails to represent images in grid view.\n * @param thumbnails - The thumbnail view props.\n * @param props - The media gallery view props.\n * @returns - The single slide carousel component to render as media gallery image.\n */\nconst renderThumbnails = (thumbnails: IMediaGalleryThumbnailsViewProps, props: IMediaGalleryViewProps): JSX.Element => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps } = thumbnails;\n const { state, Thumbnails } = props;\n const mediaGalleryItems = getMediaGalleryItems(Thumbnails.items);\n\n const items: IMediaGalleryThumbnailItemViewProps[] | undefined =\n // eslint-disable-next-line multiline-ternary -- need multiline for easy code reading\n state.lastUpdate && mediaGalleryItems && mediaGalleryItems[0].src === 'empty'\n ? [GetEmptyThumbnailItemComponent(defaultThumbnailImageSettings, props)]\n : // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery\n mediaGalleryItems?.map((item: IImageData, id: number) =>\n GetThumbnailItemComponent(item, defaultThumbnailImageSettings, id, state.activeIndex, props)\n );\n\n return (\n \n {items?.map(renderThumbnailItem)}\n \n );\n};\n\n/**\n * Render the Media gallery items using viewprops.\n * @param props - The media gallery view props.\n * @returns The media gallery module wrapping up images node.\n */\nconst mediaGalleryView: React.FC = props => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\n return (\n \n \n {Modal}\n {renderThumbnails(Thumbnails, props)}\n \n );\n};\n\nexport default mediaGalleryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n"],"names":["SignUpButton","_ref","id","className","text","ariaLabel","telemetryContent","disabled","link","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","Button","Object","assign","role","href","SignUpError","type","message","errorClassName","classnames","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpInput","value","pattern","isRequired","onChange","fieldReference","InputType","TextArea","name","undefined","ref","SignUpLabel","forId","htmlFor","InputID","renderInputSection","inputs","needToReset","onInputChange","showErrors","addressForm","updateAddress","map","element","index","label","maxChars","customClass","baseSignUpItem","wrapper","errorMessage","Address","isAddressInput","input","updateForm","hasError","resetAddress","splice","BusinessSignUp","constructor","props","_this","super","this","BusinessSignUpDefaultInputs","FirstName","Text","resources","firstNameLabel","LastName","lastNameLabel","Email","emailAddressLabel","EmailRegex","defaultRegex","source","CompanyName","companyLabel","Department","departmentLabel","JobTitle","jobTitleLabel","Size","companySizeLabel","companyAddressLabel","Comment","commentLabel","formChildReference","moduleClassName","needsToReset","handleHeadingChange","event","config","heading","target","_onInputChange","newForm","state","formItems","forEach","item","setState","isReady","_isFormReady","hasSubmitErrors","_onAddressChange","errors","currentAddress","addressItem","find","address","addressHasErrors","showAddressErrors","currentInput","match","_onSubmit","preventDefault","context","firstName","_getItem","lastName","companyName","companyEmail","companyAddress","jobTitle","department","companySize","comments","newPartner","CompanySize","Comments","createProspectAsync","callerContext","actionContext","catch","_onCancel","cleanForm","isAddress","arguments","length","_addedReference","getTelemetryObject","request","telemetryPageName","friendlyName","telemetry","componentDidMount","_this$formChildRefere","current","focus","shouldComponentUpdate","nextProps","nextState","data","render","viewProps","_objectSpread","businessSignUp","moduleProps","ContainerWrapper","editProps","onEdit","requestContext","businessSignUpForm","_renderForm","renderView","slots","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","partialAddressErrorMessage","addressSlot","successPageURL","confirmationLink","linkUrl","destinationUrl","getUrlSync","form","FormWrapper","items","buttons","key","disclaimer","RichTextComponent","newFormFields","BusinessSignUpItem","Node","Module","error","button","BusinessFormItemComponent","renderModal","isModalOpen","headingSection","bodySection","footerSection","toggleModal","Modal","wrapClassName","autoFocus","fade","applicationNode","isOpen","toggle","ModalHeader","ModalBody","ModalFooter","BusinessUserFormComponent","modalClassName","modalHeading","modalDescription","modalBody","toString","modalFooter","BusinessUserDetailsComponent","selectedUser","userFullName","tag","keys","OrganizationUserList","moduleContainer","noUsersText","addUserButton","organizationListTable","formType","requestAccountStatementButton","requestStatementModal","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","formProps","renderAdditionalContent","additionalContent","_additionalContent$ad","additionalContentNode","additionalContentItems","additionalContentItemContainer","additionalContentItemLinks","links","contentBlockContainer","imageContainer","detailsContainer","title","image","contentBlockAnchorTag","imageLink","imageAriaLabel","imageClass","src","FooterItemView","FooterItem","_renderElement","_createImageMarkup","ariaHiddenAttr","Msdyn365","gridSettings","imageSettings","viewports","xs","q","w","h","lg","lazyload","loadFailureBehavior","shouldSkipToMainImage","HeadingContainer","Link","linkText","EditableLink","logoSvgUrl","AccordionItem","accordionItemTitle","_onToggle","bind","accordionExpandedStateResult","accordionExpandedState","result","expanded","isAllExpanded","isExpandedOnInitialLoad","AccordionItemContainer","AccordionItemContent","drawer","ControlledDrawer","toggleButtonText","collapseProps","onToggle","onTextChange","accordionSlots","interactionStyle","accordionState","update","createAccordionStateInput","__decorate","observer","_renderAccordionItemContent","accordionItemContent","Accordion","expandAllButtonRef","collapseAllButtonRef","_onExpandAll","_onCollapseAll","isDisabled","headingComponent","accordionViewProps","AccordionContainer","HeaderSection","HeadingWrapper","accordianButtonsContainer","accordionButtons","_renderAccordionButton","accordionItemContainer","accordionItems","_getAccordionItem","contentAction","etext","TelemetryConstant","ExpandAll","attributeExpandAll","CollapseAll","attributeCollapseAll","showToggleAll","expandAllText","toggleAllSeparator","collapseAllText","setTimeout","_this$collapseAllButt","_this$expandAllButton","AadGeneric","$i2e","$element","window","insertServiceContent","getElementContent","initialize","aadGeneric","aadConainer","aadAPIConainer","AccountAddressTile","handleLinkTextChange","linkIndex","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","addressCount","accountAddressTileDescription","description","format","LinksComponent","DescriptionComponent","_mapEditableLinks","linkdata","editableLinks","editableLink","openInNewTab","additionalProperties","push","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","cultureFormatter","formatCurrency","currencyCode","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","toFixed","AccountLoyaltyTile","signUpLinkText","viewLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","loyaltyCard","url","CardNumber","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","_this$props$data$feat","_this$props$data$cust","RetailB2BEcommerceFeatureState","featureState","Name","params","isEditor","IsEnabled","customerInformation","IsB2b","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountProfileEdit","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","email","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","componentDidUpdate","viewState","isShowLoading","accountProfileEdit","loading","modal","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","accountProfileEditLocalAccount","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","emailAddressLabelText","labelText","AccountProfileEditLabelComponent","AccountProfileEditInputComponent","observable","AccountProfileEditItem","AccountProfileEditLoading","_ref3","_ref2","LocalAccount","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","split","att","attributeDefinition","attribute","IsHidden","toLocaleLowerCase","RecordId","_renderAttribute","edit","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","feature","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","attributesContainerRef","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","innerRef","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","replace","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","selected","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","StringExtensions","isNullOrWhitespace","attributePayloadData","isMandatory","MsDyn365","isBrowser","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","customer","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","includes","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","async","updateCustomerAttributesInput","AccountNumber","apiSettings","updateCustomerAttributes","initialCustomerAttributes","exception","debug","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","reaction","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","onClickHandler","accountPreference","buttonWrapper","buttonYesText","buttonNoText","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","get","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","computed","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","AccountWishlistTile","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","user","isAuthenticated","clicked","IssueLoyaltyInput","issueLoyalty","then","location","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","hasLoyaltyAccount","CardTenderTypeValue","status","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","users","accountOrganizationUsersTileDescription","IsB2bAdmin","successClassName","PasswordResetVerification","getValue","v1Value","v2Value","templateVersion","passwordResetVerification","PasswordResetVerificationLoadingIconComponent","PasswordResetVerificationLoadingMessageComponent","passwordResetVerificationLocalAccount","verificationControlWrapper","verificationCodeLabelText","successMessage","PasswordResetVerificationSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","PasswordResetVerificationErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","verificationButtonsWrapper","verificationButtons","PasswordResetVerificationButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","continueButtonAriaLabel","continueButtonText","cancelButtonAriaLabel","cssClassName","PasswordResetVerificationLabelComponent","PasswordResetVerificationInputComponent","PasswordResetVerificationItem","PasswordResetVerificationLoading","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","handleParagraphChange","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","invalidPasswordError","errorMessages","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","emailVerification","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","surnameVerification","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","_ref4","SignUpLoading","_ref6","_ref5","FormType","asteriskAfterLabel","FormLabel","asteriskText","FormFieldError","FormInput","placeholder","BusinessOrganizationList","_this$props$config","BusinessFormDefaultInputs","businessUserFirstNameLabelText","businessUserLastNameLabelText","businessUserEmailAddressLabelText","SpendingLimit","businessUserSpendingLimitLabelText","delayFocus","userFormEditReference","userFormDeleteReference","_handleAddUserButtonClicked","newUser","B2BUserId","Random","Guid","generateGuid","isFormActive","Add","referenceBack","addUserButtonReference","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","reload","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","parseFloat","_handleEditIcon","userData","possibleName","cell","fullName","lastSpaceIndex","lastIndexOf","substring","possibleCell","dataCell","_handleDeleteIcon","displayedUserData","TableDataType","Price","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","prev","refresh","formItem","_formatPrice","price","_getCurrentUrl","reqContext","URL","requestUrl","_getViewport","device","Type","innerWidth","sm","md","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_requestStatement","currentUser","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","BusinessPartnerUsersDataActions","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","_onSelectRow","records","selectedRow","rowProps","isSelected","row","_toggleModal","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","businessUserSelectedUserDisplayName","addEventListener","componentWillUnmount","removeEventListener","_this$submitButtonRef","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","fullOrganizationLabel","requestStatementButtonLabel","statementRequestModalHeaderLabel","cancelLabel","fromDateLabel","toDateLabel","submitRequestLabel","sendToEmailLabel","selectedUserLabel","hasUsers","AddUser","addUserAttributes","errorProps","Heading","headingTag","modalState","Table","_createTableProps","_renderUserForm","_renderUserDetails","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","RequestStatementModal","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","modalHeaderLabel","onSubmitRequest","selectedUserName","modalAriaLabel","maxDateString","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserActionButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","ArrayExtensions","hasElements","isMobile","sortable","rows","editLinkText","deleteLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","actions","onDelete","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","ButtonList","_getForm","CatalogPicker","handleTextChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","firstOrDefault","Images","tabIndex","Image","generateImageUrl","Uri","galleryImageSettings","altText","AltText","CatalogPickerViewFunctionComponent","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","Wrapper","header","_renderOrderSummarylines","orderSummaryLines","OrderSummaryItems","promoCode","subtotal","shipping","otherCharge","tax","totalDiscounts","orderTotal","_renderInvoiceSummarylines","invoiceSummaryLines","invoices","giftCard","loyalty","_renderCartLinesGroup","cartLinesGroup","cartlines","_props$context$action2","_props$context$action3","cartlineId","_renderCartLinesGroupHeader","_countItems","channel","EmailDeliveryModeCode","multiplePickUpEnabled","count","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","groupTitle","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","_props$context$action","_props$cart","renderModuleAttributes","promotionOptions","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","cart","hasInvoiceLine","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","footerItemClassName","_createHeading","_createText","_createLinkText","_createLink","ItemContainer","onTelemetryClick","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","viewport","_document","_document2","body","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","cookies","isConsentGiven","cookieConfig","maxAge","defaultImageSettings","xl","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","siteRedirectUrl","siteName","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","SocialShare","socialShareItems","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","SocialShareView","SocialShareElement","renderThumbnailItem","thumbnail","ThumbnailItemContainerProps","Picture","GetEmptyThumbnailItemComponent","_props$context$app$co2","_props$config$thumbna2","fallbackImage","emptyPlaceHolderImage","placeholderImageName","product","getFallbackImageUrl","ItemId","thumbnailImageSettings","imageFallbackOptimize","skipImageValidation","fallBackSrc","defaultThumbnailImageSettings","cropFocalRegion","renderThumbnails","thumbnails","ThumbnailsContainerProps","SingleSlideCarouselComponentProps","Thumbnails","mediaGalleryItems","getMediaGalleryItems","lastUpdate","GetThumbnailItemComponent","imageId","modifiedActiveIndex","_props$context$app$co","_props$config$thumbna","_props$callbackToggle","_props$callbackThumbn","callbackToggle","call","callbackThumbnailClick","activeIndex","handleKeyDown","Enter","onKeyDown","shouldUseOptimizedImage","bypassHideOnFailure","fullScreenTitleText","CarouselProps","MediaGallery","buildReviewCard","isUserReview","cardProps","headerProps","rating","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","wasReviewHelpfulText","like","dislike","renderProductDescription","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","renderProductImage","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","sortByDropdown","userReview","isFilterApplied","review","reviewModal","modalHeader","inputRow","selectRatingLabel","reviewTitleLabel","titleInput","reviewTextLabel","textInput","privacyPolicyUrl","submitButton","cancelButton","createReviewModal","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton"],"sourceRoot":""}