{"version":3,"file":"static/js/802e328a733868e9f0f3.bundle.js","mappings":"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","sources":["webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/components/sign-up-button.tsx?db57","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/components/sign-up-error.tsx?d303","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/components/sign-up-input.tsx?67a5","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/components/sign-up-select.tsx?4a3d","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/components/sign-up-label.tsx?c452","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/components/sign-up-file-upload.tsx?e70a","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/axios/http-common.tsx?73fc","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/axios/services/user.service.tsx?7e5c","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/herbal-business-sign-up.tsx?6b1f","webpack://Msdyn365.Commerce.Online/./src/modules/herbal-business-sign-up/herbal-business-sign-up.view.tsx?5929","webpack://Msdyn365.Commerce.Online/./lib/herbal-business-sign-up/module-registration.js?81c1","webpack://Msdyn365.Commerce.Online/./node_modules/@msdyn365-commerce/bootloader/node_modules/core-js/modules/es.string.match.js?a69e","webpack://Msdyn365.Commerce.Online/external var \"React\"?0d3b","webpack://Msdyn365.Commerce.Online/external var \"ReactDOM\"?853b"],"sourcesContent":["/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Button, getPayloadObject, getTelemetryAttributes, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpButtonProps {\r\n id?: string;\r\n className: string;\r\n text: string;\r\n ariaLabel: string;\r\n disabled?: boolean;\r\n link?: string;\r\n telemetryContent: ITelemetryContent;\r\n onClick?(event: React.MouseEvent): void;\r\n}\r\n\r\nexport const SignUpButton: React.FC = ({\r\n id,\r\n className,\r\n text,\r\n ariaLabel,\r\n telemetryContent,\r\n disabled,\r\n link,\r\n onClick\r\n}) => {\r\n const payLoad = getPayloadObject('click', telemetryContent, text);\r\n const attributes = getTelemetryAttributes(telemetryContent, payLoad);\r\n return (\r\n \r\n {text}\r\n \r\n );\r\n};\r\n\r\nexport default SignUpButton;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpErrorProps {\r\n id?: string;\r\n className: string;\r\n type?: string;\r\n message?: string;\r\n}\r\n\r\nexport const SignUpError: React.FC = ({ id, className, type = 'page', message }) => {\r\n const errorClassName = `${className}__${type}-error`;\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpError;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { InputType } from '../herbal-business-sign-up';\r\n\r\nexport interface IBusinessSignUpInputProps {\r\n id?: string;\r\n type: InputType;\r\n placeHolder?: string;\r\n value?: string;\r\n pattern?: string;\r\n className: string;\r\n maxLength?: string;\r\n isRequired: boolean;\r\n fieldReference?: React.RefObject;\r\n onChange?(event: React.ChangeEvent): void;\r\n onBlur?(event: React.ChangeEvent): void;\r\n}\r\n\r\nexport interface IBusinessSignUpInput {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nconst GetMaxLength = (maxLength?: string): number | undefined => {\r\n if (maxLength) {\r\n const parsedMaxLength = Number.parseInt(maxLength, 10);\r\n if (!isNaN(parsedMaxLength)) {\r\n return parsedMaxLength;\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const SignUpInput: React.FC = ({\r\n id,\r\n type,\r\n placeHolder,\r\n value,\r\n pattern,\r\n className,\r\n maxLength,\r\n isRequired,\r\n onChange,\r\n onBlur,\r\n fieldReference\r\n}) => {\r\n if (type === InputType.TextArea) {\r\n return (\r\n \r\n );\r\n }\r\n\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default SignUpInput;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { OptionHTMLAttributes } from 'react';\r\n\r\nexport interface IBusinessSignUpSelectProps {\r\n id?: string;\r\n value?: string;\r\n optionList?: OptionHTMLAttributes[];\r\n className: string;\r\n isRequired: boolean;\r\n fieldReference?: React.RefObject;\r\n onChange?(event: React.ChangeEvent): void;\r\n}\r\n\r\nexport interface IBusinessSignUpSelect {\r\n key: string;\r\n AddressItem: INodeProps;\r\n label: React.ReactNode;\r\n alert: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\n\r\nexport const SignUpSelect: React.FC = ({\r\n id,\r\n value,\r\n optionList,\r\n className,\r\n isRequired,\r\n onChange,\r\n fieldReference\r\n}) => {\r\n return (\r\n \r\n {optionList &&\r\n optionList.map((item, i) => (\r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default SignUpSelect;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nexport interface IBusinessSignUpLabelProps {\r\n id: string;\r\n forId: string;\r\n className: string;\r\n text: string;\r\n}\r\n\r\nexport const SignUpLabel: React.FC = ({ id, forId, className, text }) => (\r\n \r\n);\r\n\r\nexport default SignUpLabel;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as React from 'react';\r\n\r\nimport { InputType } from '../herbal-business-sign-up';\r\n\r\nexport interface IBusinessSignUpFileUploadProps {\r\n id?: string;\r\n type: InputType;\r\n className: string;\r\n isRequired: boolean;\r\n fieldReference?: React.RefObject;\r\n multiple: boolean;\r\n helpText?: string;\r\n onChange?(event: React.ChangeEvent): void;\r\n onBlur?(event: React.ChangeEvent): void;\r\n}\r\n\r\nexport const SignUpFileUpload: React.FC = ({\r\n id,\r\n type,\r\n className,\r\n isRequired,\r\n onChange,\r\n onBlur,\r\n fieldReference,\r\n multiple,\r\n helpText\r\n}) => {\r\n return (\r\n
\r\n \r\n
{helpText}
\r\n
\r\n );\r\n};\r\n\r\nexport default SignUpFileUpload;\r\n","import axios from 'axios';\r\n\r\nexport default axios.create({\r\n baseURL: '',\r\n headers: {\r\n 'Content-Type': 'application/json'\r\n }\r\n});\r\n","import http from '../http-common';\r\nimport IUserData from '../type/comment-data';\r\nimport { BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\r\n\r\nexport interface BusinessPartnerProspectLog {\r\n content: BusinessPartnerProspect;\r\n}\r\nclass UserDataService {\r\n public get(url: string) {\r\n return http.get(url);\r\n }\r\n\r\n public checkExist(url: string, data: IUserData) {\r\n return http.post(url, data);\r\n }\r\n\r\n public saveRegistrationLog(url: string, data: BusinessPartnerProspectLog) {\r\n return http.post(url, data);\r\n }\r\n}\r\n\r\nexport default new UserDataService();\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { ContentEditableEvent, getUrlSync, IActionContext, RichTextComponent, Text } from '@msdyn365-commerce/core';\r\nimport { Address, BusinessPartnerProspect } from '@msdyn365-commerce/retail-proxy';\r\nimport { createProspectAsync } from '@msdyn365-commerce/retail-proxy/dist/DataActions/BusinessPartnersDataActions.g';\r\nimport { EmailRegex } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { format, getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport {\r\n IHerbalBusinessSignUpConfig,\r\n IHerbalBusinessSignUpProps,\r\n IHerbalBusinessSignUpResources\r\n} from './herbal-business-sign-up.props.autogenerated';\r\nimport { SignUpButton, SignUpError, SignUpInput, SignUpSelect, SignUpFileUpload, SignUpLabel } from './components';\r\nimport { OptionHTMLAttributes } from 'react';\r\nimport UserDataService from './axios/services/user.service';\r\nimport IUserData from './axios/type/comment-data';\r\n\r\nexport interface IBusinessSignUpExtendedProps extends IHerbalBusinessSignUpProps {\r\n formItems?: IFormItem[];\r\n}\r\n\r\nexport interface IBusinessSignUpItem {\r\n wrapper: INodeProps;\r\n isAddressInput?: boolean;\r\n id: string;\r\n label: React.ReactNode;\r\n errorMessage: React.ReactNode;\r\n input?: React.ReactNode;\r\n}\r\n\r\nexport interface IBusinessState {\r\n isReady: boolean;\r\n formItems: IFormItem[];\r\n addressHasErrors: boolean;\r\n showAddressErrors: boolean;\r\n hasSubmitErrors: boolean;\r\n isAccountExist: boolean;\r\n}\r\n\r\nexport interface IBusinessSignUpLocalAccount {\r\n FormWrapper: INodeProps;\r\n items: IBusinessSignUpItem[];\r\n buttons: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n accountExistMessage: React.ReactNode[];\r\n formDescription: React.ReactNode;\r\n disclaimer: React.ReactNode;\r\n}\r\n\r\nexport interface IBusinessSignUpViewProps {\r\n className: string;\r\n businessSignUp: IModuleProps;\r\n ContainerWrapper: INodeProps;\r\n heading: React.ReactNode;\r\n businessSignUpForm: IBusinessSignUpLocalAccount;\r\n formItems: IFormItem[];\r\n}\r\n\r\nexport interface IFormItem {\r\n id: string;\r\n type: InputType;\r\n hasError?: boolean;\r\n errorMessage?: string;\r\n placeHolder?: string;\r\n multiple?: boolean;\r\n label: string;\r\n value: string;\r\n optionList?: OptionHTMLAttributes[];\r\n maxChars?: string;\r\n isRequired: boolean;\r\n pattern?: string;\r\n address?: Address;\r\n customClass?: string;\r\n helpText?: string;\r\n fieldInputReference?: React.RefObject;\r\n fieldSelectReference?: React.RefObject;\r\n}\r\n\r\nexport enum InputType {\r\n // eslint-disable-next-line @typescript-eslint/no-shadow -- Text enum doesn't override the imported Text\r\n File = 'file',\r\n Select = 'select',\r\n Text = 'text',\r\n Address = 'address',\r\n Email = 'email',\r\n TextArea = 'textarea'\r\n}\r\n\r\nexport enum InputID {\r\n Type = 'Type',\r\n BusinessName = 'BusinessName',\r\n FirstName = 'FirstName',\r\n LastName = 'LastName',\r\n Email = 'CompanyEmail',\r\n AssociationInstitution = 'Association/Institution',\r\n MembershipStudentNo = 'Membership/Student No',\r\n ModalityOccupation = 'Modality/Occupation',\r\n CompanyName = 'CompanyName',\r\n Address = 'CompanyAddress',\r\n JobTitle = 'JobTitle',\r\n Size = 'CompanySize',\r\n Department = 'Department',\r\n FieldAttachment = 'FieldAttachment'\r\n}\r\n\r\nexport const renderInputSection = (\r\n inputs: IFormItem[],\r\n className: string,\r\n needToReset: boolean,\r\n onInputChange: (event: React.ChangeEvent) => void,\r\n onInputBlur: (event: React.ChangeEvent) => void,\r\n showErrors: boolean,\r\n visibleFileAttachField: boolean | undefined,\r\n resources: IHerbalBusinessSignUpResources,\r\n addressForm?: React.ReactNode,\r\n updateAddress?: (errors: boolean, currAddress?: Address) => void,\r\n onSelectChange?: (event: React.ChangeEvent) => void,\r\n onFileChange?: (event: React.ChangeEvent) => void\r\n): IBusinessSignUpItem[] => {\r\n const inputsUpdate: IFormItem[] = inputs;\r\n const inputsUpdateCheckExist: IFormItem[] = inputsUpdate.filter((element, index) => element.id === InputID.FieldAttachment);\r\n\r\n if (!inputsUpdateCheckExist.length && visibleFileAttachField) {\r\n inputsUpdate.push({\r\n id: InputID.FieldAttachment,\r\n type: InputType.File,\r\n placeHolder: '',\r\n label: resources.FieldAttachment,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-100',\r\n multiple: true,\r\n helpText: resources.FieldAttachmentHelpText\r\n });\r\n }\r\n return inputsUpdate.map((element, index) => {\r\n const {\r\n id,\r\n type,\r\n placeHolder,\r\n hasError,\r\n errorMessage,\r\n label,\r\n maxChars,\r\n isRequired,\r\n pattern,\r\n customClass,\r\n value,\r\n optionList,\r\n fieldInputReference,\r\n fieldSelectReference,\r\n multiple,\r\n helpText\r\n } = element;\r\n\r\n const baseSignUpItem: IBusinessSignUpItem = {\r\n wrapper: {\r\n className: classnames(className, `${className}-${id}`, customClass)\r\n },\r\n id,\r\n label: ,\r\n errorMessage: hasError && \r\n };\r\n\r\n if (type === InputType.Address) {\r\n if (addressForm) {\r\n baseSignUpItem.isAddressInput = true;\r\n baseSignUpItem.input = (\r\n <>\r\n {React.cloneElement(addressForm as React.ReactElement, {\r\n updateForm: updateAddress,\r\n hasError: showErrors,\r\n isRequired: isRequired === undefined ? false : isRequired,\r\n resetAddress: needToReset\r\n })}\r\n \r\n );\r\n } else {\r\n // If the address slot is not filled, remove this input from the form\r\n inputs.splice(index, 1);\r\n }\r\n } else {\r\n if (type === 'select') {\r\n baseSignUpItem.input = (\r\n \r\n );\r\n } else if (type === 'file') {\r\n baseSignUpItem.input = (\r\n \r\n );\r\n } else {\r\n baseSignUpItem.input = (\r\n \r\n );\r\n }\r\n }\r\n\r\n return baseSignUpItem;\r\n });\r\n};\r\n\r\n/**\r\n *\r\n * Business Request Form Modules\r\n * Form that a business can use to submit a request to become a partner with Microsoft.\r\n * @extends {React.Component>}\r\n */\r\nclass BusinessSignUp extends React.Component {\r\n // Used as default data\r\n public BusinessSignUpDefaultInputs: IFormItem[] = [\r\n {\r\n id: InputID.Type,\r\n type: InputType.Select,\r\n label: this.props.resources.type,\r\n value: 'Herbalist | Naturopath',\r\n isRequired: true,\r\n customClass: 'width-100',\r\n optionList: [\r\n {\r\n disabled: false,\r\n label: 'Herbalist | Naturopath',\r\n selected: true,\r\n value: 'Herbalist | Naturopath'\r\n },\r\n {\r\n disabled: false,\r\n label: 'Homoeopath',\r\n selected: false,\r\n value: 'Homoeopath'\r\n },\r\n {\r\n disabled: false,\r\n label: 'TCM | Acupuncturist',\r\n selected: false,\r\n value: 'TCM | Acupuncturist'\r\n },\r\n {\r\n disabled: false,\r\n label: 'Medical Doctor | Specialist',\r\n selected: false,\r\n value: 'Medical Doctor | Specialist'\r\n },\r\n {\r\n disabled: false,\r\n label: 'Dentist',\r\n selected: false,\r\n value: 'Dentist'\r\n },\r\n {\r\n disabled: false,\r\n label: 'Chiropractor | Osteopath',\r\n selected: false,\r\n value: 'Chiropractor | Osteopath'\r\n },\r\n {\r\n disabled: false,\r\n label: 'Student Naturopath | Herbalist',\r\n selected: false,\r\n value: 'Student Naturopath | Herbalist'\r\n },\r\n {\r\n disabled: false,\r\n label: 'Wholesaler',\r\n selected: false,\r\n value: 'Wholesaler'\r\n },\r\n {\r\n disabled: false,\r\n label: 'Contract Customer | Manufacturer',\r\n selected: false,\r\n value: 'Contract Customer | Manufacturer'\r\n },\r\n {\r\n disabled: false,\r\n label: 'Other',\r\n selected: false,\r\n value: 'Other'\r\n }\r\n ]\r\n },\r\n {\r\n id: InputID.BusinessName,\r\n type: InputType.Text,\r\n placeHolder: '',\r\n label: this.props.resources.BusinessNameLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-100'\r\n },\r\n {\r\n id: InputID.FirstName,\r\n type: InputType.Text,\r\n placeHolder: '',\r\n label: this.props.resources.firstNameLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.LastName,\r\n type: InputType.Text,\r\n placeHolder: '',\r\n label: this.props.resources.lastNameLabel,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.Email,\r\n type: InputType.Email,\r\n placeHolder: 'herbalextractcompany@gmail.com',\r\n label: this.props.resources.emailAddressLabel,\r\n value: '',\r\n isRequired: true,\r\n pattern: EmailRegex.defaultRegex.source,\r\n customClass: 'width-100'\r\n },\r\n {\r\n id: InputID.AssociationInstitution,\r\n type: InputType.Text,\r\n placeHolder: '',\r\n label: this.props.resources.associationInstitution,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.MembershipStudentNo,\r\n type: InputType.Text,\r\n placeHolder: '',\r\n label: this.props.resources.membershipStudentNo,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-50'\r\n },\r\n {\r\n id: InputID.ModalityOccupation,\r\n type: InputType.Text,\r\n placeHolder: '',\r\n label: this.props.resources.modalityOccupation,\r\n value: '',\r\n isRequired: true,\r\n customClass: 'width-100'\r\n },\r\n {\r\n id: InputID.Address,\r\n type: InputType.Address,\r\n placeHolder: '',\r\n label: this.props.resources.companyAddressLabel,\r\n value: '',\r\n isRequired: false,\r\n customClass: 'width-100'\r\n }\r\n ];\r\n\r\n private readonly formChildInputReference: React.RefObject = React.createRef();\r\n\r\n private readonly moduleClassName: string = 'ms-business-sign-up';\r\n\r\n private needsToReset: boolean = false;\r\n\r\n private readonly telemetryContent: ITelemetryContent;\r\n\r\n constructor(props: IBusinessSignUpExtendedProps) {\r\n super(props);\r\n\r\n this.state = {\r\n isReady: false,\r\n formItems: this.props.formItems || this._addedReference(),\r\n addressHasErrors: false,\r\n showAddressErrors: false,\r\n hasSubmitErrors: false,\r\n isAccountExist: false\r\n };\r\n this.telemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.formChildInputReference.current?.focus();\r\n }\r\n\r\n public shouldComponentUpdate(nextProps: IBusinessSignUpExtendedProps, nextState: IBusinessState): boolean {\r\n if (this.state === nextState && this.props.data === nextProps.data) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { config } = this.props;\r\n const { formItems } = this.state;\r\n const { className, heading } = config;\r\n\r\n const viewProps = {\r\n ...this.props,\r\n businessSignUp: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, className)\r\n },\r\n ContainerWrapper: {\r\n className: `${this.moduleClassName}__container`\r\n },\r\n heading: (\r\n \r\n ),\r\n businessSignUpForm: this._renderForm(),\r\n formItems\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handle the heading change event.\r\n * @param event - Content Editable Event.\r\n */\r\n public handleHeadingChange = (event: ContentEditableEvent): void => {\r\n this.props.config.heading.text = event.target.value;\r\n };\r\n\r\n private _renderForm(): IBusinessSignUpLocalAccount {\r\n const { config, resources, slots } = this.props;\r\n const { showAddressErrors, hasSubmitErrors, isReady, formItems, isAccountExist } = this.state;\r\n const {\r\n signUpButtonArialabel,\r\n signUpButtonText,\r\n cancelButtonArialabel,\r\n cancelButtonText,\r\n errorMessage,\r\n partialAddressErrorMessage,\r\n accountExistMessage\r\n } = resources;\r\n const addressForm = (slots && slots.addressSlot && slots.addressSlot.length > 0 && slots.addressSlot[0]) || undefined;\r\n const companyEmail = this._getItem(InputID.Email);\r\n\r\n const form = {\r\n FormWrapper: {\r\n className: `${this.moduleClassName}__form `\r\n },\r\n items: renderInputSection(\r\n formItems,\r\n `${this.moduleClassName}__form-item`,\r\n this.needsToReset,\r\n this._onInputChange,\r\n this._onInputBlur,\r\n showAddressErrors,\r\n config.visibleFileAttachField,\r\n resources,\r\n addressForm,\r\n this._onAddressChange,\r\n this._onSelectChange,\r\n this._onFileChange\r\n ),\r\n buttons: [\r\n ,\r\n \r\n ],\r\n errorMessage: [\r\n hasSubmitErrors && ,\r\n showAddressErrors && (\r\n \r\n )\r\n ],\r\n accountExistMessage: [\r\n isAccountExist && (\r\n \r\n )\r\n ],\r\n formDescription: config.formDescription && (\r\n \r\n ),\r\n disclaimer: config.disclaimer && (\r\n \r\n )\r\n };\r\n\r\n if (this.needsToReset) {\r\n this.needsToReset = false;\r\n }\r\n\r\n return form;\r\n }\r\n\r\n private readonly _onInputChange = (event: React.ChangeEvent): void => {\r\n const newForm = this.state.formItems;\r\n newForm.forEach(item => {\r\n if (item.id === event.target.id) {\r\n item.value = event.target.value;\r\n }\r\n });\r\n\r\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private readonly _onFileChange = (event: React.ChangeEvent): void => {\r\n const newForm = this.state.formItems;\r\n newForm.forEach(item => {\r\n if (item.type === 'file') {\r\n const fileJson = this._getBase64(event.target.files);\r\n item.value = fileJson;\r\n item.value === '' ? (item.hasError = true) : (item.hasError = false);\r\n } else if (item.id === event.target.id) {\r\n item.value = event.target.value;\r\n }\r\n });\r\n\r\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private _getBase64(files: FileList | null): any {\r\n if (files === null) {\r\n return null;\r\n }\r\n const allFiles: any[] = [];\r\n for (let i = 0; i < files.length; i++) {\r\n const file = files[i];\r\n const reader = new FileReader();\r\n reader.readAsDataURL(file);\r\n reader.onload = () => {\r\n if (typeof reader.result !== 'string') {\r\n return;\r\n }\r\n const fileInfo = {\r\n name: file.name,\r\n base64: reader.result.split(',').pop()\r\n };\r\n allFiles.push(fileInfo);\r\n };\r\n }\r\n return allFiles;\r\n }\r\n\r\n private readonly _onInputBlur = (event: React.ChangeEvent): void => {\r\n const newForm = this.state.formItems;\r\n newForm.forEach(item => {\r\n if (item.id === event.target.id) {\r\n // Check required.\r\n if (!event.target.required) {\r\n // Do nothing here.\r\n } else if (!event.target.value) {\r\n item.hasError = true;\r\n item.errorMessage = 'This field is required.';\r\n } else {\r\n item.hasError = false;\r\n if (event.target.type === 'email') {\r\n if (item.pattern !== undefined && item.value.match(item.pattern) === null) {\r\n item.hasError = true;\r\n item.errorMessage = 'Your email is invalid format.';\r\n } else {\r\n item.hasError = false;\r\n }\r\n }\r\n }\r\n }\r\n });\r\n\r\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private readonly _onSelectChange = (event: React.ChangeEvent): void => {\r\n const newForm = this.state.formItems;\r\n\r\n newForm.forEach(item => {\r\n if (item.type === 'select') {\r\n item.optionList &&\r\n item.optionList.forEach(sub_item => {\r\n sub_item.selected = false;\r\n if (sub_item.label === event.target.value) {\r\n sub_item.selected = true;\r\n }\r\n if (event.target.value === 'Select type') {\r\n item.hasError = true;\r\n item.errorMessage = 'This field is required.';\r\n } else {\r\n item.hasError = false;\r\n item.value = event.target.value;\r\n }\r\n });\r\n } else if (item.id === event.target.id) {\r\n item.value = event.target.value;\r\n }\r\n });\r\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private _addedReference(): IFormItem[] {\r\n const newFormFields = this.BusinessSignUpDefaultInputs;\r\n newFormFields[0].fieldInputReference = this.formChildInputReference;\r\n return newFormFields;\r\n }\r\n\r\n private readonly _onAddressChange = (errors: boolean, currentAddress?: Address): void => {\r\n // Find address item\r\n const newForm = this.state.formItems;\r\n const addressItem = newForm.find(item => {\r\n return item.type === InputType.Address;\r\n });\r\n\r\n // If found --> set to currentAddress\r\n if (addressItem) {\r\n addressItem.address = currentAddress;\r\n\r\n // Update state with new values and set errors to false if address is not required field\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n addressHasErrors: errors,\r\n showAddressErrors: false\r\n });\r\n }\r\n };\r\n\r\n private readonly _isFormReady = (): boolean => {\r\n const { formItems } = this.state;\r\n\r\n for (const currentInput of formItems) {\r\n // Will return FALSE if:\r\n // - input field is required\r\n // IF is address AND addressHasErrors === true\r\n // ELSE value is undefined OR empty\r\n // OR\r\n // - pattern provided and value does not match pattern\r\n if (currentInput.isRequired) {\r\n if (currentInput.type === InputType.Address) {\r\n if (this.state.addressHasErrors) {\r\n return false;\r\n }\r\n } else if (currentInput.value === undefined || currentInput.value === '') {\r\n if (currentInput.type !== 'select') {\r\n return false;\r\n }\r\n }\r\n }\r\n if (currentInput.pattern !== undefined && currentInput.value.match(currentInput.pattern) === null) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n };\r\n\r\n private readonly _onSubmit = (event: React.MouseEvent) => {\r\n const newForm = this.state.formItems;\r\n // Check if form is ready, update state object with latest values, values have changed so reset hasSubmitErrros\r\n this.setState({\r\n isReady: this._isFormReady(),\r\n formItems: newForm,\r\n hasSubmitErrors: false\r\n });\r\n if (this.state.addressHasErrors) {\r\n this.setState({\r\n showAddressErrors: true\r\n });\r\n\r\n event.preventDefault();\r\n return;\r\n }\r\n\r\n const { context } = this.props;\r\n\r\n // Check for matching id and if not empty\r\n const type = this._getItem(InputID.Type);\r\n const associationInstitution = this._getItem(InputID.AssociationInstitution);\r\n const membershipStudentNo = this._getItem(InputID.MembershipStudentNo);\r\n const modalityOccupation = this._getItem(InputID.ModalityOccupation);\r\n const firstName = this._getItem(InputID.FirstName);\r\n const lastName = this._getItem(InputID.LastName);\r\n const businessName = this._getItem(InputID.BusinessName);\r\n const companyName = businessName ? businessName?.value : `Org ${firstName?.value} ${lastName?.value}`;\r\n const companyEmail = this._getItem(InputID.Email);\r\n const companyAddress = this._getItem(InputID.Address, true);\r\n const jobTitle = this._getItem(InputID.JobTitle);\r\n const department = this._getItem(InputID.Department);\r\n const companySize = this._getItem(InputID.Size);\r\n const files = this._getItem(InputID.FieldAttachment);\r\n const jsonFileData = JSON.stringify(files?.value);\r\n const comments = `FileAttachment: ${jsonFileData}\\nType: ${type?.value &&\r\n this._stringConvertTitleCase(type?.value)}\\nAssociation/Institution: ${associationInstitution?.value &&\r\n this._stringConvertTitleCase(associationInstitution?.value)}}\\nMembership/StudentNo: ${membershipStudentNo?.value &&\r\n this._stringConvertTitleCase(membershipStudentNo?.value)}\\nModality/Occupation: ${modalityOccupation?.value &&\r\n this._stringConvertTitleCase(modalityOccupation?.value)}`;\r\n\r\n // API gets email as part of the address object, but I do not use the email input from the address component, thus we need to copy it over\r\n if (companyEmail && companyEmail.value && companyAddress && companyAddress.address) {\r\n companyAddress.address.Email = companyEmail.value;\r\n }\r\n\r\n const newPartner: BusinessPartnerProspect = {\r\n FirstName: firstName && this._stringConvertTitleCase(firstName.value),\r\n LastName: lastName && this._stringConvertTitleCase(lastName.value),\r\n CompanyName: this._stringConvertTitleCase(companyName),\r\n Address: companyAddress && companyAddress.address && companyAddress.address,\r\n JobTitle: jobTitle && jobTitle.value,\r\n Department: department && department.value,\r\n CompanySize: (companySize && Number.parseInt(companySize.value, 10)) || 0,\r\n Comments: comments\r\n };\r\n\r\n const ctx = context.actionContext;\r\n const userAPIEndpoint = ctx.requestContext.app.config.userAPIEndpoint && ctx.requestContext.app.config.userAPIEndpoint;\r\n const prospectAPIEndpoint = ctx.requestContext.app.config.prospectAPIEndpoint && ctx.requestContext.app.config.prospectAPIEndpoint;\r\n // const userAPIEndpoint =\r\n // 'https://prod-04.australiasoutheast.logic.azure.com:443/workflows/714a5264995b45d08956785121d44d87/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=q1OKGpjUtaY5TIeYmPPp8oqFK-U7mFpnKu9vi0r0fLc';\r\n // const userAPIEndpoint =\r\n // 'https://prod-20.australiasoutheast.logic.azure.com:443/workflows/463318d730be40199539b2f461b2e722/triggers/manual/paths/invoke?api-version=2016-06-01&sp=%2Ftriggers%2Fmanual%2Frun&sv=1.0&sig=-KrkgPO4MgLm0789n7Y9vMPdFws8SI5hMeTSJy8_ado';\r\n const newUserEmail: IUserData = {\r\n EmailAddress: companyAddress && companyAddress.address ? companyAddress.address.Email : ''\r\n };\r\n\r\n // Check existing user if setting.\r\n const successPageURL =\r\n (this.props.config.confirmationLink &&\r\n this.props.config.confirmationLink.linkUrl &&\r\n this.props.config.confirmationLink.linkUrl.destinationUrl) ||\r\n getUrlSync('home', this.props.context.actionContext);\r\n\r\n if (userAPIEndpoint) {\r\n event.preventDefault();\r\n UserDataService.checkExist(userAPIEndpoint, newUserEmail)\r\n .then((response: any) => {\r\n if (response.data.Id && response.data.Id !== '') {\r\n // Show Error message and stop process.\r\n this.setState({\r\n isAccountExist: true,\r\n isReady: false\r\n });\r\n } else {\r\n this.setState({\r\n isAccountExist: false,\r\n isReady: false\r\n });\r\n this._createProspectAsync(prospectAPIEndpoint, newPartner, successPageURL, context.actionContext);\r\n }\r\n })\r\n .catch((e: Error) => {\r\n this.setState({\r\n hasSubmitErrors: true,\r\n isReady: false\r\n });\r\n });\r\n } else {\r\n this._createProspectAsync(prospectAPIEndpoint, newPartner, successPageURL, context.actionContext);\r\n }\r\n };\r\n\r\n private readonly _onCancel = () => {\r\n // Reset values of the form\r\n const cleanForm = this.state.formItems;\r\n cleanForm.forEach(input => {\r\n input.value = '';\r\n });\r\n\r\n // Set reset flag so address input will get reset on next renderInputSection() call\r\n this.needsToReset = true;\r\n\r\n this.setState({\r\n isReady: false,\r\n formItems: cleanForm,\r\n addressHasErrors: true,\r\n showAddressErrors: false,\r\n hasSubmitErrors: false\r\n });\r\n };\r\n\r\n private readonly _getItem = (id: string, isAddress: boolean = false) => {\r\n if (isAddress) {\r\n return this.state.formItems.find(item => {\r\n return item.id === id && item.address;\r\n });\r\n }\r\n return this.state.formItems.find(item => {\r\n return item.id === id && item.value !== '';\r\n });\r\n };\r\n\r\n private readonly _stringConvertTitleCase = (originText: string): string => {\r\n return originText\r\n .split(' ')\r\n .map(function(word) {\r\n return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();\r\n })\r\n .join(' ');\r\n };\r\n\r\n private readonly _createProspectAsync = (\r\n _prospectAPIEndpoint: string | undefined,\r\n _newPartner: BusinessPartnerProspect,\r\n _successPageURL: string | undefined,\r\n actionContext: IActionContext\r\n ) => {\r\n if (_prospectAPIEndpoint) {\r\n UserDataService.saveRegistrationLog(_prospectAPIEndpoint, { content: _newPartner }).then(() => {\r\n // Do nothing, never mind.\r\n });\r\n }\r\n createProspectAsync({ callerContext: actionContext }, _newPartner)\r\n .then(() => {\r\n if (_successPageURL && !this.state.hasSubmitErrors) {\r\n window.location.href = _successPageURL;\r\n }\r\n })\r\n .catch(() => {\r\n this.setState({\r\n hasSubmitErrors: true,\r\n isReady: false\r\n });\r\n });\r\n };\r\n}\r\n\r\nexport default BusinessSignUp;\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IBusinessSignUpItem, IBusinessSignUpViewProps } from './herbal-business-sign-up';\r\n\r\nconst BusinessSignUpItem: React.FC = ({ wrapper, label, errorMessage, input, isAddressInput }) => {\r\n // Hide label and error message if rendering address section\r\n return (\r\n \r\n {!isAddressInput && label}\r\n {!isAddressInput && errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst BusinesSignUpView: React.FC = props => {\r\n const { businessSignUp, ContainerWrapper, heading, businessSignUpForm } = props;\r\n\r\n const { FormWrapper, buttons, items, errorMessage, disclaimer, formDescription, accountExistMessage } = businessSignUpForm;\r\n\r\n return (\r\n \r\n \r\n {heading}\r\n \r\n {formDescription}\r\n {items &&\r\n items.map((item: IBusinessSignUpItem) => {\r\n return ;\r\n })}\r\n {errorMessage &&\r\n errorMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n {accountExistMessage &&\r\n accountExistMessage.map((error: React.ReactNode, index: number) => {\r\n return {error};\r\n })}\r\n {buttons &&\r\n buttons.map((button: React.ReactNode, index: number) => {\r\n return {button};\r\n })}\r\n {disclaimer}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default BusinesSignUpView;\r\n","const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['herbal-business-sign-up'] = {\n c: () => require('partner/modules/herbal-business-sign-up/herbal-business-sign-up.tsx'),\n $type: 'containerModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'herbal-business-sign-up',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/herbal-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['__local__|__local__|modules|herbal-business-sign-up|herbal-business-sign-up'] = {\n c: () => require('partner/modules/herbal-business-sign-up/herbal-business-sign-up.view.tsx'),\n cn: '__local__-__local__-herbal-business-sign-up'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","'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","module.exports = React;","module.exports = ReactDOM;"],"names":["SignUpButton","_ref","id","className","text","ariaLabel","telemetryContent","disabled","link","onClick","payLoad","getPayloadObject","attributes","getTelemetryAttributes","React","Button","Object","assign","role","href","SignUpError","type","message","errorClassName","classnames","GetMaxLength","maxLength","parsedMaxLength","Number","parseInt","isNaN","SignUpInput","placeHolder","value","pattern","isRequired","onChange","onBlur","fieldReference","InputType","TextArea","name","placeholder","undefined","required","ref","SignUpSelect","optionList","map","item","i","key","selected","label","SignUpLabel","forId","htmlFor","SignUpFileUpload","multiple","helpText","axios","baseURL","headers","get","url","http","checkExist","data","post","saveRegistrationLog","InputID","renderInputSection","inputs","needToReset","onInputChange","onInputBlur","showErrors","visibleFileAttachField","resources","addressForm","updateAddress","onSelectChange","onFileChange","inputsUpdate","filter","element","index","FieldAttachment","length","push","File","customClass","FieldAttachmentHelpText","hasError","errorMessage","maxChars","fieldInputReference","fieldSelectReference","baseSignUpItem","wrapper","Address","isAddressInput","input","updateForm","resetAddress","splice","BusinessSignUp","constructor","props","_this","super","this","BusinessSignUpDefaultInputs","Type","Select","BusinessName","Text","BusinessNameLabel","FirstName","firstNameLabel","LastName","lastNameLabel","Email","emailAddressLabel","EmailRegex","defaultRegex","source","AssociationInstitution","associationInstitution","MembershipStudentNo","membershipStudentNo","ModalityOccupation","modalityOccupation","companyAddressLabel","formChildInputReference","moduleClassName","needsToReset","handleHeadingChange","event","config","heading","target","_onInputChange","newForm","state","formItems","forEach","setState","isReady","_isFormReady","hasSubmitErrors","_onFileChange","fileJson","_getBase64","files","_onInputBlur","match","_onSelectChange","sub_item","_onAddressChange","errors","currentAddress","addressItem","find","address","addressHasErrors","showAddressErrors","currentInput","_onSubmit","preventDefault","context","_getItem","firstName","lastName","businessName","companyName","companyEmail","companyAddress","jobTitle","JobTitle","department","Department","companySize","Size","comments","JSON","stringify","_stringConvertTitleCase","newPartner","CompanyName","CompanySize","Comments","ctx","actionContext","userAPIEndpoint","requestContext","app","prospectAPIEndpoint","newUserEmail","EmailAddress","successPageURL","confirmationLink","linkUrl","destinationUrl","getUrlSync","UserDataService","then","response","Id","isAccountExist","_createProspectAsync","catch","e","_onCancel","cleanForm","isAddress","arguments","originText","split","word","charAt","toUpperCase","slice","toLowerCase","join","_prospectAPIEndpoint","_newPartner","_successPageURL","content","createProspectAsync","callerContext","window","location","_addedReference","getTelemetryObject","request","telemetryPageName","friendlyName","telemetry","componentDidMount","_this$formChildInputR","current","focus","shouldComponentUpdate","nextProps","nextState","render","viewProps","_objectSpread","businessSignUp","moduleProps","ContainerWrapper","editProps","onEdit","businessSignUpForm","_renderForm","renderView","slots","signUpButtonArialabel","signUpButtonText","cancelButtonArialabel","cancelButtonText","partialAddressErrorMessage","accountExistMessage","addressSlot","form","FormWrapper","items","buttons","format","formDescription","RichTextComponent","disclaimer","allFiles","file","reader","FileReader","readAsDataURL","onload","result","fileInfo","base64","pop","newFormFields","BusinessSignUpItem","Node","Module","error","button","binding","modules","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","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","A","matchStr","module","exports","ReactDOM"],"sourceRoot":""}