{"version":3,"file":"static/js/9.c98ba0d123f721958947.chunk.js","mappings":"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","sources":["webpack://venchi-ecommerce-msdyn365/./src/modules/business-organization-list/business-organization-list.tsx?0823","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/account-customer-balance-tile.tsx?8281","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/account-profile-edit.tsx?a0b5","webpack://venchi-ecommerce-msdyn365/./src/modules/account-welcome-tile/account-welcome-tile.tsx?2115","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/components/account-wishlist-tile-description.tsx?0588","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/components/account-wishlist-tile-links.tsx?f114","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/account-wishlist-tile.tsx?b721","webpack://venchi-ecommerce-msdyn365/./src/modules/b2b-requests-status/components/b2b-requests-table.tsx?06fc","webpack://venchi-ecommerce-msdyn365/./src/modules/b2b-requests-status/b2b-requests-status.tsx?c1aa","webpack://venchi-ecommerce-msdyn365/./src/modules/b2b-requests-tile/components/account-b2b-requests-tile-links.tsx?d6f5","webpack://venchi-ecommerce-msdyn365/./src/modules/b2b-requests-tile/b2b-requests-tile.tsx?9498","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/account-customer-balance-tile.view.tsx?95a8","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/account-profile-edit.view.tsx?530d","webpack://venchi-ecommerce-msdyn365/./src/modules/account-welcome-tile/account-welcome-tile.view.tsx?e5e3","webpack://venchi-ecommerce-msdyn365/./src/modules/account-wishlist-tile/account-wishlist-tile.view.tsx?095e","webpack://venchi-ecommerce-msdyn365/./src/modules/b2b-requests-status/b2b-requests-status.view.tsx?6b7c","webpack://venchi-ecommerce-msdyn365/./src/modules/b2b-requests-tile/b2b-requests-tile.view.tsx?3f4e","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-sign-up/components/loyalty-sign-up-small-components.tsx?7106","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-sign-up/loyalty-sign-up.tsx?fd89","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-sign-up/loyalty-sign-up.view.tsx?45ec","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-terms/loyalty-terms.tsx?babd","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-terms/loyalty-terms.view.tsx?b3e6","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/password-reset.tsx?0983","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/password-reset.view.tsx?b341","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/sign-up.tsx?5ad1","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/sign-up.view.tsx?08eb","webpack://venchi-ecommerce-msdyn365/./src/modules/order-history-with-search-and-filters/components/order-history-with-search-and-filters-organization-wide-selector.component.tsx?b9a7","webpack://venchi-ecommerce-msdyn365/./src/modules/aad-generic/aad-generic.tsx?c076","webpack://venchi-ecommerce-msdyn365/./src/modules/account-address-tile/account-address-tile.tsx?2f8c","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/components/account-loyalty-tile-links.tsx?6c7f","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/account-loyalty-tile.tsx?7f29","webpack://venchi-ecommerce-msdyn365/./src/modules/account-order-templates-tile/components/account-order-templates-tile-description.tsx?a8c4","webpack://venchi-ecommerce-msdyn365/./src/modules/account-order-templates-tile/components/account-order-templates-tile-links.tsx?0bcf","webpack://venchi-ecommerce-msdyn365/./src/modules/account-order-templates-tile/account-order-templates-tile.tsx?4e7d","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-attributes.tsx?bcc2","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-links.tsx?8faf","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/account-profile.tsx?fe69","webpack://venchi-ecommerce-msdyn365/./src/modules/account-address-tile/account-address-tile.view.tsx?ac91","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/account-loyalty-tile.view.tsx?3547","webpack://venchi-ecommerce-msdyn365/./src/modules/account-order-templates-tile/account-order-templates-tile.view.tsx?a1f9","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/account-profile.view.tsx?b964","webpack://venchi-ecommerce-msdyn365/./src/modules/business-organization-list/business-organization-list.view.tsx?c050","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/account-customer-balance.tsx?8d5a","webpack://venchi-ecommerce-msdyn365/./src/modules/account-invoice-tile/components/account-invoice-tile-description.tsx?7378","webpack://venchi-ecommerce-msdyn365/./src/modules/account-invoice-tile/components/account-invoice-tile-links.tsx?81f3","webpack://venchi-ecommerce-msdyn365/./src/modules/account-invoice-tile/account-invoice-tile.tsx?c17e","webpack://venchi-ecommerce-msdyn365/./src/modules/organization-users-tile/components/account-organization-users-tile-description.tsx?3b33","webpack://venchi-ecommerce-msdyn365/./src/modules/organization-users-tile/components/account-organization-users-tile-links.tsx?f1c7","webpack://venchi-ecommerce-msdyn365/./src/modules/organization-users-tile/organization-users-tile.tsx?f5de","webpack://venchi-ecommerce-msdyn365/./src/modules/catalog-picker/catalog-picker.tsx?02aa","webpack://venchi-ecommerce-msdyn365/./src/modules/footer-item/footer-item.tsx?074a","webpack://venchi-ecommerce-msdyn365/./src/modules/site-picker/site-picker.tsx?b9ec","webpack://venchi-ecommerce-msdyn365/./src/modules/social-share/social-share.tsx?899b","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/account-generic-tile.view.tsx?19d2","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/definition-extensions/account-loyalty.ext.props.autogenerated.ts?0bf6","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/account-loyalty.view.tsx?24c1","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/reviews-list.view.tsx?43bb","webpack://venchi-ecommerce-msdyn365/./src/themes/venchi/views/store-selector.view.tsx?4246","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/account-customer-balance.view.tsx?70d2","webpack://venchi-ecommerce-msdyn365/./src/modules/account-invoice-tile/account-invoice-tile.view.tsx?0a60","webpack://venchi-ecommerce-msdyn365/./src/modules/organization-users-tile/organization-users-tile.view.tsx?bac2","webpack://venchi-ecommerce-msdyn365/./src/modules/catalog-picker/catalog-picker.view.tsx?1e13","webpack://venchi-ecommerce-msdyn365/./src/modules/fabrikam/views/cart.view.tsx?ac8f","webpack://venchi-ecommerce-msdyn365/./src/modules/fabrikam/views/order-history.view.tsx?a21d","webpack://venchi-ecommerce-msdyn365/./src/modules/fabrikam/views/ratings-histogram.view.tsx?6e01","webpack://venchi-ecommerce-msdyn365/./src/modules/footer-item/footer-item.view.tsx?c5af","webpack://venchi-ecommerce-msdyn365/./src/modules/site-picker/site-picker.view.tsx?5319","webpack://venchi-ecommerce-msdyn365/./src/modules/social-share/social-share.view.tsx?dcdf","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/business-organization-list.view.tsx?e6ec","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/checkout-customer-account-payment.view.tsx?0efc","webpack://venchi-ecommerce-msdyn365/./src/modules/adventureworks/views/reviews-list.view.tsx?39ca","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/components/account-actions.tsx?e021","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/components/account-statement-request-modal.tsx?18c0","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance/components/index.tsx?fba9","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-info.tsx?44e9","webpack://venchi-ecommerce-msdyn365/./src/modules/account-customer-balance-tile/components/account-customer-balance-tile-links.tsx?95ac","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-button.tsx?e669","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-error.tsx?eadf","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-input.tsx?5c72","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-label.tsx?4793","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-loading-icon.tsx?fba0","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile-edit/components/account-profile-edit-loading-message.tsx?7cf0","webpack://venchi-ecommerce-msdyn365/./src/modules/loyalty-terms/components/loyalty-terms-modal.tsx?1b8b","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-button.tsx?a869","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-error.tsx?fbfd","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-input.tsx?20d9","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-label.tsx?6ef1","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-loading-icon.tsx?8828","webpack://venchi-ecommerce-msdyn365/./src/modules/password-reset/components/password-reset-loading-message.tsx?a980","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-button.tsx?33d4","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-error.tsx?b9c0","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-input.tsx?27a8","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-label.tsx?3142","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-loading-icon.tsx?96eb","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-loading-message.tsx?9245","webpack://venchi-ecommerce-msdyn365/./src/modules/sign-up/components/sign-up-success.tsx?7f30","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-text.tsx?8115","webpack://venchi-ecommerce-msdyn365/./src/modules/account-address-tile/components/account-address-tile-description.tsx?4911","webpack://venchi-ecommerce-msdyn365/./src/modules/account-address-tile/components/account-address-tile-links.tsx?bee7","webpack://venchi-ecommerce-msdyn365/./src/modules/account-loyalty-tile/components/account-loyalty-tile-description.tsx?c7bb","webpack://venchi-ecommerce-msdyn365/./src/modules/account-profile/components/account-profile-description.tsx?770a","webpack://venchi-ecommerce-msdyn365/./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 { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { CustomerBalances } from '@msdyn365-commerce/retail-proxy';\nimport { getTelemetryObject, Heading, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport get from 'lodash/get';\nimport { computed, reaction } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceTileData } from './account-customer-balance-tile.data';\nimport { IAccountCustomerBalanceTileProps } from './account-customer-balance-tile.props.autogenerated';\nimport { CreditComponent, ErrorComponent } from './components/account-customer-balance-tile-info';\nimport LinksComponent from './components/account-customer-balance-tile-links';\n\nexport interface IAccountCustomerBalanceTileViewProps extends IAccountCustomerBalanceTileProps {\n AccountCustomerBalanceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n content: React.ReactNode;\n links: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceTileViewState {\n isDetailsLinkDisplayed: boolean;\n content: React.ReactNode;\n}\n\n/**\n *\n * AccountCustomerBalanceTile component.\n * @extends {React.Component>}\n */\nclass AccountCustomerBalanceTile extends React.Component<\n IAccountCustomerBalanceTileProps,\n IAccountCustomerBalanceTileViewState\n> {\n @computed get hasError(): boolean {\n return get(this.props, 'data.balance.status') !== 'SUCCESS';\n }\n\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountCustomerBalanceTileProps) {\n super(props);\n\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n this.state = { ...this._initState() };\n\n reaction(\n () => this.hasError,\n () => {\n this.props.context.telemetry.error('Error retrieving customer account balance');\n this.setState({\n content: \n });\n }\n );\n }\n\n @computed get isCustomerAccountPaymentEnabled(): boolean {\n const customerResult = get(this.props, 'data.customerInformation.result');\n\n const allowOnAccountPayment = customerResult ? customerResult.AllowOnAccountPayment : false;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const enableCustomerAccountPayment = get(this.props, 'context.request.app.platform.enableCustomerAccountPayment');\n\n return (\n allowOnAccountPayment &&\n (enableCustomerAccountPayment === 'all' ||\n (enableCustomerAccountPayment === 'b2b' && isB2BSite) ||\n (enableCustomerAccountPayment === 'b2c' && !isB2BSite))\n );\n }\n\n public shouldComponentUpdate(\n nextProps: IAccountCustomerBalanceTileProps,\n nextState: IAccountCustomerBalanceTileViewState\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 if (!this.isCustomerAccountPaymentEnabled) {\n return <>;\n }\n\n const { className, heading, links } = this.props.config;\n const viewProps = {\n ...this.props,\n AccountCustomerBalanceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-customer-balance-tile', className)\n },\n heading: heading && (\n \n ),\n content: this.state.content,\n links: this.state.isDetailsLinkDisplayed && (\n (event: Msdyn365.ContentEditableEvent) => void 0,\n requestContext: this.props.context.request,\n telemetryContent: this.telemetryContent\n }}\n />\n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _initState(): IAccountCustomerBalanceTileViewState {\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n\n let content: React.ReactNode;\n let isDetailsLinkDisplayed = false;\n\n if (this.hasError) {\n this.props.telemetry.error('Error retrieving customer account balance');\n content = ;\n } else if (\n account.Balance === 0 &&\n account.CreditLimit === 0 &&\n account.InvoiceAccountBalance === 0 &&\n account.InvoiceAccountCreditLimit === 0\n ) {\n // Non-established credit\n content = ;\n } else {\n // Successfully retrieved balance\n const { accountCreditVerbagePrefix, accountCreditVerbagePostfix } = this.props.resources;\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n let customerCredit = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n }\n\n const customerCreditFormatted = `${formatCurrency(customerCredit.toFixed(2), currencyCode)}`;\n\n isDetailsLinkDisplayed = true;\n content = (\n \n );\n }\n\n return { content, isDetailsLinkDisplayed };\n }\n}\n\nexport default AccountCustomerBalanceTile;\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 * as React from 'react';\n\ninterface IAccountWishlistTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountWishlistTileDescription: React.FC = ({ description }) => (\n

{description}

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

{props.text}

;\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, * as Msdyn365 from '@msdyn365-commerce/core';\nimport { issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n ITelemetryContent,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { SignUpText } from './components/loyalty-sign-up-small-components';\nimport { ILoyaltySignUpData } from './loyalty-sign-up.data';\nimport { ILoyaltySignUpProps } from './loyalty-sign-up.props.autogenerated';\n\nexport interface IAccountLoyaltyJoinState {\n clicked: boolean;\n}\nexport interface ILoyaltySignUpViewProps extends ILoyaltySignUpProps {\n LoyaltySignUp: IModuleProps;\n heading: React.ReactNode;\n memberHeading: React.ReactNode;\n signInLink: React.ReactElement;\n signUpText: React.ReactElement;\n signUpButton: React.ReactElement;\n detailsLink: React.ReactElement;\n termsLink: React.ReactElement;\n loading: boolean;\n infoMessageBar?: React.ReactNode;\n}\n\n/**\n *\n * LoyaltySignUp component.\n * @extends {React.Component>}\n */\n@observer\nclass LoyaltySignUp extends React.Component, IAccountLoyaltyJoinState> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly loyaltySignInAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltySignUpAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyDetailsLinkAttributes: Msdyn365.IDictionary | undefined;\n private readonly loyaltyTermsLinkAttributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: ILoyaltySignUpProps) {\n super(props);\n this.state = { clicked: false };\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n const payLoad = getPayloadObject('click', this.telemetryContent, TelemetryConstant.SignIn);\n this.loyaltySignInAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.SignUp;\n this.loyaltySignUpAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyDetailLink;\n this.loyaltyDetailsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsLink;\n this.loyaltyTermsLinkAttributes = getTelemetryAttributes(this.telemetryContent, payLoad);\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltySignUpProps, nextState: IAccountLoyaltyJoinState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, heading, memberHeading },\n resources,\n context: {\n actionContext,\n request: {\n user: { signInUrl, isAuthenticated }\n }\n },\n data\n } = this.props;\n\n const termsUrl = Msdyn365.getUrlSync('loyaltyTerms', actionContext);\n let loyaltyJoinUrl = `${Msdyn365.getUrlSync('loyaltyJoin', actionContext)}?joiningLoyalty=true`;\n if (MsDyn365.isBrowser) {\n loyaltyJoinUrl = `${window.location.origin}${loyaltyJoinUrl}`;\n }\n const signInurl = `${signInUrl}?ru=${loyaltyJoinUrl}`;\n const completeClass = classname('ms-loyalty-signup', className);\n const loyaltyCard = data.loyaltyCard;\n const hasLoyaltyAccount = loyaltyCard.result && loyaltyCard.result.CardTenderTypeValue !== undefined;\n const customerInformation = data.customerInformation?.result;\n\n const invalidAsyncCustomerState: boolean =\n (this.props.context.app?.config?.canRenderAsyncCustomerDataAsUnmodifiable || false) &&\n (customerInformation?.IsAsyncCustomer || false);\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltySignUp: {\n moduleProps: this.props,\n className: completeClass\n },\n infoMessageBar: invalidAsyncCustomerState && (\n \n ),\n loading: !this.props.context.request.params.isEditor && loyaltyCard?.status === 'LOADING',\n heading: !hasLoyaltyAccount && heading && heading.text && (\n \n ),\n memberHeading: hasLoyaltyAccount && memberHeading && memberHeading.text && (\n \n ),\n signInLink: !isAuthenticated && (\n \n ),\n signUpText: !hasLoyaltyAccount && ,\n signUpButton: !hasLoyaltyAccount && isAuthenticated && (\n \n {this.props.resources.joinLoyaltyButtonText}\n \n ),\n detailsLink: hasLoyaltyAccount && (\n \n {this.props.resources.viewLoyaltyPageText}\n \n ),\n termsLink: !hasLoyaltyAccount && (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleMemberHeadingChange = (event: Msdyn365.ContentEditableEvent) =>\n (this.props.config.memberHeading!.text = event.target.value);\n\n private readonly _issueLoyalty = () => {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(() => {\n if (MsDyn365.isBrowser) {\n window.location.assign(Msdyn365.getUrlSync('loyalty', this.props.context.actionContext) || '');\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n };\n}\n\nexport default LoyaltySignUp;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILoyaltySignUpViewProps } from './loyalty-sign-up';\n\nconst LoyaltySignUpView: React.FC = props => {\n const {\n LoyaltySignUp,\n heading,\n memberHeading,\n signInLink,\n signUpText,\n signUpButton,\n detailsLink,\n termsLink,\n loading,\n infoMessageBar\n } = props;\n\n if (loading) {\n props.context.telemetry.error('LoyaltySignUp data is empty, module wont render');\n return null;\n }\n\n return (\n \n {infoMessageBar}\n {memberHeading}\n {heading}\n {detailsLink}\n {signUpText}\n {termsLink}\n {signUpButton}\n {signInLink}\n \n );\n};\n\nexport default LoyaltySignUpView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getUrlSync } from '@msdyn365-commerce/core';\nimport { getLoyaltyCardAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/StoreOperationsDataActions.g';\nimport { GetLoyaltyCardInput, issueLoyalty, IssueLoyaltyInput } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classname from 'classnames';\nimport * as React from 'react';\n\nimport { ILoyaltyTermsModalViewProps, LoyaltyTermsModal } from './components/loyalty-terms-modal';\nimport { ILoyaltyTermsData } from './loyalty-terms.data';\nimport { ILoyaltyTermsProps } from './loyalty-terms.props.autogenerated';\n\nexport interface ILoyaltyTermsState {\n checked: boolean;\n clicked: boolean;\n isModalOpen: boolean;\n}\nexport interface ILoyaltyTermsViewProps extends ILoyaltyTermsProps {\n LoyaltyTerms: IModuleProps;\n modalToggle: React.ReactElement;\n modal: ILoyaltyTermsModalViewProps;\n loading: boolean;\n}\n\n/**\n *\n * LoyaltyTerms component.\n * @extends {React.Component>}\n */\nclass LoyaltyTerms extends React.Component, ILoyaltyTermsState> {\n private readonly toggleRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent;\n\n public constructor(props: ILoyaltyTermsProps) {\n super(props);\n this._toggle = this._toggle.bind(this);\n this._submit = this._submit.bind(this);\n this._checkboxChecked = this._checkboxChecked.bind(this);\n this.toggleRef = React.createRef();\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n let search = this.props.context.request.url.requestUrl.search;\n let isJoining = false;\n if (search) {\n search = search.substring(1);\n const qsps = search.split('&');\n for (const qsp of qsps) {\n const splitQsp = qsp.split('=');\n isJoining = splitQsp[0] === 'joiningLoyalty' && splitQsp[1] === 'true';\n if (isJoining) {\n break;\n }\n }\n }\n\n this.state = {\n isModalOpen: isJoining,\n checked: false,\n clicked: false\n };\n }\n\n public shouldComponentUpdate(nextProps: ILoyaltyTermsProps, nextState: ILoyaltyTermsState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n const {\n config: { className, hideToggle },\n resources,\n slots: { serviceTerms },\n data: { loyaltyCard },\n context: {\n request: {\n user: { isAuthenticated }\n }\n }\n } = this.props;\n const completeClass = classname('ms-loyalty-terms', className);\n\n const viewProps = {\n ...this.props,\n className: completeClass,\n LoyaltyTerms: {\n moduleProps: this.props,\n className: completeClass\n },\n loading: loyaltyCard.status === 'LOADING',\n modalToggle: hideToggle !== true && (\n \n ),\n modal:\n isAuthenticated &&\n loyaltyCard.result &&\n loyaltyCard.result.CardNumber === undefined &&\n LoyaltyTermsModal({\n resources: { ...resources },\n returnRef: this.toggleRef,\n checked: this.state.checked,\n isOpen: this.state.isModalOpen,\n terms: serviceTerms,\n telemetryContent: this.telemetryContent,\n onToggle: this._toggle,\n onSubmit: this._submit,\n onCheck: this._checkboxChecked\n })\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _toggle(): void {\n this.setState({ isModalOpen: !this.state.isModalOpen, checked: false });\n }\n\n private _submit(): void {\n if (this.props.context.request.user.isAuthenticated && !this.state.clicked) {\n this.setState({ clicked: true });\n const input = new IssueLoyaltyInput(this.props.context.request.apiSettings);\n\n issueLoyalty(input, this.props.context.actionContext)\n .then(card => {\n if (this.props.config.redirectToLoyalty) {\n window.location.assign(getUrlSync('loyalty', this.props.context.actionContext) || '');\n } else {\n getLoyaltyCardAsync({ callerContext: this.props.context.actionContext }, card.CardNumber || '')\n .then(fullCard => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n fullCard\n );\n })\n .catch((error: Error) => {\n this.props.context.actionContext.update(\n new GetLoyaltyCardInput(this.props.context.request.apiSettings),\n card\n );\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to fetch loyalty card');\n });\n }\n })\n .catch((error: Error) => {\n this.setState({ clicked: false });\n this.props.telemetry.error(error.message);\n this.props.telemetry.debug('Unable to issue loyalty card');\n });\n }\n }\n\n private _checkboxChecked(): void {\n this.setState({ checked: !this.state.checked });\n }\n}\n\nexport default LoyaltyTerms;\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 { ILoyaltyTermsViewProps } from './loyalty-terms';\n\nconst LoyaltyTermsView: React.FC = props => {\n const { LoyaltyTerms, modalToggle, modal, loading } = props;\n\n return !loading && modal ? (\n \n {modalToggle}\n \n {modal.heading}\n \n {modal.terms}\n \n {modal.checkbox}\n {modal.agreeText}\n \n \n \n {modal.submitButton}\n {modal.cancelButton}\n \n \n \n ) : null;\n};\n\nexport default LoyaltyTermsView;\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 * 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 { IComponentProps, msdyn365Commerce } from '@msdyn365-commerce/core';\nimport { Customer } from '@msdyn365-commerce/retail-proxy';\nimport { Button, ITelemetryContent, getPayloadObject, getTelemetryAttributes } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport classnames from 'classnames';\n\n/**\n * Class names used in component.\n */\nconst componentClassName = 'ms-order-history-with-search-and-filters-organization-wide-selector';\nconst buttonClassName = `${componentClassName}__button`;\nconst buttonActiveClassName = `${componentClassName}__active-button`;\nconst buttonInactiveClassName = `${componentClassName}__inactive-button`;\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources {\n currentUserOptionLabel: string;\n currentUserOptionAriaLabel?: string;\n organizationWideOptionLabel: string;\n organizationWideOptionAriaLabel?: string;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState interface.\n */\nexport enum OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState {\n CurrentUser,\n OrganizationWide\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorData {\n customer: Customer;\n}\n\n/**\n * IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps interface.\n */\nexport interface IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n extends IComponentProps {\n className?: string;\n resources: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorResources;\n currentSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState;\n telemetryContent?: ITelemetryContent;\n onChange(state: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState): void;\n}\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n * @param props - Configuration of the component.\n * @returns React node.\n */\nconst OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent: React.FC = (\n props: IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n) => {\n // Current version doesn't include functionality for non b2b users or non-admin b2b users.\n if (!props.data.customer.IsB2bAdmin) {\n return
;\n }\n\n const [selectorState, setSelectorState] = React.useState(props.currentSelectorState);\n\n const onClickHandler = (newSelectorState: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState) => {\n setSelectorState(newSelectorState);\n props.onChange(newSelectorState);\n };\n\n // define telemetry attributes\n const currentUserOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Current user order history')\n );\n const orgWideOrderHistoryAttributes = getTelemetryAttributes(\n props.telemetryContent!,\n getPayloadObject('click', props.telemetryContent!, props.resources?.currentUserOptionLabel ?? 'Org wide order history')\n );\n\n return (\n
\n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.CurrentUser)}\n {...currentUserOrderHistoryAttributes}\n >\n {props.resources?.currentUserOptionLabel}\n \n onClickHandler(OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState.OrganizationWide)}\n {...orgWideOrderHistoryAttributes}\n >\n {props.resources?.organizationWideOptionLabel}\n \n
\n );\n};\n\n/**\n * OrderHistoryWithSearchAndFiltersOrganizationWideSelector component.\n */\nexport const OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent: React.FunctionComponent = msdyn365Commerce.createComponent<\n // @ts-expect-error\n IOrderHistoryWithSearchAndFiltersOrganizationWideSelectorProps\n>('OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent', {\n component: OrderHistoryWithSearchAndFiltersOrganizationWideSelectorFunctionalComponent\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 { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAadGenericData } from './aad-generic.data';\nimport { IAadGenericProps } from './aad-generic.props.autogenerated';\n\nexport interface IAadGenericViewProps extends IAadGenericProps {\n aadGeneric: IModuleProps;\n aadConainer: INodeProps;\n aadAPIConainer: React.ReactNode;\n heading?: React.ReactNode;\n}\n\n/**\n *\n * AadGeneric component.\n * @extends {React.Component>}\n */\nclass AadGeneric extends React.Component> {\n private readonly moduleClassName: string = 'ms-aad-generic';\n\n public componentDidMount(): void {\n // @ts-expect-error\n const { $i2e, $element } = window || {};\n\n if ($i2e && $element) {\n $i2e.insertServiceContent($element.getElementContent());\n $element.initialize();\n }\n }\n\n public shouldComponentUpdate(nextProps: IAadGenericViewProps): boolean {\n if (nextProps.config.heading !== this.props.config.heading) {\n return true;\n }\n return false;\n }\n\n public render(): JSX.Element | null {\n const { className, heading } = this.props.config;\n\n const viewProps = {\n ...this.props,\n aadGeneric: {\n moduleProps: this.props,\n className: classnames(this.moduleClassName, className)\n },\n aadConainer: {\n className: `${this.moduleClassName}__container`\n },\n aadAPIConainer:
,\n heading: heading && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.heading) {\n this.props.config.heading.text = event.target.value;\n }\n };\n}\n\nexport default AadGeneric;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountAddressTileData } from './account-address-tile.data';\nimport { IAccountAddressTileProps } from './account-address-tile.props.autogenerated';\nimport DescriptionComponent from './components/account-address-tile-description';\nimport LinksComponent from './components/account-address-tile-links';\n\nexport interface IAccountAddressTileViewProps extends IAccountAddressTileProps {\n AccountAddressTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountAddress component.\n * @extends {React.PureComponent>}\n */\nclass AccountAddressTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountAddressTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const { config, resources, data } = this.props;\n const { className, heading, links } = config;\n const { accountAddressTileDescriptionForSingleAddress, accountAddressTileDescriptionForMultipleAddresses } = resources;\n const { address } = data;\n const addressCount = (address && address.result && address.result.length) || 0;\n const accountAddressTileDescription =\n addressCount === 1 ? accountAddressTileDescriptionForSingleAddress : accountAddressTileDescriptionForMultipleAddresses;\n const description = format(accountAddressTileDescription, addressCount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountAddressTile: {\n moduleProps: this.props,\n className: classnames('ms-account-address-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountAddressTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * 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 { IAccountAddressTileViewProps } from './account-address-tile';\n\nconst AccountAddressTileView: React.FC = props => {\n const { AccountAddressTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n\nexport default AccountAddressTileView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 { 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 Msdyn365 from '@msdyn365-commerce/core';\nimport { isChannelTypeB2B } from '@msdyn365-commerce/core';\nimport { BusinessPartnerUsersDataActions } from '@msdyn365-commerce/retail-proxy';\nimport {\n AccountStatementRequest,\n BusinessPartnerOperationDeliveryType,\n CustomerBalances\n} from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { getTelemetryObject, Heading, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport { get } from 'lodash';\nimport { computed } from 'mobx';\nimport * as React from 'react';\n\nimport { IAccountCustomerBalanceData } from './account-customer-balance.data';\nimport { HeadingTag, IAccountCustomerBalanceProps } from './account-customer-balance.props.autogenerated';\nimport {\n AccountLabels,\n AccountValues,\n ActionBar,\n AdminRequestStatementButton,\n AvailableCreditComponent,\n BackButton,\n BalanceOwedComponent,\n CreditExcessComponent,\n RequestStatementModal\n} from './components';\n\nexport interface IAccountCustomerBalanceViewProps extends IAccountCustomerBalanceProps {\n heading: string;\n homeButton: React.ReactNode;\n accountSectionHeading: React.ReactNode;\n accountLabels: React.ReactNode;\n accountValues: React.ReactNode;\n creditSummarySectionHeading: React.ReactNode;\n creditSummaryLabels?: React.ReactNode;\n creditSummaryValues?: React.ReactNode;\n actions: React.ReactNode;\n requestStatementModal: React.ReactNode;\n availableCredit?: React.ReactNode;\n balanceOwed?: React.ReactNode;\n creditExcess?: React.ReactNode;\n}\n\nexport interface IAccountCustomerBalanceState {\n isStatementRequestModalOpen: boolean;\n statementRequestFromDateString: string;\n statementRequestToDateString: string;\n isStatementRequestAdminDropdownOpen: boolean;\n statementRequestFullOrg: boolean;\n statementRequestMaxDateString?: string;\n}\n\n/**\n *\n * AccountCustomerBalance component.\n * @extends {React.PureComponent>}\n */\nclass AccountCustomerBalance extends React.PureComponent<\n IAccountCustomerBalanceProps,\n IAccountCustomerBalanceState\n> {\n private readonly telemetryContent?: ITelemetryContent;\n private readonly requestStatementButtonRef: React.RefObject = React.createRef();\n\n @computed get canSubmitStatementRequest(): boolean {\n return this.state.statementRequestFromDateString !== '' && this.state.statementRequestToDateString !== '';\n }\n\n constructor(props: IAccountCustomerBalanceProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n this.state = {\n isStatementRequestModalOpen: false,\n statementRequestFromDateString: '',\n statementRequestToDateString: '',\n isStatementRequestAdminDropdownOpen: false,\n statementRequestFullOrg: false,\n statementRequestMaxDateString: new Date().toISOString().split('T')[0]\n };\n }\n\n public render(): JSX.Element | null {\n const customer = get(this.props, 'data.customerInformation.result');\n const account: CustomerBalances = get(this.props, 'data.balance.result');\n if ([customer, account].includes(undefined)) {\n this.props.context.telemetry.error('Customer data is unavailable, module will not render');\n return null;\n }\n\n const { config, resources, context } = this.props;\n const { heading } = config;\n const {\n creditSummarySectionHeading,\n accountSectionHeading,\n backToShoppingText,\n customerSincePrefix,\n availableCreditLabel,\n balanceOwedLabel,\n creditExcessLabel,\n requestStatementButtonLabel,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n myAccountStatementLabel,\n fullOrganizationLabel,\n modalAriaLabel\n } = resources;\n\n const {\n isStatementRequestModalOpen,\n statementRequestFromDateString,\n statementRequestToDateString,\n statementRequestMaxDateString\n } = this.state;\n\n const accountNumber = customer.AccountNumber;\n const createdOn = this._formatJoinDate(new Date(customer.CreatedDateTime));\n const name = `${customer.FirstName} ${customer.LastName}`;\n let customerCredit = 0;\n let customerAccountBalance = 0;\n let excess = 0;\n\n if (account.InvoiceAccountCreditLimit === 0) {\n customerCredit = account.CreditLimit - account.Balance;\n customerAccountBalance = account.Balance;\n excess = account.Balance - account.CreditLimit;\n } else {\n customerCredit = account.InvoiceAccountCreditLimit - account.InvoiceAccountBalance;\n customerAccountBalance = account.InvoiceAccountBalance;\n excess = account.InvoiceAccountBalance - account.InvoiceAccountCreditLimit;\n }\n\n const creditExcess = excess > 0 ? this._formatCurrency(excess) : null;\n const availableCredit = this._formatCurrency(customerCredit);\n const balanceOwed = this._formatCurrency(customerAccountBalance);\n const backLink = Msdyn365.getUrlSync('home', context.actionContext) || '';\n const emailAddress = customer.Email;\n const isB2BSite = isChannelTypeB2B(this.props.context.request);\n const isB2BAdmin = isB2BSite && customer.IsB2bAdmin;\n\n const actionBar = isB2BAdmin ? (\n \n ) : (\n isB2BSite && (\n \n )\n );\n\n const viewProps = {\n ...this.props,\n heading: ,\n accountSectionHeading: (\n \n ),\n accountLabels: (\n \n ),\n accountValues: ,\n creditSummarySectionHeading: (\n \n ),\n availableCredit: ,\n balanceOwed: ,\n creditExcess: ,\n homeButton: ,\n actions: actionBar,\n requestStatementModal: isB2BSite && (\n \n )\n };\n\n return this.props.renderView(viewProps);\n }\n\n private _formatCurrency(currency: number): string {\n const currencyCode = get(this.props, 'context.request.channel.Currency');\n const formatCurrency = get(this.props, 'context.cultureFormatter.formatCurrency');\n\n return `${formatCurrency(currency.toFixed(2), currencyCode)}`;\n }\n\n private _formatJoinDate(date: Date): string {\n const i14nDate = new Intl.DateTimeFormat(this.props.context.actionContext.requestContext.locale, {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n });\n\n return i14nDate.format(date);\n }\n\n private readonly _showRequestStatementModal = (): void => {\n if (!this.state.isStatementRequestModalOpen) {\n this.setState({\n isStatementRequestModalOpen: true\n });\n }\n };\n\n private readonly _toggleModal = (): void => {\n this.setState({\n isStatementRequestModalOpen: false\n });\n this.requestStatementButtonRef.current?.focus();\n };\n\n private readonly _toggleDropdown = (): void => {\n this.setState({\n isStatementRequestAdminDropdownOpen: !this.state.isStatementRequestAdminDropdownOpen\n });\n };\n\n private readonly _updateFromDate = (newFromDate: string) => {\n this.setState({\n statementRequestFromDateString: newFromDate\n });\n };\n\n private readonly _updateToDate = (newToDate: string) => {\n this.setState({\n statementRequestToDateString: newToDate\n });\n };\n\n private readonly _adminShowRequestStatementModal = (isFullOrg: boolean) => {\n this.setState({\n statementRequestFullOrg: isFullOrg,\n isStatementRequestAdminDropdownOpen: false\n });\n\n this._showRequestStatementModal();\n };\n\n private readonly _requestStatement = () => {\n const customer = this.props.data.customerInformation.result!;\n const B2BUserId = this.props.data.b2bUserInformation?.result?.B2BUserId || '';\n\n const statementRequest: AccountStatementRequest = {\n FromDate: new Date(this.state.statementRequestFromDateString),\n ToDate: new Date(this.state.statementRequestToDateString),\n IsForFullOrganization: this.state.statementRequestFullOrg,\n RequestedUserId: B2BUserId,\n RequestingUserEmail: customer.Email,\n DeliveryTypeValue: BusinessPartnerOperationDeliveryType.Email\n };\n\n const context = { callerContext: this.props.context.actionContext };\n\n BusinessPartnerUsersDataActions.requestAccountStatementAsync(context, B2BUserId, statementRequest);\n\n this.setState({\n isStatementRequestModalOpen: false\n });\n\n this.requestStatementButtonRef.current?.focus();\n };\n}\n\nexport default AccountCustomerBalance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface IAccountInvoiceTileDescription {\n description: string;\n}\n\nexport const AccountInvoiceTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-invoice-tile.props.autogenerated';\n\nexport interface IAccountInvoiceTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountInvoiceTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-invoice-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountInvoiceTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { format, getTelemetryObject, IModuleProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileData } from './account-invoice-tile.data';\nimport { IAccountInvoiceTileProps } from './account-invoice-tile.props.autogenerated';\nimport { AccountInvoiceTileDescription } from './components';\nimport LinksComponent from './components/account-invoice-tile-links';\n\nexport interface IAccountInvoiceTileViewProps extends IAccountInvoiceTileProps {\n AccountInvoiceTile: IModuleProps;\n className: string;\n heading?: React.ReactNode;\n links?: React.ReactNode;\n description?: React.ReactNode;\n}\n\n/**\n *\n * AccountInvoiceTile component.\n * @extends {React.PureComponent>}\n */\nclass AccountInvoiceTile extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n constructor(props: IAccountInvoiceTileProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n }\n\n public render(): JSX.Element {\n const {\n config,\n data,\n resources,\n context: {\n cultureFormatter: {\n formatCurrency,\n\n // @ts-expect-error\n currencyCode\n }\n }\n } = this.props;\n const { className, heading, links } = config;\n const { accountInvoiceTileDescription } = resources;\n\n const openinvoiceAmount = data.customerBalance.result?.OpenInvoiceBalance || 0;\n const invoiceTotalAmount: string | undefined = formatCurrency(openinvoiceAmount.toFixed(2), currencyCode);\n\n const description = invoiceTotalAmount && format(accountInvoiceTileDescription, invoiceTotalAmount);\n\n const viewProps = {\n ...this.props,\n className,\n AccountInvoiceTile: {\n moduleProps: this.props,\n className: classnames('ms-account-invoice-tile', config.className)\n },\n heading: heading && heading.text && (\n \n ),\n links: links && links.length > 0 && (\n \n ),\n description: description && \n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\n\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[linkIndex]) {\n this.props.config.links[linkIndex].linkText = event.target.value;\n }\n };\n}\n\nexport default AccountInvoiceTile;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nexport interface 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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport MsDyn365, { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport { addThrottledEvent, Drawer, IModuleProps, INodeProps, KeyCodes, NodeTag } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { computed, observable } from 'mobx';\nimport React from 'react';\n\nimport { ISitePickerConfig, ISitePickerProps } from './site-picker.props.autogenerated';\n\nexport interface ISitePickerViewProps extends ISitePickerProps {\n SitePicker: IModuleProps;\n SitePickerMenu: INodeProps;\n SitePickerMenuSpan: INodeProps;\n SitePickerMenuList: INodeProps;\n SitePickerMenuListItem: INodeProps;\n SitePickerMenuListItemArray: React.ReactNode[] | undefined;\n siteOptionsState: boolean;\n SitePickerMobileContainer: INodeProps;\n isMobileView: boolean;\n renderSiteOptions(): void;\n resetSiteOptionsState(): void;\n}\n\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n\ninterface ISitePickerState {\n expandSiteOptions: boolean;\n isMobile: boolean;\n}\n\n/**\n *\n * SitePicker component.\n * @extends {React.PureComponent>}\n */\nclass SitePicker extends React.PureComponent, ISitePickerState> {\n private readonly _cookieName: string = '_msdyn365___site_';\n\n private readonly _cookieExpirationInSeconds: number = 5_184_000;\n\n private readonly _sitePickerMenuNode: React.RefObject;\n\n private readonly _sitePickerMenuButton: React.RefObject;\n\n private resizeThrottledEventHandler?: (event: Event) => void;\n\n @observable\n private viewport: GridSize;\n\n public constructor(props: ISitePickerViewProps) {\n super(props);\n this._handleChange = this._handleChange.bind(this);\n this._sitePickerMenuNode = React.createRef();\n this._sitePickerMenuButton = React.createRef();\n this._renderSiteOptions = this._renderSiteOptions.bind(this);\n this._resetSiteOptionsState = this._resetSiteOptionsState.bind(this);\n this._escFunction = this._escFunction.bind(this);\n this._handleOutsideClick = this._handleOutsideClick.bind(this);\n this._updateViewport = this._updateViewport.bind(this);\n this.viewport =\n props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\n this.state = {\n expandSiteOptions: false,\n isMobile: this.isMobile\n };\n }\n\n @computed get isMobile(): boolean {\n return this.viewport === 'xs' || this.viewport === 'sm';\n }\n\n public componentDidMount(): void {\n if (MsDyn365.isBrowser) {\n document?.addEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.addEventListener('mousedown', this._handleOutsideClick);\n this.resizeThrottledEventHandler = window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\n this._updateViewport();\n }\n }\n\n public componentWillUnmount(): void {\n if (MsDyn365.isBrowser) {\n document?.removeEventListener('keydown', (this._escFunction as unknown) as EventListener, false);\n document?.body?.removeEventListener('mousedown', this._handleOutsideClick, false);\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\n }\n }\n\n public render(): JSX.Element | null {\n const viewProps: ISitePickerViewProps = {\n ...(this.props as ISitePickerProps),\n SitePicker: {\n moduleProps: this.props,\n className: classnames('ms-site-picker', this.props.config.className, this.state.isMobile ? 'mobile-view' : 'desktop-view'),\n tag: 'div'\n },\n SitePickerMenu: {\n tag: 'button' as NodeTag,\n className: 'ms-site-picker__button',\n 'aria-label': this.props.config.heading?.text,\n 'aria-expanded': this.state.expandSiteOptions,\n onClick: this.props,\n ref: this._sitePickerMenuButton\n },\n SitePickerMenuSpan: {\n className: 'ms-site-picker__span',\n tag: 'span'\n },\n SitePickerMenuList: {\n className: 'ms-site-picker__list',\n role: 'menu',\n tag: 'ul',\n ref: this._sitePickerMenuNode\n },\n SitePickerMenuListItem: {\n className: 'ms-site-picker__list__item',\n role: 'presentation',\n tag: 'li'\n },\n SitePickerMobileContainer: {\n tag: Drawer,\n className: 'ms-site-picker__drawer',\n toggleButtonText: this.props.config.heading?.text,\n openGlyph: 'ms-site-picker__drawer-open',\n closeGlyph: 'ms-site-picker__drawer-close',\n glyphPlacement: 'end'\n },\n isMobileView: this.state.isMobile,\n SitePickerMenuListItemArray: this._renderSitePickerImage(),\n renderSiteOptions: this._renderSiteOptions,\n resetSiteOptionsState: this._resetSiteOptionsState,\n siteOptionsState: this.state.expandSiteOptions\n };\n return this.props.renderView(viewProps);\n }\n\n private _renderSiteOptions(): void {\n const expandSiteOptionsState = this.state.expandSiteOptions;\n this.setState({\n expandSiteOptions: !expandSiteOptionsState\n });\n }\n\n private _resetSiteOptionsState(): void {\n this.setState({\n expandSiteOptions: false\n });\n }\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _escFunction = (event: any) => {\n const key = event.keyCode;\n if (this.state.expandSiteOptions) {\n switch (key) {\n case KeyCodes.Escape: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n this._sitePickerMenuButton?.current?.contains(nextFocus) ||\n this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n this._sitePickerMenuButton?.current?.focus();\n }\n }, 50);\n break;\n }\n case KeyCodes.Tab: {\n setTimeout(() => {\n const nextFocus = document && document.activeElement;\n if (\n !this._sitePickerMenuButton?.current?.contains(nextFocus) &&\n !this._sitePickerMenuNode?.current?.contains(nextFocus)\n ) {\n this._resetSiteOptionsState();\n }\n }, 50);\n break;\n }\n default:\n return;\n }\n }\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private readonly _handleOutsideClick = (event: any) => {\n if (\n (this._sitePickerMenuButton.current?.contains(event.target) && this.state.expandSiteOptions) ||\n (this._sitePickerMenuNode.current?.contains(event.target) && this.state.expandSiteOptions)\n ) {\n return;\n }\n this._resetSiteOptionsState();\n };\n\n private _handleChange(e: React.MouseEvent): void {\n e.preventDefault();\n if (e.currentTarget.href && e.currentTarget.href.length > 0 && window) {\n if (this.props.context.request.cookies.isConsentGiven()) {\n const cookieConfig = { maxAge: this._cookieExpirationInSeconds };\n this.props.context.request.cookies.set(this._cookieName, e.currentTarget.href, cookieConfig);\n }\n window.location.assign(e.currentTarget.href);\n }\n }\n\n private _renderSitePickerImage(): React.ReactNode[] | undefined {\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n sm: { q: 'w=50&h=25&m=6', w: 0, h: 0 },\n md: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n lg: { q: 'w=40&h=20&m=6', w: 0, h: 0 },\n xl: { q: 'w=40&h=20&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n const siteOptions = this.props.config.siteOptions && this.props.config.siteOptions;\n return (\n siteOptions &&\n siteOptions.map((item, index) => {\n const image = item?.siteImage;\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings!,\n imageSettings: image?.imageSettings?.viewports ? image.imageSettings : defaultImageSettings\n };\n return (\n \n {item?.siteName}\n \n \n );\n })\n );\n }\n\n private _updateViewport(): void {\n this.viewport = this._getViewport();\n this.setState({ isMobile: this.isMobile });\n }\n\n private _getViewport(): GridSize {\n const { context } = this.props;\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\n return 'xs';\n }\n\n if (typeof window !== undefined && window.innerWidth) {\n const gridSettings = context.request.gridSettings;\n if (gridSettings) {\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\n return 'xs';\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\n return 'sm';\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\n return 'md';\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\n return 'lg';\n }\n return 'xl';\n }\n }\n return 'xs';\n }\n}\n\nexport default SitePicker;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountGenericTileViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { IAccountGenericTileProps } from '../definition-extensions/account-generic-tile.ext.props.autogenerated.js';\r\n\r\nconst AccountGenericTileView: React.FC> = props => {\r\n const { AccountGenericTile, heading, links } = props;\r\n const textField = props.config.text;\r\n const text = textField && ;\r\n\r\n return (\r\n \r\n {heading}\r\n {text}\r\n {links}\r\n \r\n );\r\n};\r\n\r\nexport default AccountGenericTileView;\r\n","/**\r\n * Copyright (c) Microsoft Corporation\r\n * All rights reserved. See License.txt in the project root for license information.\r\n * IAccountLoyalty contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum layout {\r\n cardLayout = 'cardLayout',\r\n wideLayout = 'wideLayout',\r\n compact = 'compact'\r\n}\r\n\r\nexport interface IAccountLoyaltyConfig extends Msdyn365.IModuleConfig {\r\n heading?: IHeadingData;\r\n className?: string;\r\n clientRender?: boolean;\r\n layout: layout;\r\n displayJoinDate?: boolean;\r\n displayAppleWallet?: boolean;\r\n displayGoogleWallet?: boolean;\r\n appleWalletBtnImage?: Msdyn365.IImageData;\r\n googleWalletBtnImage?: Msdyn365.IImageData;\r\n walletLoyaltyProgramName?: string;\r\n pointsExpirationReminder?: string;\r\n loyaltyTiersLink?: ILoyaltyTiersLinkData;\r\n}\r\n\r\nexport interface IAccountLoyaltyResources {\r\n loyaltyCardLabel: string;\r\n joinDateFormatted: string;\r\n totalAvailablePointsLabel: string;\r\n expiringPointsFormatLabel: string;\r\n expiringPointsFormatAriaLabel: string;\r\n availablePointsLabel: string;\r\n availablePointsAriaLabel: string;\r\n loyaltyActivityDateLabel: string;\r\n loyaltyActivityBalanceLabel: string;\r\n redeemedPointsLabel: string;\r\n refundedPointsLabel: string;\r\n earnedPointsLabel: string;\r\n pendingPointsLabel: string;\r\n adjustedPointsLabel: string;\r\n backToShoppingText: string;\r\n loyaltyTierLabel: string;\r\n loyaltyCardLabel_CL: string;\r\n availablePointsLabel_CL_before: string;\r\n availablePointsLabel_CL_after: string;\r\n}\r\n\r\nexport const enum HeadingTag {\r\n h1 = 'h1',\r\n h2 = 'h2',\r\n h3 = 'h3',\r\n h4 = 'h4',\r\n h5 = 'h5',\r\n h6 = 'h6'\r\n}\r\n\r\nexport interface IHeadingData {\r\n text: string;\r\n tag?: HeadingTag;\r\n}\r\n\r\nexport interface ILoyaltyTiersLinkData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n}\r\n\r\nexport interface IAccountLoyaltyProps extends Msdyn365.IModule {\r\n resources: IAccountLoyaltyResources;\r\n config: IAccountLoyaltyConfig;\r\n}\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 * as React from 'react';\r\n\r\n// import { Modal, ModalBody, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { IAccountLoyaltyProps, layout as layoutNames } from '../definition-extensions/account-loyalty.ext.props.autogenerated';\r\nimport { IAccountLoyaltyViewProps } from '@msdyn365-commerce-modules/account-management';\r\nimport { ILoyaltySignUpProps } from '@msdyn365-commerce-modules/account-management';\r\n\r\nimport { Row, Container } from 'reactstrap';\r\nimport classnames from 'classnames';\r\n\r\nconst isWideOrCompactLayout = (layout: layoutNames) => {\r\n return [layoutNames.wideLayout, layoutNames.compact].includes(layout);\r\n};\r\n\r\nconst layoutClassNames = {\r\n [layoutNames.wideLayout]: 'loyalty-wide-layout',\r\n [layoutNames.compact]: 'loyalty-compact-layout'\r\n};\r\n// @ts-ignore\r\nconst getLayoutClassName = (layout: layoutNames) => layoutClassNames[layout] || 'loyalty-wide-layout';\r\n\r\nconst AccountLoyaltyView: React.FC & ILoyaltySignUpProps<{}>> = props => {\r\n const { AccountLoyalty, heading, cardNumber, joinDate, points } = props;\r\n\r\n const {\r\n layout,\r\n displayJoinDate,\r\n displayAppleWallet,\r\n displayGoogleWallet,\r\n appleWalletBtnImage,\r\n googleWalletBtnImage,\r\n pointsExpirationReminder,\r\n loyaltyTiersLink,\r\n walletLoyaltyProgramName\r\n } = props.config;\r\n\r\n const {\r\n loyaltyTierLabel,\r\n loyaltyCardLabel,\r\n loyaltyCardLabel_CL,\r\n availablePointsLabel,\r\n availablePointsLabel_CL_before,\r\n availablePointsLabel_CL_after,\r\n viewLoyaltyPageText\r\n } = props.resources;\r\n\r\n const firstLoyaltyGroup =\r\n // @ts-ignore\r\n props.AccountLoyalty.moduleProps.data.loyaltyCard.result &&\r\n // @ts-ignore\r\n props.AccountLoyalty.moduleProps.data.loyaltyCard.result.LoyaltyGroups[0];\r\n // @ts-ignore\r\n const highestTierId = firstLoyaltyGroup.HighestActiveLoyaltyCardTier;\r\n // @ts-ignore\r\n const tierDetails = firstLoyaltyGroup.LoyaltyCardTiers.filter(tier => tier.RecordId === highestTierId)[0];\r\n const tierName = tierDetails.TierId;\r\n\r\n const user_email = props.AccountLoyalty.moduleProps.context.request.user.emailAddress;\r\n // @ts-ignore\r\n const user_card_number = cardNumber!.props.text;\r\n\r\n let points_numbers = [-1.1];\r\n\r\n // @ts-ignore\r\n if (points && points.props) {\r\n // @ts-ignore\r\n points_numbers = points.props.text.split('.');\r\n }\r\n\r\n const height_to_set = 48; // Minimum per Google guidelines\r\n\r\n const tierClass = `tier-name__${tierName}`;\r\n\r\n const apple_wallet_check: boolean =\r\n displayAppleWallet && appleWalletBtnImage && appleWalletBtnImage.src && appleWalletBtnImage.altText && user_card_number;\r\n const google_wallet_check: boolean =\r\n displayGoogleWallet && googleWalletBtnImage && googleWalletBtnImage.src && googleWalletBtnImage.altText && user_card_number;\r\n const programString: string = walletLoyaltyProgramName || 'v-club-emea';\r\n\r\n if (isWideOrCompactLayout(layout)) {\r\n // Wide or compact layout (Loyalty page and Homepage row)\r\n return (\r\n \r\n {heading}\r\n \r\n \r\n
\r\n

{loyaltyCardLabel}

\r\n {cardNumber}\r\n {(apple_wallet_check || google_wallet_check) && (\r\n
\r\n {apple_wallet_check ? (\r\n \r\n \r\n \r\n ) : null}\r\n {google_wallet_check ? (\r\n \r\n \r\n \r\n ) : null}\r\n
\r\n )}\r\n {/* @ts-ignore */}\r\n {displayJoinDate && !joinDate?.props.text.endsWith('1900') ? joinDate : null}\r\n
\r\n
\r\n

{availablePointsLabel}

\r\n {points_numbers[0] != -1.1 ?

{points_numbers[0]}

: null}\r\n {pointsExpirationReminder ? (\r\n

{pointsExpirationReminder}

\r\n ) : null}\r\n {viewLoyaltyPageText ? {viewLoyaltyPageText} : null}\r\n
\r\n
\r\n

{loyaltyTierLabel}

\r\n

\r\n {tierName}\r\n

\r\n {loyaltyTiersLink &&\r\n loyaltyTiersLink.linkUrl &&\r\n loyaltyTiersLink.linkUrl.destinationUrl &&\r\n loyaltyTiersLink.linkText ? (\r\n {loyaltyTiersLink.linkText}\r\n ) : null}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n // Card layout (Homepage column)\r\n return (\r\n \r\n {heading}\r\n
\r\n \r\n \r\n
\r\n

{loyaltyCardLabel_CL}

\r\n
\r\n  

{cardNumber}

\r\n
\r\n
\r\n
\r\n

{loyaltyTierLabel}

\r\n

\r\n  {tierName}\r\n

\r\n
\r\n
\r\n \r\n
\r\n

\r\n \r\n {availablePointsLabel_CL_before} \r\n {points_numbers[0] != -1.1 ? (\r\n

{points_numbers[0]}

\r\n ) : null}\r\n  {availablePointsLabel_CL_after}\r\n
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AccountLoyaltyView;\r\n","import { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport {\r\n IReportReviewModalViewProps,\r\n IReviewCardViewProps,\r\n IReviewsListState,\r\n IReviewsListViewProps\r\n} from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { IModuleProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n// import { getTelemetryObject } from '@msdyn365-commerce-modules/utilities';\r\n// import { constructViewportInformationForImage } from '@msdyn365-commerce/core-internal';\r\nimport * as React from 'react';\r\n\r\nconst ReviewsListview: React.FC = props => {\r\n const {\r\n /* averageRating,\r\n filterByDropdown, */\r\n moduleProps,\r\n /* noReviewsMessage, */\r\n noReviewsWithFilterMessage,\r\n pageControls,\r\n /* refineReviewsProps, */\r\n reportReviewModal,\r\n /* reviewsListProps, */\r\n reviewCards,\r\n /* reviewCount, */\r\n reviewModal,\r\n /* sortByDropdown, */\r\n state,\r\n userReview\r\n } = props;\r\n\r\n const [modalOpen, setModalOpen] = React.useState(false);\r\n // const telemetryContent = getTelemetryObject(props.context.request.telemetryPageName ?? '', 'Recensioni', props.telemetry);\r\n\r\n const _toggleReviewModal = () => {\r\n document.body.style.overflowY = modalOpen ? 'scroll' : 'hidden';\r\n setModalOpen(!modalOpen);\r\n };\r\n\r\n // @ts-ignore\r\n const averageRating = props.data.ratingsSummary.result.averageRating ?? 0;\r\n // @ts-ignore\r\n const buttonLabel = props.resources.product_review_list_button_label ?? '';\r\n // @ts-ignore\r\n const title = props.resources.reviewListLabel ?? '';\r\n\r\n React.useEffect(() => {\r\n const page_summary = document.getElementsByClassName('msc-average-rating-container')[0];\r\n const modal_summary = document.getElementsByClassName('msc-average-rating-container')[1];\r\n if (page_summary && modal_summary) {\r\n modal_summary.innerHTML = page_summary.innerHTML;\r\n }\r\n });\r\n\r\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\r\n /* return {noReviewsMessage}; */\r\n /* return (\r\n \r\n
\r\n
); */\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n {/* {averageRating}\r\n {reviewCount} */}\r\n {/* { reviewCards.length === 0 ?\r\n null : \r\n {sortByDropdown}\r\n {filterByDropdown}\r\n \r\n } */}\r\n {/* {React.createElement(React.Fragment, null,\r\n modalToggle,\r\n createReviewModal(reviewModal, moduleProps)))} */}\r\n {/* \r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n */}\r\n
\r\n
e.stopPropagation()}>\r\n
\r\n {title}\r\n \r\n
\r\n
\r\n
\r\n
\r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n
\r\n
\r\n
\r\n
\r\n \r\n {reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\r\n {pageControls}\r\n {createReviewModal(reviewModal, moduleProps)}\r\n {createReportModal(reportReviewModal, state)}\r\n
\r\n );\r\n};\r\n\r\nconst buildReviewCard = (props: IReviewCardViewProps) => {\r\n return (\r\n \r\n \r\n {props.name}\r\n {props.date}\r\n {props.rating}\r\n \r\n \r\n \r\n {/* {props.reviewTitle} */}\r\n {props.reviewText}\r\n \r\n \r\n {props.responseName}\r\n {props.responseDate}\r\n {props.responseText}\r\n \r\n \r\n {/* {props.ratingHelpfulLabel}\r\n {props.like}\r\n {props.dislike} */}\r\n {props.edit}\r\n {/* {props.report} */}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst createReviewModal = (props: IReviewModalViewProps, moduleProps: IModuleProps): JSX.Element => {\r\n return (\r\n \r\n {props.modalHeader}\r\n \r\n \r\n \r\n {props.rating}\r\n {props.ratingLabel}\r\n \r\n \r\n {props.titleLabel}\r\n {props.titleInput}\r\n \r\n \r\n {props.textLabel}\r\n {props.textInput}\r\n \r\n {props.privacyPolicyUrl}\r\n {props.error}\r\n \r\n \r\n \r\n {props.submitButton}\r\n {props.cancelButton}\r\n \r\n \r\n );\r\n};\r\n\r\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\r\n return (\r\n \r\n {state.reported ? props.headerSubmitted : props.header}\r\n \r\n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\r\n \r\n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\r\n \r\n );\r\n};\r\n\r\nexport default ReviewsListview;\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 { IStoreSelectorViewProps } from '@msdyn365-commerce-modules/store-selector';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst StoreSelectorView: React.FC = props => {\r\n const {\r\n BodyContainerProps,\r\n FooterContainerProps,\r\n HeaderContainerProps,\r\n HeaderProps,\r\n ModuleProps,\r\n // headerText,\r\n locationsMessage,\r\n search,\r\n state,\r\n spinner,\r\n locationsList,\r\n noLocationsMessage,\r\n terms\r\n } = props;\r\n const currentUrl = ModuleProps.moduleProps.context.request.url.requestUrl.href;\r\n const baseUrl = currentUrl.substring(0, currentUrl.lastIndexOf('/') + 1);\r\n React.useEffect(() => {\r\n const titles = Array.from(document.querySelectorAll('.ms-store-select__location-line-item-store-name'));\r\n if (titles.length > 0) {\r\n titles.forEach(el => {\r\n const storeName = el.textContent;\r\n if (storeName && storeName.startsWith('R ')) {\r\n el.closest('.ms-store-select__location-line-item')?.classList.add('location-type__dealer');\r\n el.textContent = storeName.replace('R ', '');\r\n }\r\n // @ts-ignore\r\n if (props.config.renderLinkToStorePage) {\r\n const goToStoreCtn = el.closest('.ms-store-select__location-line-item')?.querySelector('.go-to-store');\r\n if (goToStoreCtn === null) {\r\n const storeUrl = storeName\r\n ?.replace('R ', '')\r\n .toLowerCase()\r\n .replace(/[ .&@',]/g, '-')\r\n .replace(/-+/g, '-');\r\n const goToStore = document.createElement('div');\r\n goToStore.className = 'go-to-store';\r\n // tslint:disable-next-line:no-inner-html\r\n goToStore.innerHTML = `${\r\n // @ts-ignore\r\n props.resources.goToStorePage ? props.resources.goToStorePage : 'Go to Store page'\r\n }`;\r\n el.closest('.ms-store-select__location-line-item:not(.location-type__dealer)')\r\n ?.querySelector('.ms-store-select__location-line-item-content')\r\n ?.appendChild(goToStore);\r\n }\r\n }\r\n });\r\n }\r\n }, [locationsList]);\r\n\r\n return (\r\n \r\n {HeaderProps}\r\n \r\n {locationsMessage}\r\n {search}\r\n {state.isSearchInProgress ? spinner : <>{locationsList ? locationsList : noLocationsMessage}}\r\n \r\n {terms}\r\n \r\n );\r\n};\r\n\r\nexport default StoreSelectorView;\r\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 * as React from 'react';\n\nimport { IAccountCustomerBalanceViewProps } from './account-customer-balance';\n\nexport default (props: IAccountCustomerBalanceViewProps) => {\n const {\n heading,\n accountSectionHeading,\n creditSummarySectionHeading,\n accountLabels,\n accountValues,\n creditSummaryLabels,\n creditSummaryValues,\n homeButton,\n actions,\n requestStatementModal,\n availableCredit,\n balanceOwed,\n creditExcess\n } = props;\n\n return (\n \n {heading}\n {requestStatementModal}\n {actions}\n {accountSectionHeading}\n
\n {accountLabels}\n {accountValues}\n
\n {creditSummarySectionHeading}\n
\n {creditSummaryLabels}\n {creditSummaryValues}\n {availableCredit}\n {balanceOwed}\n {creditExcess}\n
\n {homeButton}\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 { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAccountInvoiceTileViewProps } from './account-invoice-tile';\n\nexport default (props: IAccountInvoiceTileViewProps) => {\n const { AccountInvoiceTile, heading, description, links } = props;\n\n return (\n \n {heading}\n {description}\n {links}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { 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 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 { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ISitePickerViewProps } from './site-picker';\n\nexport default (props: ISitePickerViewProps) => {\n return <>{_renderSitePicker(props)};\n};\n\nconst _renderDesktopView = (props: ISitePickerViewProps) => {\n const { SitePickerMenu, SitePickerMenuSpan } = props;\n return (\n <>\n \n {props.config.heading?.text}\n \n \n {props.siteOptionsState ? _renderSiteOptionsList(props) : null}\n \n );\n};\n\nconst _renderSiteOptionsList = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMenuList, SitePickerMenuListItem, SitePickerMenuListItemArray } = props;\n const options = SitePickerMenuListItemArray!.map((item, index) => {\n return (\n \n {item}\n \n );\n });\n return (\n \n {options}\n \n );\n};\n\nconst _renderMobileView = (props: ISitePickerViewProps): React.ReactNode => {\n const { SitePickerMobileContainer } = props;\n return (\n \n
\n {props.SitePickerMenuListItemArray?.map((item, index) => {\n return
{item}
;\n })}\n
\n
\n );\n};\n\nconst _renderSitePicker = (props: ISitePickerViewProps): React.ReactNode => {\n const { isMobileView, SitePicker } = props;\n return {isMobileView ? _renderMobileView(props) : _renderDesktopView(props)};\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport {\n IBusinessFormItem,\n IBusinessOrganizationListViewProps,\n IFormViewProps,\n InputID\n} from '@msdyn365-commerce-modules/business-organization-list';\nimport { Modal, ModalBody, ModalFooter, ModalHeader, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport {\n IBusinessOrganizationListProps,\n IBusinessOrganizationListResources\n} from '../definition-extensions/business-organization-list.ext.props.autogenerated';\n\n/**\n * Business Form Item component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessFormItemComponent: React.FC = (props: IBusinessFormItem) => {\n const { wrapper, label, errorMessage, input } = props;\n return (\n \n {label}\n {errorMessage}\n {input}\n \n );\n};\n\n/**\n * To render modal.\n * @param className - The modal classname.\n * @param isModalOpen - The boolean for modal open status.\n * @param headingSection - The heading section of modal.\n * @param bodySection - The body section of modal.\n * @param footerSection - The footer section of modal.\n * @param toggleModal - The toggle modal callback function.\n * @returns The JSX Element.\n */\nconst renderModal = (\n className: string,\n isModalOpen: boolean,\n headingSection: React.ReactNode,\n bodySection: React.ReactNode,\n footerSection: React.ReactNode,\n toggleModal?: () => void\n) => {\n return (\n \n {headingSection}\n {bodySection}\n {footerSection}\n \n );\n};\n\n/**\n * Business User Form component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserFormComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, inputs, buttons, errorMessage, toggle } = props;\n\n const modalBody = (\n <>\n {modalDescription}\n \n {inputs &&\n inputs.map((item: IBusinessFormItem) => {\n return ;\n })}\n {errorMessage?.map((error: React.ReactNode, index: number) => {\n return {error};\n })}\n \n \n );\n\n const modalFooter =\n buttons &&\n buttons.map((button: React.ReactNode, index: number) => {\n return {button};\n });\n\n return renderModal(modalClassName, true, modalHeading, modalBody, modalFooter, toggle);\n};\n\n/**\n * Selected user interface.\n */\ninterface ISelectedUser {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n FirstName?: string;\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n LastName?: string;\n}\n\n/**\n * Business User Details component.\n * @param props - View props.\n * @returns The JSX Element.\n */\nconst BusinessUserDetailsComponent: React.FC = (props: IFormViewProps) => {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { modalClassName, FormWrapper, modalHeading, modalDescription, buttons, errorMessage, resources, toggle } = props;\n let modalBody = null;\n const selectedUser = props.selectedUser as ISelectedUser | string;\n\n if (!selectedUser) {\n modalBody = errorMessage;\n } else {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from module file.\n const { FirstName, LastName } = selectedUser as ISelectedUser;\n const userFullName = `${FirstName as string} ${LastName as string}`;\n\n modalBody = (\n <>\n {modalDescription}\n \n \n {userFullName}\n \n {Object.keys(selectedUser).map((data, index) => {\n if (data === InputID.FirstName || data === InputID.LastName) {\n return null;\n }\n const label = (resources[`table${data}HeadingText`] as string) || data;\n return (\n \n {label}\n {': '}\n {selectedUser[data]}\n \n );\n })}\n {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 { IImageSettings, Image } from '@msdyn365-commerce/core';\nimport {\n IReportReviewModalViewProps,\n IReviewCardViewProps,\n IReviewsListData,\n IReviewsListResources,\n IReviewsListState,\n IReviewsListViewProps\n} from '@msdyn365-commerce-modules/ratings-reviews';\nimport { ArrayExtensions, generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IReviewsListProps } from '../definition-extensions/reviews-list.ext.props.autogenerated';\n\n/**\n * Build Review Card.\n * @param props - Review Card ViewProps.\n * @param resources - Resource Strings.\n * @param isUserReview - User review flag.\n * @returns JSX Element.\n */\nconst buildReviewCard = (props: IReviewCardViewProps, resources: IReviewsListResources, isUserReview: boolean) => {\n return (\n \n \n
\n {props.rating}\n {props.date}\n
\n {props.name}\n
\n \n \n {props.reviewTitle}\n {props.reviewText}\n \n \n {props.responseName}\n {props.responseDate}\n {props.responseText}\n \n \n {isUserReview ? undefined :

{resources.wasReviewHelpfulText}

}\n {props.like}\n {props.dislike}\n {props.edit}\n
\n
\n
\n );\n};\n\n/**\n * Render Product Image.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductImage = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const primaryImageSource = props.data.product.result?.PrimaryImageUrl;\n const imageUrl = generateImageUrl(primaryImageSource, props.context.request.apiSettings);\n const defaultImageSettings: IImageSettings = {\n viewports: {\n xs: { q: 'w=111&h=111&m=6', w: 111, h: 111 },\n sm: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n md: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n lg: { q: 'w=130&h=130&m=6', w: 130, h: 130 },\n xl: { q: 'w=130&h=130&m=6', w: 130, h: 130 }\n },\n lazyload: true,\n cropFocalRegion: true\n };\n\n return (\n \n );\n};\n\n/**\n * Render Product Description.\n * @param props - WriteReview ViewProps.\n * @returns JSX Element.\n */\nconst renderProductDescription = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const product = props.data.product.result;\n return (\n \n
{renderProductImage(props)}
\n
\n
{product?.Name}
\n
{product?.Name}
\n
{product?.ItemId}
\n
\n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review list ViewProps.\n * @returns JSX Element.\n */\nconst createReviewModal = (props: IReviewsListViewProps & IReviewsListProps): JSX.Element => {\n const { resources, moduleProps, reviewModal } = props;\n return (\n \n {reviewModal.modalHeader}\n \n \n \n {renderProductDescription(props)}\n \n
{resources.selectRatingLabel}
\n {reviewModal.rating}\n
\n
\n \n {resources.reviewTitleLabel}\n {reviewModal.titleInput}\n \n \n {resources.reviewTextLabel}\n {reviewModal.textInput}\n \n {reviewModal.privacyPolicyUrl}\n {reviewModal.error}\n
\n
\n \n {reviewModal.submitButton}\n {reviewModal.cancelButton}\n \n
\n );\n};\n\n/**\n * Build Review modal.\n * @param props - Review modal ViewProps.\n * @param state - Review List State.\n * @returns JSX Element.\n */\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\n return (\n \n {state.reported ? props.headerSubmitted : props.header}\n \n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\n \n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\n \n );\n};\n\n/**\n * ReviewsList view.\n * @param props - Ratings ReviewsList ViewProps.\n * @returns ReviewsList view module.\n */\nconst ReviewsListview: React.FC> = props => {\n const {\n filterByDropdown,\n heading,\n moduleProps,\n noReviewsMessage,\n noReviewsWithFilterMessage,\n pageControls,\n refineReviewsProps,\n reportReviewModal,\n reviewsListProps,\n reviewCards,\n sortByDropdown,\n state,\n userReview,\n resources\n } = props;\n\n if (!userReview && !ArrayExtensions.hasElements(reviewCards) && !state.isFilterApplied) {\n return {noReviewsMessage};\n }\n\n return (\n \n {heading}\n \n {sortByDropdown}\n {filterByDropdown}\n \n \n {userReview && buildReviewCard(userReview, resources, true)}\n {reviewCards.map(review => {\n return buildReviewCard(review, resources, false);\n })}\n \n {!ArrayExtensions.hasElements(reviewCards) && state.isFilterApplied && noReviewsWithFilterMessage}\n {pageControls}\n {createReviewModal(props)}\n {createReportModal(reportReviewModal, state)}\n \n );\n};\n\nexport default ReviewsListview;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Random } from '@msdyn365-commerce-modules/retail-actions';\nimport { Button, Popover } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceActions {\n className?: string;\n buttonReference?: React.RefObject;\n requestStatementButtonLabel: string;\n onRequestStatement(): void;\n}\n\ninterface IAdminRequestStatementProps {\n className?: string;\n requestStatementButtonLabel: string;\n myUserAccountLabel: string;\n fullOrganizationLabel: string;\n isDropdownShowing: boolean;\n buttonReference?: React.RefObject;\n promoteToSellerLabel?: string;\n onToggleDropdown(): void;\n onRequestStatement(isFullOrg: boolean): void;\n onPromoteToSeller?(): void;\n}\n\nexport const ActionBar: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n buttonReference\n}) => {\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n return (\n
\n \n
\n );\n};\n\nexport const AdminRequestStatementButton: React.FC = ({\n className,\n onRequestStatement,\n requestStatementButtonLabel,\n onToggleDropdown,\n onPromoteToSeller,\n promoteToSellerLabel,\n myUserAccountLabel,\n fullOrganizationLabel,\n isDropdownShowing,\n buttonReference\n}) => {\n const onSelectCustomerAccount = React.useCallback(() => {\n onRequestStatement(false);\n }, [onRequestStatement]);\n\n const onSelectFullOrg = React.useCallback(() => {\n onRequestStatement(true);\n }, [onRequestStatement]);\n\n const onSelectPromoteToSeller = React.useCallback(() => {\n onPromoteToSeller?.();\n }, [onPromoteToSeller]);\n\n const popoverReference = buttonReference !== undefined ? buttonReference : React.createRef();\n const requestStatementDropdownString = `request-statement-dropdown-id-${Random.Guid.generateGuid()}`;\n return (\n
\n \n {requestStatementButtonLabel}\n \n \n \n {myUserAccountLabel}\n \n \n {promoteToSellerLabel && (\n \n {promoteToSellerLabel}\n \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 { ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Modal, ModalBody, ModalFooter, ModalHeader } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\n/**\n * The interface for the props for the account statement request modal.\n */\ninterface IAccountStatementRequestModalProps {\n email: string;\n isModalOpen: boolean;\n fromDateString: string;\n toDateString: string;\n canSubmitRequest: boolean;\n modalHeaderLabel: string;\n sendToEmailLabel: string;\n fromDateLabel: string;\n toDateLabel: string;\n submitRequestLabel: string;\n cancelLabel: string;\n className: string;\n selectedUser: string;\n selectedUserLabel: string;\n toggle(): void;\n onChangeFromDate(newFromDate: string): void;\n onChangeToDate(newToDate: string): void;\n onSubmitRequest(): void;\n modalAriaLabel?: string;\n maxDateString?: string;\n}\n\nexport const RequestStatementModal: React.FC = ({\n className,\n email,\n isModalOpen,\n toggle,\n fromDateString,\n toDateString,\n onChangeFromDate,\n onChangeToDate,\n canSubmitRequest,\n modalHeaderLabel,\n sendToEmailLabel,\n fromDateLabel,\n toDateLabel,\n submitRequestLabel,\n cancelLabel,\n onSubmitRequest,\n selectedUser,\n selectedUserLabel,\n modalAriaLabel,\n maxDateString\n}) => {\n const onChangeFromDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeFromDate(value);\n },\n [onChangeFromDate]\n );\n\n const onChangeToDateEvent = React.useCallback(\n (event: React.ChangeEvent) => {\n const value = event.target.value;\n\n onChangeToDate(value);\n },\n [onChangeToDate]\n );\n\n /**\n * If the onBlur is called on the fromDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurFromDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== fromDateString) {\n event.target.focus();\n }\n },\n [fromDateString]\n );\n\n /**\n * If the onBlur is called on the toDate and the date has been changed, reset focus on it.\n * @param event - The event that is triggering onBlur.\n */\n const onBlurToDate = React.useCallback(\n (event: React.ChangeEvent) => {\n if (ObjectExtensions.isFunction(event.target.focus) && event.target.value !== toDateString) {\n event.target.focus();\n }\n },\n [toDateString]\n );\n\n return (\n \n {modalHeaderLabel}\n \n {selectedUser && (\n
\n \n
\n
{selectedUser}
\n
\n )}\n \n
\n {email}\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n {submitRequestLabel}\n \n {` `}\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 { getPayloadObject, getTelemetryAttributes, ITelemetryContent, TelemetryConstant } from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nimport { AdminRequestStatementButton } from './account-actions';\nimport { RequestStatementModal } from './account-statement-request-modal';\n\nexport * from './account-actions';\nexport * from './account-statement-request-modal';\n\ninterface IAccountLabel {\n name: string;\n accountNumber: string;\n createdOn: string;\n customerSincePrefix: string;\n}\n\ninterface IAccountValues {\n availableCredit: string;\n availableCreditLabel: string;\n}\n\n/**\n * Prop for Available credit component.\n */\ninterface ICreditSummaryAvailableCredit {\n availableCreditLabel: string;\n availableCredit: string;\n}\n\n/**\n * Prop for Balanced owed component.\n */\ninterface ICreditSummaryBalanceOwed {\n balanceOwedLabel: string;\n balanceOwed: string;\n}\n\n/**\n * Prop for credit excess component.\n */\ninterface ICreditSummaryCreditExcess {\n creditExcessLabel: string | null;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryLabel {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface ICreditSummaryValues {\n availableCredit: string;\n balanceOwed: string;\n creditExcess: string | null;\n}\n\ninterface IBackButton {\n link: string;\n label: string;\n telemetryContent?: ITelemetryContent;\n}\n\nexport const AccountLabels: React.FC = ({ name, accountNumber, customerSincePrefix, createdOn }) => (\n
\n

{name}

\n
#{accountNumber}
\n
\n {customerSincePrefix} {createdOn}\n
\n
\n);\n\nexport const AccountValues: React.FC = ({ availableCredit, availableCreditLabel }) => (\n
\n
{availableCreditLabel}
\n
{availableCredit}
\n
\n);\n\nexport const CreditSummaryLabels: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n
{creditExcess}
\n
\n);\n\nexport const CreditSummaryValues: React.FC = ({ availableCredit, balanceOwed, creditExcess }) => (\n
\n
{availableCredit}
\n
{balanceOwed}
\n {creditExcess &&
{creditExcess}
}\n
\n);\n\n/**\n * Available credit component.\n * @param props - ICreditSummaryAvailableCredit.\n * @param props.availableCreditLabel - Available credit label.\n * @param props.availableCredit - Available credit value.\n * @returns - React Node for available credit component.\n */\nexport const AvailableCreditComponent: React.FC = ({ availableCreditLabel, availableCredit }) => (\n
\n
\n
{availableCreditLabel}
\n
\n
\n
{availableCredit}
\n
\n
\n);\n\n/**\n * Balance Owed Component.\n * @param props - ICreditSummaryBalanceOwed.\n * @param props.balanceOwedLabel - Balance Owed label.\n * @param props.balanceOwed - Balance Owed value.\n * @returns - React Node for balance owed component.\n */\nexport const BalanceOwedComponent: React.FC = ({ balanceOwedLabel, balanceOwed }) => (\n
\n
\n
{balanceOwedLabel}
\n
\n
\n
{balanceOwed}
\n
\n
\n);\n\n/**\n * Credit Excess Component.\n * @param props - ICreditSummaryCreditExcess.\n * @param props.creditExcessLabel - Credit excess label.\n * @param props.creditExcess - Credit excess value.\n * @returns - React Node for credit excess component.\n */\nexport const CreditExcessComponent: React.FC = ({ creditExcessLabel, creditExcess }) => (\n
\n {creditExcess && (\n
\n
{creditExcessLabel}
\n
\n )}\n
\n {creditExcess &&
{creditExcess}
}\n
\n
\n);\nexport const BackButton: React.FC = ({ link, label, telemetryContent }) => {\n const payLoad = getPayloadObject('click', telemetryContent!, TelemetryConstant.BackToShopping);\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n return (\n \n {label}\n \n );\n};\n\nexport { AdminRequestStatementButton, RequestStatementModal };\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\ninterface IAccountCustomerBalanceTileInfo {\n label?: string;\n value?: string;\n verbagePrefix?: string;\n verbagePostfix?: string;\n className?: string;\n error?: string;\n}\n\nexport const ErrorComponent: React.FC = ({ error }) => (\n {error}\n);\n\nexport const CreditComponent: React.FC = ({ verbagePrefix, verbagePostfix, value, className }) => {\n return (\n
\n {verbagePrefix}\n {value}\n {verbagePostfix}\n
\n );\n};\n\nexport const InfoComponent: React.FC = ({ label, value, className }) => (\n
\n {label}\n {value}\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 } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\ninterface ILinksData {\n linkText?: string;\n linkUrl: Msdyn365.ILinkData;\n ariaLabel?: string;\n openInNewTab?: boolean;\n}\n\nexport interface IAccountCustomerBalanceTileLinks {\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 AccountCustomerBalanceTileLinks: 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};\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\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-customer-balance-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 AccountCustomerBalanceTileLinks;\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 {\n Button,\n getPayloadObject,\n getTelemetryAttributes,\n INodeProps,\n ITelemetryContent,\n Modal,\n ModalBody,\n ModalFooter,\n ModalHeader,\n TelemetryConstant\n} from '@msdyn365-commerce-modules/utilities';\nimport React from 'react';\n\nexport interface ILoyaltyTermsModalProps {\n resources: ILoyaltyTermsModalResources;\n returnRef: React.RefObject | undefined;\n checked: boolean;\n isOpen: boolean;\n terms: React.ReactNode;\n telemetryContent?: ITelemetryContent;\n onToggle(): void;\n onSubmit(): void;\n onCheck(): void;\n}\n\nexport interface ILoyaltyTermsModalResources {\n loyaltyTermsHeading: string;\n loyaltyAgreeToTerms: string;\n joinLoyaltyTermsText: string;\n cancelLoyaltyTermsText: string;\n}\n\nexport interface ILoyaltyTermsModalViewProps {\n modal: INodeProps;\n modalHeader: INodeProps;\n modalFooter: INodeProps;\n modalBody: INodeProps;\n heading: React.ReactElement;\n cancelButton: React.ReactElement;\n submitButton: React.ReactElement;\n terms: React.ReactNode;\n checkbox: React.ReactElement;\n agreeText: React.ReactElement;\n agreeSection: INodeProps;\n}\n\nexport const LoyaltyTermsModal = (props: ILoyaltyTermsModalProps): ILoyaltyTermsModalViewProps => {\n const payLoad = getPayloadObject('click', props.telemetryContent!, TelemetryConstant.LoyaltyTermsCancel);\n const loyaltyTermCancelAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsSubmit;\n const loyaltyTermSubmitAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n payLoad.contentAction.etext = TelemetryConstant.LoyaltyTermsAgree;\n const loyaltyTermCheckboxAttributes = getTelemetryAttributes(props.telemetryContent!, payLoad);\n return {\n modal: {\n tag: Modal,\n className: 'ms-loyalty-terms__modal',\n toggle: props.onToggle,\n applicationNode: 'renderPage',\n isOpen: props.isOpen,\n returnFocusRef: props.returnRef\n },\n modalHeader: { tag: ModalHeader, className: 'ms-loyalty-terms__modal-header', toggle: props.onToggle },\n modalFooter: { tag: ModalFooter, className: 'ms-loyalty-terms__modal-footer' },\n modalBody: { tag: ModalBody, className: 'ms-loyalty-terms__modal-body' },\n cancelButton: (\n \n ),\n submitButton: (\n \n {props.resources.joinLoyaltyTermsText}\n \n ),\n heading:

{props.resources.loyaltyTermsHeading}

,\n terms: props.terms,\n agreeSection: { className: 'ms-loyalty-terms__agree-section' },\n checkbox: (\n \n ),\n agreeText:

{props.resources.loyaltyAgreeToTerms}

\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 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 { 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 IAccountAddressTileDescription {\n description: string;\n}\n\n// eslint-disable-next-line no-redeclare\nconst IAccountAddressTileDescription: React.FC = ({ description }) => (\n

{description}

\n);\n\nexport default IAccountAddressTileDescription;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ILinksData } from '../account-address-tile.props.autogenerated';\n\nexport interface IAccountAddressTileLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\nconst AccountAddressTileLinks: React.FC = ({ links, telemetryContent, requestContext, onTextChange }) => {\n if (links.length === 0) {\n return null;\n }\n const editableLinks = _mapEditableLinks(links, telemetryContent);\n\n return (\n
\n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n
\n );\n};\n\nconst _mapEditableLinks = (linkdata: ILinksData[], telemetryContent?: ITelemetryContent): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n const payLoad = getPayloadObject('click', telemetryContent!, '');\n linkdata.forEach((link, index) => {\n payLoad.contentAction.etext = link.linkText;\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-account-address-tile__link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n};\n\nexport default AccountAddressTileLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\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 {\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","AccountCustomerBalanceTile","_initState","reaction","hasError","content","ErrorComponent","apiGenericErrorMessage","get","customerResult","allowOnAccountPayment","AllowOnAccountPayment","isB2BSite","isChannelTypeB2B","enableCustomerAccountPayment","isCustomerAccountPaymentEnabled","links","isDetailsLinkDisplayed","LinksComponent","onTextChange","requestContext","account","Balance","CreditLimit","InvoiceAccountBalance","InvoiceAccountCreditLimit","noCreditErrorMessage","accountCreditVerbagePrefix","accountCreditVerbagePostfix","currencyCode","customerCredit","customerCreditFormatted","toFixed","CreditComponent","verbagePrefix","verbagePostfix","AccountProfileEdit","handleHeadingChange","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","isOpen","modalBody","ModalBody","icon","AccountProfileEditLoadingIconComponent","AccountProfileEditLoadingMessageComponent","defaultAADConainer","style","display","aadConainer","Msdyn365","editProps","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","_ref","description","_mapEditableLinks","linkdata","editableLinks","link","linkText","attributes","editableLink","linkUrl","destinationUrl","openInNewTab","role","additionalProperties","AccountWishlistTile","handleLinkTextChange","linkIndex","accountWishlistTileDescription","wishlists","wishlistsCount","CommerceListLines","format","DescriptionComponent","RequestsTableColumnHeader","getUserName","isNullOrEmpty","UserFirstName","UserLastName","b2bRequestsNameDisplay","formatDate","date","year","month","day","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","b2bRequestsStatus","table","defaultClassName","B2bRequestsTileLinks","B2bRequestsTile","b2bRequestsTile","Module","AccountProfileEditItem","Node","AccountProfileEditLoading","_ref3","_ref2","button","LocalAccount","SignUpText","LoyaltySignUp","handleMemberHeadingChange","memberHeading","_issueLoyalty","isAuthenticated","clicked","IssueLoyaltyInput","apiSettings","issueLoyalty","debug","SignIn","loyaltySignInAttributes","SignUp","loyaltySignUpAttributes","LoyaltyDetailLink","loyaltyDetailsLinkAttributes","LoyaltyTermsLink","loyaltyTermsLinkAttributes","_data$customerInforma","_this$props$context$a","signInUrl","termsUrl","loyaltyJoinUrl","origin","signInurl","completeClass","classname","loyaltyCard","hasLoyaltyAccount","CardTenderTypeValue","invalidAsyncCustomerState","app","canRenderAsyncCustomerDataAsUnmodifiable","IsAsyncCustomer","infoMessageBar","accountProcessingPendingInfoMessage","params","isEditor","signInLink","joinLoyaltyButtonText","signUpText","loyaltyProgramText","signUpButton","detailsLink","viewLoyaltyPageText","termsLink","loyaltyTermsLinkText","LoyaltyTerms","_toggle","_submit","_checkboxChecked","toggleRef","search","isJoining","qsps","qsp","splitQsp","checked","hideToggle","slots","serviceTerms","modalToggle","joinLoyaltytermsToggleText","CardNumber","LoyaltyTermsModal","returnRef","terms","onToggle","onSubmit","onCheck","card","redirectToLoyalty","getLoyaltyCardAsync","fullCard","update","GetLoyaltyCardInput","modalHeader","agreeSection","checkbox","agreeText","modalFooter","submitButton","cancelButton","PasswordReset","newPasswordRegex","reenterPasswordRegex","PasswordRegex","passwordReset","PasswordResetLoadingIconComponent","PasswordResetLoadingMessageComponent","passwordResetLocalAccount","newPasswordLabelText","confirmPasswordLabelText","PasswordResetErrorComponent","passwordEntryMismatchError","PasswordResetButtonComponent","PasswordResetLabelComponent","PasswordResetInputComponent","PasswordResetItem","PasswordResetLoading","handleParagraphChange","disclaimer","isEmailVerificationRequried","templateVersion","VERIFY","isGivenNameVerificationRequried","isSurnameVerificationRequried","UX_INPUT_TYPE","invalidPasswordError","errorMessages","getValue","v1Value","v2Value","signUp","SignUpLoadingIconComponent","SignUpLoadingMessageComponent","signUpLocalAccount","passwordLabelText","emailVerification","verificationCodeLabelText","verificationControlWrapper","buttonWrapper","SignUpButtonComponent","sendCodeButtonAriaLabel","sendCodeButtonText","verifyCodeButtonAriaLabel","verifyCodeButtonText","resendCodeButtonAriaLabel","resendCodeButtonText","changeEmailButtonAriaLabel","changeEmailButtonText","successMessage","SignUpSuccessComponent","verificationCodeSendSuccess","emailAddressVerifiedSuccess","SignUpErrorComponent","retryError","retryNotAllowedError","throttledError","codeExpiredError","serverError","invalidEmailError","givenNameVerification","surnameVerification","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cssClassName","SignUpLabelComponent","SignUpInputComponent","SignUpItem","SignUpEmailVerification","SignUpGivenNameVerificationComponent","SignUpSurnameVerificationComponent","_ref4","SignUpLoading","_ref6","_ref5","componentClassName","buttonClassName","buttonActiveClassName","buttonInactiveClassName","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorState","OrderHistoryWithSearchAndFiltersOrganizationWideSelectorComponent","msdyn365Commerce","createComponent","component","_props$resources$curr","_props$resources","_props$resources$curr2","_props$resources2","_props$resources$curr3","_props$resources3","_props$resources4","_props$resources$curr4","_props$resources5","_props$resources6","_props$resources7","_props$resources$orga","_props$resources8","_props$resources9","_props$resources$orga2","_props$resources10","_props$resources11","_props$resources12","IsB2bAdmin","selectorState","setSelectorState","currentSelectorState","onClickHandler","newSelectorState","currentUserOrderHistoryAttributes","currentUserOptionLabel","orgWideOrderHistoryAttributes","CurrentUser","currentUserOptionAriaLabel","title","OrganizationWide","organizationWideOptionAriaLabel","organizationWideOptionLabel","AadGeneric","$i2e","$element","insertServiceContent","getElementContent","initialize","aadGeneric","aadAPIConainer","AccountAddressTile","accountAddressTileDescriptionForSingleAddress","accountAddressTileDescriptionForMultipleAddresses","address","addressCount","accountAddressTileDescription","AccountLoyaltyTile","signUpLinkText","signUpLinkAriaLabel","viewLinkAriaLabel","accountLoyaltySummary","accountLoyaltyMemberSummary","decimalPrecision","points","RewardPoints","rewardPoint","ActivePoints","AccountOrderTemplatesTileDescription","AccountOrderTemplatesTileLinks","AccountOrderTemplatesTile","accountOrderTemplatesTileDescription","orderTemplates","orderTemplatesCount","AccountAttributeDataTypeValue","AccountProfileAttributes","isUpdatingAttributes","gotException","attributeClassName","maxIntegerLimit","minIntegerLimit","maxDecimalLimit","minDecimalLimit","maxStringLength","maxVATNumberLength","maxPhoneLength","editAsyncCustomerFeatureName","isEditAsyncCustomerFeatureEnabled","_renderAttributes","_data$featureState","_this$props$accountPr","accountProfileProps","attributeDefinitions","additionalInformationSectionHeading","elements","showAttributes","att","attributeDefinition","attribute","IsHidden","Name","toLocaleLowerCase","RecordId","_renderAttribute","editAttributes","attributesEditButtonText","attributesSaveButtonText","saveAttributes","attributesCancelButtonText","cancelAttributes","featureState","feature","IsEnabled","disableBtn","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","updateCustomerAttributes","initialCustomerAttributes","exception","_buildPayloadData","defaultIntegerValue","DefaultValue","LowerBound","UpperBound","defaultDecimalValue","defaultStringValue","defaultBooleanValue","_getCustomerPhoneAndVatNumber","AccountProfile","isUpdatingPreference","handleEmailHeadingChange","emailAddressSectionHeading","handleNameHeadingChange","nameSectionHeading","editButtonText","onClickEventHandler","_updateAccountPersonalization","_renderPreference","sectionHeading","enableAriaLabel","isOptOut","accountPreference","buttonYesText","buttonNoText","onUpdateAccountPreference","isOptOutPersonalization","preferenceType","OptOutWebActivityTracking","updateCustomerPersonalizationInput","OptOutPersonalization","updateCustomerPersonalization","_renderCustomerAttributes","editButtonAriaLabel","shouldRenderAttributes","editLink","accountProfileWrapper","emailSection","_renderEmailSection","nameSection","_renderNameSection","getDescription","preferenceSection","_renderPreferenceSection","customerAttributesWrapper","customerAttributesSection","AccountProfileItem","personalizationDescription","personalizationEnableButtonAriaLabel","webTrackingDescription","webTrackingEnableButtonAriaLabel","preferencesSectionHeading","personalizationSectionHeading","webTrackingSectionHeading","enableDataAnalytics","features","extraPreferences","accountPreferences","personalization","AccountPreferencesSection","AccountPreferenceSection","preferenceSecton","AccountProfileSection","BusinessFormItem","BusinessUserForm","_renderModal","BusinessUserDetails","userFullName","headingSection","bodySection","footerSection","wrapClassName","autoFocus","fade","applicationNode","ModalHeader","ModalFooter","ButtonList","_getForm","formProps","AccountCustomerBalance","requestStatementButtonRef","_this$requestStatemen","_toggleDropdown","_adminShowRequestStatementModal","_this$props$data$b2bU","_this$requestStatemen2","b2bUserInformation","_get","creditSummarySectionHeading","accountSectionHeading","backToShoppingText","customerSincePrefix","availableCreditLabel","balanceOwedLabel","creditExcessLabel","myAccountStatementLabel","accountNumber","createdOn","_formatJoinDate","customerAccountBalance","excess","creditExcess","_formatCurrency","availableCredit","balanceOwed","backLink","emailAddress","actionBar","ActionBar","accountLabels","AccountLabels","accountValues","AccountValues","AvailableCreditComponent","BalanceOwedComponent","CreditExcessComponent","homeButton","BackButton","currency","Intl","DateTimeFormat","locale","AccountInvoiceTileDescription","AccountInvoiceTile","_data$customerBalance","accountInvoiceTileDescription","invoiceTotalAmount","customerBalance","OpenInvoiceBalance","AccountOrganizationUsersTileDescription","AccountOrganizationUsersTileLinks","OrganizationUsersTile","accountOrganizationUsersTileDescriptionForSingleUser","accountOrganizationUsersTileDescriptionForMultipleUsers","numUsers","accountOrganizationUsersTileDescription","CatalogPicker","handleTextChange","paragraph","_heading$tag","_this$props$data$cata","catalogPickerHeading","_moduleClassName","isCatalogsAvailable","catalogs","catalogPickerParagraph","RichTextComponent","catalogValidationText","handleText","catalogPicker","_renderCatalogPicker","_renderCatalogPickerButton","catalogId","getCatalogId","currentCatalogText","linkToCatalog","_getUrlSync","catalogUrl","fullUrl","searchParams","set","changeCatalogButtonText","_this$props$data$cata2","reactKey","JSON","stringify","image","firstOrDefault","Images","tabIndex","Image","src","generateImageUrl","Uri","imageSettings","galleryImageSettings","altText","AltText","loadFailureBehavior","FooterItem","footerItemClassName","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","onTelemetryClick","ariaHiddenAttr","viewports","q","h","lazyload","shouldSkipToMainImage","SitePicker","_cookieName","_cookieExpirationInSeconds","_escFunction","keyCode","expandSiteOptions","KeyCodes","Escape","_this$_sitePickerMenu","_this$_sitePickerMenu2","nextFocus","activeElement","_this$_sitePickerMenu3","_sitePickerMenuButton","contains","_sitePickerMenuNode","_resetSiteOptionsState","Tab","_this$_sitePickerMenu4","_this$_sitePickerMenu5","_handleOutsideClick","_this$_sitePickerMenu6","_this$_sitePickerMenu7","_handleChange","_renderSiteOptions","viewport","_document","_document2","body","resizeThrottledEventHandler","addThrottledEvent","_document3","_document4","_this$props$config$he","_this$props$config$he2","SitePickerMenu","SitePickerMenuSpan","SitePickerMenuList","SitePickerMenuListItem","SitePickerMobileContainer","Drawer","toggleButtonText","openGlyph","closeGlyph","glyphPlacement","isMobileView","SitePickerMenuListItemArray","_renderSitePickerImage","renderSiteOptions","resetSiteOptionsState","siteOptionsState","expandSiteOptionsState","preventDefault","cookies","isConsentGiven","cookieConfig","maxAge","defaultImageSettings","xl","siteOptions","_image$imageSettings","_item$siteRedirectUrl","siteImage","imageProps","siteRedirectUrl","siteName","SocialShare","socialShareItems","viewprops","SocialShareList","caption","orientation","SocialShareItem","SocialShareItemElements","AccountGenericTile","textField","layout","HeadingTag","layoutClassNames","layoutNames","wideLayout","compact","getLayoutClassName","AccountLoyalty","cardNumber","joinDate","displayJoinDate","displayAppleWallet","displayGoogleWallet","appleWalletBtnImage","googleWalletBtnImage","pointsExpirationReminder","loyaltyTiersLink","walletLoyaltyProgramName","loyaltyTierLabel","loyaltyCardLabel","loyaltyCardLabel_CL","availablePointsLabel","availablePointsLabel_CL_before","availablePointsLabel_CL_after","firstLoyaltyGroup","LoyaltyGroups","highestTierId","HighestActiveLoyaltyCardTier","tierName","LoyaltyCardTiers","tier","TierId","user_email","user_card_number","points_numbers","tierClass","apple_wallet_check","google_wallet_check","programString","isWideOrCompactLayout","Container","Row","alt","height","endsWith","buildReviewCard","cardProps","headerProps","rating","cardBodyProps","reviewProps","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","createReviewModal","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","_props$data$ratingsSu","_props$resources$prod","_props$resources$revi","noReviewsWithFilterMessage","pageControls","reportReviewModal","reviewCards","reviewModal","userReview","modalOpen","setModalOpen","_toggleReviewModal","overflowY","buttonLabel","ratingsSummary","averageRating","product_review_list_button_label","reviewListLabel","page_summary","modal_summary","isFilterApplied","stopPropagation","review","BodyContainerProps","FooterContainerProps","HeaderContainerProps","HeaderProps","ModuleProps","locationsMessage","spinner","locationsList","noLocationsMessage","currentUrl","baseUrl","titles","Array","from","querySelectorAll","el","storeName","textContent","_el$closest","startsWith","closest","classList","add","renderLinkToStorePage","_el$closest2","querySelector","_el$closest3","storeUrl","goToStore","goToStorePage","appendChild","isSearchInProgress","creditSummaryLabels","creditSummaryValues","CatalogPickerViewFunctionComponent","_renderPromotions","promotions","promotionMessageWrapper","promotionMessage","promotionSeeAllLink","promotionDialog","_renderCartlines","cartLines","storeSelector","backToShoppingButton","waitingComponent","cartLoadingStatus","cartDataResult","mulitplePickUp","emailDeliveryModeCode","emptyCartText","cartLine","cartline","_renderBOPISBlock","_renderGroupBOPISBlock","addToOrderTemplate","addToWishlist","remove","onToggleBopisHandler","isBopisSelected","pickUpInStore","callbacks","toggleBopis","onChangeStoreHandler","_cartLine$data","DeliveryMode","shipInsteadDisplayText","shipToAddressDisplayText","pickItUpDisplayText","pickUpAtStoreWithLocationText","changeStoreDisplayText","PickupInStore","puckUpinStoreAttribute","ContainerProps","orgUnitName","_renderErrorBlock","errorData","errors","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","count","_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","OrderHistoryOrderInfomation","orderInformationProps","salesId","receiptId","channelName","createdDate","amount","channelReferenceId","OrderHistoryGroupDelivery","deliveryProps","processing","trackingInfo","OrderHistoryGroup","groupProps","delivery","salesLinesProps","salesLines","salesLine","LineId","OrderHistoryGroups","groupsProps","groups","group","OrderHistoryHeader","orderCountLabel","extraActions","OrderHistorySalesOder","salesOrderProps","orderInfomation","orderDetailsLink","expandProductsButton","OrderHistoryList","_ref7","listProps","salesOrders","salesOrder","_ref8","orderHistoryProps","alert","emptyMessage","backToShoppingLink","list","moreButton","histogramItem","buttonProps","starLabel","bar","percentage","histogramItems","histogramProps","FooterItemView","_renderElement","_renderSitePicker","_renderSiteOptionsList","options","onMouseLeave","_props$SitePickerMenu","_renderMobileView","_props$config$heading","_renderDesktopView","SocialShareView","SocialShareElement","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","isUserReview","reviewTitle","wasReviewHelpfulText","like","dislike","renderProductDescription","product","_props$data$product$r","primaryImageSource","PrimaryImageUrl","imageUrl","cropFocalRegion","renderProductImage","ItemId","filterByDropdown","noReviewsMessage","refineReviewsProps","reviewsListProps","sortByDropdown","selectRatingLabel","reviewTitleLabel","reviewTextLabel","popoverReference","onSelectCustomerAccount","onSelectFullOrg","onSelectPromoteToSeller","requestStatementDropdownString","Popover","placement","onChangeFromDateEvent","onChangeToDateEvent","onBlurFromDate","ObjectExtensions","isFunction","onBlurToDate","horizontalPosition","verticalPosition","htmlFor","onBlur","max","min","BackToShopping","errorClassName","GetMaxLength","parsedMaxLength","LoyaltyTermsCancel","loyaltyTermCancelAttributes","LoyaltyTermsSubmit","loyaltyTermSubmitAttributes","LoyaltyTermsAgree","loyaltyTermCheckboxAttributes","returnFocusRef","cancelLoyaltyTermsText","joinLoyaltyTermsText","loyaltyTermsHeading","loyaltyAgreeToTerms","successClassName"],"sourceRoot":""}