{"version":3,"file":"static/js/885839e0ad0f8eb29dd2.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./lib/business-sign-up/module-registration.js?f4d4","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-button.tsx?e1d9","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-error.tsx?7f8a","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-input.tsx?5bbe","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-label.tsx?4988","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/components/sign-up-radio-button.tsx?f8c1","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.tsx?13a2","webpack://Msdyn365.Commerce.Online/./src/modules/business-sign-up/business-sign-up.view.tsx?e2f8","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?7664"],"sourcesContent":["const binding = { modules: {}, dataActions: {} };\n\n    (binding.modules['business-sign-up'] = {\n        c: () => require('@msdyn365-commerce-modules/business-account-management/dist/lib/modules/business-sign-up/business-sign-up'),\n        $type: 'containerModule',\n        da: [],\n        \n        iNM: true,\n        ns: '@msdyn365-commerce-modules',\n        n: 'business-sign-up',\n        p: 'business-account-management',\n        \n        pdp: '',\n        \n        \n        md: 'node_modules/@msdyn365-commerce-modules/business-account-management/dist/lib/modules/business-sign-up'\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|business-account-management|modules|business-sign-up|business-sign-up'] = {\n                c: () => require('@msdyn365-commerce-modules/business-account-management/dist/lib/modules/business-sign-up/business-sign-up.view.js'),\n                cn: '@msdyn365-commerce-modules-business-account-management-business-sign-up'\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, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface IBusinessSignUpButtonProps {\n    id?: string;\n    className: string;\n    text: string;\n    ariaLabel: string;\n    disabled?: boolean;\n    link?: string;\n    telemetryContent: ITelemetryContent;\n    onClick?(event: React.MouseEvent<HTMLElement>): void;\n}\n\nexport const SignUpButton: React.FC<IBusinessSignUpButtonProps> = ({\n    id,\n    className,\n    text,\n    ariaLabel,\n    telemetryContent,\n    disabled,\n    link,\n    onClick\n}) => {\n    const payLoad = getPayloadObject('click', telemetryContent, text);\n    const attributes = getTelemetryAttributes(telemetryContent, payLoad);\n    return (\n        <Button\n            id={id}\n            className={className}\n            aria-label={ariaLabel}\n            disabled={disabled}\n            onClick={onClick}\n            role='button'\n            aria-disabled={disabled}\n            href={link}\n            {...attributes}\n        >\n            {text}\n        </Button>\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 IBusinessSignUpErrorProps {\n    id?: string;\n    className: string;\n    type?: string;\n    message?: string;\n}\n\nexport const SignUpError: React.FC<IBusinessSignUpErrorProps> = ({ id, className, type = 'page', message }) => {\n    const errorClassName = `${className}__${type}-error`;\n\n    return (\n        <div\n            id={id}\n            className={classnames(errorClassName, 'error', `${type}Level`)}\n            role='alert'\n            aria-live='assertive'\n            aria-label='Address fields are optional. If you choose to submit an address, please complete the rest of the address fields.'\n        >\n            <p className={`${errorClassName}-text`}>{message}</p>\n        </div>\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\nimport { InputType } from '../business-sign-up';\n\nexport interface IBusinessSignUpInputProps {\n    id?: string;\n    type: InputType;\n    value?: string;\n    pattern?: string;\n    className: string;\n    maxLength?: string;\n    isRequired: boolean;\n    fieldReference?: React.RefObject<HTMLInputElement>;\n    onChange?(event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>): void;\n}\n\nexport interface IBusinessSignUpInput {\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\nexport const SignUpInput: React.FC<IBusinessSignUpInputProps> = ({\n    id,\n    type,\n    value,\n    pattern,\n    className,\n    maxLength,\n    isRequired,\n    onChange,\n    fieldReference\n}) => {\n    if (type === InputType.TextArea) {\n        return (\n            <textarea\n                id={id}\n                name={id}\n                value={value}\n                className={`${className}-input-area ${className}-${id}`}\n                aria-required={isRequired}\n                maxLength={GetMaxLength(maxLength)}\n                onChange={onChange}\n            />\n        );\n    }\n\n    return (\n        <input\n            id={id}\n            type={type}\n            value={value}\n            className={`${className}-input ${className}-${id}`}\n            pattern={pattern !== '' ? pattern : undefined}\n            aria-required={isRequired}\n            maxLength={GetMaxLength(maxLength)}\n            onChange={onChange}\n            ref={fieldReference}\n        />\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 IBusinessSignUpLabelProps {\n    id: string;\n    forId: string;\n    className: string;\n    text: string;\n}\n\nexport const SignUpLabel: React.FC<IBusinessSignUpLabelProps> = ({ id, forId, className, text }) => (\n    <label id={`${id}_label`} className={`${className}-label`} htmlFor={forId}>\n        {text}\n    </label>\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 IBusinessSignUpRadioButtonProps {\n    id: string;\n    isRequired: boolean;\n    options: IBusinessSignUpRadioButtonOptionProps[];\n}\n\nexport interface IBusinessSignUpRadioButtonOptionProps {\n    id: string;\n    name: string;\n    value: string;\n    label: string;\n    className: string;\n    onChange(event: React.ChangeEvent<HTMLInputElement>): void;\n}\n\nexport const BusinessSignUpRadioButtonOption: React.FC<IBusinessSignUpRadioButtonOptionProps> = props => {\n    const { id, name, value, label, className, onChange } = props;\n    return (\n        <div className={className}>\n            <input type='radio' id={id} name={name} value={value} onChange={onChange} />\n            <label htmlFor={id}>{label}</label>\n        </div>\n    );\n};\n\nexport default BusinessSignUpRadioButtonOption;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ContentEditableEvent, getUrlSync, RichTextComponent, Text } from '@msdyn365-commerce/core';\nimport { Address, BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IBusinessSignUpConfig, IBusinessSignUpProps } from './business-sign-up.props.autogenerated';\nimport { SignUpButton, SignUpError, SignUpInput, SignUpLabel } from './components';\nimport { IBusinessSignUpRadioButtonOptionProps, BusinessSignUpRadioButtonOption } from './components/sign-up-radio-button';\n\nexport interface IBusinessSignUpExtendedProps extends IBusinessSignUpProps<IBusinessSignUpConfig> {\n    formItems?: IFormItem[];\n}\n\nexport interface IBusinessSignUpItem {\n    wrapper: INodeProps;\n    isAddressInput?: boolean;\n    id: string;\n    label: React.ReactNode;\n    errorMessage: React.ReactNode;\n    input?: React.ReactNode;\n}\n\nexport interface IBusinessState {\n    isReady: boolean;\n    formItems: IFormItem[];\n    addressHasErrors: boolean;\n    showAddressErrors: boolean;\n    hasSubmitErrors: boolean;\n}\n\nexport interface IBusinessSignUpLocalAccount {\n    FormWrapper: INodeProps;\n    items: IBusinessSignUpItem[];\n    buttons: React.ReactNode[];\n    errorMessage: React.ReactNode[];\n    disclaimer: React.ReactNode;\n}\n\nexport interface IBusinessSignUpViewProps {\n    className: string;\n    businessSignUp: IModuleProps;\n    ContainerWrapper: INodeProps;\n    heading: React.ReactNode;\n    businessSignUpForm: IBusinessSignUpLocalAccount;\n    formItems: IFormItem[];\n}\n\nexport interface IFormItem {\n    id: string;\n    type: InputType;\n    label: string;\n    value: string;\n    maxChars?: string;\n    isRequired: boolean;\n    pattern?: string;\n    address?: Address;\n    customClass?: string;\n    fieldReference?: React.RefObject<HTMLInputElement>;\n    radioButtonOptions?: IBusinessSignUpRadioButtonOptionProps[];\n    radioButtonGroupClass?: string;\n}\n\nexport enum InputType {\n    // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\n    Text = 'text',\n    Address = 'address',\n    Email = 'email',\n    TextArea = 'textarea',\n    RadioButton = 'radiobutton'\n}\n\nexport enum InputID {\n    FirstName = 'FirstName',\n    LastName = 'LastName',\n    Email = 'CompanyEmail',\n    CompanyName = 'CompanyName',\n    Address = 'CompanyAddress',\n    JobTitle = 'JobTitle',\n    Size = 'CompanySize',\n    Department = 'Department',\n    Comment = 'Comment',\n    ProspectType = 'ProspectType'\n}\n\nexport const renderInputSection = (\n    inputs: IFormItem[],\n    className: string,\n    needToReset: boolean,\n    onInputChange: (event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>) => void,\n    showErrors: boolean,\n    addressForm?: React.ReactNode,\n    updateAddress?: (errors: boolean, currAddress?: Address) => void\n): IBusinessSignUpItem[] => {\n    return inputs.map((element, index) => {\n        const {\n            id,\n            type,\n            label,\n            maxChars,\n            isRequired,\n            pattern,\n            customClass,\n            value,\n            fieldReference,\n            radioButtonOptions,\n            radioButtonGroupClass\n        } = element;\n\n        const baseSignUpItem: IBusinessSignUpItem = {\n            wrapper: {\n                className: classnames(className, `${className}-${id}`, customClass)\n            },\n            id,\n            label: <SignUpLabel {...{ id, forId: id, className, text: label }} />,\n            errorMessage: <SignUpError {...{ className, type: 'item' }} />\n        };\n\n        if (type === InputType.Address) {\n            if (addressForm) {\n                baseSignUpItem.isAddressInput = true;\n                baseSignUpItem.input = (\n                    <>\n                        {React.cloneElement(addressForm as React.ReactElement, {\n                            updateForm: updateAddress,\n                            hasError: showErrors,\n                            isRequired: isRequired === undefined ? false : isRequired,\n                            resetAddress: needToReset\n                        })}\n                    </>\n                );\n            } else {\n                // If the address slot is not filled, remove this input from the form\n                inputs.splice(index, 1);\n            }\n        } else if (type === InputType.RadioButton) {\n            baseSignUpItem.input = (\n                <div className={radioButtonGroupClass}>\n                    {radioButtonOptions &&\n                        radioButtonOptions.map((element, index) => {\n                            return <BusinessSignUpRadioButtonOption key={index} {...element}></BusinessSignUpRadioButtonOption>;\n                        })}\n                </div>\n            );\n        } else {\n            baseSignUpItem.input = (\n                <SignUpInput\n                    {...{\n                        id,\n                        type,\n                        value,\n                        maxLength: maxChars,\n                        pattern,\n                        className,\n                        isRequired: isRequired === undefined ? false : isRequired,\n                        onChange: onInputChange,\n                        fieldReference\n                    }}\n                />\n            );\n        }\n\n        return baseSignUpItem;\n    });\n};\n\n/**\n *\n * Business Request Form Modules\n * Form that a business can use to submit a request to become a partner with Microsoft.\n * @extends {React.Component<IBusinessSignUpProps<IBusinessSignUpConfig>>}\n */\nclass BusinessSignUp extends React.Component<IBusinessSignUpExtendedProps, IBusinessState> {\n    private readonly moduleClassName: string = 'ms-business-sign-up';\n    private readonly prospectRadioButtonName: string = 'business-sign-up-radio-button';\n\n    // Used as default data\n    // eslint-disable-next-line @typescript-eslint/member-ordering\n    public BusinessSignUpDefaultInputs: IFormItem[] = [\n        {\n            id: InputID.ProspectType,\n            type: InputType.RadioButton,\n            label: this.props.resources.prospectTypeLabel,\n            value: '',\n            isRequired: true,\n            customClass: 'width-100',\n            radioButtonGroupClass: 'radio-option-container',\n            radioButtonOptions: [\n                {\n                    id: `${InputID.ProspectType}-buyer`,\n                    name: this.prospectRadioButtonName,\n                    value: '1', // Buyer\n                    label: this.props.resources.prospectTypeBuyerLabel,\n                    className: `${this.moduleClassName}__form-item-radio-button-option`,\n                    onChange: this._onInputChange.bind(this)\n                },\n                {\n                    id: `${InputID.ProspectType}-seller`,\n                    name: this.prospectRadioButtonName,\n                    value: '2', // Seller\n                    className: `${this.moduleClassName}__form-item-radio-button-option`,\n                    label: this.props.resources.prospectTypeSellerLabel,\n                    onChange: this._onInputChange.bind(this)\n                }\n            ]\n        },\n        {\n            id: InputID.FirstName,\n            type: InputType.Text,\n            label: this.props.resources.firstNameLabel,\n            value: '',\n            isRequired: true,\n            customClass: 'width-25'\n        },\n        {\n            id: InputID.LastName,\n            type: InputType.Text,\n            label: this.props.resources.lastNameLabel,\n            value: '',\n            isRequired: true,\n            customClass: 'width-25'\n        },\n        {\n            id: InputID.Email,\n            type: InputType.Email,\n            label: this.props.resources.emailAddressLabel,\n            value: '',\n            isRequired: true,\n            pattern: EmailRegex.defaultRegex.source,\n            customClass: 'width-50'\n        },\n        {\n            id: InputID.CompanyName,\n            type: InputType.Text,\n            label: this.props.resources.companyLabel,\n            value: '',\n            isRequired: true,\n            customClass: 'width-50'\n        },\n        {\n            id: InputID.Department,\n            type: InputType.Text,\n            label: this.props.resources.departmentLabel,\n            value: '',\n            isRequired: false,\n            customClass: 'width-50'\n        },\n        {\n            id: InputID.JobTitle,\n            type: InputType.Text,\n            label: this.props.resources.jobTitleLabel,\n            value: '',\n            isRequired: false,\n            customClass: 'width-50'\n        },\n        {\n            id: InputID.Size,\n            type: InputType.Text,\n            label: this.props.resources.companySizeLabel,\n            value: '',\n            isRequired: false,\n            customClass: 'width-50'\n        },\n        {\n            id: InputID.Address,\n            type: InputType.Address,\n            label: this.props.resources.companyAddressLabel,\n            value: '',\n            isRequired: false,\n            customClass: 'width-100'\n        },\n        {\n            id: InputID.Comment,\n            type: InputType.TextArea,\n            label: this.props.resources.commentLabel,\n            value: '',\n            isRequired: false,\n            customClass: 'width-100'\n        }\n    ];\n\n    private readonly formChildReference: React.RefObject<HTMLInputElement> = React.createRef<HTMLInputElement>();\n\n    private needsToReset: boolean = false;\n\n    private readonly telemetryContent: ITelemetryContent;\n\n    constructor(props: IBusinessSignUpExtendedProps) {\n        super(props);\n\n        this.state = {\n            isReady: false,\n            formItems: this.props.formItems || this._addedReference(),\n            addressHasErrors: false,\n            showAddressErrors: false,\n            hasSubmitErrors: false\n        };\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.formChildReference.current?.focus();\n    }\n\n    public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): 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 } = this.props;\n        const { formItems } = this.state;\n        const { className, heading } = config;\n\n        const viewProps = {\n            ...this.props,\n            businessSignUp: {\n                moduleProps: this.props,\n                className: classnames(this.moduleClassName, className)\n            },\n            ContainerWrapper: {\n                className: `${this.moduleClassName}__container`\n            },\n            heading: (\n                <Text\n                    className={`${this.moduleClassName}__heading`}\n                    {...heading}\n                    editProps={{ onEdit: this.handleHeadingChange, requestContext: this.props.context.request }}\n                />\n            ),\n            businessSignUpForm: this._renderForm(),\n            formItems\n        };\n\n        return this.props.renderView(viewProps) as React.ReactElement;\n    }\n\n    /**\n     * Handle the heading change event.\n     * @param event - Content Editable Event.\n     */\n    public handleHeadingChange = (event: ContentEditableEvent): void => {\n        this.props.config.heading.text = event.target.value;\n    };\n\n    private _renderForm(): IBusinessSignUpLocalAccount {\n        const { config, resources, slots } = this.props;\n        const { showAddressErrors, hasSubmitErrors, isReady, formItems } = this.state;\n        const {\n            signUpButtonArialabel,\n            signUpButtonText,\n            cancelButtonArialabel,\n            cancelButtonText,\n            errorMessage,\n            partialAddressErrorMessage\n        } = resources;\n        const addressForm = (slots && slots.addressSlot && slots.addressSlot.length > 0 && slots.addressSlot[0]) || undefined;\n\n        const form = {\n            FormWrapper: {\n                className: `${this.moduleClassName}__form `\n            },\n            items: renderInputSection(\n                formItems,\n                `${this.moduleClassName}__form-item`,\n                this.needsToReset,\n                this._onInputChange.bind(this),\n                showAddressErrors,\n                addressForm,\n                this._onAddressChange\n            ),\n            buttons: [\n                <SignUpButton\n                    key='continue'\n                    id='continue'\n                    className={`${this.moduleClassName}__create-button`}\n                    ariaLabel={signUpButtonArialabel}\n                    text={signUpButtonText}\n                    disabled={!isReady}\n                    onClick={this._onSubmit}\n                    telemetryContent={this.telemetryContent}\n                />,\n                <SignUpButton\n                    key='cancel'\n                    id='cancel'\n                    className={`${this.moduleClassName}__cancel-button`}\n                    ariaLabel={cancelButtonArialabel}\n                    text={cancelButtonText}\n                    onClick={this._onCancel}\n                    telemetryContent={this.telemetryContent}\n                />\n            ],\n            errorMessage: [\n                hasSubmitErrors && <SignUpError key='error' id='error' className={this.moduleClassName} message={errorMessage} />,\n                showAddressErrors && (\n                    <SignUpError key='error' id='error' className={this.moduleClassName} message={partialAddressErrorMessage} />\n                )\n            ],\n            disclaimer: config.disclaimer && (\n                <RichTextComponent className={`${this.moduleClassName}__disclaimer`} text={config.disclaimer} />\n            )\n        };\n\n        if (this.needsToReset) {\n            this.needsToReset = false;\n        }\n\n        return form;\n    }\n\n    private _onInputChange(event: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>): void {\n        const newForm = this.state.formItems;\n        newForm.forEach(item => {\n            if (item.type === InputType.RadioButton && event.target.name === this.prospectRadioButtonName) {\n                item.value = event.target.value;\n            } else if (item.id === event.target.id) {\n                item.value = event.target.value;\n            }\n        });\n\n        // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\n        this.setState({\n            isReady: this._isFormReady(),\n            formItems: newForm,\n            hasSubmitErrors: false\n        });\n    }\n\n    private _addedReference(): IFormItem[] {\n        const newFormFields = this.BusinessSignUpDefaultInputs;\n        newFormFields[0].fieldReference = this.formChildReference;\n        return newFormFields;\n    }\n\n    private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\n        // Find address item\n        const newForm = this.state.formItems;\n        const addressItem = newForm.find(item => {\n            return item.type === InputType.Address;\n        });\n\n        // If found --> set to currentAddress\n        if (addressItem) {\n            addressItem.address = currentAddress;\n\n            // Update state with new values and set errors to false if address is not required field\n            this.setState(\n                {\n                    formItems: newForm,\n                    addressHasErrors: errors,\n                    showAddressErrors: false\n                },\n                () => {\n                    this.setState({ isReady: this._isFormReady() });\n                }\n            );\n        }\n    };\n\n    private readonly _isFormReady = (): boolean => {\n        const { formItems } = this.state;\n\n        for (const currentInput of formItems) {\n            // Will return FALSE if:\n            //  - input field is required\n            //      IF is address AND addressHasErrors === true\n            //      ELSE value is undefined OR empty\n            //  OR\n            //  - pattern provided and value does not match pattern\n\n            if (currentInput.isRequired) {\n                if (currentInput.type === InputType.Address) {\n                    if (this.state.addressHasErrors) {\n                        return false;\n                    }\n                } else if (currentInput.value === undefined || currentInput.value === '') {\n                    return false;\n                }\n            }\n            if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\n                return false;\n            }\n        }\n\n        return true;\n    };\n\n    private readonly _onSubmit = (event: React.MouseEvent<HTMLElement, MouseEvent>) => {\n        if (this.state.addressHasErrors) {\n            this.setState({\n                showAddressErrors: true\n            });\n\n            event.preventDefault();\n            return;\n        }\n\n        const { config, context } = this.props;\n\n        // Check for matching id and if not empty\n        const firstName = this._getItem(InputID.FirstName);\n        const lastName = this._getItem(InputID.LastName);\n        const companyName = this._getItem(InputID.CompanyName);\n        const companyEmail = this._getItem(InputID.Email);\n        const companyAddress = this._getItem(InputID.Address, true);\n        const jobTitle = this._getItem(InputID.JobTitle);\n        const department = this._getItem(InputID.Department);\n        const companySize = this._getItem(InputID.Size);\n        const comments = this._getItem(InputID.Comment);\n        const prospectType = this._getItem(InputID.ProspectType);\n\n        // API gets email as part of the address object, but I do not use the email input from the address component, thus we need to copy it over\n        if (companyEmail && companyEmail.value && companyAddress && companyAddress.address) {\n            companyAddress.address.Email = companyEmail.value;\n        }\n\n        const newPartner: BusinessPartnerProspect = {\n            FirstName: firstName && firstName.value,\n            LastName: lastName && lastName.value,\n            CompanyName: companyName && companyName.value,\n            Address: companyAddress && companyAddress.address && companyAddress.address,\n            JobTitle: jobTitle && jobTitle.value,\n            Department: department && department.value,\n            CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\n            Comments: comments && comments.value,\n            ProspectTypeValue: (prospectType && Number.parseInt(prospectType.value, 10)) || 0\n        };\n\n        this.setState({\n            isReady: false\n        });\n\n        // Create business partner request\n        createProspectAsync({ callerContext: context.actionContext }, newPartner)\n            .then(() => {\n                const successPageURL =\n                    (config.confirmationLink && config.confirmationLink.linkUrl && config.confirmationLink.linkUrl.destinationUrl) ||\n                    getUrlSync('home', this.props.context.actionContext) ||\n                    '';\n                window.location.href = successPageURL;\n            })\n            .catch(() => {\n                this.setState({\n                    hasSubmitErrors: true\n                });\n            });\n    };\n\n    private readonly _onCancel = () => {\n        // Reset values of the form\n        const cleanForm = this.state.formItems;\n        cleanForm.forEach(input => {\n            input.value = '';\n        });\n\n        // Set reset flag so address input will get reset on next renderInputSection() call\n        this.needsToReset = true;\n\n        this.setState({\n            isReady: false,\n            formItems: cleanForm,\n            addressHasErrors: true,\n            showAddressErrors: false,\n            hasSubmitErrors: false\n        });\n    };\n\n    private readonly _getItem = (id: string, isAddress: boolean = false) => {\n        if (isAddress) {\n            return this.state.formItems.find(item => {\n                return item.id === id && item.address;\n            });\n        }\n        return this.state.formItems.find(item => {\n            return item.id === id && item.value !== '';\n        });\n    };\n}\n\nexport default BusinessSignUp;\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 { IBusinessSignUpItem, IBusinessSignUpViewProps } from './business-sign-up';\n\nconst BusinessSignUpItem: React.FC<IBusinessSignUpItem> = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\n    // Hide label and error message if rendering address section\n    return (\n        <Node {...wrapper}>\n            {!isAddressInput && label}\n            {!isAddressInput && errorMessage}\n            {input}\n        </Node>\n    );\n};\n\nconst BusinesSignUpView: React.FC<IBusinessSignUpViewProps> = props => {\n    const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\n\n    const { FormWrapper, buttons, items, errorMessage, disclaimer } = businessSignUpForm;\n\n    return (\n        <Module {...businessSignUp}>\n            <Node {...ContainerWrapper}>\n                {heading}\n                <Node {...FormWrapper}>\n                    {items &&\n                        items.map((item: IBusinessSignUpItem) => {\n                            return <BusinessSignUpItem key={item.id} {...item} />;\n                        })}\n                    {errorMessage &&\n                        errorMessage.map((error: React.ReactNode, index: number) => {\n                            return <React.Fragment key={index}>{error}</React.Fragment>;\n                        })}\n                    {buttons &&\n                        buttons.map((button: React.ReactNode, index: number) => {\n                            return <React.Fragment key={index}>{button}</React.Fragment>;\n                        })}\n                    {disclaimer}\n                </Node>\n            </Node>\n        </Module>\n    );\n};\n\nexport default BusinesSignUpView;\n","module.exports = React;","module.exports = ReactDOM;","'use strict';\nvar call = require('../internals/function-call');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar getMethod = require('../internals/get-method');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', function (MATCH, nativeMatch, maybeCallNative) {\n  return [\n    // `String.prototype.match` method\n    // https://tc39.es/ecma262/#sec-string.prototype.match\n    function match(regexp) {\n      var O = requireObjectCoercible(this);\n      var matcher = isNullOrUndefined(regexp) ? undefined : getMethod(regexp, MATCH);\n      return matcher ? call(matcher, regexp, O) : new RegExp(regexp)[MATCH](toString(O));\n    },\n    // `RegExp.prototype[@@match]` method\n    // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n    function (string) {\n      var rx = anObject(this);\n      var S = toString(string);\n      var res = maybeCallNative(nativeMatch, rx, S);\n\n      if (res.done) return res.value;\n\n      if (!rx.global) return regExpExec(rx, S);\n\n      var fullUnicode = rx.unicode;\n      rx.lastIndex = 0;\n      var A = [];\n      var n = 0;\n      var result;\n      while ((result = regExpExec(rx, S)) !== null) {\n        var matchStr = toString(result[0]);\n        A[n] = matchStr;\n        if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n        n++;\n      }\n      return n === 0 ? null : A;\n    }\n  ];\n});\n"],"names":["binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","window","__bindings__","_objectSpread","viewDictionary","cn","SignUpButton","_ref","id","className","text","ariaLabel","telemetryContent","disabled","link","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","Button","Object","assign","role","href","SignUpError","type","message","errorClassName","classnames","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpInput","value","pattern","isRequired","onChange","fieldReference","InputType","TextArea","name","undefined","ref","SignUpLabel","forId","htmlFor","BusinessSignUpRadioButtonOption","props","label","InputID","renderInputSection","inputs","needToReset","onInputChange","showErrors","addressForm","updateAddress","map","element","index","maxChars","customClass","radioButtonOptions","radioButtonGroupClass","baseSignUpItem","wrapper","errorMessage","Address","isAddressInput","input","updateForm","hasError","resetAddress","splice","RadioButton","key","BusinessSignUp","constructor","_this","super","this","moduleClassName","prospectRadioButtonName","BusinessSignUpDefaultInputs","ProspectType","resources","prospectTypeLabel","prospectTypeBuyerLabel","_onInputChange","bind","prospectTypeSellerLabel","FirstName","Text","firstNameLabel","LastName","lastNameLabel","Email","emailAddressLabel","EmailRegex","defaultRegex","source","CompanyName","companyLabel","Department","departmentLabel","JobTitle","jobTitleLabel","Size","companySizeLabel","companyAddressLabel","Comment","commentLabel","formChildReference","needsToReset","handleHeadingChange","event","config","heading","target","_onAddressChange","errors","currentAddress","newForm","state","formItems","addressItem","find","item","address","setState","addressHasErrors","showAddressErrors","isReady","_isFormReady","currentInput","match","_onSubmit","preventDefault","context","firstName","_getItem","lastName","companyName","companyEmail","companyAddress","jobTitle","department","companySize","comments","prospectType","newPartner","CompanySize","Comments","ProspectTypeValue","createProspectAsync","callerContext","actionContext","then","successPageURL","confirmationLink","linkUrl","destinationUrl","getUrlSync","location","catch","hasSubmitErrors","_onCancel","cleanForm","forEach","isAddress","arguments","length","_addedReference","getTelemetryObject","request","telemetryPageName","friendlyName","telemetry","componentDidMount","_this$formChildRefere","current","focus","shouldComponentUpdate","nextProps","nextState","data","render","viewProps","businessSignUp","moduleProps","ContainerWrapper","editProps","onEdit","requestContext","businessSignUpForm","_renderForm","renderView","slots","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","partialAddressErrorMessage","addressSlot","form","FormWrapper","items","buttons","disclaimer","RichTextComponent","newFormFields","BusinessSignUpItem","Node","Module","error","button","module","exports","ReactDOM","call","fixRegExpWellKnownSymbolLogic","anObject","isNullOrUndefined","toLength","toString","requireObjectCoercible","getMethod","advanceStringIndex","regExpExec","MATCH","nativeMatch","maybeCallNative","regexp","O","matcher","RegExp","string","rx","S","res","done","global","fullUnicode","unicode","lastIndex","result","A","matchStr"],"sourceRoot":""}