{"version":3,"file":"static/js/d17866e562c2117c2982.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./lib/checkout-guest-profile/module-registration.js?4b3c","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-guest-profile/components/get-add-contact-info.tsx?c9f6","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-guest-profile/components/get-show-contact-info.tsx?e9b5","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-guest-profile/checkout-guest-profile.tsx?c2ce","webpack://Msdyn365.Commerce.Online/./src/modules/checkout-guest-profile/checkout-guest-profile.view.tsx?2e47","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["const binding = { modules: {}, dataActions: {} };\n\n const registerActionId = (actionPath) => {\n if (binding.dataActions[actionPath] &&\n binding.dataActions[actionPath].default &&\n binding.dataActions[actionPath].default.prototype &&\n binding.dataActions[actionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[actionPath].default.prototype.id] = binding.dataActions[actionPath];\n } else {\n Object.keys(binding.dataActions[actionPath] || {}).forEach(exportName => {\n if (binding.dataActions[actionPath][exportName] &&\n binding.dataActions[actionPath][exportName].prototype &&\n binding.dataActions[actionPath][exportName].prototype.Action) {\n binding.dataActions[binding.dataActions[actionPath][exportName].prototype.id] = binding.dataActions[actionPath][exportName];\n }\n })\n }\n };\n\n const registerSanitizedActionPath = (sanitizedActionPath, dataAction) => {\n if (process.env.NODE_ENV === 'development') {\n if (!dataAction.default) {\n throw new Error('Data action path does not have a default export');\n }\n if (!(dataAction.default.prototype.id && binding.dataActions[dataAction.default.prototype.id]) || !binding.dataActions[sanitizedActionPath]) {\n binding.dataActions[sanitizedActionPath] = dataAction;\n }\n } else {\n binding.dataActions[sanitizedActionPath] = dataAction;\n if (!binding.dataActions[sanitizedActionPath].default) {\n throw new Error('Data action path ' + sanitizedActionPath + ' does not have a default export');\n }\n binding.dataActions[sanitizedActionPath].default.prototype.RegistrationId = sanitizedActionPath;\n if (binding.dataActions[sanitizedActionPath].default.prototype.id) {\n binding.dataActions[binding.dataActions[sanitizedActionPath].default.prototype.id] = sanitizedActionPath;\n }\n }\n };\n \n\n (binding.modules['checkout-guest-profile'] = {\n c: () => require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-guest-profile/checkout-guest-profile'),\n $type: 'contentModule',\n da: [{name:'cart', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action', runOn: 1},{name:'checkout', path:'@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action', runOn: 1}],\n \n iNM: true,\n ns: '@msdyn365-commerce-modules',\n n: 'checkout-guest-profile',\n p: 'checkout',\n \n pdp: '',\n \n \n md: 'node_modules/@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-guest-profile'\n });\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/cart-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n {\n const sanitizedActionPath = '@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action';\n let dataAction = require('@msdyn365-commerce/global-state/dist/lib/data-actions/checkout-state-data-action');\n registerSanitizedActionPath(sanitizedActionPath, dataAction);\n }\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['@msdyn365-commerce-modules|checkout|modules|checkout-guest-profile|checkout-guest-profile'] = {\n c: () => require('@msdyn365-commerce-modules/checkout/dist/lib/modules/checkout-guest-profile/checkout-guest-profile.view.js'),\n cn: '@msdyn365-commerce-modules-checkout-checkout-guest-profile'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nexport interface IAddContactInfoInput {\n inputRef?: React.RefObject;\n hasError: boolean;\n email: string;\n resources: {\n emailLabel: string;\n emailErrortext: string;\n saveBtnLabel: string;\n cancelBtnLabel: string;\n };\n canSubmit: boolean;\n canCancel: boolean;\n onChange(email: string): void;\n onSubmit(): void;\n onCancel(): void;\n}\n\nexport interface IAddContactInfo {\n addFormProps: INodeProps;\n submitButton: React.ReactNode;\n cancelButton: React.ReactNode;\n inputGroupProps: INodeProps;\n label: React.ReactNode;\n error: React.ReactNode;\n input: React.ReactNode;\n}\n\n/**\n * On Input change handler function.\n * @param onChange -On change input function.\n * @returns Call of onChange function.\n */\nconst onInputChangeHandler = (onChange: (email: string) => void) => (event: React.ChangeEvent): void => {\n onChange(event.target.value || '');\n};\n\nconst getAddContactInfo = ({\n hasError,\n inputRef,\n email,\n canSubmit,\n canCancel,\n onChange,\n onSubmit,\n onCancel,\n resources: { emailLabel, emailErrortext, saveBtnLabel, cancelBtnLabel }\n}: IAddContactInfoInput): IAddContactInfo => {\n const onInputChange = onInputChangeHandler(onChange);\n\n return {\n addFormProps: { className: 'ms-checkout-guest-profile__add-contact-info' },\n submitButton: canSubmit && (\n \n ),\n cancelButton: canCancel && (\n \n ),\n inputGroupProps: { className: classnames('ms-checkout-guest-profile__input', { 'is-invalid': hasError }) },\n label: (\n \n ),\n error: hasError && (\n \n {emailErrortext}\n \n ),\n input: (\n \n )\n };\n};\n\nexport default getAddContactInfo;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Button, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IShowContactInfoInput {\n canEdit: boolean;\n email: string;\n resources: {\n editBtnLabel: string;\n };\n onEdit(): void;\n}\n\nexport interface IShowContactInfo {\n showInfoProps: INodeProps;\n email: React.ReactNode;\n editButton?: React.ReactNode;\n}\n\nconst getContactInfo = ({ canEdit, email, resources: { editBtnLabel }, onEdit }: IShowContactInfoInput): IShowContactInfo => ({\n showInfoProps: { className: 'ms-checkout-guest-profile__selected-item' },\n email: {email},\n editButton: canEdit && (\n \n )\n});\n\nexport default getContactInfo;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { IModuleStateProps, withModuleState } from '@msdyn365-commerce-modules/checkout-utilities';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport { ErrorLocation } from '@msdyn365-commerce/global-state';\nimport classnames from 'classnames';\nimport { action, computed, reaction, when } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ErrorComponent } from '../../common';\n\nimport { ICheckoutGuestProfileData } from './checkout-guest-profile.data';\nimport { ICheckoutGuestProfileProps } from './checkout-guest-profile.props.autogenerated';\nimport getAddContactInfo, { IAddContactInfo } from './components/get-add-contact-info';\nimport getShowContactInfo, { IShowContactInfo } from './components/get-show-contact-info';\n\nexport * from './components/get-add-contact-info';\nexport * from './components/get-show-contact-info';\n\ninterface ICheckoutGuestProfileState {\n email: string;\n hasCheckoutError?: boolean;\n errorMessage?: string;\n}\n\nexport interface ICheckoutGuestProfileModuleProps extends ICheckoutGuestProfileProps, IModuleStateProps {}\n\nexport interface ICheckoutGuestProfileViewProps extends ICheckoutGuestProfileProps, ICheckoutGuestProfileState {\n moduleProps: IModuleProps;\n showContactInfo?: IShowContactInfo;\n addContactInfo?: IAddContactInfo;\n alert?: React.ReactNode;\n\n onChange?(email: string): void;\n onEdit?(): void;\n onSubmit?(): void;\n onCancel?(): void;\n}\n\n/**\n *\n * CheckoutGuestProfile component.\n * @extends {React.PureComponent, ICheckoutGuestProfileState>}\n */\n// @ts-expect-error\n@withModuleState\n@observer\nclass CheckoutGuestProfile extends React.Component {\n public state: ICheckoutGuestProfileState = {\n email:\n (this.props.context &&\n this.props.context.request &&\n this.props.context.request.user &&\n this.props.context.request.user.isAuthenticated &&\n this.props.context.request.user.emailAddress) ||\n ''\n };\n\n private readonly inputRef: React.RefObject = React.createRef();\n\n @computed get isDataReady(): boolean {\n return (this.props.data.checkout.result && this.props.data.checkout.status) === 'SUCCESS';\n }\n\n @computed get hasEmailError(): boolean {\n return this.props.moduleState.hasError && !this.state.hasCheckoutError;\n }\n\n public componentDidMount(): void {\n when(\n () => this.isDataReady,\n async () => {\n await this.init();\n }\n );\n\n reaction(\n () => this.props.data.checkout.result?.isExpressCheckoutApplied,\n async isExpressCheckoutApplied => {\n if (isExpressCheckoutApplied && !this.props.data.checkout.result?.isExpressAddressApplied) {\n const email = this.props.data.checkout.result?.emailAddressFromExpressCheckout ?? '';\n\n await this.submitEmail(email);\n }\n }\n );\n\n if (this.props.data.checkout.result?.shouldEnableCheckoutErrorDisplayMessaging) {\n reaction(\n () => this.props.data.checkout.result?.checkoutError,\n checkoutError => {\n if (checkoutError && checkoutError.errorLocation === ErrorLocation.CheckoutGuestProfile && checkoutError.errorMessage) {\n this._setErrorMessage(checkoutError.errorMessage);\n }\n }\n );\n }\n }\n\n public shouldComponentUpdate(nextProps: ICheckoutGuestProfileModuleProps, nextState: ICheckoutGuestProfileState): 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 {\n config: { className },\n resources,\n moduleState: { isReady, hasExternalSubmitGroup }\n } = this.props;\n const { hasCheckoutError, errorMessage } = this.state;\n const email = this.props.data.checkout.result?.guestCheckoutEmail ?? '';\n\n const viewProps: ICheckoutGuestProfileViewProps = {\n ...this.props,\n ...this.state,\n onChange: this.onChange,\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onSubmit: this.onSubmit,\n\n moduleProps: {\n moduleProps: this.props,\n className: classnames('ms-checkout-guest-profile', className, isReady ? 'show' : 'add')\n },\n alert: hasCheckoutError && errorMessage && (\n \n ),\n showContactInfo: isReady\n ? getShowContactInfo({\n canEdit: !hasExternalSubmitGroup,\n email,\n resources,\n onEdit: this.onEdit\n })\n : undefined,\n addContactInfo: !isReady\n ? getAddContactInfo({\n email: this.state.email,\n hasError: this.hasEmailError,\n resources,\n inputRef: this.inputRef,\n onChange: this.onChange,\n canSubmit: !hasExternalSubmitGroup,\n onSubmit: this.onSubmit,\n canCancel: !hasExternalSubmitGroup && !!email,\n onCancel: this.onCancel\n })\n : undefined\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private readonly init = async (): Promise => {\n const checkoutState = this.props.data.checkout.result;\n\n const hasInvoiceLine = checkoutState?.checkoutCart.hasInvoiceLine;\n\n const emailOnCart = checkoutState?.checkoutCart.cart.ReceiptEmail;\n const email = hasInvoiceLine\n ? this.props.context.request.user.emailAddress ?? ''\n : emailOnCart ??\n (checkoutState?.isExpressCheckoutApplied ? checkoutState.emailAddressFromExpressCheckout : undefined) ??\n this.state.email;\n\n if (email) {\n await this.updateGuestProfile(email);\n checkoutState?.updateHasGuestCheckoutEmail({ newHasGuestCheckoutEmail: true });\n } else {\n checkoutState?.updateHasGuestCheckoutEmail({ newHasGuestCheckoutEmail: false });\n }\n\n const isEmailValid = this.isEmailValid(email);\n this.props.moduleState.init({\n onEdit: this.onEdit,\n onCancel: this.onCancel,\n onSubmit: this.onSubmit,\n status: hasInvoiceLine ? 'disabled' : email && isEmailValid ? 'ready' : 'updating',\n hasError: !!email && !isEmailValid\n });\n };\n\n private readonly onChange = (rowEmail: string): void => {\n const email = (rowEmail || '').replace(new RegExp('[<>]', 'gi'), '');\n this.setState({ email });\n if (this.props.moduleState.hasError) {\n // Clear error during user updating the email\n this.props.moduleState.setHasError(false);\n this.setState({\n hasCheckoutError: false\n });\n }\n };\n\n private readonly isEmailValid = (email: string): boolean => {\n return EmailRegex.defaultRegex.test(email);\n };\n\n private readonly updateGuestProfile = async (newGuestCheckoutEmail: string): Promise => {\n if (this.props.data.checkout.result) {\n await this.props.data.checkout.result.updateGuestCheckoutEmail({ newGuestCheckoutEmail });\n this.setState({ email: newGuestCheckoutEmail });\n }\n };\n\n private readonly onEdit = (): void => {\n this.props.telemetry.information('Guest profile onEdit is called.');\n\n this.props.moduleState.onUpdating();\n };\n\n private readonly onSubmit = async (): Promise => {\n this.props.telemetry.information('Guest profile onSubmit is called.');\n\n const { email } = this.state;\n await this.submitEmail(email);\n };\n\n /**\n * Submit the email address.\n * @param email - The email to be submitted.\n *\n */\n private readonly submitEmail = async (email: string): Promise => {\n const isValid = this.isEmailValid(email);\n if (!isValid) {\n this.props.moduleState.setHasError(true);\n\n const input = this.inputRef.current?.focus && (this.inputRef.current as HTMLElement);\n input?.focus();\n } else {\n this.props.moduleState.onReady();\n await this.updateGuestProfile(email);\n }\n };\n\n private readonly onCancel = (): void => {\n this.props.telemetry.information('Guest profile onCancel is called.');\n\n // Reset to the saved value\n if (!this.props.data.checkout.result) {\n return;\n }\n\n const email = this.props.data.checkout.result.guestCheckoutEmail;\n if (!email) {\n // It has no saved email, set to status updating and request user to fill the email form\n this.props.moduleState.onUpdating();\n } else {\n // It has saved email, set to status ready\n this.setState({\n email\n });\n this.props.moduleState.setHasError(false);\n this.setState({\n hasCheckoutError: false\n });\n this.props.moduleState.onReady();\n }\n };\n\n @action\n private readonly _setErrorMessage = (errorMessage: string): void => {\n this.props.telemetry.error(errorMessage);\n this.props.moduleState.setHasError(true);\n this.props.moduleState.onUpdating();\n this.setState({\n hasCheckoutError: true,\n errorMessage\n });\n };\n}\n\nexport default CheckoutGuestProfile;\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 { IAddContactInfo, ICheckoutGuestProfileViewProps, IShowContactInfo } from './checkout-guest-profile';\n\nexport const ShowContactInfo: React.FC = ({ showInfoProps, email, editButton }) => (\n \n {email}\n {editButton}\n \n);\n\nexport const AddContactInfo: React.FC = ({\n addFormProps,\n submitButton,\n cancelButton,\n inputGroupProps,\n label,\n error,\n input\n}) => (\n \n \n {label}\n {error}\n {input}\n \n {submitButton}\n {cancelButton}\n \n);\n\nconst CheckoutGuestProfileView: React.FC = ({ moduleProps, alert, showContactInfo, addContactInfo }) => {\n return (\n \n {alert}\n {showContactInfo && }\n {addContactInfo && }\n \n );\n};\n\nexport default CheckoutGuestProfileView;\n","module.exports = React;","module.exports = ReactDOM;"],"names":["binding","modules","dataActions","registerSanitizedActionPath","sanitizedActionPath","dataAction","default","Error","prototype","RegistrationId","id","c","require","$type","da","name","path","runOn","iNM","ns","n","p","pdp","md","window","__bindings__","_objectSpread","viewDictionary","cn","_ref","hasError","inputRef","email","canSubmit","canCancel","onChange","onSubmit","onCancel","resources","emailLabel","emailErrortext","saveBtnLabel","cancelBtnLabel","onInputChange","event","target","value","onInputChangeHandler","addFormProps","className","submitButton","React","Button","title","color","onClick","cancelButton","inputGroupProps","classnames","label","error","role","input","ref","type","canEdit","editBtnLabel","onEdit","showInfoProps","editButton","CheckoutGuestProfile","constructor","state","this","props","context","request","user","isAuthenticated","emailAddress","init","async","_this$props$context$r","checkoutState","data","checkout","result","hasInvoiceLine","checkoutCart","emailOnCart","cart","ReceiptEmail","isExpressCheckoutApplied","emailAddressFromExpressCheckout","undefined","updateGuestProfile","updateHasGuestCheckoutEmail","newHasGuestCheckoutEmail","isEmailValid","moduleState","status","rowEmail","replace","RegExp","setState","setHasError","hasCheckoutError","EmailRegex","defaultRegex","test","updateGuestCheckoutEmail","newGuestCheckoutEmail","telemetry","information","onUpdating","submitEmail","onReady","_this$inputRef$curren","current","focus","guestCheckoutEmail","_setErrorMessage","errorMessage","componentDidMount","_this$props$data$chec5","when","isDataReady","reaction","_this$props$data$chec","_this$props$data$chec2","isExpressAddressApplied","_this$props$data$chec3","_this$props$data$chec4","shouldEnableCheckoutErrorDisplayMessaging","_this$props$data$chec6","checkoutError","errorLocation","ErrorLocation","shouldComponentUpdate","nextProps","nextState","render","_this$props$data$chec7","_this$props$data$chec8","config","isReady","hasExternalSubmitGroup","viewProps","moduleProps","alert","ErrorComponent","Object","assign","errorMessageTitle","message","showContactInfo","getShowContactInfo","addContactInfo","getAddContactInfo","hasEmailError","renderView","__decorate","computed","action","withModuleState","observer","ShowContactInfo","Node","AddContactInfo","_ref2","_ref3","Module","module","exports","ReactDOM"],"sourceRoot":""}