{"version":3,"file":"static/js/23.5aac7358ded846eb17b9.chunk.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.tsx?4353","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/account-loyalty.tsx?3672","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/account-generic-tile.view.tsx?4b58","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/account-loyalty.view.tsx?4d8b","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://Msdyn365.Commerce.Online/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://Msdyn365.Commerce.Online/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","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/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/order-history-with-search-and-filters/components/order-history-with-search-and-filters-header.component.tsx?3609","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-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-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-loyalty-tile/account-loyalty-tile.view.tsx?3547","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/account-profile.view.tsx?b964","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/order-lookup/utilities/order-lookup-utility.tsx?c60b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-additional-fields.tsx?9951","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/components/order-lookup-fields.tsx?297b","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.tsx?72d3","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.view.tsx?7490","webpack://Msdyn365.Commerce.Online/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","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/catalog-picker/catalog-picker.tsx?02aa","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/components/additional-content.tsx?d5f9","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/components/links.tsx?abbf","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.tsx?3084","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/components/product-specification-table-stucture.tsx?c1c4","webpack://Msdyn365.Commerce.Online/./src/modules/product-specification/product-specification.tsx?6583","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.tsx?899b","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list/tile-list.tsx?78cb","webpack://Msdyn365.Commerce.Online/./src/modules/coc-c-business-sign-up/components/sign-up-button.tsx?e7a5","webpack://Msdyn365.Commerce.Online/./src/modules/coc-c-business-sign-up/components/sign-up-error.tsx?854c","webpack://Msdyn365.Commerce.Online/./src/modules/coc-c-business-sign-up/components/sign-up-input.tsx?e3c7","webpack://Msdyn365.Commerce.Online/./src/modules/coc-c-business-sign-up/components/sign-up-label.tsx?367e","webpack://Msdyn365.Commerce.Online/./src/modules/coc-c-business-sign-up/components/sign-up-radio-button.tsx?eb54","webpack://Msdyn365.Commerce.Online/./src/modules/coc-c-business-sign-up/coc-c-business-sign-up.tsx?2a6e","webpack://Msdyn365.Commerce.Online/./src/modules/coc-c-business-sign-up/coc-c-business-sign-up.view.tsx?f997","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/business-organization-list.view.tsx?60a2","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/content-block.view.tsx?5a73","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/order-history.view.tsx?e915","webpack://Msdyn365.Commerce.Online/./src/themes/b2b/views/ratings-histogram.view.tsx?b6f7","webpack://Msdyn365.Commerce.Online/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://Msdyn365.Commerce.Online/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://Msdyn365.Commerce.Online/./src/modules/content-block/content-block.view.tsx?1773","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://Msdyn365.Commerce.Online/./src/modules/fabrikam/views/reviews-list.view.tsx?cd2e","webpack://Msdyn365.Commerce.Online/./src/modules/order-lookup/order-lookup.view.tsx?b8e5","webpack://Msdyn365.Commerce.Online/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://Msdyn365.Commerce.Online/./src/modules/tile-list/tile-list.view.tsx?1b00","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?0efc","webpack://Msdyn365.Commerce.Online/./src/modules/adventureworks/views/order-history.view.tsx?692d","webpack://Msdyn365.Commerce.Online/./src/modules/account-generic-tile/components/account-generic-tile-links.tsx?2bc7","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty/components/account-loyalty-small-components.tsx?c12b","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/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/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/account-profile/components/account-profile-text.tsx?8115","webpack://Msdyn365.Commerce.Online/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://Msdyn365.Commerce.Online/./src/modules/account-profile/components/account-profile-description.tsx?770a","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/business-organization-list/components/small-components.tsx?c4b5"],"sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IRequestContext, getUrlSync } from '@msdyn365-commerce/core';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n BusinessPartnerUser,\n BusinessPartnerUsersDataActions\n} from '@msdyn365-commerce/retail-proxy';\nimport { AdminRequestStatementButton, RequestStatementModal } from '@msdyn365-commerce-modules/account-management';\nimport {\n addOrganizationUser,\n AddOrganizationUserInput,\n ArrayExtensions,\n deleteOrganizationUser,\n DeleteOrganizationUserInput,\n editOrganizationUser,\n EditOrganizationUserInput,\n EmailRegex,\n Random,\n StringExtensions\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n Heading,\n IDataTableProps,\n IHeadingsProperty,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITableItemProps,\n ITableRowProps,\n ITelemetryContent,\n Table,\n TableDataType,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListData } from './business-organization-list.data';\nimport { IBusinessOrganizationListProps, IBusinessOrganizationListResources } from './business-organization-list.props.autogenerated';\nimport { FormButton, FormFieldError, FormInput, FormLabel, IBusinessFormItem, IUserFormItem } from './components';\n\nexport interface IBusinessOrganizationListViewProps extends IBusinessOrganizationListProps {\n OrganizationUserList: IModuleProps;\n moduleContainer: INodeProps;\n heading: React.ReactNode;\n noUsersText?: string;\n addUserButton?: React.ReactNode;\n search?: React.ReactNode;\n organizationListTable: React.ReactNode;\n form?: IFormViewProps;\n formItems?: IUserFormItem[];\n formType: FormType;\n deleteUserForm?: React.ReactNode;\n viewUserDetails?: React.ReactNode;\n modalHeading?: React.ReactNode;\n modalState?: boolean;\n requestAccountStatementButton: React.ReactNode;\n requestStatementModal: React.ReactNode;\n toggleModal?(): void;\n}\n\nexport interface IBusinessOrganizationListState {\n isReady: boolean;\n formItems: IUserFormItem[];\n isFormActive: boolean;\n formType: FormType;\n selectedUserData?: BusinessPartnerUser;\n referenceBack?: HTMLButtonElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n displayedUserData?: any;\n refresh: boolean;\n isModalOpen: boolean;\n hasFormError: boolean;\n hasActionError: boolean;\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n businessUserActionRetailErrorMsg: string;\n}\n\ntype GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\nexport enum FormType {\n None = 'NONE',\n Edit = 'EDIT',\n Remove = 'REMOVE',\n View = 'VIEW',\n Add = 'ADD'\n}\n\nexport enum InputType {\n Text = 'text',\n Email = 'email'\n}\n\nexport enum InputID {\n FirstName = 'FirstName',\n LastName = 'LastName',\n B2BUserId = 'B2BUserId',\n Email = 'Email',\n SpendingLimit = 'SpendingLimit',\n Status = 'Status',\n FullName = 'Name'\n}\n\nexport interface IFormViewProps {\n modalClassName: string;\n FormWrapper: INodeProps;\n modalHeading?: string;\n modalDescription?: React.ReactNode;\n inputs?: IBusinessFormItem[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n selectedUser?: any;\n buttons?: React.ReactNode[];\n errorMessage?: React.ReactNode[];\n resources: IBusinessOrganizationListResources;\n toggle?(): void;\n}\n\nexport const renderInputSection = (\n inputs: IUserFormItem[],\n className: string,\n asteriskAfterLabel: string,\n onInputChange: (event: React.ChangeEvent) => void\n): IBusinessFormItem[] => {\n return inputs.map(element => {\n const { customClass, id, type, label, maxChars, isRequired, pattern, value, isDisabled, fieldReference } = element;\n return {\n wrapper: {\n className: classnames(className, id, customClass)\n },\n key: id,\n label: ,\n errorMessage: ,\n input: (\n \n )\n };\n });\n};\n\ninterface IUserTableItemProps extends ITableItemProps {\n user: BusinessPartnerUser;\n}\n\n/**\n *\n * BusinessOrganizationList component.\n * @extends {React.PureComponent>}\n */\n@observer\nclass BusinessOrganizationList extends React.Component<\n IBusinessOrganizationListProps,\n IBusinessOrganizationListState\n> {\n public BusinessFormDefaultInputs: IUserFormItem[] = [\n {\n id: InputID.FirstName,\n type: InputType.Text,\n label: this.props.resources.businessUserFirstNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.LastName,\n type: InputType.Text,\n label: this.props.resources.businessUserLastNameLabelText,\n value: '',\n isRequired: true,\n customClass: 'width-50'\n },\n {\n id: InputID.Email,\n type: InputType.Email,\n label: this.props.resources.businessUserEmailAddressLabelText,\n value: '',\n isRequired: true,\n pattern: EmailRegex.defaultRegex.source,\n customClass: 'width-100'\n },\n {\n id: InputID.SpendingLimit,\n type: InputType.Text,\n label: this.props.resources.businessUserSpendingLimitLabelText,\n value: '',\n isRequired: false,\n customClass: 'width-50',\n maxChars: this.props.config?.maxLength\n }\n ];\n\n @observable\n private _viewport: GridSize;\n\n private readonly delayFocus: number = 110;\n\n private formChildReference: React.RefObject[] = [];\n\n private userFormEditReference: React.RefObject[] = [];\n\n private userFormDeleteReference: React.RefObject[] = [];\n\n private readonly submitButtonReference: React.RefObject;\n\n private readonly addUserButtonReference: React.RefObject;\n\n private readonly statementRequestButtonReference: React.RefObject;\n\n private readonly moduleClassName: string = 'ms-business-organization-list';\n\n private readonly mobileExcludedColumns: string[];\n\n @computed get isMobile(): boolean {\n return this._viewport === 'xs' || this._viewport === 'sm';\n }\n\n @computed get canSubmitStatementRequest(): boolean {\n return (\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestFromDateString) &&\n !StringExtensions.isNullOrWhitespace(this.state.statementRequestToDateString)\n );\n }\n\n @computed get selectedUserName(): string {\n const { businessUserSelectedUserDisplayName } = this.props.resources;\n return this.state.selectedUserData\n ? businessUserSelectedUserDisplayName\n .replace('{firstName}', this.state.selectedUserData.FirstName || '')\n .replace('{lastName}', this.state.selectedUserData.LastName || '')\n : '';\n }\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n constructor(props: IBusinessOrganizationListProps) {\n super(props);\n this._toggleModal = this._toggleModal.bind(this);\n this._onInputChange = this._onInputChange.bind(this);\n this._handleRemoveUserButton = this._handleRemoveUserButton.bind(this);\n\n this.mobileExcludedColumns = [InputID.Email, InputID.Status, InputID.SpendingLimit];\n this._viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this._updateViewport = this._updateViewport.bind(this);\n this.submitButtonReference = React.createRef();\n this.addUserButtonReference = React.createRef();\n this.statementRequestButtonReference = React.createRef();\n this.state = {\n isReady: false,\n formItems: this.addedReference(),\n isFormActive: false,\n formType: FormType.None,\n refresh: true,\n isModalOpen: false,\n hasFormError: false,\n hasActionError: false,\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0],\n businessUserActionRetailErrorMsg: ''\n };\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public addedReference(): IUserFormItem[] {\n const newFormFields = this.BusinessFormDefaultInputs;\n return newFormFields.map((input, index) => {\n this.formChildReference[Number(index)] = React.createRef();\n input.fieldReference = this.formChildReference[Number(index)];\n return input;\n });\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser && window.addEventListener) {\n window.addEventListener('resize', this._updateViewport);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser && window.removeEventListener) {\n window.removeEventListener('resize', this._updateViewport);\n }\n }\n\n public shouldComponentUpdate(\n nextProps: IBusinessOrganizationListProps,\n nextState: IBusinessOrganizationListState\n ): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n\n if (!this.state.isModalOpen && this.state.isModalOpen !== nextState.isModalOpen) {\n setTimeout(() => {\n this.formChildReference[0].current?.focus();\n this.submitButtonReference.current?.focus();\n }, this.delayFocus);\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config,\n resources,\n data: { users }\n } = this.props;\n const { className, heading, showBecomeSellerLink } = config;\n const {\n businessUserActionButtonText,\n businessUserAddUserButtonText,\n businessUserLoadingMessage,\n businessUserEmptyListMessage,\n businessUserErrorGettingUsersMessage,\n userAccountStatementLabel,\n fullOrganizationLabel,\n requestStatementButtonLabel,\n promoteToSellerActionLabel,\n requestAccountStatementActionLabel,\n requestOrganizationStatementActionLabel,\n statementRequestModalHeaderLabel,\n cancelLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n sendToEmailLabel,\n selectedUserLabel\n } = resources;\n const {\n formItems,\n isFormActive,\n formType,\n isModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n isStatementRequestModalOpen,\n statementRequestMaxDateString\n } = this.state;\n\n const hasUsers = users && users.result && users.result.length > 0;\n this.payLoad.contentAction.etext = TelemetryConstant.AddUser;\n const addUserAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n const customer = this.props.data.customerInformation?.result;\n\n if (!hasUsers) {\n let errorMessage = '';\n if (users.status === 'LOADING') {\n errorMessage = businessUserLoadingMessage;\n } else if (users.status === 'FAILED') {\n errorMessage = businessUserErrorGettingUsersMessage;\n } else if (users.result && users.result.length === 0) {\n errorMessage = businessUserEmptyListMessage;\n }\n\n const errorProps = {\n ...this.props,\n className,\n OrganizationUserList: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n moduleContainer: {\n className: `${this.moduleClassName}__container`\n },\n heading: heading && ,\n addUserButton: (\n \n {businessUserAddUserButtonText}\n \n ),\n noUsersText:

{errorMessage}

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

{businessUserAllFieldsRequiredMessage}

\n ),\n inputs: renderInputSection(formItems, `${formClassName}-item`, asteriskAfterLabel, this._onInputChange),\n buttons: [\n ,\n \n ],\n errorMessage: [\n hasFormError && (\n \n ),\n hasActionError && (\n \n )\n ],\n resources\n };\n }\n\n // _onInputChange: updates the fomrItems state on every input change\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\n const newForm = this.state.formItems;\n\n newForm.forEach(item => {\n if (item.id === event.target.id) {\n item.value = event.target.value;\n }\n });\n\n // Update state object with latest values and check if form is ready\n // TODO: remove !refresh\n this.setState(prev => ({\n refresh: !prev.refresh,\n isReady: this._isFormReady(),\n formItems: newForm,\n hasFormError: false,\n hasActionError: false\n }));\n };\n\n // _isFormReady: checks whether the current values in the input fields are valid for submission, this will also disable/enable the submit button.\n private readonly _isFormReady = (): boolean => {\n const { formItems } = this.state;\n\n for (const formItem of formItems) {\n // Will return TRUE if:\n // - input field is required and EMPTY\n // OR\n // - pattern provided and value does not match pattern\n // OR\n // - if spendingLimit input --> make sure value can be parsed into an NUMBER\n if (formItem.isRequired && formItem.value.length === 0) {\n return false;\n } else if (formItem.pattern !== undefined && formItem.value.match(formItem.pattern) === null) {\n return false;\n } else if (formItem.id === InputID.SpendingLimit && formItem.value !== '' && isNaN(Number.parseFloat(formItem.value))) {\n this.setState({\n hasFormError: true\n });\n return false;\n }\n }\n\n return true;\n };\n\n private readonly _formatPrice = (price: number): string => {\n return this.props.context.cultureFormatter ? this.props.context.cultureFormatter.formatCurrency(price) : price.toString();\n };\n\n private readonly _getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n };\n\n private _updateViewport(): void {\n this._viewport = this._getViewport();\n }\n\n private readonly _getViewport = (): GridSize => {\n const { context } = this.props;\n\n // Always render in mobile viewport on a mobile device\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (MsDyn365.isBrowser && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n\n return 'xs';\n };\n\n private readonly _toggleStatementRequestDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _showRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestModalOpen: true\n });\n };\n\n private readonly _promoteToSeller = () => {\n const promoteToSellerUrl = getUrlSync('businessPartnerPromotion', this.props.context.actionContext);\n if (promoteToSellerUrl && MsDyn365.isBrowser) {\n window.location.href = promoteToSellerUrl;\n }\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const businessPartnerUsers = this.props.data.users.result!;\n\n const currentUser = businessPartnerUsers.find(element => element.Email === customer.Email);\n const B2BUserId = this._getB2BUserId(currentUser);\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType?.Email || 1\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this._closeStatementRequestModal();\n };\n\n private readonly _getB2BUserId = (currentUser: BusinessPartnerUser | undefined) => {\n if (this.state.statementRequestFullOrg || !this.state.selectedUserData) {\n return currentUser ? currentUser.B2BUserId : '';\n }\n return this.state.selectedUserData.B2BUserId;\n };\n\n private readonly _closeStatementRequestModal = () => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.statementRequestButtonReference.current?.focus();\n };\n\n private readonly _onSelectRow = (records: ITableRowProps[]) => {\n const selectedRow = records.find(rowProps => rowProps.isSelected);\n\n this.setState({\n selectedUserData: selectedRow ? (selectedRow.row[0] as IUserTableItemProps).user : undefined\n });\n };\n}\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountGenericTileConfig, IAccountGenericTileProps } from './account-generic-tile.props.autogenerated';\nimport LinksComponent from './components/account-generic-tile-links';\n\nexport interface IAccountGenericTileViewProps extends IAccountGenericTileProps {\n AccountGenericTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n}\n\n/**\n *\n * AccountGeneric component.\n * @extends {React.PureComponent>}\n */\nclass AccountGenericTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountGenericTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config } = this.props;\n const { className, heading, links } = config;\n\n const viewProps = {\n ...this.props,\n className,\n AccountGenericTile: {\n moduleProps: this.props,\n className: classnames('ms-account-generic-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountGenericTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { LoyaltyCard, LoyaltyRewardPoint, LoyaltyRewardPointActivity } from '@msdyn365-commerce/retail-proxy';\nimport {\n getLoyaltyRewardPointActivityTimelineAsync,\n getLoyaltyRewardPointsExpiringSoonAsync\n} from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport {\n Button,\n format,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyData } from './account-loyalty.data';\nimport { IAccountLoyaltyProps } from './account-loyalty.props.autogenerated';\nimport { AccountLoyaltyLabel, AccountLoyaltyModalLabel } from './components';\n\nexport interface IAccountLoyaltyViewProps extends IAccountLoyaltyProps<{}> {\n AccountLoyalty: IModuleProps;\n className: string;\n totalPoints: number;\n heading?: React.ReactNode;\n Info: INodeProps;\n infoLabel: React.ReactNode;\n cardNumber: React.ReactNode;\n joinDate: React.ReactNode;\n Points: INodeProps;\n pointsLabel: React.ReactNode;\n points: React.ReactNode;\n Breakdown: INodeProps;\n RewardPoints: INodeProps;\n PointsBreakdown: INodeProps;\n rewardPoints?: IAccountLoyaltyRewardPointProps[];\n Button: INodeProps;\n homeButton: React.ReactNode;\n pointsModal: IAccountLoyaltyModalProps;\n}\n\nexport interface IAccountLoyaltyState {\n isModalOpen: boolean;\n currentModalData?: LoyaltyRewardPoint;\n isModalExpiring: boolean;\n modalID: string;\n currentFocus?: React.RefObject;\n pointsActivity: LoyaltyRewardPointActivity[] | undefined;\n}\n\nexport interface IAccountLoyaltyRewardPointProps {\n label: React.ReactNode;\n availableModalLabel: React.ReactNode;\n availableModalTrigger: React.ReactNode;\n expiringModalLabel: React.ReactNode;\n expiringModalTrigger: React.ReactNode;\n}\n\nexport type horizontalModalPosition = 'left' | 'center' | 'right';\nexport type verticalModalPosition = 'top' | 'center' | 'bottom';\n\nexport interface IAccountLoyaltyModalProps {\n isOpen: boolean;\n horizontalPosition?: horizontalModalPosition;\n verticalPosition?: verticalModalPosition;\n modalClassName?: string;\n modalHeaderClassName?: string;\n modalHeader?: string;\n modalBodyClassName?: string;\n ModalBodyTop: INodeProps;\n pointsDescription?: React.ReactNode;\n totalPoints?: React.ReactNode;\n ModalBodyHeaders: INodeProps;\n date?: React.ReactNode;\n balanceLabel?: React.ReactNode;\n rewardPointsActivity?: IAccountLoyaltyActivityProps[];\n returnFocusRef?: React.RefObject;\n onClose(): void;\n onOpened?(): void;\n}\n\nexport interface IAccountLoyaltyActivityProps {\n Activity: INodeProps;\n activityType: React.ReactNode;\n activityDate: React.ReactNode;\n activityPoints: React.ReactNode;\n}\n\nexport interface IProps extends IAccountLoyaltyProps {}\n\n/**\n *\n * AccountLoyalty component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountLoyalty extends React.PureComponent {\n private readonly _buttonAvailableRef: React.RefObject;\n\n private readonly _buttonExpireRef: React.RefObject;\n\n private readonly telemetryContent?: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private readonly decimalPrecision = 2;\n\n constructor(props: IAccountLoyaltyProps) {\n super(props);\n this._buttonAvailableRef = React.createRef();\n this._buttonExpireRef = React.createRef();\n this.state = {\n isModalOpen: false,\n currentModalData: undefined,\n isModalExpiring: false,\n modalID: '',\n pointsActivity: undefined\n };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.BackToShopping);\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n const { loyaltyCard } = this.props.data;\n const { loyaltyCardLabel, totalAvailablePointsLabel, backToShoppingText } = this.props.resources;\n const { actionContext } = this.props.context;\n const { isModalOpen } = this.state;\n const backToShopAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n if (!loyaltyCard || !loyaltyCard.result || !loyaltyCard.result.CardNumber) {\n this.props.context.telemetry.error('Loyalty card content is empty, module wont render');\n return null;\n }\n\n const loyaltyCardData = loyaltyCard.result;\n const rewardPoints = loyaltyCard && loyaltyCardData.RewardPoints;\n const homeLink = Msdyn365.getUrlSync('home', actionContext) ?? '';\n\n const viewProps = {\n ...this.props,\n AccountLoyalty: {\n moduleProps: this.props,\n className: classnames('ms-account-loyalty', className),\n modalTransition: {\n /**\n * On Entered in Modal function.\n * @param node - The current node element.\n * @param isAppearing - The Boolean value.\n */\n onEntered: (node: HTMLElement, isAppearing: boolean) => {\n const childNode = node.firstChild as HTMLElement;\n if (isAppearing) {\n childNode.focus();\n }\n }\n }\n },\n totalPoints: rewardPoints && this._getTotalPoints(),\n className: classnames('msc-account-loyalty', className),\n rewardPoints:\n loyaltyCardData.RewardPoints && loyaltyCardData.RewardPoints.length > 0 && this._renderRewardPoints(loyaltyCardData),\n pointsModal: (isModalOpen && this._renderModal()) || {\n isOpen: false,\n returnFocusRef: this.state.currentFocus,\n onOpened: this._onOpenModal\n },\n Info: { className: 'ms-account-loyalty__info' },\n Points: { className: 'ms-account-loyalty__points' },\n Breakdown: { className: 'ms-account-loyalty__breakdown' },\n RewardPoints: { className: 'ms-account-loyalty__reward-points' },\n PointsBreakdown: { className: 'ms-account-loyalty__point-breakdown' },\n Button: { className: 'ms-account-loyalty__link' },\n heading: heading && (\n \n ),\n\n // Account info\n infoLabel: ,\n cardNumber: ,\n joinDate: (\n \n ),\n\n // Points\n pointsLabel: ,\n points: rewardPoints && (\n \n ),\n\n homeButton: rewardPoints && (\n \n {backToShoppingText}\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n private _formatJoinDate(date: Date): string {\n return format(\n this.props.resources.joinDateFormatted,\n new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n }).format(new Date(date))\n );\n }\n\n private _renderRewardPoints(loyaltyCard: LoyaltyCard): IAccountLoyaltyRewardPointProps[] {\n return loyaltyCard.RewardPoints!.map((loyaltyPoints, index) => {\n const availableId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-available-${index}`) || 'available-points';\n const expiringId = (loyaltyPoints.RewardPointId && `${loyaltyPoints.RewardPointId}-expiring-${index}`) || 'expiring-points';\n const {\n availablePointsLabel,\n availablePointsAriaLabel,\n expiringPointsFormatLabel,\n expiringPointsFormatAriaLabel\n } = this.props.resources;\n this.payLoad.contentAction.etext = TelemetryConstant.AvailablePoints;\n const availablePointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = TelemetryConstant.ExpiringPoints;\n const expiringPointsAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const expireDaysDefaultValue = 30;\n\n return {\n label: ,\n availableModalLabel: loyaltyPoints.ActivePoints !== undefined && (\n \n ),\n availableModalTrigger: loyaltyPoints.ActivePoints !== undefined && (\n \n {loyaltyPoints.ActivePoints.toFixed(this.decimalPrecision)}\n \n ),\n expiringModalLabel: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n ),\n expiringModalTrigger: loyaltyPoints.PointsExpiringSoon !== undefined && (\n \n {loyaltyPoints.PointsExpiringSoon.toFixed(this.decimalPrecision)}\n \n )\n };\n });\n }\n\n private _renderModal(): IAccountLoyaltyModalProps | null {\n const { totalAvailablePointsLabel, loyaltyActivityDateLabel, loyaltyActivityBalanceLabel } = this.props.resources;\n const { isModalOpen, currentModalData } = this.state;\n\n if (!isModalOpen || !currentModalData) {\n // Return empty modal\n this.props.context.telemetry.error('Account loyalty modal content is empty, module wont render');\n return null;\n }\n\n return {\n isOpen: isModalOpen,\n returnFocusRef: this.state.currentFocus,\n horizontalPosition: 'center',\n verticalPosition: 'center',\n modalClassName: 'ms-account-loyalty__points-modal',\n modalHeaderClassName: 'ms-account-loyalty__points-modal-header',\n modalHeader: currentModalData.Description ?? '',\n modalBodyClassName: 'ms-account-loyalty__points-modal-body',\n ModalBodyTop: { className: 'ms-account-loyalty__points-modal-body-top' },\n ModalBodyHeaders: { className: 'ms-account-loyalty__points-modal-body-header' },\n rewardPointsActivity: this._renderPointsActivity(),\n pointsDescription: ,\n totalPoints: ,\n date: ,\n balanceLabel: ,\n onClose: this._closeModal,\n onOpened: this._onOpenModal\n };\n }\n\n private _getTotalPoints(): number {\n const rewardPoints = this.props.data.loyaltyCard.result && this.props.data.loyaltyCard.result.RewardPoints;\n\n let total = 0;\n rewardPoints &&\n rewardPoints.forEach(loyaltyPoints => {\n total += loyaltyPoints.ActivePoints ?? 0;\n });\n\n return total;\n }\n\n private _getPoints(): string {\n const { currentModalData, isModalExpiring } = this.state;\n const rewardPoints: number = (isModalExpiring ? currentModalData!.PointsExpiringSoon : currentModalData!.ActivePoints) ?? 0;\n\n return `${rewardPoints.toFixed(this.decimalPrecision)}`;\n }\n\n private _renderPointsActivity(): IAccountLoyaltyActivityProps[] | undefined {\n const { pointsActivity } = this.state;\n\n if (!pointsActivity) {\n this.props.context.telemetry.error('Points activity content is empty, module wont render');\n return undefined;\n }\n\n return pointsActivity.map(activity => {\n return {\n Activity: { className: 'ms-account-loyalty__points-modal-activity' },\n activityType: (\n \n ),\n activityDate: (\n \n ),\n activityPoints: (\n \n )\n };\n });\n }\n\n private _parseDate(date: Date | string): Date {\n /* Dates for loyalty are coming as formatted strings yyyy-mm-ddT:00:00.000z\n Javascript was interpreting this as an iso format, thus causing the wrong date to be rendered */\n if (typeof date === 'string') {\n let dateString = date.toString();\n dateString = dateString.replace(/-/g, '/');\n dateString = dateString.substring(0, 10);\n return new Date(dateString);\n }\n return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate());\n }\n\n private _getTimelineType(pointActivity: LoyaltyRewardPointActivity): string {\n if (pointActivity.LoyaltyRewardPointTimelineEntryType) {\n return pointActivity.LoyaltyRewardPointTimelineEntryType;\n }\n\n const { earnedPointsLabel, redeemedPointsLabel, adjustedPointsLabel, refundedPointsLabel } = this.props.resources;\n switch (pointActivity.ExtensibleLoyaltyRewardPointActivityEntryTypeValue) {\n case 1:\n return earnedPointsLabel;\n case 2:\n return refundedPointsLabel;\n case 3:\n return redeemedPointsLabel;\n case 5:\n return adjustedPointsLabel;\n default:\n return '';\n }\n }\n\n private readonly _populateModalData = (\n focusRef: React.RefObject,\n loyaltyCard: LoyaltyCard,\n currentLoyaltyPoints: LoyaltyRewardPoint,\n expiring: boolean\n ) => () => {\n if (!loyaltyCard || !loyaltyCard.CardNumber || !currentLoyaltyPoints.RewardPointId) {\n this.props.context.telemetry.error('Modal data is empty, module wont render');\n return null;\n }\n\n const { actionContext } = this.props.context;\n\n // Open modal\n this.setState({\n isModalOpen: true,\n currentModalData: currentLoyaltyPoints,\n isModalExpiring: expiring,\n modalID: '',\n currentFocus: focusRef\n });\n\n if (expiring) {\n getLoyaltyRewardPointsExpiringSoonAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId,\n 30\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.exception(error);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n } else {\n getLoyaltyRewardPointActivityTimelineAsync(\n { callerContext: actionContext, queryResultSettings: {} },\n loyaltyCard.CardNumber,\n currentLoyaltyPoints.RewardPointId\n )\n .then((points: LoyaltyRewardPointActivity[]) => {\n this.setState({ pointsActivity: points });\n })\n .catch((error: Error) => {\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Failed to get reward point activity');\n });\n }\n // eslint-disable-next-line no-useless-return, consistent-return -- Auto-suppressed.\n return;\n };\n\n private readonly _closeModal = () => {\n this.setState({\n isModalOpen: false,\n currentModalData: undefined,\n pointsActivity: undefined\n });\n };\n\n /**\n * On open modal function.\n */\n private readonly _onOpenModal = () => {\n if (this.state.currentFocus?.current) {\n this.state.currentFocus.current.focus();\n }\n };\n}\n\nexport default AccountLoyalty;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileData } from './account-welcome-tile.data';\nimport { IAccountWelcomeTileProps } from './account-welcome-tile.props.autogenerated';\n\nexport interface IAccountWelcomeTileViewProps extends IAccountWelcomeTileProps {\n AccountWelcomeTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AccountWelcome component.\n * @extends {React.PureComponent>}\n */\nclass AccountWelcomeTile extends React.PureComponent> {\n public render(): JSX.Element {\n const { config, data } = this.props;\n const { className } = config;\n\n const accountInfo = data.accountInformation.result;\n const heading = {\n ...config.heading,\n ...{\n text: `${config.heading.text ? config.heading.text : ''} ${\n accountInfo && accountInfo.FirstName ? accountInfo.FirstName : ''\n }`\n }\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountWelcomeTile: {\n moduleProps: this.props,\n className: classnames('ms-account-welcome-tile', config.className)\n },\n heading: heading && heading.text && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n}\n\nexport default AccountWelcomeTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { ICoreContext, IDateFormatOptions, IRequestContext } from '@msdyn365-commerce/core';\nimport { BusinessPartnerOperationRequest, BusinessPartnerOperationRequestDetails } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n IDataTableProps,\n IHeadingsProperty,\n ITableItemProps,\n ITableRowProps,\n Table,\n TableDataType\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IB2bRequestsStatusData } from '../b2b-requests-status.data';\nimport { IB2bRequestsStatusProps } from '../b2b-requests-status.props.autogenerated';\n\nexport interface IB2bRequestsTableProps {\n moduleProps: IB2bRequestsStatusProps;\n isMobile: boolean;\n mobileExcludedColumns: string[];\n}\n\nexport interface IB2bRequestsTableResources {\n b2bRequestsTypeCreateProspect: string;\n b2bRequestsTypeAddUser: string;\n b2bRequestsTypeEditUser: string;\n b2bRequestsTypeDeleteUser: string;\n b2bRequestsTypeRequestAccountStatement: string;\n b2bRequestsTypeRequestInvoiceCopy: string;\n b2bRequestsTypeUnknown: string;\n b2bRequestsStatusRequested: string;\n b2bRequestsStatusProcessed: string;\n b2bRequestsStatusError: string;\n b2bRequestsNumberOfItems: string;\n b2bRequestsNumberOfItemsSingular: string;\n b2bRequestsNameDisplay: string;\n b2bRequestsPreviousText: string;\n b2bRequestsNextText: string;\n b2bRequestsUserColumn: string;\n b2bRequestsStatusColumn: string;\n b2bRequestsRequestDateColumn: string;\n b2bRequestsTypeColumn: string;\n b2bRequestsDescriptionColumn: string;\n b2bRequestsAccountStatementDetails: string;\n b2bRequestsInvoiceCopyDetails: string;\n businessUserSelectCheckBoxAriaLabelText?: string;\n sortByAscending?: string;\n sortByDescending?: string;\n}\n\nexport enum RequestsTableColumnHeader {\n Name = 'User',\n Status = 'Status',\n RequestDate = 'Request date',\n Type = 'Request type',\n Description = 'Request detail'\n}\n\nconst getCurrentUrl = (reqContext: IRequestContext): URL => {\n if (MsDyn365.isBrowser) {\n return new URL(window.location.href);\n }\n\n // NOTE: Typing on requestURL is incorrect\n if (reqContext.url.requestUrl.href) {\n return new URL(reqContext.url.requestUrl.href);\n }\n return new URL(reqContext.url.requestUrl.href);\n};\n\nconst getUserName = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources) => {\n if (StringExtensions.isNullOrEmpty(request.UserFirstName)) {\n if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return '';\n }\n\n return request.UserLastName;\n } else if (StringExtensions.isNullOrEmpty(request.UserLastName)) {\n return request.UserFirstName;\n }\n\n return resources.b2bRequestsNameDisplay.replace('{0}', request.UserFirstName!).replace('{1}', request.UserLastName!);\n};\n\nconst formatDate = (context: ICoreContext, date: Date | undefined) => {\n if (date === undefined) {\n return '';\n }\n\n const dateOptions: IDateFormatOptions = { year: 'numeric', month: 'long', day: 'numeric' };\n return context.cultureFormatter.formatDate(date, dateOptions);\n};\n\n/**\n * Gets the value to display for the request details.\n * @param request - The request to parse for the details.\n * @param resources - The resources.\n * @param context - The context.\n * @returns The string to display.\n */\nconst getDetails = (request: BusinessPartnerOperationRequest, resources: IB2bRequestsTableResources, context: ICoreContext) => {\n if (!request.Details) {\n return '';\n }\n\n const requestDetails: BusinessPartnerOperationRequestDetails = request.Details;\n\n const accountStatementStartDateTime = formatDate(context, requestDetails.AccountStatementStartDateTime) || '';\n const accountStatementEndDateTime = formatDate(context, requestDetails.AccountStatementEndDateTime) || '';\n const invoiceId = requestDetails.InvoiceId ?? '';\n\n switch (request.TypeValue) {\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 5:\n if (\n !StringExtensions.isNullOrEmpty(accountStatementStartDateTime) &&\n !StringExtensions.isNullOrEmpty(accountStatementEndDateTime)\n ) {\n return resources.b2bRequestsAccountStatementDetails\n .replace('{0}', accountStatementStartDateTime)\n .replace('{1}', accountStatementEndDateTime);\n }\n\n return '';\n // eslint-disable-next-line @typescript-eslint/no-magic-numbers -- workaround for not being able to use enum value\n case 6:\n if (!StringExtensions.isNullOrEmpty(invoiceId)) {\n return resources.b2bRequestsInvoiceCopyDetails.replace('{0}', invoiceId);\n }\n\n return '';\n default:\n return '';\n }\n};\n\nconst createTableItems = (\n operationRequests: BusinessPartnerOperationRequest[] | undefined,\n props: IB2bRequestsStatusProps\n): ITableRowProps[] => {\n if (!ArrayExtensions.hasElements(operationRequests)) {\n return [];\n }\n\n return operationRequests.map(request => {\n return {\n row: [\n {\n id: props.resources.b2bRequestsTypeColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyTypeValue(request.TypeValue ?? 0, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsRequestDateColumn,\n type: TableDataType.Text,\n value: formatDate(props.context, request.CreatedDateTime)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsDescriptionColumn,\n type: TableDataType.Text,\n value: getDetails(request, props.resources, props.context)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsUserColumn,\n type: TableDataType.Text,\n value: getUserName(request, props.resources)\n } as ITableItemProps,\n {\n id: props.resources.b2bRequestsStatusColumn,\n type: TableDataType.Text,\n value: getDisplayFriendlyStatusValue(request.StatusValue ?? 0, props.resources)\n } as ITableItemProps\n ],\n isSelected: false,\n className: props.config.className\n };\n });\n};\n\nconst getDisplayFriendlyTypeValue = (typeValue: number, resources: IB2bRequestsTableResources): string => {\n switch (typeValue) {\n case 1:\n return resources.b2bRequestsTypeCreateProspect;\n case 2:\n return resources.b2bRequestsTypeAddUser;\n case 3:\n return resources.b2bRequestsTypeDeleteUser;\n case 4:\n return resources.b2bRequestsTypeEditUser;\n case 5:\n return resources.b2bRequestsTypeRequestAccountStatement;\n case 6:\n return resources.b2bRequestsTypeRequestInvoiceCopy;\n default:\n return resources.b2bRequestsTypeUnknown;\n }\n};\n\nconst getDisplayFriendlyStatusValue = (statusValue: number, resources: IB2bRequestsTableResources): string => {\n switch (statusValue) {\n case 1:\n return resources.b2bRequestsStatusProcessed;\n case 2:\n return resources.b2bRequestsStatusError;\n default:\n return resources.b2bRequestsStatusRequested;\n }\n};\n\nconst createTableProps = (tableProps: IB2bRequestsTableProps) => {\n const { context, data, resources } = tableProps.moduleProps;\n\n const tableData = createTableItems(data.operationRequests.result, tableProps.moduleProps);\n const tableHeading =\n (ArrayExtensions.hasElements(tableData) &&\n tableData[0].row\n .filter(item => {\n // Check that this is either not mobile or the column should be displayed when mobile.\n return !tableProps.isMobile || !tableProps.mobileExcludedColumns.includes(item.id);\n })\n .map(item => {\n return {\n name: item.id,\n sortable: true,\n ariaLabel: resources.columnSortAriaLabel\n } as IHeadingsProperty;\n })) ||\n [];\n\n return {\n resources: {},\n headings: tableHeading,\n rows: tableData,\n className: `${tableProps.moduleProps.config.className}__table`,\n editLinkText: '',\n deleteLinkText: '',\n viewLinkText: '',\n enableToModify: false,\n actionLinkText: '',\n showCheckBoxes: false,\n isSortable: true,\n showPagination: true,\n minifyActions: tableProps.isMobile,\n excludedColumns: tableProps.isMobile ? tableProps.mobileExcludedColumns : [],\n paginationProperty: {\n skipCount:\n context.request.query?.skip && !isNaN(Number.parseInt(context.request.query.skip, 10))\n ? Number.parseInt(context.request.query.skip, 10)\n : 0,\n itemPerPage: 10,\n prevText: resources.b2bRequestsPreviousText,\n nextText: resources.b2bRequestsNextText,\n paginationText: '',\n url: (context && getCurrentUrl(context.request).href) || ''\n },\n isSingleSelectOnly: true,\n actions: {\n onDelete: undefined,\n onEdit: undefined,\n onView: undefined\n },\n businessUserSelectCheckBoxAriaLabelText: tableProps.moduleProps.resources.businessUserSelectCheckBoxAriaLabelText,\n sortByAscending: tableProps.moduleProps.resources.sortByAscending,\n sortByDescending: tableProps.moduleProps.resources.sortByDescending\n } as IDataTableProps;\n};\n\nexport const B2bRequestsTable: React.FC = (tableProps: IB2bRequestsTableProps) => {\n return
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { format, Heading, IModuleProps, isMobile, VariantType } from '@msdyn365-commerce-modules/utilities';\nimport { computed } from 'mobx';\nimport * as React from 'react';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\n\nimport { IB2bRequestsStatusData } from './b2b-requests-status.data';\nimport { IB2bRequestsStatusProps, IHeadingData } from './b2b-requests-status.props.autogenerated';\nimport { B2bRequestsTable } from './components/b2b-requests-table';\n\nexport interface IB2bRequestsStatusViewProps extends IB2bRequestsStatusProps {\n b2bRequestsStatus: IModuleProps;\n heading?: React.ReactNode;\n table: React.ReactNode;\n}\n\n/**\n *\n * B2bRequestsStatus component.\n * @extends {React.PureComponent>}\n */\nclass B2bRequestsStatus extends React.PureComponent> {\n @computed get isMobile(): boolean {\n const size = isMobile({ variant: VariantType.Viewport, context: this.props.context.request });\n return size === 'xs';\n }\n\n public render(): JSX.Element | null {\n const { config } = this.props;\n\n if (!isChannelTypeB2B(this.props.context.actionContext.requestContext)) {\n return null;\n }\n\n const className = config.className || '';\n\n const viewProps = {\n ...this.props,\n b2bRequestsStatus: {\n moduleProps: this.props,\n className\n },\n heading: this.renderHeader(className, config.heading),\n table: this.renderTable()\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly renderHeader = (className: string, headingData: IHeadingData): React.ReactNode => {\n const itemCount = this.props.data.operationRequests.result?.length ?? 0;\n\n return (\n
\n \n {this.getItemNumberDisplayString(itemCount)}\n
\n );\n };\n\n /**\n * Returns columns that needs to be excluded for mobile view.\n * @returns Array of column names.\n */\n private readonly _retrieveExcludedColumns = (): string[] => {\n const { resources } = this.props;\n return [resources.b2bRequestsRequestDateColumn, resources.b2bRequestsDescriptionColumn, resources.b2bRequestsUserColumn];\n };\n\n private readonly renderTable = (): React.ReactNode => {\n return (\n \n );\n };\n\n private readonly getItemNumberDisplayString = (itemCount: number): string => {\n switch (itemCount) {\n case 0:\n return '';\n case 1:\n return format(this.props.resources.b2bRequestsNumberOfItemsSingular, itemCount);\n default:\n return format(this.props.resources.b2bRequestsNumberOfItems, itemCount);\n }\n };\n}\n\nexport default B2bRequestsStatus;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountGenericTileViewProps } from './account-generic-tile';\n\nconst AccountGenericTileView: React.FC = props => {\n const { AccountGenericTile, heading, links } = props;\n\n return (\n \n {heading}\n {links}\n \n );\n};\n\nexport default AccountGenericTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountLoyaltyViewProps } from './account-loyalty';\n\nconst AccountLoyaltyView: React.FC = props => {\n const {\n AccountLoyalty,\n Info,\n Points,\n Breakdown,\n RewardPoints,\n PointsBreakdown,\n Button,\n heading,\n infoLabel,\n cardNumber,\n joinDate,\n pointsLabel,\n points,\n rewardPoints,\n homeButton,\n pointsModal\n } = props;\n const { ModalBodyTop, ModalBodyHeaders } = pointsModal;\n return (\n \n {heading}\n \n {infoLabel}\n {cardNumber}\n {joinDate}\n \n \n {pointsLabel}\n {points}\n\n \n {rewardPoints &&\n rewardPoints.map((activity, index) => {\n return (\n \n {activity.label}\n \n {activity.availableModalLabel}\n {activity.availableModalTrigger}\n \n\n \n {activity.expiringModalLabel}\n {activity.expiringModalTrigger}\n \n \n );\n })}\n \n \n\n {homeButton}\n\n {(!pointsModal.isOpen && ) || (\n \n \n {pointsModal.modalHeader}\n \n \n \n {pointsModal.pointsDescription}\n {pointsModal.totalPoints}\n \n \n {pointsModal.date}\n {pointsModal.balanceLabel}\n \n {pointsModal.rewardPointsActivity &&\n pointsModal.rewardPointsActivity.map((activity, index) => {\n const { Activity, activityType, activityDate, activityPoints } = activity;\n return (\n \n {activityType}\n {activityDate}\n {activityPoints}\n \n );\n })}\n \n \n )}\n \n );\n};\n\nexport default AccountLoyaltyView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountWelcomeTileViewProps } from './account-welcome-tile';\n\nconst AccountWelcomeTileView: React.FC = props => {\n const { AccountWelcomeTile, heading } = props;\n\n return {heading};\n};\n\nexport default AccountWelcomeTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { IB2bRequestsStatusViewProps } from './b2b-requests-status';\n\nconst B2bRequestsStatusView: React.FC = props => {\n const { b2bRequestsStatus, heading, table } = props;\n return (\n \n {heading}\n {table}\n \n );\n};\n\nexport default B2bRequestsStatusView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 {successMessage &&\n successMessage.map((message: React.ReactNode, index: number) => {\n return {message};\n })}\n {items &&\n items.map((item: IPasswordResetVerificationItem) => {\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 {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 * 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 * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Node } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\nimport { SalesOrder } from '@msdyn365-commerce/retail-proxy';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-header';\nconst headingClassName = `${componentClassName}__heading`;\nconst orderCountClassName = `${componentClassName}__order-count`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderResources {\n orderCountLabel: string;\n ordersCountLabel: string;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderData {\n salesOrders: SalesOrder[];\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersHeaderProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersHeaderProps\n extends Msdyn365.IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersHeaderResources;\n textProps: Msdyn365.ITextProps;\n showOrderCount: boolean;\n extraActions?: React.ReactNode;\n onChange(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersHeaderProps\n) => {\n const {\n resources,\n data: { salesOrders },\n textProps,\n showOrderCount,\n extraActions\n } = props;\n\n const orderCount = salesOrders?.length;\n const orderCountText = `(${orderCount} ${orderCount === 1 ? resources?.orderCountLabel : resources?.ordersCountLabel})`;\n\n return (\n \n {textProps?.text && (\n \n )}\n {showOrderCount && {orderCountText}}\n {extraActions}\n \n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersHeader component.\n */\nexport const OrderHistoryWithSearchAndFiltersHeaderComponent: React.FunctionComponent = Msdyn365.msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersHeaderProps\n>('OrderHistoryWithSearchAndFiltersHeaderComponent', { component: OrderHistoryWithSearchAndFiltersHeaderFunctionalComponent });\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 * as React from 'react';\n\nexport interface IAccountOrderTemplatesTileDescription {\n description: string;\n}\n\nexport const AccountOrderTemplatesTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-order-templates-tile.props.autogenerated';\n\nexport interface IAccountOrderTemplatesTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nexport const AccountOrderTemplatesTileLinks: React.FC = ({\n links,\n onTextChange,\n telemetryContent,\n requestContext\n}) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-order-templates-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileData } from './account-order-templates-tile.data';\nimport { IAccountOrderTemplatesTileProps } from './account-order-templates-tile.props.autogenerated';\nimport { AccountOrderTemplatesTileDescription, AccountOrderTemplatesTileLinks } from './components';\n\nexport interface IAccountOrderTemplatesTileViewProps extends IAccountOrderTemplatesTileProps {\n AccountOrderTemplatesTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountOrderTemplatesTile component.\n * @extends {React.PureComponent>}\n */\nexport class AccountOrderTemplatesTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountOrderTemplatesTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n\n if (!this.props.context.request.params.isEditor && !isChannelTypeB2B(this.props.context.request)) {\n return <>;\n }\n\n const { className, heading, links } = config;\n const { accountOrderTemplatesTileDescription } = resources;\n const orderTemplates = data.orderTemplates;\n\n const orderTemplatesCount = (orderTemplates?.result || []).length;\n const description = format(accountOrderTemplatesTileDescription, orderTemplatesCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountOrderTemplatesTile: {\n moduleProps: this.props,\n className: classnames('ms-account-order-templates-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n this.props.config.heading.text = event.target.value;\n };\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountOrderTemplatesTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport 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 = 20;\n\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileAttributesProps) {\n super(props);\n this.state = {\n editAttributes: false,\n phone: '',\n vatNumber: '',\n attributes: {},\n attributeError: {}\n };\n this.initialAttributes = {};\n this.initialCustomerAttributes = [];\n this.initialPhone = '';\n this.initialVatNumber = '';\n this.attributePayloadData = [];\n const telemetryPageName =\n (this.props.accountProfileProps &&\n this.props.accountProfileProps.context &&\n this.props.accountProfileProps.context.request &&\n this.props.accountProfileProps.context.request.telemetryPageName) ||\n '';\n const friendlyName = (this.props.accountProfileProps && this.props.accountProfileProps.friendlyName) || '';\n const telemetry = (this.props.accountProfileProps && this.props.accountProfileProps.telemetry) || {};\n this.telemetryContent = getTelemetryObject(telemetryPageName, friendlyName, telemetry);\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n this.editRef = React.createRef();\n this.attributesContainerRef = React.createRef();\n }\n\n public componentDidMount(): void {\n this._buildPayloadData();\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n reaction(\n () => this.props.accountProfileProps.data.customerInformation.result,\n () => {\n const customerInformation = this.props.accountProfileProps.data.customerInformation.result;\n this.initialCustomerAttributes = customerInformation && customerInformation.Attributes;\n this._getAttributes();\n this._getCustomerPhoneAndVatNumber();\n }\n );\n reaction(\n () => this.props.accountProfileProps.data.attributeDefinitions.result,\n () => {\n this._buildPayloadData();\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileAttributesProps, nextState: IAccountProfileAttributesState): boolean {\n if (this.state === nextState && this.props.accountProfileProps.data === nextProps.accountProfileProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n return this._renderAttributes();\n }\n\n private readonly _renderAttributes = (): JSX.Element | null => {\n const { config, data, resources } = this.props.accountProfileProps;\n const attributeDefinitions: AttributeDefinition[] = data.attributeDefinitions.result || [];\n const additionalInformationSectionHeading =\n (config.additionalInformationSectionHeading && config.additionalInformationSectionHeading.text) || '';\n const showAttributes = config.showAttributes || '';\n const attributes = showAttributes.split(',');\n const elements = attributes.map(att => {\n const attributeDefinition: AttributeDefinition = attributeDefinitions.find(\n attribute => attribute.IsHidden === false && attribute.Name!.toLocaleLowerCase() === att.toLocaleLowerCase()\n ) || { RecordId: 0 };\n return this._renderAttribute(attributeDefinition);\n });\n const edit = (this.state && this.state.editAttributes) || false;\n this.payLoad.contentAction.etext = `${resources.attributesEditButtonText} ${additionalInformationSectionHeading}`;\n const editAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesSaveButtonText} ${additionalInformationSectionHeading}`;\n const saveAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n this.payLoad.contentAction.etext = `${resources.attributesCancelButtonText} ${additionalInformationSectionHeading}`;\n const cancelAttributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n // Disable the 'Edit' button if the switch is enabled and the customer is async.\n const disableBtn: boolean =\n (this.props.accountProfileProps.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n return (\n \n {config.additionalInformationSectionHeading && (\n \n )}\n {config.showPhone && this._renderPhone()}\n {config.showVatNumber && this._renderVatNumber()}\n {elements}\n {this.gotException && (\n
\n \n
\n )}\n {!edit && (\n \n {resources.attributesEditButtonText}\n \n )}\n {edit && (\n \n {resources.attributesSaveButtonText}\n \n )}\n {edit && (\n \n {resources.attributesCancelButtonText}\n \n )}\n \n );\n };\n\n private readonly _renderPhone = (): JSX.Element | null => {\n const { phoneSectionHeading } = this.props.accountProfileProps.config;\n const heading = (phoneSectionHeading && phoneSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {phoneSectionHeading && }\n \n {this._renderError('Phone')}\n
\n );\n };\n\n private readonly _renderVatNumber = (): JSX.Element | null => {\n const { vatNumberSectionHeading } = this.props.accountProfileProps.config;\n const heading = (vatNumberSectionHeading && vatNumberSectionHeading.text) || '';\n const className = (heading && heading.replace(/ /g, '_')) || '';\n const editAttributes = (this.state && this.state.editAttributes) || false;\n return (\n
\n {vatNumberSectionHeading && }\n \n {this._renderError('VATNumber')}\n
\n );\n };\n\n private readonly _renderAttribute = (customAttribute: AttributeDefinition): JSX.Element | null => {\n const editAttributes = (this.state && this.state.editAttributes) || false;\n const className = (customAttribute.Name && customAttribute.Name.replace(/ /g, '_')) || '';\n switch (customAttribute.ExtDataType && customAttribute.ExtDataType.Value) {\n case AccountAttributeDataTypeValue.Integer:\n case AccountAttributeDataTypeValue.Decimal:\n return this._renderIntegerDecimalInput(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.Text:\n return this._renderTextInputOrSelect(customAttribute, className, editAttributes);\n case AccountAttributeDataTypeValue.TrueFalse:\n return this._renderBoolean(customAttribute, className, editAttributes);\n default:\n return null;\n }\n };\n\n private readonly _renderIntegerDecimalInput = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderTextInputOrSelect = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n const isEnumeration: boolean = customAttribute.IsEnumeration || false;\n const edit = (this.state && this.state.editAttributes) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n if (isEnumeration && customAttribute.EnumerationDetails) {\n const value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n return (\n
\n \n \n {hasNoValue && (\n \n )}\n {customAttribute.EnumerationDetails.map(option => {\n const selected = option.EnumerationValue === this.state.attributes[customAttribute.Name || ''];\n return (\n \n {option.EnumerationValue}\n \n );\n })}\n \n
\n );\n }\n return (\n
\n \n \n {this._renderError(customAttribute.Name || '')}\n
\n );\n };\n\n private readonly _renderBoolean = (\n customAttribute: AttributeDefinition,\n className: string,\n editAttributes: boolean\n ): JSX.Element | null => {\n let value = this.state.attributes[customAttribute.Name || ''] || '';\n const hasNoValue = value === '';\n const render = !(hasNoValue && !editAttributes);\n value = value || 'false';\n const toggleState = (value === 'true' && 'enable') || 'disable';\n const arialabel = format(this.props.accountProfileProps.resources.attributeToggleButtonAriaLabel, customAttribute.Name);\n const ariaPressed = (value === 'true' && true) || false;\n const attributeProps = this._getAttributeProps(customAttribute.Name || '');\n const displayName: string = attributeProps.Name || '';\n let toggleValue = 'false';\n if (value === 'true') {\n toggleValue = 'false';\n } else {\n toggleValue = 'true';\n }\n\n return (\n \n \n {render && (\n \n \n \n \n \n )}\n \n );\n };\n\n private readonly _renderError = (attributeName: string): JSX.Element | null => {\n const error: string = (this.state && this.state.attributeError && this.state.attributeError[attributeName]) || '';\n const hasError = !StringExtensions.isNullOrWhitespace(error);\n if (hasError) {\n return (\n
\n \n
\n );\n }\n return null;\n };\n\n private readonly _getAttributeProps = (attributeName: string): IAttributePropertiesType => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === attributeName);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n return {\n Name: isMandatory ? `${attributeName || ''} *` : attributeName || '',\n IsMandatory: isMandatory\n };\n };\n\n private readonly _onPhoneChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ phone: value });\n };\n\n private readonly _onVatNumberChange = (event: React.ChangeEvent): void => {\n const value = event.target.value;\n this.setState({ vatNumber: value });\n };\n\n private readonly _enableAttributes = () => {\n this.hasError = false;\n\n // To clear exception messages\n this.gotException = false;\n this.setState({ editAttributes: true, attributeError: {} });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n if (this.attributesContainerRef.current) {\n const attributes: HTMLCollectionOf = this.attributesContainerRef.current.getElementsByClassName(\n this.attributeClassName\n );\n if (attributes && attributes.length > 0) {\n this._setFocus(attributes[0] as HTMLElement);\n }\n }\n }, 0);\n }\n };\n\n private readonly _disableAttributes = () => {\n this.setState({\n editAttributes: false,\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n };\n\n private readonly _onAttributeChange = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.target.value;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeCheck = (attributeDefinition: AttributeDefinition, value: string) => (\n event: React.MouseEvent\n ) => {\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n }\n });\n };\n\n private readonly _onAttributeSelect = (attributeDefinition: AttributeDefinition) => (event: React.ChangeEvent) => {\n const value = event.currentTarget.selectedOptions[0].value;\n const index = event.currentTarget.selectedOptions[0].index;\n const name = attributeDefinition.Name || '';\n this.setState({\n attributes: {\n ...this.state.attributes,\n [name]: value\n },\n selectedIndex: {\n ...this.state.selectedIndex,\n [name]: index\n }\n });\n };\n\n private readonly _getAttributes = () => {\n const { config, data } = this.props.accountProfileProps;\n const showAttributes = config.showAttributes || '';\n const showAttributesArray = showAttributes.split(',');\n const customer = data.customerInformation.result;\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attributes: IDictionary = {};\n\n showAttributesArray.forEach(showAttribute => {\n const attributePayloadData = this.attributePayloadData.find(att => att.name === showAttribute);\n const isMandatory: boolean = (attributePayloadData && attributePayloadData.isMandatory) || false;\n const defaultValue = attributePayloadData && attributePayloadData.defaultValue;\n const attribute = custmerAttributes.find(att => att.Name === showAttribute);\n let value: string = '';\n if (attribute && attribute.AttributeValue) {\n const name = (attribute && attribute.Name) || '';\n switch (attribute.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n if (attribute.AttributeValue.IntegerValue) {\n value = String(attribute.AttributeValue.IntegerValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n if (attribute.AttributeValue.DecimalValue) {\n value = String(attribute.AttributeValue.DecimalValue);\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n if (attribute.AttributeValue.StringValue) {\n value = attribute.AttributeValue.StringValue;\n attributes[name] = value;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n if (attribute.AttributeValue.BooleanValue !== null) {\n value = String(attribute.AttributeValue.BooleanValue);\n attributes[name] = value;\n }\n break;\n default:\n\n // Do nothing\n }\n }\n if (StringExtensions.isNullOrWhitespace(value) && isMandatory) {\n attributes[showAttribute] = '';\n }\n if (value.length === 0 && defaultValue) {\n attributes[showAttribute] = String(defaultValue);\n }\n });\n if (Object.keys(this.initialAttributes).length === 0) {\n this.initialAttributes = attributes;\n }\n this.setState({ attributes });\n };\n\n // eslint-disable-next-line\n private readonly _addOrUpdateAttribute = (customer: Customer) => {\n const { resources } = this.props.accountProfileProps;\n const { phone, vatNumber } = this.state;\n const attributeError: IDictionary = {};\n let hasError: boolean = false;\n let hasValue: boolean = true;\n for (const [key, value] of Object.entries(this.state.attributes)) {\n const payloadData: IAttributePayloadData = this.attributePayloadData.find(data => data.name === key) || {};\n if (payloadData) {\n switch (payloadData.dataTypeValue) {\n case AccountAttributeDataTypeValue.Decimal:\n const decimalValue = Number(value);\n if (isNaN(decimalValue)) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Decimal');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (decimalValue < payloadData.lowerBoundValue || decimalValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (decimalValue > this.maxDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxDecimalLimit\n );\n hasError = true;\n }\n\n if (decimalValue < this.minDecimalLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minDecimalLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.decimalValue = decimalValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Integer:\n const integerValue = Number(value);\n if (isNaN(integerValue) || value.includes('.')) {\n const typeError = format(resources.attributeInputTypeErrorText, payloadData.name, 'Integer');\n attributeError[payloadData.name || ''] = typeError;\n hasError = true;\n } else if (payloadData.lowerBoundValue !== undefined && payloadData.upperBoundValue !== undefined) {\n if (integerValue < payloadData.lowerBoundValue || integerValue > payloadData.upperBoundValue) {\n const rangeError = format(\n resources.attributeInputRangeErrorText,\n payloadData.name,\n payloadData.lowerBoundValue,\n payloadData.upperBoundValue\n );\n attributeError[payloadData.name || ''] = rangeError;\n hasError = true;\n }\n } else {\n if (integerValue > this.maxIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMaximumErrorText,\n payloadData.name,\n this.maxIntegerLimit\n );\n hasError = true;\n }\n\n if (integerValue < this.minIntegerLimit) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputValueExceedsMinimumErrorText,\n payloadData.name,\n this.minIntegerLimit\n );\n hasError = true;\n }\n }\n\n if (!hasError) {\n if (StringExtensions.isNullOrWhitespace(value)) {\n hasValue = false;\n } else {\n payloadData.integerValue = integerValue;\n hasValue = true;\n }\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n let trimValue = '';\n if (!StringExtensions.isNullOrWhitespace(value)) {\n trimValue = value.trim();\n }\n if (trimValue.length > this.maxStringLength) {\n attributeError[payloadData.name || ''] = format(\n resources.attributeInputStringMaxLengthErrorText,\n payloadData.name,\n this.maxStringLength\n );\n hasError = true;\n }\n if (!hasError) {\n payloadData.textValue = trimValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n payloadData.booleanValue = value === 'true';\n break;\n default:\n\n // Do nothing\n }\n\n if (payloadData.isMandatory && StringExtensions.isNullOrWhitespace(value)) {\n attributeError[payloadData.name || ''] = format(resources.attributeInputMandatoryErrorText, payloadData.name);\n hasError = true;\n }\n\n const custmerAttributes: CustomerAttribute[] = (customer && customer.Attributes) || [];\n const attribute = custmerAttributes.find(att => att.Name === key);\n const index = custmerAttributes.findIndex(att => att.Name === key);\n\n if (index !== -1 && !hasValue) {\n custmerAttributes.splice(index, 1);\n }\n\n if (!hasError && hasValue) {\n if (attribute) {\n attribute.Attribute = undefined;\n attribute.DataTypeValue = payloadData.dataTypeValue;\n attribute.Name = payloadData.name;\n attribute.RecordId = payloadData.recordId;\n attribute.Units = undefined;\n attribute.AttributeValue = {\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n };\n attribute.ExtensionProperties = [];\n attribute.NameTranslations = [];\n } else {\n custmerAttributes.push({\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CustomerAttribute',\n Attribute: undefined,\n DataTypeValue: payloadData.dataTypeValue,\n KeyName: payloadData.name,\n Name: payloadData.name,\n RecordId: payloadData.recordId,\n Units: undefined,\n AttributeValue: {\n // @ts-expect-error\n '@odata.type': '#Microsoft.Dynamics.Commerce.Runtime.DataModel.CommercePropertyValue',\n IntegerValue: payloadData.integerValue,\n BooleanValue: payloadData.booleanValue,\n StringValue: payloadData.textValue,\n DecimalValue: payloadData.decimalValue\n },\n 'ExtensionProperties@odata.type': '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.CommerceProperty)',\n ExtensionProperties: [],\n 'NameTranslations@odata.type':\n '#Collection(Microsoft.Dynamics.Commerce.Runtime.DataModel.TextValueTranslation)',\n NameTranslations: []\n });\n }\n }\n }\n }\n\n if (phone.trim().length > this.maxPhoneLength) {\n attributeError.Phone = format(resources.attributeInputStringMaxLengthErrorText, 'Phone', this.maxPhoneLength);\n hasError = true;\n } else {\n customer.Phone = phone.trim();\n }\n\n if (vatNumber.trim().length > this.maxVATNumberLength) {\n attributeError.VATNumber = format(resources.attributeInputStringMaxLengthErrorText, 'VAT Number', this.maxVATNumberLength);\n hasError = true;\n } else {\n customer.VatNumber = vatNumber.trim();\n }\n\n this.hasError = hasError;\n this.setState({ attributeError });\n };\n\n private readonly _saveAttributes = async () => {\n const { context, data } = this.props.accountProfileProps;\n const customer = data.customerInformation.result;\n\n if (customer && context) {\n this._addOrUpdateAttribute(customer);\n const input = new updateCustomerAttributesInput(\n customer.AccountNumber,\n customer.Attributes || [],\n context.request.apiSettings,\n customer.Phone,\n customer.VatNumber\n );\n\n this.isUpdatingAttributes = true;\n this.gotException = false;\n\n if (!this.hasError) {\n this.setState({ editAttributes: false });\n try {\n await updateCustomerAttributes(input, context.actionContext);\n } catch (error) {\n this.gotException = true;\n customer.Attributes = this.initialCustomerAttributes;\n if (context.telemetry) {\n context.telemetry.exception(error);\n context.telemetry.debug('Unable to update customer attributes');\n }\n this.setState({\n attributeError: {},\n attributes: this.initialAttributes,\n phone: this.initialPhone,\n vatNumber: this.initialVatNumber\n });\n }\n this.setState({ editAttributes: false });\n if (!this.gotException) {\n this.initialAttributes = this.state.attributes;\n this.initialCustomerAttributes = customer.Attributes;\n this.initialPhone = this.state.phone;\n this.initialVatNumber = this.state.vatNumber;\n }\n }\n\n this.isUpdatingAttributes = false;\n\n if (MsDyn365.isBrowser) {\n setTimeout(() => {\n this._setFocus(this.editRef.current);\n }, 0);\n }\n }\n };\n\n private readonly _setFocus = (element: HTMLElement | null) => {\n element?.focus();\n };\n\n private readonly _buildPayloadData = () => {\n const { data } = this.props.accountProfileProps;\n const attributeDefinitions = data.attributeDefinitions.result || [];\n const attributes: IDictionary = {};\n\n attributeDefinitions.forEach(attributeDefinition => {\n const attributePayloadData: IAttributePayloadData = {};\n attributePayloadData.recordId = attributeDefinition.RecordId;\n attributePayloadData.name = attributeDefinition.Name;\n attributePayloadData.dataTypeValue = attributeDefinition.DataTypeValue;\n attributePayloadData.isEnumeration = attributeDefinition.IsEnumeration;\n attributePayloadData.isMandatory = attributeDefinition.IsMandatory;\n switch (attributeDefinition.DataTypeValue) {\n case AccountAttributeDataTypeValue.Integer:\n const defaultIntegerValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.IntegerValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.IntegerValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.IntegerValue;\n if (attributePayloadData.name && defaultIntegerValue) {\n attributePayloadData.defaultValue = String(defaultIntegerValue);\n attributes[attributePayloadData.name] = String(defaultIntegerValue);\n }\n break;\n case AccountAttributeDataTypeValue.Decimal:\n const defaultDecimalValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.DecimalValue;\n attributePayloadData.lowerBoundValue = attributeDefinition.LowerBound && attributeDefinition.LowerBound.DecimalValue;\n attributePayloadData.upperBoundValue = attributeDefinition.UpperBound && attributeDefinition.UpperBound.DecimalValue;\n if (attributePayloadData.name && defaultDecimalValue) {\n attributePayloadData.defaultValue = String(defaultDecimalValue);\n attributes[attributePayloadData.name] = String(defaultDecimalValue);\n }\n break;\n case AccountAttributeDataTypeValue.Text:\n const defaultStringValue = attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.StringValue;\n if (attributePayloadData.name && defaultStringValue) {\n attributePayloadData.defaultValue = defaultStringValue;\n attributes[attributePayloadData.name] = defaultStringValue;\n }\n break;\n case AccountAttributeDataTypeValue.TrueFalse:\n const defaultBooleanValue =\n (attributeDefinition.DefaultValue && attributeDefinition.DefaultValue.BooleanValue) || false;\n if (attributePayloadData.name) {\n attributePayloadData.defaultValue = String(defaultBooleanValue);\n attributes[attributePayloadData.name] = String(defaultBooleanValue);\n }\n break;\n default:\n\n // Do nothing\n }\n this.attributePayloadData.push(attributePayloadData);\n });\n Object.keys(attributes).length > 0 && this.setState({ attributes });\n };\n\n private readonly _getCustomerPhoneAndVatNumber = () => {\n const customer = this.props.accountProfileProps.data.customerInformation.result;\n const phone = (customer && customer.Phone) || '';\n const vatNumber = (customer && customer.VatNumber) || '';\n this.setState({ phone, vatNumber });\n if (this.initialPhone.length === 0) {\n this.initialPhone = phone;\n }\n if (this.initialVatNumber.length === 0) {\n this.initialVatNumber = vatNumber;\n }\n };\n}\n\nexport default AccountProfileAttributes;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ILinkData } from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ILinksData {\n linkText?: string;\n linkUrl: ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n isDisabled?: boolean;\n}\n\nexport interface IAccountProfileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountProfileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: link.isDisabled ? 'ms-account-profile__section-link-disable' : 'ms-account-profile__section-link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountProfileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport {\n ArrayExtensions,\n updateCustomerPersonalization,\n updateCustomerPersonalizationInput\n} from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, observable } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { IAccountProfileData } from './account-profile.data';\nimport {\n IAccountProfileProps,\n IEmailAddressSectionHeadingData,\n IHeadingData,\n INameSectionHeadingData\n} from './account-profile.props.autogenerated';\nimport AccountProfileAttributes from './components/account-profile-attributes';\nimport DescriptionComponent from './components/account-profile-description';\nimport LinksComponent, { ILinksData } from './components/account-profile-links';\nimport TextComponent from './components/account-profile-text';\n\nexport interface IAccountPreference {\n accountPreference: INodeProps;\n heading: React.ReactNode;\n buttonWrapper: INodeProps;\n buttonYesText: React.ReactNode;\n buttonNoText: React.ReactNode;\n button: React.ReactNode;\n description: React.ReactNode;\n onUpdateAccountPreference(preferenceType?: string): void;\n}\n\nexport interface IAccountPreferences {\n accountPreferences: INodeProps;\n heading?: React.ReactNode;\n personalization: IAccountPreference;\n extraPreferences?: IAccountPreference[];\n}\n\nexport interface IAccountProfileItem {\n AccountProfileItem: INodeProps;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\nexport interface IAccountCustomerAttributes {\n customerAttributes?: React.ReactNode;\n}\n\nexport interface IAccountProfileViewProps extends IAccountProfileProps {\n AccountProfile: IModuleProps;\n accountProfileWrapper?: INodeProps;\n className: string;\n heading?: React.ReactNode;\n emailSection: IAccountProfileItem;\n nameSection: IAccountProfileItem;\n preferenceSection: IAccountPreferences;\n customerAttributesWrapper?: INodeProps;\n customerAttributesSection?: IAccountCustomerAttributes;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * AccountProfile component.\n * @extends {React.Component>}\n */\n@observer\nclass AccountProfile extends React.Component> {\n @observable private isUpdatingPreference: boolean = false;\n\n private readonly telemetryContent?: ITelemetryContent;\n private readonly payLoad: IPayLoad;\n private readonly editAsyncCustomerFeatureName: string = 'Dynamics.AX.Application.RetailEnableAsyncCustomerEditFeature';\n\n private isEditAsyncCustomerFeatureEnabled: boolean = false;\n\n constructor(props: IAccountProfileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.payLoad = getPayloadObject('click', this.telemetryContent, '');\n }\n\n public shouldComponentUpdate(nextProps: IAccountProfileProps): boolean {\n if (this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, emailAddressSectionHeading, nameSectionHeading, showAttributes, showPhone, showVatNumber } = config;\n\n const { editButtonText, editButtonAriaLabel } = resources;\n const customerInformation = data.customerInformation.result;\n\n this.isEditAsyncCustomerFeatureEnabled =\n data.featureState?.result?.find(feature => feature.Name === this.editAsyncCustomerFeatureName)?.IsEnabled || false;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false) &&\n !this.isEditAsyncCustomerFeatureEnabled;\n\n // As per the design, phone and vat numbers are part of the profile attributes section\n const shouldRenderAttributes = (showAttributes && showAttributes.length > 0) || showPhone || showVatNumber || false;\n const editLink: ILinksData = {\n linkUrl: {\n destinationUrl: get(this.props, 'context.request.user.editProfileUrl', '')\n },\n linkText: editButtonText,\n ariaLabel: editButtonAriaLabel,\n isDisabled: invalidAsyncCustomerState\n };\n\n const viewProps = {\n ...this.props,\n className,\n AccountProfile: {\n moduleProps: this.props,\n className: classnames('ms-account-profile', config.className)\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n accountProfileWrapper: {\n className: classnames('ms-account-profile-wrapper')\n },\n heading: heading && (\n \n ),\n emailSection: this._renderEmailSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-email'),\n emailAddressSectionHeading as IEmailAddressSectionHeadingData,\n customerInformation && customerInformation.Email\n ),\n nameSection: this._renderNameSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-name'),\n nameSectionHeading as INameSectionHeadingData,\n this.getDescription(customerInformation),\n Msdyn365.isOboRequest(this.props.context.request) ? undefined : [editLink]\n ),\n preferenceSection: this._renderPreferenceSection(\n classnames('ms-account-profile__section', 'ms-account-profile__section-preferences'),\n invalidAsyncCustomerState,\n customerInformation\n ),\n customerAttributesWrapper: {\n className: classnames('ms-account-profile__attributes-wrapper')\n },\n customerAttributesSection: shouldRenderAttributes && this._renderCustomerAttributes()\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleEmailHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.emailAddressSectionHeading!.text = event.target.value);\n\n public handleNameHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.nameSectionHeading!.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.resources.editButtonText) {\n this.props.resources.editButtonText = event.target.value;\n }\n };\n\n @computed get editProfileUrl(): string {\n return get(this.props, 'context.request.user.editProfileUrl', '');\n }\n\n private getDescription(customerInformation: Customer | undefined): string {\n let description = '';\n if (customerInformation !== undefined) {\n if (customerInformation.FirstName) {\n description += customerInformation.FirstName;\n }\n if (customerInformation.LastName) {\n description += customerInformation.FirstName ? ` ${customerInformation.LastName}` : customerInformation.LastName;\n }\n }\n return description;\n }\n\n private _renderEmailSection(\n className: string,\n heading?: IEmailAddressSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private _renderNameSection(\n className: string,\n heading?: INameSectionHeadingData,\n description?: string,\n links?: ILinksData[]\n ): IAccountProfileItem {\n if (!ArrayExtensions.hasElements(links)) {\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n description: description && (\n \n )\n };\n }\n return {\n AccountProfileItem: {\n className\n },\n heading: heading && (\n \n ),\n links: (\n \n ),\n description: description && (\n \n )\n };\n }\n\n private readonly onClickEventHandler = (className: string) => async () => {\n return this._updateAccountPersonalization(className);\n };\n\n private _renderPreferenceSection(\n className: string,\n invalidAsyncCustomerState: boolean,\n customerInformation?: Customer\n ): IAccountPreferences | null {\n const {\n personalizationDescription,\n personalizationEnableButtonAriaLabel,\n webTrackingDescription,\n webTrackingEnableButtonAriaLabel\n } = this.props.resources;\n const { preferencesSectionHeading, personalizationSectionHeading, webTrackingSectionHeading } = this.props.config;\n const { enableDataAnalytics } = this.props.context.request.features;\n const extraPreferences: IAccountPreference[] = [];\n\n if (!customerInformation) {\n this.props.context.telemetry.error('Account profile data is empty, module wont render');\n return null;\n }\n\n // Show browser activity login preference if switch is enabled AND a heading is provided\n enableDataAnalytics &&\n webTrackingSectionHeading &&\n extraPreferences.push(\n this._renderPreference(\n 'web-tracking',\n webTrackingSectionHeading as IHeadingData,\n webTrackingEnableButtonAriaLabel,\n webTrackingDescription,\n customerInformation.OptOutWebActivityTracking || false,\n invalidAsyncCustomerState\n )\n );\n\n return {\n accountPreferences: {\n className\n },\n heading: preferencesSectionHeading && (\n \n ),\n personalization: this._renderPreference(\n 'personalization',\n personalizationSectionHeading as IHeadingData,\n personalizationEnableButtonAriaLabel,\n personalizationDescription,\n customerInformation.OptOutPersonalization || false,\n invalidAsyncCustomerState\n ),\n extraPreferences: extraPreferences || undefined\n };\n }\n\n private readonly _renderPreference = (\n className: string,\n sectionHeading: IHeadingData,\n enableAriaLabel: string,\n description: string,\n isOptOut: boolean,\n disableBtn: boolean\n ) => {\n const { toggleDisableText, toggleEnableText } = this.props.resources;\n const toggleState = isOptOut ? 'disable' : 'enable';\n const onClickHandler = this.onClickEventHandler(className);\n this.payLoad.contentAction.etext = sectionHeading.text;\n const attributes = getTelemetryAttributes(this.telemetryContent!, this.payLoad);\n\n return {\n accountPreference: {\n className: classnames('ms-account-profile__preference', `ms-account-profile__preference-${className}`, {\n 'ms-account-profile__personalization-updating': this.isUpdatingPreference\n })\n },\n heading: sectionHeading && (\n \n ),\n buttonWrapper: {\n className: classnames('ms-account-profile__toggle-wrapper', `ms-account-profile__toggle-${toggleState}`, {\n // Disable the toggle completely if customer is async.\n 'ms-account-profile__toggle-disabled': disableBtn\n })\n },\n buttonYesText: ,\n buttonNoText: ,\n button: (\n \n ),\n description: ,\n onUpdateAccountPreference: async () => this._updateAccountPersonalization(className)\n };\n };\n\n private readonly _updateAccountPersonalization = async (preferenceType?: string) => {\n const customerInformation = this.props.data.customerInformation.result;\n\n if (customerInformation) {\n const {\n telemetry,\n context: { request, actionContext }\n } = this.props;\n\n let isOptOutPersonalization = false;\n let input;\n\n switch (preferenceType) {\n case 'web-tracking':\n isOptOutPersonalization = customerInformation.OptOutWebActivityTracking || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n break;\n case undefined:\n case 'personalization':\n default:\n isOptOutPersonalization = customerInformation.OptOutPersonalization || false;\n input = new updateCustomerPersonalizationInput(\n customerInformation.AccountNumber,\n !isOptOutPersonalization,\n request.apiSettings,\n preferenceType\n );\n }\n\n this.isUpdatingPreference = true;\n\n try {\n await updateCustomerPersonalization(input, actionContext);\n } catch (error) {\n if (telemetry) {\n telemetry.exception(error);\n telemetry.debug('Unable to update customer personalization');\n }\n }\n\n this.isUpdatingPreference = false;\n }\n };\n\n private readonly _renderCustomerAttributes = (): React.ReactNode => {\n return ;\n };\n}\n\nexport default AccountProfile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } 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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountOrderTemplatesTileViewProps } from './account-order-templates-tile';\n\nconst AccountOrderTemplatesTileView: React.FC = props => {\n const { AccountOrderTemplatesTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountOrderTemplatesTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { 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 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 { ExtensibleEnumeration } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport * as React from 'react';\n\nimport { IOrderLookupResources, IOrderLookupSearchAdditionalFieldsData } from '../order-lookup.props.autogenerated';\n\n/**\n * Render label.\n * @param className - Classname for label.\n * @param value - Text for label.\n * @returns -The JSX Element.\n */\nexport const labelGroup = (className: string, value: string): JSX.Element => {\n return
{value}
;\n};\n\n/**\n * Error label.\n * @param responseErrorMessage - Error message for label.\n * @param errorMessageClassName - Error message for class name.\n * @returns - Error ReactNode.\n */\nexport const renderErrorLabel = (responseErrorMessage: string, errorMessageClassName: string): React.ReactNode => {\n return responseErrorMessage &&
{responseErrorMessage}
;\n};\n\n/**\n * Registered user message.\n * @param resources - Resource values.\n * @param signInUrl - Signin url.\n * @param signInLinkClassName - Signin link classname.\n * @param registeredUserClassName - Registered user message classname.\n * @returns - ReactNode.\n */\nexport const renderRegisteredUserMessage = (\n resources: IOrderLookupResources,\n signInUrl: string,\n signInLinkClassName: string,\n registeredUserClassName: string\n): React.ReactNode => {\n const { orderLookupRegisteredUserText, orderLookupViewAccountText, orderLookupSignInLinkText } = resources;\n const message: string = orderLookupRegisteredUserText;\n const infoMessage: string = orderLookupViewAccountText;\n const signInText: string = orderLookupSignInLinkText;\n return (\n
\n {message}\n \n {signInText}\n \n {infoMessage}\n
\n );\n};\n\n/**\n * EmailValid submit.\n * @param email - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n};\n\n/**\n * Additional field validation for on submit.\n * @param name - Onsubmit of form and button click.\n * @returns - Boolean.\n */\nexport const isAdditionalFieldValid = (name: string): boolean => {\n const regEx = new RegExp('^(?!\\\\s)[A-Za-z0-9\\\\s]+$', 'u');\n return regEx.test(name);\n};\n\n/**\n * Validate order lookup field against extensible enum.\n * @param orderStatusLookUpParameter - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupField = (\n orderStatusLookUpParameter: string,\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidField: boolean = false;\n for (const item of orderLookupExtensibleEnum) {\n if (item.Name.toLocaleLowerCase() === orderStatusLookUpParameter.toLocaleLowerCase()) {\n isValidField = true;\n return isValidField;\n }\n }\n return isValidField;\n};\n\n/**\n * Validate order lookup additional fields with proxy values.\n * @param value - Value to be validated.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateAdditionalFieldWithProxy = (value: string, orderLookupExtensibleEnum: ExtensibleEnumeration[]): boolean => {\n return !orderLookupExtensibleEnum.some(item => item.Name.toLocaleLowerCase() === value.toLocaleLowerCase());\n};\n\n/**\n * Validate order lookup additional fields against extensible enum.\n * @param orderStatusLookUpAdditionalParameters - Order lookup parameter.\n * @param orderLookupExtensibleEnum - Order lookup extensible enum.\n * @returns - Boolean.\n */\nexport const validateOrderLookupAdditionalField = (\n orderStatusLookUpAdditionalParameters: IOrderLookupSearchAdditionalFieldsData[],\n orderLookupExtensibleEnum: ExtensibleEnumeration[]\n): boolean => {\n let isValidAdditionalField: boolean = false;\n if (ArrayExtensions.hasElements(orderStatusLookUpAdditionalParameters)) {\n orderStatusLookUpAdditionalParameters.map(item => {\n const fieldKey: string = item.fieldKey ?? '';\n if (!isValidAdditionalField) {\n isValidAdditionalField = validateAdditionalFieldWithProxy(fieldKey, orderLookupExtensibleEnum);\n }\n return isValidAdditionalField;\n });\n } else {\n isValidAdditionalField = false;\n }\n return isValidAdditionalField;\n};\n\n/**\n * Render validation message if field does not matches with extensible enum.\n * @param orderLookupFieldValidationErrorMessage - Order lookup validation message.\n * @returns - ReactNode.\n */\nexport const renderFieldErrors = (orderLookupFieldValidationErrorMessage: string): React.ReactNode => {\n return
{orderLookupFieldValidationErrorMessage}
;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Additional input field props.\n */\nexport interface IOrderLookupAdditionalFieldInfoInput {\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n additionalFieldLabel: string;\n additionalFieldLabelClassName: string;\n isValidAdditionalFieldName: boolean;\n additionalFieldValidationMessage: string;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup additional field props.\n */\nexport interface IOrderLookupAdditionalFieldInfo {\n additionalFieldLabel: React.ReactNode;\n additionalFieldInput: React.ReactNode;\n additionalFieldError: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupAdditionalFieldInput component.\n */\n@observer\nexport default class RenderOrderLookupAdditionalFieldInput extends React.Component {\n public constructor(props: IOrderLookupAdditionalFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupAdditionalFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupAdditionalFields().additionalFieldLabel}\n {this._getOrderLookupAdditionalFields().additionalFieldError}\n {this._getOrderLookupAdditionalFields().additionalFieldInput}\n
\n );\n }\n\n /**\n * Function to create the order lookup additional fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupAdditionalFields(): IOrderLookupAdditionalFieldInfo {\n return {\n additionalFieldLabel: labelGroup(this.props.additionalFieldLabelClassName, this.props.additionalFieldLabel),\n additionalFieldInput: (\n
\n \n
\n ),\n additionalFieldError: (\n
\n {!this.props.isValidAdditionalFieldName ? this.props.additionalFieldValidationMessage : ''}\n
\n )\n };\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { labelGroup } from '../utilities/order-lookup-utility';\n\n/**\n * Input field props.\n */\nexport interface IOrderLookupFieldInfoInput {\n inputReference?: React.RefObject;\n className: string;\n ariaLabel: string;\n inputType: string;\n value: string;\n name: string;\n orderLookupLabel: string;\n orderLookupLabelClassName: string;\n fieldErrorClassName: string;\n isInputTypeError: boolean;\n isValidInputField: boolean;\n renderAlert(className: string): JSX.Element;\n onChange(event: React.ChangeEvent): void;\n}\n\n/**\n * Order lookup field props.\n */\nexport interface IOrderLookupFieldInfo {\n label: React.ReactNode;\n input: React.ReactNode;\n error: React.ReactNode;\n}\n\n/**\n * RenderOrderLookupInputs component.\n */\n@observer\nexport default class RenderOrderLookupFormFields extends React.Component {\n public constructor(props: IOrderLookupFieldInfoInput) {\n super(props);\n }\n\n public shouldComponentUpdate(nextProps: IOrderLookupFieldInfoInput): boolean {\n if (this.props === nextProps) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | undefined {\n return (\n
\n {this._getOrderLookupFields().label}\n {this._getOrderLookupFields().error}\n {this._getOrderLookupFields().input}\n
\n );\n }\n\n /**\n * Function to create the order lookup fields.\n * @returns IOrderLookupFieldInfo.\n */\n private _getOrderLookupFields(): IOrderLookupFieldInfo {\n return {\n label: labelGroup(this.props.orderLookupLabelClassName, this.props.orderLookupLabel),\n input: (\n
\n \n
\n ),\n error: (\n
\n {this.props.isInputTypeError ? this.props.renderAlert(this.props.name) : ''}\n {this.props.isValidInputField ? this.props.renderAlert(this.props.name) : ''}\n
\n )\n };\n }\n}\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { IActionContext } from '@msdyn365-commerce/core-internal';\nimport { ExtensibleEnumeration, StoreOperationsDataActions } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport RenderOrderLookupAdditionalFieldInput from './components/order-lookup-additional-fields';\nimport RenderOrderLookupFormFields from './components/order-lookup-fields';\nimport {\n IOrderLookupProps,\n IOrderLookupSearchAdditionalFieldsData,\n orderStatusLookUpParametersType as orderStatusLookUpParametersTypes\n} from './order-lookup.props.autogenerated';\nimport {\n isAdditionalFieldValid,\n isEmailValid,\n renderErrorLabel,\n renderFieldErrors,\n renderRegisteredUserMessage,\n validateOrderLookupAdditionalField,\n validateOrderLookupField\n} from './utilities/order-lookup-utility';\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupViewProps extends IOrderLookupProps<{}> {\n additionalProperties: JSX.Element[] | undefined;\n orderLookup: IModuleProps;\n orderLookupContainer: INodeProps;\n orderLookupAdditionalFieldContainer: INodeProps;\n paragraph?: React.ReactNode;\n heading?: React.ReactNode;\n submitButton?: INodeProps;\n submitButtonLabelText?: string;\n orderLookupForm?: INodeProps;\n renderOrderLookupInputField: JSX.Element | undefined;\n orderNumberInput?: JSX.Element | undefined;\n errorMessage?: React.ReactNode;\n fieldErrorMessage?: React.ReactNode;\n registeredUserMessage?: React.ReactNode;\n onChange?(event: React.ChangeEvent): void;\n submit?(): void;\n}\n\n/**\n * OrderLookupSearchValues -- supported values.\n */\nenum OrderLookupSearchValues {\n email = 'email',\n ordernumber = 'ordernumber'\n}\n\n/**\n * To render and handle state for additional order lookup fields.\n */\nexport interface IOrderLookupAdditionalFields {\n labelName: string;\n isValidFieldName: boolean;\n fieldValue: string;\n ariaLabel: string;\n additionalfieldErrorMessage: string;\n}\n\n/**\n * OrderLookup view props.\n */\nexport interface IOrderLookupFormState {\n orderNumber: string;\n email: string;\n isOrdNumberError: boolean;\n isEmailError: boolean;\n isValidEmailError: boolean;\n isReqError: boolean;\n isDisabled: boolean;\n isValidLookupField: boolean;\n isValidAdditionalLookupField: boolean;\n responseErrorMessage: string;\n additionalProperties: IOrderLookupAdditionalFields[];\n}\n\n/**\n *\n * OrderLookup component.\n * @extends {React.PureComponent>}\n */\nclass OrderLookup extends React.PureComponent, IOrderLookupFormState> {\n public orderNumberInputRef: React.RefObject;\n\n public emailInputRef: React.RefObject;\n\n public isEmailValue: boolean = false;\n\n private requiredErrorMessage: string | undefined;\n\n private emailValidationErrorMessage: string | undefined;\n\n private isOrderNumberValue: boolean = false;\n\n private orderLookupExtensibleEnum: ExtensibleEnumeration[] = [];\n\n public constructor(props: IOrderLookupProps<{}>) {\n super(props);\n this.orderNumberInputRef = React.createRef();\n this.emailInputRef = React.createRef();\n const { config } = this.props;\n const { orderLookupSearchAdditionalFields } = config;\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n\n if (orderLookupSearchAdditionalFields) {\n for (const item of orderLookupSearchAdditionalFields) {\n additionalPropertyStates.push({\n labelName: item.labelName ?? '',\n isValidFieldName: true,\n fieldValue: '',\n ariaLabel: item.ariaLabel ?? '',\n additionalfieldErrorMessage: item.validationMessage ?? ''\n });\n }\n }\n\n this.state = {\n orderNumber: '',\n email: '',\n isOrdNumberError: false,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false,\n isDisabled: true,\n isValidLookupField: true,\n isValidAdditionalLookupField: false,\n responseErrorMessage: '',\n additionalProperties: additionalPropertyStates\n };\n }\n\n public render(): JSX.Element | null {\n const {\n config: { paragraph, heading },\n resources,\n context\n } = this.props;\n\n const {\n orderLookupDefaultHeadingText,\n orderLookupButtonLabel,\n orderLookupFormAriaLabel,\n orderLookupOrderNumberLabel,\n orderLookupOrderNumberAriaLabel,\n orderLookupSubmitAriaLabel,\n orderLookupFieldValidationErrorMessage\n } = resources;\n\n const { responseErrorMessage, isDisabled, orderNumber, isOrdNumberError } = this.state;\n\n const headingText = StringExtensions.isNullOrEmpty(heading?.text) ? orderLookupDefaultHeadingText : heading?.text;\n const headingTag = heading?.tag ?? 'h1';\n\n const moduleClassName = 'ms-order-lookup';\n const orderLookupContainerClassName = `${moduleClassName}__details`;\n const orderLookupHeadingClassName = `${orderLookupContainerClassName}__heading`;\n const orderLookupFormClassName = `${orderLookupContainerClassName}__form`;\n const orderLookupAdditionalFiledContainerClassName = `${orderLookupFormClassName}__additional-fields-container`;\n const orderLookupFormFieldsClassName = `${orderLookupFormClassName}__fields`;\n const orderNumberLabelClassName = `${orderLookupFormFieldsClassName}__order-number-label`;\n const orderNumberInputErrorClassName = `${orderLookupFormFieldsClassName}__order-number-input-error`;\n const submitButtonClassName = `${orderLookupFormClassName}__submit`;\n const labelErrorMessageClassName = `${moduleClassName}__error-message`;\n const registeredUserClassName = `${moduleClassName}__registered-user`;\n const signinLinkClassName = `${registeredUserClassName}__sign-in-link msc-btn`;\n\n const orderLookupHeading = (\n \n );\n\n const viewProps: IOrderLookupViewProps = {\n ...this.props,\n orderLookup: {\n moduleProps: this.props,\n className: moduleClassName\n },\n\n orderLookupContainer: {\n className: orderLookupContainerClassName\n },\n orderLookupAdditionalFieldContainer: {\n className: orderLookupAdditionalFiledContainerClassName\n },\n paragraph: paragraph && this._createParagraph(paragraph),\n heading: orderLookupHeading,\n\n renderOrderLookupInputField: this._renderOrderLookupInput(),\n orderLookupForm: {\n className: orderLookupFormClassName,\n tag: 'form',\n 'aria-label': orderLookupFormAriaLabel,\n name: 'orderLookupForm',\n role: 'form',\n autoComplete: 'off',\n onSubmit: this.handleSubmit\n },\n orderNumberInput: (\n \n ),\n\n submitButton: {\n className: submitButtonClassName,\n tag: Button,\n 'aria-label': orderLookupSubmitAriaLabel,\n type: 'submit',\n role: 'button',\n title: orderLookupButtonLabel,\n onClick: this.handleSubmit,\n disabled: isDisabled\n },\n\n submitButtonLabelText: orderLookupButtonLabel,\n errorMessage: renderErrorLabel(responseErrorMessage, labelErrorMessageClassName),\n fieldErrorMessage:\n (!this.state.isValidLookupField || this.state.isValidAdditionalLookupField) &&\n renderFieldErrors(orderLookupFieldValidationErrorMessage),\n registeredUserMessage: renderRegisteredUserMessage(\n resources,\n context.request.user.signInUrl ?? '',\n signinLinkClassName,\n registeredUserClassName\n ),\n onChange: this.onChange,\n submit: this.handleSubmit,\n additionalProperties: this._renderAdditionalFields()\n };\n return this.props.renderView(viewProps);\n }\n\n public async componentDidMount(): Promise {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { orderStatusLookUpParametersType, orderLookupSearchAdditionalFields } = config;\n let isOrderLookupAdditionalFieldValid: boolean = false;\n let isOrderLookupFieldValid: boolean = false;\n\n const getExtensibleEnumerations = await StoreOperationsDataActions.getExtensibleEnumerationsAsync({ callerContext: actionContext });\n this.orderLookupExtensibleEnum =\n getExtensibleEnumerations.find(item => item.TypeName === 'OrderLookupAdditionalCriteriaType')?.ExtensibleEnumerations ?? [];\n\n const orderLookupParameter: string = orderStatusLookUpParametersType ?? '';\n const orderLookupAdditionalParameter: IOrderLookupSearchAdditionalFieldsData[] = orderLookupSearchAdditionalFields ?? [];\n\n isOrderLookupFieldValid = validateOrderLookupField(orderLookupParameter, this.orderLookupExtensibleEnum);\n isOrderLookupAdditionalFieldValid = validateOrderLookupAdditionalField(\n orderLookupAdditionalParameter,\n this.orderLookupExtensibleEnum\n );\n this.setLookupFieldState(isOrderLookupFieldValid, isOrderLookupAdditionalFieldValid);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\n const { config } = this.props;\n config.paragraph = event.target.value;\n };\n\n /**\n * Sets isValidLookupField after validating with extensible emun.\n * @param isValidField - Sets the property.\n * @param isValidAdditionalField - Sets the additional field property.\n */\n public setLookupFieldState(isValidField: boolean, isValidAdditionalField: boolean): void {\n this.setState({ isValidLookupField: isValidField, isValidAdditionalLookupField: isValidAdditionalField });\n }\n\n /**\n * HandleSubmit submit.\n */\n public readonly handleSubmit = (): void => {\n const { config, context } = this.props;\n const { actionContext } = context;\n const { additionalProperties, orderNumber, email } = this.state;\n const orderLookupValue = email;\n const { orderStatusLookUpParametersType } = config;\n const orderLookupName = orderStatusLookUpParametersType !== undefined ? orderStatusLookUpParametersType : '';\n const isValid: boolean = this._validateOrderLookupForm();\n if (isValid) {\n const actionContextValue: IActionContext = actionContext;\n const orderDetailsPath = Msdyn365.getUrlSync('orderDetails', actionContextValue) ?? '';\n if (orderDetailsPath) {\n const baseUrl = new URL(window.location.origin);\n const redirectUrl = new URL(orderDetailsPath, baseUrl);\n const searchParameters = redirectUrl.searchParams;\n\n searchParameters.set('confirmationId', orderNumber);\n searchParameters.set('propertyName', orderLookupName);\n searchParameters.set('propertyValue', orderLookupValue);\n\n if (ArrayExtensions.hasElements(additionalProperties)) {\n additionalProperties.map((item, index) => {\n const fieldName = !StringExtensions.isNullOrWhitespace(item.ariaLabel)\n ? item.ariaLabel.replace(' ', '').toLocaleLowerCase()\n : '';\n const fieldValue = !StringExtensions.isNullOrWhitespace(item.fieldValue) ? item.fieldValue : '';\n searchParameters.set(`field${index + 1}Name`, fieldName);\n searchParameters.set(`field${index + 1}Value`, fieldValue);\n return item;\n });\n }\n\n window.location.assign(redirectUrl.toString());\n }\n }\n };\n\n /**\n * OnChange event.\n * @param event - Value of input field.\n */\n public readonly onChange = (event: React.ChangeEvent): void => {\n const { additionalProperties } = this.state;\n const { config } = this.props;\n const { orderStatusLookUpParametersType } = config;\n const name = event.target.name || '';\n const value = event.target.value || '';\n this.isOrderNumberValue = !StringExtensions.isNullOrWhitespace(this.orderNumberInputRef.current?.value);\n this.isEmailValue = !StringExtensions.isNullOrWhitespace(this.emailInputRef.current?.value);\n\n if (orderStatusLookUpParametersType?.toLocaleLowerCase() === 'none') {\n this.isEmailValue = true;\n }\n\n this.setState({ responseErrorMessage: '' });\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isAdditionalFieldError: boolean = true as boolean;\n let isKeyExistInAdditionalFieldArray: boolean = false as boolean;\n\n for (const item of additionalProperties) {\n const fieldName: string = item.ariaLabel.replace(' ', '');\n if (fieldName.toLocaleLowerCase() === name.toLocaleLowerCase()) {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: true,\n fieldValue: value,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n } else {\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: item.isValidFieldName,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n if (fieldName.toLocaleLowerCase() === orderStatusLookUpParametersType?.toLocaleLowerCase()) {\n isKeyExistInAdditionalFieldArray = true;\n }\n }\n\n for (const items of additionalPropertyStates) {\n if (StringExtensions.isNullOrWhitespace(items.fieldValue)) {\n isAdditionalFieldError = false;\n }\n }\n\n this.setState({ additionalProperties: additionalPropertyStates });\n\n if (!isKeyExistInAdditionalFieldArray) {\n switch (name.toLocaleLowerCase()) {\n case OrderLookupSearchValues.ordernumber: {\n this.setState({\n orderNumber: value,\n isOrdNumberError: false,\n isReqError: false\n });\n break;\n }\n case OrderLookupSearchValues.email: {\n this.setState({\n email: value,\n isEmailError: false,\n isValidEmailError: false,\n isReqError: false\n });\n break;\n }\n default: {\n this.setState({ isReqError: false });\n }\n }\n }\n\n if (\n this.isOrderNumberValue &&\n this.isEmailValue &&\n isAdditionalFieldError &&\n this.state.isValidLookupField &&\n !this.state.isValidAdditionalLookupField\n ) {\n this.setState({ isDisabled: false });\n } else {\n this.setState({ isDisabled: true });\n }\n };\n\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\n const { context } = this.props;\n const { request } = context;\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n /**\n * Render order lookup validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupEmailValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isEmailError, email, isValidEmailError, isReqError } = this.state;\n if (isEmailError) {\n this.requiredErrorMessage = orderLookupRequiredTextErrorMessage;\n }\n\n if (!StringExtensions.isNullOrEmpty(email) && isValidEmailError) {\n this.emailValidationErrorMessage = orderLookupEmailValidationErrorMessage;\n }\n\n const isRequireError = isReqError;\n const isEmailValidError = isValidEmailError;\n const isValidEmailInput = className.toLocaleLowerCase() === OrderLookupSearchValues.email;\n return (\n <>\n {isRequireError && (\n \n {this.requiredErrorMessage}\n \n )}\n {isEmailValidError && isValidEmailInput && (\n \n {this.emailValidationErrorMessage}\n \n )}\n \n );\n };\n\n /**\n * Render order number validation message.\n * @param className - Class name for error field.\n * @returns - JSX.Element.\n */\n private readonly _renderOrderNumberAlert = (className: string): JSX.Element => {\n const {\n resources: { orderLookupOrderNumberValidationErrorMessage, orderLookupRequiredTextErrorMessage }\n } = this.props;\n\n const { isOrdNumberError, isReqError } = this.state;\n return (\n <>\n {isReqError && (\n \n {orderLookupRequiredTextErrorMessage}\n \n )}\n {isOrdNumberError && (\n \n {orderLookupOrderNumberValidationErrorMessage}\n \n )}\n \n );\n };\n\n private _renderAdditionalFields(): JSX.Element[] | undefined {\n const { additionalProperties } = this.state;\n const additionalFieldsInput: JSX.Element[] = [];\n for (const item of additionalProperties) {\n const name: string = item.ariaLabel.replace(' ', '');\n additionalFieldsInput.push(\n \n );\n }\n return additionalFieldsInput;\n }\n\n /**\n * Render Input field for order lookup.\n * @returns - IOrderLookupFieldInfo.\n */\n private readonly _renderOrderLookupInput = (): JSX.Element | undefined => {\n const { email, isEmailError, isValidEmailError } = this.state;\n const {\n config: { orderStatusLookUpParametersType },\n resources: { orderLookupEmailLabel, orderLookupEmailAriaLabel }\n } = this.props;\n\n switch (orderStatusLookUpParametersType) {\n case orderStatusLookUpParametersTypes.none:\n return undefined;\n case orderStatusLookUpParametersTypes.email:\n default:\n return (\n \n );\n }\n };\n\n /**\n * _validation for additional fields.\n * @returns - Returns IOrderLookupAdditionalFields[].\n */\n private readonly _additionalFieldValidation = (): IOrderLookupAdditionalFields[] => {\n const additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n for (const item of this.state.additionalProperties) {\n const isFieldValid: boolean = !StringExtensions.isNullOrWhitespace(item.fieldValue) && isAdditionalFieldValid(item.fieldValue);\n additionalPropertyStates.push({\n labelName: item.labelName,\n isValidFieldName: isFieldValid,\n fieldValue: item.fieldValue,\n ariaLabel: item.ariaLabel,\n additionalfieldErrorMessage: item.additionalfieldErrorMessage\n });\n }\n return additionalPropertyStates;\n };\n\n /**\n * _validateOrderLookupForm submit.\n * @returns - Returns boolean.\n */\n private readonly _validateOrderLookupForm = (): boolean => {\n const { config } = this.props;\n const { orderNumber, email } = this.state;\n const { orderStatusLookUpParametersType } = config;\n let additionalPropertyStates: IOrderLookupAdditionalFields[] = [];\n let isValid = false;\n let isDisable = false;\n\n if (ArrayExtensions.hasElements(this.state.additionalProperties)) {\n additionalPropertyStates = this._additionalFieldValidation();\n for (const item of additionalPropertyStates) {\n if (!item.isValidFieldName) {\n isDisable = true;\n }\n }\n\n if (isDisable) {\n this.setState({\n additionalProperties: additionalPropertyStates,\n isDisabled: true\n });\n }\n }\n\n if (StringExtensions.isNullOrWhitespace(orderNumber)) {\n this.setState({\n isOrdNumberError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderNumber.trim() !== orderNumber) {\n this.setState({\n isOrdNumberError: true,\n isReqError: false,\n isDisabled: true\n });\n } else if (\n orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email &&\n StringExtensions.isNullOrWhitespace(email)\n ) {\n this.setState({\n isEmailError: true,\n isReqError: true,\n isDisabled: true\n });\n } else if (orderStatusLookUpParametersType === orderStatusLookUpParametersTypes.email && !isEmailValid(email)) {\n this.setState({\n isValidEmailError: true,\n isDisabled: true\n });\n } else if (isDisable || !this.state.isValidLookupField || this.state.isValidAdditionalLookupField) {\n this.setState({\n isDisabled: true\n });\n } else {\n this.setState({\n isDisabled: false\n });\n isValid = true;\n }\n return isValid;\n };\n}\n\nexport default OrderLookup;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata =\n productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\n\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n {rowdata}\n \n \n ) : null;\n};\n\nexport default ProductSpecificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from './business-organization-list';\nimport { IBusinessFormItem } from './components/small-components';\n\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage &&\n errorMessage.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n const { FirstName, LastName } = selectedUser;\n const userFullName = `${FirstName} ${LastName}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = resources[`table${data}HeadingText`] || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n \n \n );\n }\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\nconst _getForm = (type: string, formProps: IFormViewProps, toggleModal?: () => void) => {\n switch (type) {\n case 'ADD':\n case 'EDIT':\n return ;\n case 'VIEW':\n case 'REMOVE':\n return ;\n default:\n return null;\n }\n};\n\nconst _renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\nconst BusinessOrganizationList: React.FC = props => {\n const {\n OrganizationUserList,\n moduleContainer,\n heading,\n noUsersText,\n addUserButton,\n organizationListTable,\n form,\n formType,\n toggleModal,\n requestAccountStatementButton,\n requestStatementModal\n } = props;\n\n const ButtonList: React.ReactNode = (\n \n {addUserButton}\n {requestAccountStatementButton}\n \n );\n\n if (noUsersText) {\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {noUsersText}\n \n \n );\n }\n\n return (\n \n \n {heading}\n {ButtonList}\n {requestStatementModal}\n {organizationListTable}\n \n {form && _getForm(formType, form, toggleModal)}\n \n );\n};\n\nexport default BusinessOrganizationList;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as 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 Msdyn365, {\n ContentEditableEvent,\n generateImageUrl,\n getCatalogId,\n getUrlSync,\n Image,\n RichTextComponent,\n Text\n} from '@msdyn365-commerce/core';\nimport { MediaLocation, ProductCatalog } from '@msdyn365-commerce/retail-proxy';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ICatalogPickerData } from './catalog-picker.data';\nimport { ICatalogPickerProps } from './catalog-picker.props.autogenerated';\n\n/**\n * ICatalogPickerViewProps.\n */\nexport interface ICatalogPickerViewProps extends ICatalogPickerProps {\n catalogPicker: IModuleProps;\n heading: React.ReactNode;\n paragraph: React.ReactNode;\n catalogs: ReactNode;\n}\n\n/**\n * CatalogPicker component.\n * @extends {React.PureComponent>}\n */\nexport class CatalogPicker extends React.PureComponent> {\n private static readonly _moduleClassName = 'ms-catalog-picker';\n\n public constructor(props: ICatalogPickerViewProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { heading, paragraph } = this.props.config;\n\n const catalogPickerHeading = heading && (\n \n );\n\n const isCatalogsAvailable: boolean = ArrayExtensions.hasElements(this.props.data.catalogs?.result);\n const catalogPickerParagraph = paragraph && (\n \n );\n const viewProps = {\n ...this.props,\n handleText: this.handleTextChange,\n catalogPicker: {\n moduleProps: this.props,\n className: CatalogPicker._moduleClassName\n },\n heading: catalogPickerHeading,\n paragraph: catalogPickerParagraph,\n catalogs: isCatalogsAvailable ? this._renderCatalogPicker() : ''\n };\n\n return this.props.renderView(viewProps);\n }\n\n /**\n * Handle text change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleTextChange = (event: ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n /**\n * Handle paragraph change.\n * @param event - The dialog that is allowed to remain open.\n */\n public handleParagraphChange = (event: ContentEditableEvent): void => {\n this.props.config.paragraph = event.target.value;\n };\n\n private _renderCatalogPickerButton(item: ProductCatalog): React.ReactNode {\n const catalogId = item.RecordId;\n const currentCatalogId = getCatalogId(this.props.context.request);\n if (currentCatalogId === catalogId) {\n return
{this.props.resources.currentCatalogText}
;\n }\n let linkToCatalog = '';\n if (Msdyn365.isBrowser) {\n const catalogUrl = getUrlSync('home', this.props.context.actionContext) ?? '';\n const fullUrl = new URL(catalogUrl, window.location.href);\n fullUrl.searchParams.set('catalogid', `${catalogId}`);\n linkToCatalog = fullUrl.href;\n }\n return (\n \n {this.props.resources.changeCatalogButtonText}\n \n );\n }\n\n private _renderCatalogPicker(): React.ReactNode {\n const catalogs = this.props.data.catalogs?.result;\n\n const isBrowser = Msdyn365.isBrowser;\n\n return (\n
\n {catalogs?.map(item => {\n const reactKey = `${JSON.stringify(item)}-${String(isBrowser)}`;\n const image: MediaLocation | undefined = ArrayExtensions.firstOrDefault(item.Images);\n return (\n \n

{item.Name}

\n
\n \n
\n {this._renderCatalogPickerButton(item)}\n
\n
\n
\n );\n })}\n \n );\n }\n}\n\nexport default CatalogPicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\n };\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n }\n\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\nexport default ContentCardLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n\n let contentBlockImageSettings: Msdyn365.IImageSettings | undefined;\n\n if (image && image.imageSettings && !image.imageSettings.backgroundColor && this.props.config.backgroundColor) {\n contentBlockImageSettings = {\n ...image?.imageSettings,\n backgroundColor: this.props.config.backgroundColor\n };\n } else {\n contentBlockImageSettings = image?.imageSettings;\n }\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: contentBlockImageSettings\n };\n\n const contentBlockImage = (\n \n );\n\n const contentBlockContainerStyle: React.CSSProperties | undefined = this.props.config.backgroundColor\n ? { backgroundColor: this.props.config.backgroundColor }\n : undefined;\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className),\n style: contentBlockContainerStyle\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\n
\n \n \n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n isAdditionalMediaDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n isAdditionalMediaDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): 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 let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return
{error}
;\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion\n ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n }\n : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion\n ? {}\n : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n \n ),\n productSpecificationResult:\n productSpecificationData.result && (isAccrodion ? this._createDrawerBody(data) : this._createTableBody(data))\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const tableRows = content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n <>\n \n \n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n tableRows.push(this._createAdditionalMediaDrawer());\n }\n\n return tableRows;\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n const drawers = content.productSpecificationData.result!.map(product => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
{cellData}
\n \n
\n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n drawers.push(this._createAdditionalMediaDrawer());\n }\n\n return drawers;\n }\n private _createAdditionalMediaDrawer(): JSX.Element {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n return (\n \n {\n this.setState(prevState => ({\n ...prevState,\n isAdditionalMediaDrawerOpen: !prevState.isAdditionalMediaDrawerOpen\n }));\n }}\n >\n
\n \n
\n \n
\n );\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return {product.DateTimeOffsetValue.toUTCString()};\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return {product.IntegerValue};\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return {product.FloatValue};\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n // eslint-disable-next-line react/no-danger\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\n }\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\n }\n}\n\nexport default ProductSpecification;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n getTelemetryObject,\n Heading,\n IComponentNodeProps,\n INodeProps,\n ISingleSlideCarouselProps,\n ITelemetryContent,\n NodeTag,\n SingleSlideCarousel\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ITileListProps, ITitleData } from './tile-list.props.autogenerated';\n\n/**\n * Tile-list view props.\n */\nexport interface ITileListViewProps extends ITileListProps<{}> {\n title?: React.ReactNode;\n tiles: React.ReactNode[];\n tileItemContainer: INodeProps;\n tileListContainer: INodeProps;\n tileListHeading: INodeProps;\n singleSlideCarouselComponentProps: INodeProps;\n}\n\n/**\n *\n * TileList component.\n * @extends {React.PureComponent>}\n */\nexport class TileList extends React.PureComponent> {\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n private static _createHeading(heading?: ITitleData): React.ReactNode | null {\n if (!heading || !heading.text || StringExtensions.isNullOrWhitespace(heading.text)) {\n return null;\n }\n return ;\n }\n public constructor(props: ITileListProps<{}>) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { resources } = this.props;\n const { title, className } = this.props.config;\n const propsCarousel: IComponentNodeProps = {\n tag: SingleSlideCarousel,\n className: this.props.config.className ?? '',\n flipperPrevLabel: resources.flipperPrevious,\n flipperNextLabel: resources.flipperNext,\n parentId: this.props.id,\n telemetryContent: this._telemetryContent,\n vertical: false\n };\n\n const viewProps = {\n ...this.props,\n title: TileList._createHeading(title),\n singleSlideCarouselComponentProps: propsCarousel,\n tileItemContainer: {\n tag: 'li' as NodeTag,\n className: 'ms-tile__item',\n role: 'listitem'\n },\n tileListContainer: { className: classnames('ms-tile-list', className) },\n tileListHeading: { className: 'ms-tile-list__heading' },\n tiles: this.props.slots.content\n };\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default TileList;\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\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.\r\n * All rights reserved. See LICENSE 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

{message}

\r\n \r\n );\r\n};\r\n\r\nexport default SignUpError;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\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 '../coc-c-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.\r\n * All rights reserved. See LICENSE 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.\r\n * All rights reserved. See LICENSE 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 IBusinessSignUpRadioButtonProps {\r\n id: string;\r\n isRequired: boolean;\r\n options: IBusinessSignUpRadioButtonOptionProps[];\r\n}\r\n\r\nexport interface IBusinessSignUpRadioButtonOptionProps {\r\n id: string;\r\n name: string;\r\n value: string;\r\n label: string;\r\n className: string;\r\n onChange(event: React.ChangeEvent): void;\r\n}\r\n\r\nexport const BusinessSignUpRadioButtonOption: React.FC = props => {\r\n const { id, name, value, label, className, onChange } = props;\r\n return (\r\n
\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default BusinessSignUpRadioButtonOption;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\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 { ICocCBusinessSignUpConfig, ICocCBusinessSignUpProps } from './coc-c-business-sign-up.props.autogenerated';\r\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components';\r\nimport { IBusinessSignUpRadioButtonOptionProps, BusinessSignUpRadioButtonOption } from './components/sign-up-radio-button';\r\n\r\nexport interface IBusinessSignUpExtendedProps extends ICocCBusinessSignUpProps {\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 phonePlaceholderID: string;\r\n phonePlaceholderText: string;\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 radioButtonOptions?: IBusinessSignUpRadioButtonOptionProps[];\r\n radioButtonGroupClass?: string;\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 RadioButton = 'radiobutton'\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 ProspectType = 'ProspectType'\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 {\r\n id,\r\n type,\r\n label,\r\n maxChars,\r\n isRequired,\r\n pattern,\r\n customClass,\r\n value,\r\n fieldReference,\r\n radioButtonOptions,\r\n radioButtonGroupClass\r\n } = 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 if (type === InputType.RadioButton) {\r\n baseSignUpItem.input = (\r\n
\r\n {radioButtonOptions &&\r\n radioButtonOptions.map((element, index) => {\r\n return ;\r\n })}\r\n
\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 private readonly moduleClassName: string = 'ms-business-sign-up';\r\n private readonly prospectRadioButtonName: string = 'business-sign-up-radio-button';\r\n\r\n // Used as default data\r\n // eslint-disable-next-line @typescript-eslint/member-ordering\r\n public BusinessSignUpDefaultInputs: IFormItem[] = [\r\n {\r\n id: InputID.ProspectType,\r\n type: InputType.RadioButton,\r\n label: this.props.resources.prospectTypeLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-100',\r\n radioButtonGroupClass: 'radio-option-container',\r\n radioButtonOptions: [\r\n {\r\n id: `${InputID.ProspectType}-subscriber`,\r\n name: this.prospectRadioButtonName,\r\n value: '3', // Subscriber\r\n label: this.props.resources.prospectTypeSubscriberLabel,\r\n className: `${this.moduleClassName}__form-item-radio-button-option`,\r\n onChange: this._onInputChange.bind(this)\r\n },\r\n {\r\n id: `${InputID.ProspectType}-vendor`,\r\n name: this.prospectRadioButtonName,\r\n value: '4', // Vendor\r\n className: `${this.moduleClassName}__form-item-radio-button-option`,\r\n label: this.props.resources.prospectTypeVendorLabel,\r\n onChange: this._onInputChange.bind(this)\r\n },\r\n {\r\n id: `${InputID.ProspectType}-surveyor`,\r\n name: this.prospectRadioButtonName,\r\n value: '5', // Surveyor\r\n className: `${this.moduleClassName}__form-item-radio-button-option`,\r\n label: this.props.resources.prospectTypeSurveyorLabel,\r\n onChange: this._onInputChange.bind(this)\r\n }\r\n ]\r\n },\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-100'\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: true,\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 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 phonePlaceholderText: this.props.resources.phonePlaceholderText,\r\n phonePlaceholderID: this.props.resources.phonePlaceholderID,\r\n\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\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.bind(this),\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 _onInputChange(event: React.ChangeEvent): void {\r\n const newForm = this.state.formItems;\r\n newForm.forEach(item => {\r\n if (item.type === InputType.RadioButton && event.target.name === this.prospectRadioButtonName) {\r\n item.value = event.target.value;\r\n } else 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 if (!currentAddress?.Phone || currentAddress.Phone === '') {\r\n this.setState({ addressHasErrors: errors, formItems: newForm });\r\n }\r\n // If found --> set to currentAddress\r\n if (addressItem) {\r\n addressItem.address = currentAddress;\r\n // Update state with new values and set errors to false if address is not required field\r\n this.setState(\r\n {\r\n formItems: newForm,\r\n addressHasErrors: errors,\r\n showAddressErrors: false\r\n },\r\n () => {\r\n this.setState({ isReady: this._isFormReady() });\r\n }\r\n );\r\n }\r\n };\r\n\r\n private readonly _isFormReady = (): boolean => {\r\n const { formItems } = this.state;\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 if (currentInput.isRequired) {\r\n if (currentInput.type === InputType.Address) {\r\n if (this.state.addressHasErrors) {\r\n return false;\r\n }\r\n if (!currentInput.address?.Phone || currentInput.address.Phone.length !== 12) {\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 { config, 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 const prospectType = this._getItem(InputID.ProspectType);\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 const sanitizedPhone = companyAddress?.address?.Phone?.replace(/-/g, '');\r\n\r\n if (companyAddress && companyAddress.address) {\r\n companyAddress.address.Phone = sanitizedPhone;\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 ProspectTypeValue: (prospectType && Number.parseInt(prospectType.value, 10)) || 0\r\n };\r\n\r\n this.setState({\r\n isReady: false\r\n });\r\n\r\n // Create business partner request\r\n createProspectAsync({ callerContext: context.actionContext }, newPartner)\r\n .then(() => {\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 window.location.href = successPageURL;\r\n })\r\n .catch(error => {\r\n this.setState({\r\n hasSubmitErrors: true\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.\r\n * All rights reserved. See LICENSE 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 './coc-c-business-sign-up';\r\n\r\nconst BusinessSignUpItem: React.FC = props => {\r\n const { wrapper, label, errorMessage, input, isAddressInput } = props;\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\nconst BusinesSignUpView: React.FC = props => {\r\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm, phonePlaceholderID, phonePlaceholderText } = props;\r\n const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\r\n React.useEffect(() => {\r\n document.getElementById(phonePlaceholderID)?.setAttribute('placeholder', phonePlaceholderText);\r\n }, []);\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 {/* {_renderSignUpToRecieveEmail(signupToReceiveEmail)} */}\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { Modal, ModalBody, ModalFooter } from 'reactstrap';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessOrganizationListViewProps, IFormViewProps, InputID } from '@msdyn365-commerce-modules/business-organization-list';\r\nimport { IBusinessFormItem } from '@msdyn365-commerce-modules/business-organization-list';\r\n\r\nconst BusinessFormItem: React.FC = ({ wrapper, label, errorMessage, input }) => {\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst BusinessUserForm: React.FC = (props: IFormViewProps) => {\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 &&\r\n inputs.map((item: IBusinessFormItem) => {\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 \r\n \r\n );\r\n\r\n const modalFooter =\r\n buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n });\r\n\r\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\r\n\r\nconst BusinessUserDetails: React.FC = (props: IFormViewProps) => {\r\n const { modalClassName, FormWrapper, modalHeading, modalDescription, selectedUser, buttons, errorMessage, resources, toggle } = props;\r\n let modalBody = null;\r\n\r\n if (!selectedUser) {\r\n modalBody = errorMessage;\r\n } else {\r\n const { FirstName, LastName } = selectedUser;\r\n const userFullName = `${FirstName} ${LastName}`;\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 => {\r\n if (data === InputID.FirstName || data === InputID.LastName) {\r\n return null;\r\n }\r\n const label = resources[`table${data}HeadingText`] || data;\r\n return (\r\n \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 =\r\n buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n });\r\n\r\n return _renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\r\n};\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\nconst _renderModal = (\r\n className: string,\r\n isModalOpen: boolean,\r\n headingSection: React.ReactNode,\r\n bodySection: React.ReactNode,\r\n footerSection: React.ReactNode,\r\n toggleModal?: () => void\r\n) => {\r\n return (\r\n \r\n
\r\n

\r\n {headingSection}\r\n

\r\n \r\n
\r\n {bodySection}\r\n {footerSection}\r\n \r\n );\r\n};\r\n\r\nconst BusinessOrganizationList: React.FC = props => {\r\n const {\r\n OrganizationUserList,\r\n moduleContainer,\r\n heading,\r\n noUsersText,\r\n addUserButton,\r\n organizationListTable,\r\n form,\r\n formType,\r\n toggleModal,\r\n requestAccountStatementButton,\r\n requestStatementModal\r\n } = props;\r\n\r\n const ButtonList: React.ReactNode = (\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 {ButtonList}\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 BusinessOrganizationList;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IContentBlockViewProps } from '@msdyn365-commerce-modules/content-block';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { IContentBlockProps } from '../definition-extensions/content-block.ext.props.autogenerated';\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 } = props;\r\n\r\n const { additionalParagraph } = props.config;\r\n\r\n const contentBlockAdditionalText = additionalParagraph && (\r\n \r\n \r\n \r\n );\r\n\r\n if (imageLink) {\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 {contentBlockAdditionalText}\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {image}\r\n \r\n {title}\r\n {text}\r\n {links}\r\n {contentBlockAdditionalText}\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 * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport {\r\n IGroup,\r\n IGroupDelivery,\r\n IGroups,\r\n IHeader,\r\n IList,\r\n IOrderHistoryViewProps,\r\n IOrderInformation,\r\n ISalesOrder\r\n} from '@msdyn365-commerce-modules/order-management';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport const OrderHistoryOrderInfomation: React.FC = ({\r\n orderInformationProps,\r\n receiptId,\r\n channelName,\r\n createdDate,\r\n count,\r\n amount,\r\n channelReferenceId\r\n}) => (\r\n \r\n {channelName}\r\n {receiptId}\r\n {createdDate}\r\n {count}\r\n {amount}\r\n {channelReferenceId}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroupDelivery: React.FC = ({\r\n deliveryProps,\r\n heading,\r\n count,\r\n processing,\r\n address,\r\n trackingInfo\r\n}) => (\r\n \r\n {heading}\r\n {count}\r\n {processing}\r\n {address}\r\n {trackingInfo}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroup: React.FC = ({ groupProps, salesLinesProps, salesLines }) => (\r\n \r\n {salesLines && (\r\n \r\n {salesLines.map(salesLine => (\r\n {salesLine.salesLine}\r\n ))}\r\n \r\n )}\r\n \r\n);\r\n\r\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\r\n \r\n {groups.map((group, index) => (\r\n \r\n ))}\r\n \r\n);\r\n\r\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, extraActions }) => (\r\n \r\n {heading}\r\n {extraActions}\r\n \r\n);\r\n\r\nexport const OrderHistorySalesOder: React.FC = ({ salesOrderProps, orderInfomation, orderDetailsLink }) => (\r\n \r\n {orderInfomation && }\r\n {orderDetailsLink}\r\n \r\n);\r\n\r\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\r\n \r\n {salesOrders && salesOrders.map((salesOrder, index) => )}\r\n \r\n);\r\n\r\nconst OrderHistoryView: React.FC = ({\r\n orderHistoryProps,\r\n header,\r\n alert,\r\n loading,\r\n emptyMessage,\r\n backToShoppingLink,\r\n list,\r\n moreButton\r\n}) => (\r\n \r\n {header && }\r\n {loading}\r\n {alert && (\r\n <>\r\n {alert}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {emptyMessage && (\r\n <>\r\n {emptyMessage}\r\n {backToShoppingLink}\r\n \r\n )}\r\n {list && }\r\n {moreButton && moreButton}\r\n \r\n);\r\n\r\nexport default OrderHistoryView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst RatingsHistogramView: React.FC = props => {\r\n const { heading, histogramItems, histogramProps, moduleProps } = props;\r\n return (\r\n \r\n {heading}\r\n \r\n {histogramItems.map(item => {\r\n return histogramItem(item);\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nconst histogramItem = (props: IHistogramItemViewProps) => {\r\n return (\r\n \r\n {props.starLabel}\r\n {props.bar}\r\n {props.percentage}\r\n \r\n );\r\n};\r\n\r\nexport default RatingsHistogramView;\r\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICatalogPickerViewProps } from './catalog-picker';\n\n/**\n * ICatalogPickerViewProps.\n * @param props - ICatalogPickerViewProps.\n * @returns - Render Catalog Picker.\n */\nexport const CatalogPickerViewFunctionComponent: React.FC = props => {\n const { catalogPicker } = props;\n return (\n \n {props.heading}\n {props.paragraph}\n {props.catalogs}\n \n );\n};\n\nexport default CatalogPickerViewFunctionComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365 from '@msdyn365-commerce/core';\nimport { ICartlinesViewProps, ICartResources, ICartViewProps, IOrderSummaryErrors } from '@msdyn365-commerce-modules/cart';\nimport { ICartLineItemViewProps } from '@msdyn365-commerce-modules/cart/dist/types/modules/cart/components/cart-line-items-promotion';\nimport { IInvoiceSummaryLines } from '@msdyn365-commerce-modules/invoice-payment-summary';\nimport { IOrderSummaryLines } from '@msdyn365-commerce-modules/order-summary-utilities';\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Node,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst CartView: React.FC = (props: ICartViewProps) => (\n
\n {props.title}\n {props.promotionOptions && _renderPromotions(props.promotionOptions)}\n {props.cart?.hasInvoiceLine || props.multiplePickUpEnabled ? (\n _renderCartLinesGroup(props, props.resources)\n ) : (\n \n {_renderCartlines(\n props.cartlines,\n props.resources,\n props.storeSelector,\n props.backToShoppingButton,\n props.waitingComponent,\n props.cartLoadingStatus,\n props.cartDataResult,\n props.telemetryContent,\n props.multiplePickUpEnabled,\n props.context.actionContext.requestContext.channel?.EmailDeliveryModeCode\n )}\n \n )}\n {props.orderSummaryHeading && (\n \n {props.orderSummaryHeading}\n {props.cart?.hasInvoiceLine\n ? _renderInvoiceSummarylines(props.invoiceSummaryLineitems, props.OrderSummaryItems, props)\n : _renderOrderSummarylines(props.orderSummaryLineitems, props.OrderSummaryItems, props)}\n {_renderErrorBlock(props.OrderSummaryErrors)}\n {props.checkoutAsSignInUserButton}\n {props.checkoutAsGuestButton}\n {props.expressCheckoutButton && ArrayExtensions.hasElements(props.expressCheckoutButton) ? (\n {props.expressCheckoutButton}\n ) : null}\n {props.backToShoppingButton}\n {props.createTemplateFromCartButton}\n \n )}\n {props.storeSelector}\n
\n);\n\nconst _renderPromotions = (promotions: ICartLineItemViewProps): JSX.Element | undefined => {\n return (\n <>\n \n {promotions.promotionMessage}\n {promotions.promotionSeeAllLink}\n {promotions.promotionDialog}\n \n \n );\n};\n\nconst _renderCartlines = (\n cartLines: ICartlinesViewProps[] | undefined,\n resources: ICartResources,\n storeSelector: React.ReactNode | undefined,\n backToShoppingButton: React.ReactNode,\n waitingComponent: React.ReactNode,\n cartLoadingStatus: string,\n cartDataResult: boolean,\n telemetryContent?: ITelemetryContent,\n mulitplePickUp?: boolean,\n emailDeliveryModeCode?: string\n): JSX.Element[] | JSX.Element => {\n const { emptyCartText } = resources;\n\n if (cartLoadingStatus) {\n return <>{cartLoadingStatus};\n }\n if (cartLines) {\n return cartLines.map((cartLine, index) => {\n return (\n
\n {cartLine.cartline}\n {mulitplePickUp ? null : _renderBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {mulitplePickUp ? (\n \n {_renderGroupBOPISBlock(cartLine, resources, storeSelector, telemetryContent, emailDeliveryModeCode)}\n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : cartLine.addToOrderTemplate ? (\n \n {cartLine.addToOrderTemplate}\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n ) : (\n <>\n {cartLine.addToWishlist}\n {cartLine.remove}\n \n )}\n
\n );\n });\n }\n return cartDataResult ? (\n
\n

{emptyCartText}

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

{props.resources.emptyCartText}

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

\n

{groupTitle}

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

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

\n ) : null}\n

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

\n
\n \n );\n};\n\nexport default CartView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n {orderInfomation && }\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n \n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IHistogramItemViewProps, IRatingsHistogramViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst RatingsHistogramView: React.FC = props => {\n const { heading, histogramItems, histogramProps, moduleProps } = props;\n return (\n \n {heading}\n \n {histogramItems.map(item => {\n return histogramItem(item);\n })}\n \n \n );\n};\n\nconst histogramItem = (props: IHistogramItemViewProps) => {\n return (\n \n {props.starLabel}\n {props.bar}\n {props.percentage}\n \n );\n};\n\nexport default RatingsHistogramView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nconst ReviewsListview: React.FC = props => {\n const {\n averageRating,\n filterByDropdown,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n reviewCount,\n reviewModal,\n sortByDropdown,\n state,\n userReview\n } = props;\n\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {averageRating}\n {reviewCount}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview)}\n {reviewCards.map(review => {\n return buildReviewCard(review);\n })}\n \n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(reviewModal, moduleProps)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nconst buildReviewCard = (props: IReviewCardViewProps) => {\n return (\n \n \n {props.rating}\n {props.name}\n {props.date}\n \n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {props.ratingHelpfulLabel}\n {props.like}\n {props.dislike}\n {props.edit}\n {props.report}\n \n \n \n );\n};\n\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\n return (\n \n {props.modalHeader}\n \n \n \n {props.rating}\n {props.ratingLabel}\n \n \n {props.titleLabel}\n {props.titleInput}\n \n \n {props.textLabel}\n {props.textInput}\n \n {props.privacyPolicyUrl}\n {props.error}\n \n \n \n {props.submitButton}\n {props.cancelButton}\n \n \n );\n};\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\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IOrderLookupViewProps } from './order-lookup';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns - Returns JSX Element.\n */\nexport const OrderLookupViewComponent: React.FC = props => {\n const {\n orderLookup,\n orderLookupContainer,\n orderLookupAdditionalFieldContainer,\n heading,\n paragraph,\n orderLookupForm,\n renderOrderLookupInputField,\n orderNumberInput,\n errorMessage,\n submitButton,\n additionalProperties,\n registeredUserMessage,\n fieldErrorMessage\n } = props;\n return (\n \n \n {heading}\n {paragraph}\n \n {orderNumberInput}\n {renderOrderLookupInputField}\n {ArrayExtensions.hasElements(additionalProperties) && (\n \n {additionalProperties.map((item: JSX.Element) => (\n {item}\n ))}\n \n )}\n {fieldErrorMessage}\n \n {props.submitButtonLabelText}\n \n {errorMessage}\n \n {registeredUserMessage}\n \n \n );\n};\n\nexport default OrderLookupViewComponent;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ITileListViewProps } from './tile-list';\n\n/**\n * View component.\n * @param props - The view properties.\n * @returns Returns props.\n */\nexport const tileListView: React.FC = props => {\n const { title, tiles, tileListContainer, tileListHeading, tileItemContainer, singleSlideCarouselComponentProps } = props;\n return (\n \n {title}\n \n {tiles.map((tileItem: ReactNode, index: number) => {\n const keyIndex = `tile-list-item__${index}`;\n return (\n \n {tileItem}\n \n );\n })}\n \n \n );\n};\n\nexport default tileListView;\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 {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICheckoutCustomerAccountPaymentViewProps } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/checkout-customer-account-payment';\nimport { IAccountPaymentEditViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-edit-mode';\nimport { IAccountPaymentSummaryViewForm } from '@msdyn365-commerce-modules/checkout/src/modules/checkout-customer-account-payment/components/get-account-payment-form-summary-mode';\n\nexport const SummaryForm: React.FC = ({\n formProps,\n label,\n addPaymentButton,\n appliedLine,\n bottomBorder,\n paymentAmountInput\n}) => (\n \n <>\n {label}\n {paymentAmountInput}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nexport const EditForm: React.FC = ({\n formProps,\n inputLabel,\n inputAmount,\n addPaymentButton,\n customerName,\n customerAccountNumber,\n customerSince,\n accountCredit,\n alert,\n accountDetails,\n appliedLine,\n bottomBorder\n}) => (\n \n <>\n {customerName}\n {customerAccountNumber}\n {customerSince}\n {accountCredit}\n {accountDetails}\n {inputLabel}\n {alert}\n {inputAmount}\n {addPaymentButton}\n {appliedLine}\n {bottomBorder}\n \n \n);\n\nconst CheckoutCustomerAccountView: React.FC = props => {\n const { checkoutCustomerAccount, checkoutErrorRef, summaryView, editView, moduleState, alert } = props;\n return (\n \n {alert}\n {moduleState.isReady && summaryView && }\n {!moduleState.isReady && editView && }\n \n );\n};\n\nexport default CheckoutCustomerAccountView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IGroup,\n IGroupDelivery,\n IGroups,\n IHeader,\n IList,\n IOrderHistoryViewProps,\n IOrderInformation,\n ISalesOrder\n} from '@msdyn365-commerce-modules/order-management';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport const OrderHistoryOrderInfomation: React.FC = ({\n orderInformationProps,\n salesId,\n receiptId,\n channelName,\n createdDate,\n count,\n amount,\n channelReferenceId\n}) => (\n \n {channelName}\n {salesId}\n {receiptId}\n {createdDate}\n {count}\n {amount}\n {channelReferenceId}\n \n);\n\nexport const OrderHistoryGroupDelivery: React.FC = ({\n deliveryProps,\n heading,\n count,\n processing,\n address,\n trackingInfo\n}) => (\n \n {heading}\n {count}\n {processing}\n {address}\n {trackingInfo}\n \n);\n\nexport const OrderHistoryGroup: React.FC = ({ groupProps, delivery, salesLinesProps, salesLines }) => (\n \n {salesLines && (\n \n {salesLines.map(salesLine => (\n {salesLine.salesLine}\n ))}\n \n )}\n \n);\n\nexport const OrderHistoryGroups: React.FC = ({ groupsProps, groups }) => (\n \n {groups.map((group, index) => (\n \n ))}\n \n);\n\nexport const OrderHistoryHeader: React.FC = ({ headerProps, heading, orderCountLabel, extraActions }) => (\n \n {heading}\n {orderCountLabel}\n {extraActions}\n \n);\n\nexport const OrderHistorySalesOder: React.FC = ({\n salesOrderProps,\n orderInfomation,\n groups,\n orderDetailsLink,\n expandProductsButton\n}) => (\n \n
\n {orderInfomation.placedBy && {orderInfomation.placedBy}}\n
{orderInfomation && }
\n
\n {groups && }\n {expandProductsButton}\n {orderDetailsLink}\n
\n);\n\nexport const OrderHistoryList: React.FC = ({ listProps, salesOrders }) => (\n \n {salesOrders && salesOrders.map((salesOrder, index) => )}\n \n);\n\nconst OrderHistoryView: React.FC = ({\n orderHistoryProps,\n header,\n alert,\n loading,\n emptyMessage,\n backToShoppingLink,\n list,\n table,\n moreButton\n}) => (\n \n {header && }\n {loading}\n {alert && (\n <>\n {alert}\n {backToShoppingLink}\n \n )}\n {emptyMessage && (\n \n {emptyMessage}\n {backToShoppingLink}\n \n )}\n {list && }\n {table}\n {moreButton && moreButton}\n \n);\n\nexport default OrderHistoryView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-generic-tile.props.autogenerated';\n\nexport interface IAccountGenericTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountGenericTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-generic-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountGenericTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountLoyaltyLabel {\n className?: string;\n text?: string | number;\n}\n\nexport const AccountLoyaltyLabel: React.FC = ({ className, text }) =>

{text}

;\n\nexport interface IAccountLoyaltyModalLabel {\n className?: string;\n text?: string | number;\n labelFor?: string;\n}\n\nexport const AccountLoyaltyModalLabel: React.FC = ({ className, text, labelFor }) => (\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { 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 { 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 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 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\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 { 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 {\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"],"names":["FormType","InputType","InputID","renderInputSection","inputs","className","asteriskAfterLabel","onInputChange","map","element","customClass","id","type","label","maxChars","isRequired","pattern","value","isDisabled","fieldReference","wrapper","classnames","key","React","FormLabel","Object","assign","forId","text","asteriskText","errorMessage","FormFieldError","input","FormInput","maxLength","undefined","onChange","placeholder","BusinessOrganizationList","constructor","props","_this$props$config","super","BusinessFormDefaultInputs","FirstName","Text","this","resources","businessUserFirstNameLabelText","LastName","businessUserLastNameLabelText","Email","businessUserEmailAddressLabelText","EmailRegex","defaultRegex","source","SpendingLimit","businessUserSpendingLimitLabelText","config","delayFocus","formChildReference","userFormEditReference","userFormDeleteReference","moduleClassName","_handleAddUserButtonClicked","newForm","state","formItems","forEach","newUser","B2BUserId","Random","Guid","generateGuid","setState","isFormActive","formType","Add","referenceBack","addUserButtonReference","current","isModalOpen","hasFormError","hasActionError","selectedUserData","_handleAddEditFormSaveButton","async","context","updatedUser","_createBusinessPartner","Edit","editOrganizationUser","EditOrganizationUserInput","actionContext","then","window","location","reload","catch","error","telemetry","trace","addOrganizationUser","AddOrganizationUserInput","businessUserActionRetailErrorMsg","message","_objectSpread","Number","parseFloat","_handleEditIcon","userData","possibleName","find","cell","fullName","lastSpaceIndex","lastIndexOf","firstName","substring","lastName","possibleCell","dataCell","user","_handleDeleteIcon","displayedUserData","TableDataType","Price","cultureFormatter","formatCurrency","Remove","_handleViewDetails","View","_handleRemoveUserButton","deleteUserData","deleteOrganizationUser","DeleteOrganizationUserInput","None","callbackRemoveButton","_onInputChange","event","item","target","prev","refresh","isReady","_isFormReady","formItem","length","match","isNaN","_formatPrice","price","toString","_getCurrentUrl","reqContext","MsDyn365","isBrowser","URL","href","url","requestUrl","_getViewport","request","device","Type","innerWidth","gridSettings","xs","w","sm","md","lg","_toggleStatementRequestDropdown","isStatementRequestAdminDropdownOpen","_updateFromDate","newFromDate","statementRequestFromDateString","_updateToDate","newToDate","statementRequestToDateString","_showRequestStatementModal","isFullOrg","statementRequestFullOrg","isStatementRequestModalOpen","_promoteToSeller","promoteToSellerUrl","getUrlSync","_requestStatement","customer","data","customerInformation","result","currentUser","users","_getB2BUserId","statementRequest","FromDate","Date","ToDate","IsForFullOrganization","RequestedUserId","RequestingUserEmail","DeliveryTypeValue","BusinessPartnerOperationDeliveryType","callerContext","BusinessPartnerUsersDataActions","_closeStatementRequestModal","_this$statementReques","statementRequestButtonReference","focus","_onSelectRow","records","selectedRow","rowProps","isSelected","row","_toggleModal","bind","mobileExcludedColumns","Status","_viewport","_updateViewport","submitButtonReference","addedReference","statementRequestMaxDateString","toISOString","split","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","payLoad","getPayloadObject","StringExtensions","isNullOrWhitespace","businessUserSelectedUserDisplayName","replace","index","componentDidMount","addEventListener","componentWillUnmount","removeEventListener","shouldComponentUpdate","nextProps","nextState","setTimeout","_this$formChildRefere","_this$submitButtonRef","render","_this$props$data$cust","heading","showBecomeSellerLink","businessUserActionButtonText","businessUserAddUserButtonText","businessUserLoadingMessage","businessUserEmptyListMessage","businessUserErrorGettingUsersMessage","userAccountStatementLabel","fullOrganizationLabel","requestStatementButtonLabel","promoteToSellerActionLabel","requestAccountStatementActionLabel","requestOrganizationStatementActionLabel","statementRequestModalHeaderLabel","cancelLabel","fromDateLabel","toDateLabel","submitRequestLabel","sendToEmailLabel","selectedUserLabel","hasUsers","contentAction","etext","TelemetryConstant","AddUser","addUserAttributes","getTelemetryAttributes","status","errorProps","OrganizationUserList","moduleProps","moduleContainer","Heading","headingTag","tag","addUserButton","Button","innerRef","onClick","noUsersText","renderView","viewProps","modalState","organizationListTable","Table","_createTableProps","toggleModal","form","_renderUserForm","_renderUserDetails","requestAccountStatementButton","AdminRequestStatementButton","buttonReference","onRequestStatement","onToggleDropdown","myUserAccountLabel","isDropdownShowing","promoteToSellerLabel","onPromoteToSeller","requestStatementModal","RequestStatementModal","email","toggle","fromDateString","toDateString","onChangeFromDate","onChangeToDate","canSubmitRequest","canSubmitStatementRequest","modalHeaderLabel","onSubmitRequest","selectedUser","selectedOrganizationLabel","selectedUserName","modalAriaLabel","maxDateString","tableSort","showPagination","paginationItemPerPage","businessUserPaginationNextButtonText","businessUserPaginationPreviousButtonText","businessUserEditButtonText","businessUserViewUserButtonText","businessUserDeleteButtonText","businessUserPaginationAriaLabel","columnSortAriaLabel","tableData","_createTableItems","headings","ArrayExtensions","hasElements","isMobile","includes","name","sortable","ariaLabel","rows","editLinkText","deleteLinkText","viewLinkText","editLinkTooltip","deleteLinkTooltip","viewLinkTooltip","enableToModify","actionLinkText","showCheckBoxes","isSortable","resourcePrefix","minifyActions","excludedColumns","paginationProperty","skipCount","query","skip","parseInt","itemPerPage","prevText","nextText","paginationText","isSingleSelectOnly","tableAriaLabel","tableTabIndex","businessUserSelectCheckBoxAriaLabelText","sortByAscending","sortByDescending","actions","onDelete","onEdit","onView","formatPrice","checkBoxCallback","businessUserActiveStatusText","businessUserPendingStatusText","businessUserRemovedStatusText","usersList","statusString","StatusValue","FullName","buttonReferences","edit","delete","_this$state$reference","businessUserRemoveModalHeaderText","businessUserRemoveModalDescription","businessUserViewModalHeaderText","businessUserCancelButtonText","businessUserCancelRemoveUserButtonText","businessUserRemoveUserButtonText","businessUserErrorUpdatingUsersMessage","formClassName","typeClassName","handleRemoveButton","modalClassName","FormWrapper","modalHeading","modalDescription","buttons","businessUserEditUserFormHeadingText","businessUserAddUserFormHeadingText","businessUserSaveButtonArialabel","businessUserSaveButtonText","businessUserCancelButtonArialabel","businessUserFieldIncorrectErrorText","businessUserActionErrorText","businessUserAllFieldsRequiredMessage","FormButton","disabled","__decorate","observable","computed","observer","AccountGenericTile","handleHeadingChange","handleLinkTextChange","linkIndex","links","linkText","Msdyn365","editProps","requestContext","LinksComponent","onTextChange","AccountLoyalty","decimalPrecision","_populateModalData","focusRef","loyaltyCard","currentLoyaltyPoints","expiring","CardNumber","RewardPointId","currentModalData","isModalExpiring","modalID","currentFocus","getLoyaltyRewardPointsExpiringSoonAsync","queryResultSettings","points","pointsActivity","exception","debug","getLoyaltyRewardPointActivityTimelineAsync","_closeModal","_onOpenModal","_this$state$currentFo","_buttonAvailableRef","_buttonExpireRef","BackToShopping","_Msdyn365$getUrlSync","_heading$tag","loyaltyCardLabel","totalAvailablePointsLabel","backToShoppingText","backToShopAttributes","loyaltyCardData","rewardPoints","RewardPoints","homeLink","modalTransition","onEntered","node","isAppearing","childNode","firstChild","totalPoints","_getTotalPoints","_renderRewardPoints","pointsModal","_renderModal","isOpen","returnFocusRef","onOpened","Info","Points","Breakdown","PointsBreakdown","infoLabel","AccountLoyaltyLabel","cardNumber","joinDate","_formatJoinDate","_parseDate","LoyaltyEnrollmentDateLocal","pointsLabel","toFixed","homeButton","title","date","format","joinDateFormatted","Intl","DateTimeFormat","locale","month","day","year","loyaltyPoints","availableId","expiringId","availablePointsLabel","availablePointsAriaLabel","expiringPointsFormatLabel","expiringPointsFormatAriaLabel","AvailablePoints","availablePointsAttributes","ExpiringPoints","expiringPointsAttributes","AccountLoyaltyModalLabel","Description","availableModalLabel","ActivePoints","labelFor","availableModalTrigger","color","expiringModalLabel","PointsExpiringSoon","expiringModalTrigger","_currentModalData$Des","loyaltyActivityDateLabel","loyaltyActivityBalanceLabel","horizontalPosition","verticalPosition","modalHeaderClassName","modalHeader","modalBodyClassName","ModalBodyTop","ModalBodyHeaders","rewardPointsActivity","_renderPointsActivity","pointsDescription","_getPoints","balanceLabel","onClose","total","_loyaltyPoints$Active","_ref","activity","_toFixed","_ref2","Activity","activityType","_getTimelineType","activityDate","formatDate","ActivityDate","activityPoints","LoyaltyPoints","dateString","getUTCFullYear","getUTCMonth","getUTCDate","pointActivity","LoyaltyRewardPointTimelineEntryType","earnedPointsLabel","redeemedPointsLabel","adjustedPointsLabel","refundedPointsLabel","ExtensibleLoyaltyRewardPointActivityEntryTypeValue","AccountProfileEdit","onTextBoxChange","toLowerCase","givenName","surname","emailRegex","_onInit","_prePopulateData","_updateErrorMessage","initializationTimer","setInterval","_isInitializationSuccessful","clearInterval","isInitialized","invalidEmailAddressError","obj","PRE","_htmlDecode","ID","PAT","PAT_DESC","required_field","requiredFieldMissingError","verifying_blurb","loadingMessage","componentDidUpdate","viewState","isShowLoading","accountProfileEdit","loading","modal","Modal","modalBody","ModalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","accountProfileEditLocalAccount","_renderLocalAccount","str","e","document","createElement","innerHTML","childNodes","nodeValue","localAccount","items","_renderInput","firstNameLabelText","firstNameMaxLength","lastNameLabelText","lastNameMaxLength","AccountProfileEditErrorComponent","requiredFieldMissingSummaryError","fieldIncorrectError","buttonsWrapper","AccountProfileEditButtonComponent","saveButtonAriaLabel","saveButtonText","cancelButtonText","verificationSuccessModal","verificationSuccessModalMessage","showEmail","push","emailAddressLabelText","labelText","AccountProfileEditLabelComponent","AccountProfileEditInputComponent","AccountWelcomeTile","accountInfo","accountInformation","RequestsTableColumnHeader","getUserName","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","getDetails","_requestDetails$Invoi","Details","requestDetails","accountStatementStartDateTime","AccountStatementStartDateTime","accountStatementEndDateTime","AccountStatementEndDateTime","invoiceId","InvoiceId","TypeValue","b2bRequestsAccountStatementDetails","b2bRequestsInvoiceCopyDetails","getDisplayFriendlyTypeValue","typeValue","b2bRequestsTypeCreateProspect","b2bRequestsTypeAddUser","b2bRequestsTypeDeleteUser","b2bRequestsTypeEditUser","b2bRequestsTypeRequestAccountStatement","b2bRequestsTypeRequestInvoiceCopy","b2bRequestsTypeUnknown","getDisplayFriendlyStatusValue","statusValue","b2bRequestsStatusProcessed","b2bRequestsStatusError","b2bRequestsStatusRequested","createTableProps","tableProps","_context$request$quer","operationRequests","_request$TypeValue","_request$StatusValue","b2bRequestsTypeColumn","b2bRequestsRequestDateColumn","CreatedDateTime","b2bRequestsDescriptionColumn","b2bRequestsUserColumn","b2bRequestsStatusColumn","createTableItems","filter","b2bRequestsPreviousText","b2bRequestsNextText","B2bRequestsTable","B2bRequestsStatus","renderHeader","headingData","_this$props$data$oper","_this$props$data$oper2","itemCount","getItemNumberDisplayString","_retrieveExcludedColumns","renderTable","b2bRequestsNumberOfItemsSingular","b2bRequestsNumberOfItems","variant","VariantType","Viewport","isChannelTypeB2B","b2bRequestsStatus","table","Module","Node","autoFocus","fade","zIndex","onClosed","ModalHeader","AccountProfileEditItem","AccountProfileEditLoading","_ref3","button","LocalAccount","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","SignUp","handleParagraphChange","disclaimer","isEmailVerificationRequried","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","newPasswordRegex","reenterPasswordRegex","UX_INPUT_TYPE","invalidPasswordError","errorMessages","PasswordRegex","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","confirmPasswordLabelText","emailVerification","buttonWrapper","SignUpButtonComponent","SignUpSuccessComponent","SignUpErrorComponent","givenNameVerification","surnameVerification","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","passwordEntryMismatchError","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","_ref4","SignUpLoading","_ref6","_ref5","componentClassName","headingClassName","orderCountClassName","OrderHistoryWithSearchAndFiltersHeaderComponent","createComponent","component","salesOrders","textProps","showOrderCount","extraActions","orderCount","orderCountText","orderCountLabel","ordersCountLabel","_mapEditableLinks","linkdata","editableLinks","link","attributes","editableLink","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","AccountLoyaltyTile","signUpLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","description","rewardPoint","DescriptionComponent","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","params","isEditor","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","hasError","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","att","attributeDefinition","attribute","IsHidden","Name","toLocaleLowerCase","RecordId","_renderAttribute","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","ref","attributesContainerRef","showPhone","_renderPhone","showVatNumber","_renderVatNumber","attributesSaveExceptionMessage","_enableAttributes","editRef","_saveAttributes","_disableAttributes","phoneSectionHeading","_onPhoneChange","phone","_renderError","vatNumberSectionHeading","_onVatNumberChange","vatNumber","customAttribute","ExtDataType","Value","Integer","Decimal","_renderIntegerDecimalInput","_renderTextInputOrSelect","TrueFalse","_renderBoolean","attributeProps","_getAttributeProps","displayName","_onAttributeChange","IsMandatory","isEnumeration","IsEnumeration","EnumerationDetails","hasNoValue","_onAttributeSelect","selected","option","EnumerationValue","toggleState","arialabel","attributeToggleButtonAriaLabel","ariaPressed","toggleValue","TextComponent","toggleDisableText","_onAttributeCheck","toggleEnableText","attributeName","attributeError","attributePayloadData","isMandatory","getElementsByClassName","_setFocus","initialAttributes","initialPhone","initialVatNumber","currentTarget","selectedOptions","selectedIndex","_getAttributes","showAttributesArray","custmerAttributes","Attributes","showAttribute","defaultValue","AttributeValue","DataTypeValue","IntegerValue","String","DecimalValue","StringValue","BooleanValue","keys","_addOrUpdateAttribute","hasValue","entries","payloadData","dataTypeValue","decimalValue","typeError","attributeInputTypeErrorText","lowerBoundValue","upperBoundValue","rangeError","attributeInputRangeErrorText","attributeInputValueExceedsMaximumErrorText","attributeInputValueExceedsMinimumErrorText","integerValue","trimValue","trim","attributeInputStringMaxLengthErrorText","textValue","booleanValue","attributeInputMandatoryErrorText","findIndex","splice","Attribute","recordId","Units","ExtensionProperties","NameTranslations","KeyName","Phone","VATNumber","VatNumber","updateCustomerAttributesInput","AccountNumber","apiSettings","updateCustomerAttributes","initialCustomerAttributes","_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","buttonYesText","buttonNoText","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","_this$props$context$a","editButtonAriaLabel","invalidAsyncCustomerState","shouldRenderAttributes","editLink","get","infoMessageBar","accountProcessingPendingInfoMessage","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","PasswordReset","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","PasswordResetErrorComponent","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","labelGroup","renderErrorLabel","responseErrorMessage","errorMessageClassName","renderRegisteredUserMessage","signInUrl","signInLinkClassName","registeredUserClassName","orderLookupRegisteredUserText","orderLookupViewAccountText","orderLookupSignInLinkText","infoMessage","signInText","renderFieldErrors","orderLookupFieldValidationErrorMessage","RenderOrderLookupAdditionalFieldInput","_getOrderLookupAdditionalFields","additionalFieldLabel","additionalFieldError","additionalFieldInput","additionalFieldLabelClassName","inputType","isValidAdditionalFieldName","additionalFieldValidationMessage","RenderOrderLookupFormFields","_getOrderLookupFields","orderLookupLabelClassName","orderLookupLabel","inputReference","fieldErrorClassName","isInputTypeError","renderAlert","isValidInputField","OrderLookupSearchValues","OrderLookup","isEmailValue","isOrderNumberValue","orderLookupExtensibleEnum","handleTextChange","paragraph","handleSubmit","orderNumber","orderLookupValue","orderStatusLookUpParametersType","orderLookupName","_validateOrderLookupForm","actionContextValue","orderDetailsPath","baseUrl","origin","redirectUrl","searchParameters","searchParams","set","fieldName","fieldValue","_this$orderNumberInpu","_this$emailInputRef$c","orderNumberInputRef","emailInputRef","additionalPropertyStates","isAdditionalFieldError","isKeyExistInAdditionalFieldArray","labelName","isValidFieldName","additionalfieldErrorMessage","ordernumber","isOrdNumberError","isReqError","isEmailError","isValidEmailError","isValidLookupField","isValidAdditionalLookupField","_renderAlert","orderLookupEmailValidationErrorMessage","orderLookupRequiredTextErrorMessage","requiredErrorMessage","emailValidationErrorMessage","isRequireError","isEmailValidError","isValidEmailInput","_renderOrderNumberAlert","orderLookupOrderNumberValidationErrorMessage","_renderOrderLookupInput","orderLookupEmailLabel","orderLookupEmailAriaLabel","_additionalFieldValidation","isFieldValid","RegExp","test","isValid","isDisable","isEmailValid","orderLookupSearchAdditionalFields","_item$labelName","_item$ariaLabel","_item$validationMessa","validationMessage","_context$request$user","orderLookupDefaultHeadingText","orderLookupButtonLabel","orderLookupFormAriaLabel","orderLookupOrderNumberLabel","orderLookupOrderNumberAriaLabel","orderLookupSubmitAriaLabel","headingText","orderLookupContainerClassName","orderLookupFormClassName","orderLookupAdditionalFiledContainerClassName","orderLookupFormFieldsClassName","orderNumberLabelClassName","orderNumberInputErrorClassName","submitButtonClassName","signinLinkClassName","orderLookupHeading","orderLookup","orderLookupContainer","orderLookupAdditionalFieldContainer","_createParagraph","renderOrderLookupInputField","orderLookupForm","autoComplete","onSubmit","orderNumberInput","submitButton","submitButtonLabelText","fieldErrorMessage","registeredUserMessage","submit","_renderAdditionalFields","_getExtensibleEnumera","_getExtensibleEnumera2","isOrderLookupAdditionalFieldValid","isOrderLookupFieldValid","getExtensibleEnumerations","StoreOperationsDataActions","TypeName","ExtensibleEnumerations","orderLookupAdditionalParameter","validateOrderLookupField","orderStatusLookUpParameter","isValidField","validateOrderLookupAdditionalField","orderStatusLookUpAdditionalParameters","isValidAdditionalField","_item$fieldKey","fieldKey","validateAdditionalFieldWithProxy","some","setLookupFieldState","additionalFieldsInput","ProductSpecification","ProductSpecificationTableProps","ProductSpecificationTableBodyProps","productSpecificationResult","rowdata","ObjectExtensions","isNullOrUndefined","BusinessFormItem","BusinessUserForm","modalFooter","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","applicationNode","ModalFooter","ButtonList","_getForm","formProps","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","accountOrganizationUsersTileDescription","IsB2bAdmin","CatalogPicker","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","image","firstOrDefault","Images","tabIndex","Image","src","generateImageUrl","Uri","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","assembleNode","itemIndex","_item$links","renderHeading","additionalContentHeading","handleAdditionalTextChange","subtext","renderParagraph","additionalContentParagraphText","ctaLink","renderLinks","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","additionalContentNode","additionalContentItems","ContentCardLinks","btnClass","onTelemetryClick","ContentBlock","_this$props$context$r","_this$props$config$im","imageAriaLabel","contentBlockTitle","contentBlockLinks","msdyn365__moduleLayout","contentBlockText","contentBlockImageSettings","backgroundColor","imageProps","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","layout","shouldSkipToMainImage","contentBlockContainerStyle","contentBlockviewProps","moduleClass","contentBlockContainer","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","additionalContentObject","actionableRegion","ProductSpecificationTableRow","productName","cellData","scope","dangerouslySetInnerHTML","getRichTextHtml","_toggle","drawerListId","isDrawerOpen","isAdditionalMediaDrawerOpen","validateCatalogId","product","actionInput","AttributesForSelectedVariantInput","channelId","getAttributesForSelectedVariant","productSpecificationData","isAccrodion","displayStyle","_createDrawerBody","_createTableBody","content","_this$props$data$addi","tableRows","_renderProductCell","OmniChannelMedia","additionalMediaLocations","_createAdditionalMediaDrawer","_this$props$context$r2","_this$props$data$addi2","accordionItemContainer","drawers","_product$Name","Drawer","collapseProps","timeout","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","additionalDownloadsText","prevState","mediaLocation","download","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","FloatValue","TextValue","trueValueText","falseValueText","SocialShare","slots","socialShareItems","cookies","isConsentGiven","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","TileList","_telemetryContent","_this$props$config$cl","propsCarousel","SingleSlideCarousel","flipperPrevLabel","flipperPrevious","flipperNextLabel","flipperNext","parentId","vertical","_createHeading","singleSlideCarouselComponentProps","tileItemContainer","tileListContainer","tileListHeading","tiles","SignUpButton","SignUpError","errorClassName","GetMaxLength","parsedMaxLength","SignUpInput","TextArea","SignUpLabel","htmlFor","BusinessSignUpRadioButtonOption","needToReset","showErrors","addressForm","updateAddress","radioButtonOptions","radioButtonGroupClass","baseSignUpItem","Address","isAddressInput","updateForm","resetAddress","RadioButton","BusinessSignUp","_this","prospectRadioButtonName","BusinessSignUpDefaultInputs","ProspectType","prospectTypeLabel","prospectTypeSubscriberLabel","prospectTypeVendorLabel","prospectTypeSurveyorLabel","firstNameLabel","lastNameLabel","emailAddressLabel","CompanyName","companyLabel","companyAddressLabel","needsToReset","_onAddressChange","errors","currentAddress","addressItem","addressHasErrors","address","showAddressErrors","currentInput","_currentInput$address","_onSubmit","_companyAddress$addre","preventDefault","_getItem","companyName","companyEmail","companyAddress","prospectType","sanitizedPhone","newPartner","ProspectTypeValue","createProspectAsync","successPageURL","confirmationLink","hasSubmitErrors","_onCancel","cleanForm","isAddress","arguments","_addedReference","phonePlaceholderText","phonePlaceholderID","businessSignUp","ContainerWrapper","businessSignUpForm","_renderForm","partialAddressErrorMessage","addressSlot","newFormFields","BusinessSignUpItem","_document$getElementB","getElementById","setAttribute","additionalParagraph","contentBlockAdditionalText","OrderHistoryOrderInfomation","orderInformationProps","receiptId","channelName","createdDate","count","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","trackingInfo","OrderHistoryGroup","groupProps","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","headerProps","OrderHistorySalesOder","salesOrderProps","orderInfomation","orderDetailsLink","OrderHistoryList","_ref7","listProps","salesOrder","_ref8","orderHistoryProps","header","alert","emptyMessage","backToShoppingLink","list","moreButton","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","CatalogPickerViewFunctionComponent","renderAdditionalContent","_additionalContent$ad","_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","_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","_cartLine$pickUpInSto","pickUpText","shippingText","emailshippingText","payInvoicesDisplayText","groupTitle","IsInvoiceLine","_renderCartLinesGroupTitle","_cartLine$data2","countItem","reduce","_item$data","Quantity","_cartLine$pickUpInSto2","_cartLine$pickUpInSto3","_cartLine$pickUpInSto4","itemLabel","itemsLabel","suffix","deliveryOption","_props$cart","_props$context$action","_props$cart2","renderModuleAttributes","promotionOptions","cart","hasInvoiceLine","CartlinesWrapper","orderSummaryHeading","OrderSummaryWrapper","invoiceSummaryLineitems","orderSummaryLineitems","OrderSummaryErrors","checkoutAsSignInUserButton","checkoutAsGuestButton","expressCheckoutButton","ExpressCheckoutSectionWrapper","createTemplateFromCartButton","salesId","delivery","expandProductsButton","buildReviewCard","cardProps","rating","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","report","createReviewModal","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","cancelButton","createReportModal","reported","headerSubmitted","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","isFilterApplied","review","OrderLookupViewComponent","_orderLookupForm$clas","_submitButton$classNa","SocialShareView","SocialShareElement","tileListView","tileItem","keyIndex","BusinessFormItemComponent","renderModal","BusinessUserFormComponent","BusinessUserDetailsComponent","buttonList","headingForEmptyUserOrganizationList","textForEmptyUserOrganizationList","getForm","SummaryForm","addPaymentButton","appliedLine","bottomBorder","paymentAmountInput","EditForm","inputLabel","inputAmount","customerName","customerAccountNumber","customerSince","accountCredit","accountDetails","checkoutCustomerAccount","checkoutErrorRef","summaryView","editView","moduleState","placedBy","successClassName"],"sourceRoot":""}
\n {/* eslint-disable-next-line react/no-danger */}\n \n {cellData}