{"version":3,"file":"static/js/43.e419923cedfe70bc5288.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/citta-bloc-form/citta-bloc-form.tsx?1fbb","webpack://Citta2.0/./src/modules/citta-emarsys-form/citta-emarsys-form.tsx?9af8","webpack://Citta2.0/./src/modules/citta-bloc-form/citta-bloc-form.view.tsx?117f","webpack://Citta2.0/./src/modules/citta-emarsys-form/citta-emarsys-form.view.tsx?edb9"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport { ICittaBlocFormData } from './citta-bloc-form.data';\r\nimport { ICittaBlocFormProps } from './citta-bloc-form.props.autogenerated';\r\n\r\ninterface ICittaBlocFormFormState {\r\n firstName: string;\r\n lastName: string;\r\n emailAddress: string;\r\n phoneNumber: string;\r\n storeName: string;\r\n eAValError: boolean;\r\n eAError: boolean;\r\n fNError: boolean;\r\n lNError: boolean;\r\n pNError: boolean;\r\n sNError: boolean;\r\n rCCError: boolean;\r\n reqError: boolean;\r\n responseReceived: boolean;\r\n responseError: boolean;\r\n responseSuccess: boolean;\r\n showResponseSuccess: boolean;\r\n reCaptchaChecked: boolean;\r\n\r\n firstNameErrorClass: string;\r\n lastNameErrorClass: string;\r\n emailErrorClass: string;\r\n storeNameErrorClass: string;\r\n phoneNameErrorClass: string;\r\n}\r\n\r\nexport interface ICittaBlocFormForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n firstAndLastNameInput: React.ReactNode;\r\n emailInput: React.ReactNode;\r\n phoneInput: React.ReactNode;\r\n storeInput: React.ReactNode;\r\n reCaptcha: React.ReactNode;\r\n subscribeButtton: React.ReactNode;\r\n subscribeThanks: React.ReactNode;\r\n}\r\n\r\n\r\nexport interface ICittaBlocFormViewProps extends ICittaBlocFormProps {\r\n SubscribeWrapper: IModuleProps;\r\n subscribeResponse: React.ReactNode;\r\n subscribeForm: ICittaBlocFormForm;\r\n responseSuccess: boolean;\r\n showResponseSuccess: boolean;\r\n formErrors: React.ReactNode;\r\n formErrorsNodeProps: INodeProps;\r\n successResponse: React.ReactNode;\r\n showSuccessResponse: boolean;\r\n successResponseNodeProps: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * CittaBlocForm component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaBlocForm extends React.PureComponent, ICittaBlocFormFormState> {\r\n private _FirstNameInputRef: React.RefObject;\r\n private _LastNameInputRef: React.RefObject;\r\n private _EmailAddressInputRef: React.RefObject;\r\n private _StoreInputRef: React.RefObject;\r\n private _recaptchaRef: React.RefObject;\r\n private _PhoneInputRef: React.RefObject;\r\n\r\n private firstNameValue: boolean = false;\r\n private lastNameValue: boolean = false;\r\n private emailAddressValue: boolean = false;\r\n private phoneNumberValue: boolean = false;\r\n private storeNameValue: boolean = false;\r\n private formInputValues: boolean = false;\r\n private responseMessage: string | undefined;\r\n private moduleClassName: string = 'newsletterSubWrap';\r\n private recaptchaErrorMessage: string | undefined;\r\n\r\n constructor(props: ICittaBlocFormProps) {\r\n super(props);\r\n this._FirstNameInputRef = React.createRef();\r\n this._LastNameInputRef = React.createRef();\r\n this._EmailAddressInputRef = React.createRef();\r\n this._StoreInputRef = React.createRef();\r\n this._PhoneInputRef = React.createRef();\r\n this._recaptchaRef = React.createRef();\r\n this._handleSubmit = this._handleSubmit.bind(this);\r\n\r\n this.state = {\r\n firstName: '',\r\n lastName: '',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n storeName: '',\r\n eAValError: false,\r\n fNError: false,\r\n lNError: false,\r\n pNError: false,\r\n sNError: false,\r\n eAError: false,\r\n rCCError: false,\r\n reqError: false,\r\n responseReceived: false,\r\n responseError: false,\r\n reCaptchaChecked: false,\r\n responseSuccess: false,\r\n showResponseSuccess: false,\r\n firstNameErrorClass: 'hide',\r\n lastNameErrorClass: 'hide',\r\n emailErrorClass: 'hide',\r\n storeNameErrorClass: 'hide',\r\n phoneNameErrorClass: 'hide'\r\n };\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps: ICittaBlocFormViewProps = {\r\n ...(this.props as ICittaBlocFormProps),\r\n SubscribeWrapper: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, this.props.config.className)\r\n },\r\n subscribeResponse: this._getSubmitResponse(),\r\n subscribeForm: this._renderForm(),\r\n responseSuccess: this.state.responseSuccess,\r\n showResponseSuccess: this.state.showResponseSuccess,\r\n formErrors: this._renderErrors(),\r\n formErrorsNodeProps: {\r\n className: 'competition-form-errors'\r\n },\r\n successResponse: this._renderSuccessResponse(),\r\n showSuccessResponse: this.state.responseSuccess,\r\n successResponseNodeProps: {\r\n className: 'competition-form-success'\r\n }\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _getSubmitResponse(): React.ReactNode {\r\n return (\r\n this.state.responseReceived && this.responseMessage !== '' || undefined\r\n ? (\r\n
\r\n

{this.responseMessage}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n \r\n private _renderSuccessResponse(): React.ReactNode {\r\n return (\r\n this.state.responseSuccess\r\n ? (\r\n
\r\n

{this.props.config.successTextResponse}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n\r\n private _renderForm(): ICittaBlocFormForm {\r\n return {\r\n FormWrapper: {\r\n className: 'competition-form',\r\n },\r\n FormContainer: {\r\n className: 'competition-form-div',\r\n },\r\n firstAndLastNameInput: this._renderFirstAndLastNameInput(),\r\n emailInput: this._renderEmailInput(),\r\n phoneInput: this._renderPhoneInput(),\r\n storeInput: this._renderStoreInput(),\r\n reCaptcha: this._renderReCaptcha(),\r\n subscribeButtton: this._renderSubmitButton(),\r\n subscribeThanks: this._renderSubmitThanks()\r\n };\r\n }\r\n\r\n private _renderFirstAndLastNameInput(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderPhoneInput(): React.ReactNode {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderStoreInput(): React.ReactNode {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n \r\n private _renderEmailInput(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('email-address-input') : ''}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderAlert(className: string): JSX.Element {\r\n return <>;\r\n }\r\n\r\n private _renderRecaptchaAlert(className: string): JSX.Element {\r\n\r\n if (this.props.config.reCaptchaOption) {\r\n if (!this.state.reCaptchaChecked) {\r\n this.recaptchaErrorMessage = this.props.resources.recaptchaErrorMessage;\r\n }\r\n }\r\n\r\n const rCCError = this.state.rCCError;\r\n return (\r\n <>\r\n {rCCError && (\r\n \r\n {\r\n this.recaptchaErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n private _renderReCaptcha(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n {this.state.rCCError ? this._renderRecaptchaAlert('recaptcha-error') : ''}\r\n this._submit()}\r\n />\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderSubmitButton(): React.ReactNode {\r\n return (\r\n
\r\n {this.props.config.submitButtonLabel}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderSubmitThanks(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n Thanks!\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _showErrors = (): void => {\r\n this.setState({\r\n emailErrorClass: this._checkEmailError() ? 'show' : 'hide',\r\n firstNameErrorClass: (this._FirstNameInputRef.current && this._FirstNameInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n lastNameErrorClass: (this._LastNameInputRef.current && this._LastNameInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n storeNameErrorClass: (this._StoreInputRef.current && this._StoreInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n phoneNameErrorClass: (this._PhoneInputRef.current && this._PhoneInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n\r\n });\r\n }\r\n\r\n private _checkEmailError = (): boolean => {\r\n const email: string = this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value || '';\r\n if (email.length === 0) {\r\n return true;\r\n } else {\r\n return !this._isEmailValid(email);\r\n }\r\n }\r\n\r\n private _renderErrors = (): JSX.Element => {\r\n const {resources} = this.props;\r\n return (\r\n <>\r\n
\r\n {resources.firstNameError}\r\n
\r\n
\r\n {resources.lastNameError}\r\n
\r\n
\r\n {resources.emailError}\r\n
\r\n
\r\n {resources.phoneNumberError}\r\n
\r\n
\r\n {resources.storeNameError}\r\n
\r\n \r\n \r\n );\r\n }\r\n\r\n private _handleChange = (name: string) => (e: React.ChangeEvent | React.ChangeEvent | React.ChangeEvent ) => {\r\n const value = e.target.value;\r\n switch (name) {\r\n case 'firstName': {\r\n this.setState({ firstName: value, fNError: false, reqError: false, eAValError: false});\r\n break;\r\n }\r\n case 'lastName': {\r\n this.setState({ lastName: value, lNError: false, reqError: false, eAValError: false });\r\n break;\r\n }\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, eAError: false, reqError: false, eAValError: false });\r\n break;\r\n }\r\n case 'phoneNumber': {\r\n this.setState({ phoneNumber: value, pNError: false, reqError: false, eAValError: false });\r\n break;\r\n }\r\n case 'storeName': {\r\n this.setState({ storeName: value, sNError: false, reqError: false, eAValError: false });\r\n break;\r\n }\r\n default: {\r\n console.log('No input box changes');\r\n this.setState({ reqError: false, eAValError: false });\r\n }\r\n }\r\n }\r\n\r\n private _isEmailValid = (email: string): boolean => {\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return regex.test(email);\r\n };\r\n\r\n private _handleSubmit(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent) {\r\n this._recaptchaRef.current?.execute()\r\n }\r\n\r\n private async _submit(): Promise {\r\n this._showErrors();\r\n \r\n this.firstNameValue = (this._FirstNameInputRef && this._FirstNameInputRef.current && this._FirstNameInputRef.current.value) ? true : false;\r\n this.lastNameValue = (this._LastNameInputRef && this._LastNameInputRef.current && this._LastNameInputRef.current.value) ? true : false;\r\n this.emailAddressValue = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? true : false; \r\n this.phoneNumberValue = (this._PhoneInputRef && this._PhoneInputRef.current && this._PhoneInputRef.current.value) ? true : false;\r\n this.storeNameValue = (this._StoreInputRef && this._StoreInputRef.current && this._StoreInputRef.current.value) ? true : false;\r\n\r\n const fN = (this._FirstNameInputRef && this._FirstNameInputRef.current && this._FirstNameInputRef.current.value) ? this._FirstNameInputRef.current.value : '';\r\n const lN = (this._LastNameInputRef && this._LastNameInputRef.current && this._LastNameInputRef.current.value) ? this._LastNameInputRef.current.value : '';\r\n const eA = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? this._EmailAddressInputRef.current.value : '';\r\n const eAVal = this._EmailAddressInputRef.current!.value;\r\n const pN = (this._PhoneInputRef && this._PhoneInputRef.current && this._PhoneInputRef.current.value) ? this._PhoneInputRef.current.value : '';\r\n const sN = (this._StoreInputRef && this._StoreInputRef.current && this._StoreInputRef.current.value) ? this._StoreInputRef.current.value : '';\r\n\r\n const recaptchaValue = this._recaptchaRef.current?.getValue();\r\n\r\n if (!this.firstNameValue) {\r\n this.setState({\r\n fNError: true,\r\n reqError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!this.lastNameValue) {\r\n this.setState({\r\n lNError: true,\r\n reqError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!this.phoneNumberValue) {\r\n this.setState({\r\n pNError: true,\r\n reqError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!this.storeNameValue) {\r\n this.setState({\r\n sNError: true,\r\n reqError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!this.emailAddressValue) {\r\n this.setState({\r\n eAError: true,\r\n reqError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!this._isEmailValid(eAVal)) {\r\n this.setState({\r\n eAValError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!recaptchaValue) {\r\n this.setState({\r\n rCCError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else {\r\n this.formInputValues = (this.emailAddressValue) ? true : false;\r\n if (this.formInputValues && !this.state.eAValError) {\r\n try {\r\n await this._postEntry(fN, lN, eA, pN, sN);\r\n\r\n this._clearValues();\r\n this._recaptchaRef.current?.reset();\r\n \r\n } catch (e) {\r\n console.log(e, 'Please fill in the form!');\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async _postEntry(\r\n firstName: string, \r\n lastName: string, \r\n email: string,\r\n phoneNumber: string,\r\n storeName: string\r\n ): Promise {\r\n let emarsysGroupId = this.props.config.emarsysGroupId, \r\n emarsysStoreNameGroupId = this.props.config.emarsysStoreNameGroupId;\r\n\r\n const response = await MsDyn365.commerceApiRequest(\r\n this.props.context.request,\r\n 'PostEmarsysBlocContactEvent',\r\n 'post',\r\n {\r\n firstName: firstName,\r\n lastName: lastName,\r\n emailAddress: email,\r\n phoneNumber: phoneNumber,\r\n country: 'NZ',\r\n emarsysGroupId: emarsysGroupId,\r\n storeName: storeName,\r\n storeNameField: emarsysStoreNameGroupId,\r\n }\r\n ) as any;\r\n \r\n this.responseMessage = response?.data.Message;\r\n\r\n if (response?.data.Result !== 'Error') {\r\n this.setState({\r\n responseReceived: true,\r\n responseError: response?.data.Result === 'Error',\r\n responseSuccess: response?.data.Result !== 'Error',\r\n showResponseSuccess: true,\r\n emailAddress: '',\r\n firstName: '',\r\n lastName: '',\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n\r\n setTimeout(() => { \r\n window.location.reload();\r\n }, 6000);\r\n\r\n } else {\r\n this.setState({\r\n responseReceived: true,\r\n responseError: response?.data.Result === 'Error',\r\n responseSuccess: response?.data.Result !== 'Error',\r\n emailAddress: '',\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n }\r\n }\r\n\r\n private _clearValues(): void {\r\n if (this._EmailAddressInputRef.current) {\r\n this._EmailAddressInputRef.current!.value = '';\r\n }\r\n if (this._FirstNameInputRef.current) {\r\n this._FirstNameInputRef.current!.value = '';\r\n }\r\n if (this._LastNameInputRef.current) {\r\n this._LastNameInputRef.current!.value = '';\r\n }\r\n if (this._PhoneInputRef.current) {\r\n this._PhoneInputRef.current!.value = '';\r\n }\r\n if (this._StoreInputRef.current) {\r\n this._StoreInputRef.current!.value = '';\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default CittaBlocForm;\r\n\r\n\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport { ICittaEmarsysFormData } from './citta-emarsys-form.data';\r\nimport { ICittaEmarsysFormProps } from './citta-emarsys-form.props.autogenerated';\r\n\r\ninterface ICittaEmarsysFormFormState {\r\n firstName: string;\r\n lastName: string;\r\n emailAddress: string;\r\n buisnessName: string;\r\n industryPosition: string;\r\n privacyPolicyChecked: boolean;\r\n eAValError: boolean;\r\n eAError: boolean;\r\n fNError: boolean;\r\n lNError: boolean;\r\n privacyError: boolean;\r\n rCCError: boolean;\r\n reqError: boolean;\r\n responseReceived: boolean;\r\n responseError: boolean;\r\n responseSuccess: boolean;\r\n showResponseSuccess: boolean;\r\n reCaptchaChecked: boolean;\r\n charactersLeft?: number;\r\n firstNameErrorClass: string;\r\n lastNameErrorClass: string;\r\n emailErrorClass: string;\r\n privacyErrorClass: string;\r\n}\r\n\r\nexport interface ICittaEmarsysFormForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n firstAndLastNameInput: React.ReactNode;\r\n emailInput: React.ReactNode;\r\n buisnessInput: React.ReactNode;\r\n industryInput: React.ReactNode;\r\n checkboxPrivacyPolicy: React.ReactNode;\r\n reCaptcha: React.ReactNode;\r\n subscribeButtton: React.ReactNode;\r\n subscribeThanks: React.ReactNode;\r\n}\r\n\r\n\r\nexport interface ICittaEmarsysFormViewProps extends ICittaEmarsysFormProps {\r\n SubscribeWrapper: IModuleProps;\r\n subscribeResponse: React.ReactNode;\r\n subscribeForm: ICittaEmarsysFormForm;\r\n responseSuccess: boolean;\r\n showResponseSuccess: boolean;\r\n formErrors: React.ReactNode;\r\n formErrorsNodeProps: INodeProps;\r\n successResponse: React.ReactNode;\r\n showSuccessResponse: boolean;\r\n successResponseNodeProps: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * CittaEmarsysForm component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaEmarsysForm extends React.PureComponent, ICittaEmarsysFormFormState> {\r\n private _FirstNameInputRef: React.RefObject;\r\n private _LastNameInputRef: React.RefObject;\r\n private _EmailAddressInputRef: React.RefObject;\r\n private _IndustryPositionInputRef: React.RefObject\r\n private _BuisnessNameInputRef: React.RefObject\r\n private _PrivacyPolicyRef: React.RefObject;\r\n private _recaptchaRef: React.RefObject;\r\n\r\n private firstNameValue: boolean = false;\r\n private lastNameValue: boolean = false;\r\n private emailAddressValue: boolean = false;\r\n private formInputValues: boolean = false;\r\n private responseMessage: string | undefined;\r\n private moduleClassName: string = 'newsletterSubWrap';\r\n private recaptchaErrorMessage: string | undefined;\r\n\r\n constructor(props: ICittaEmarsysFormProps) {\r\n super(props);\r\n this._FirstNameInputRef = React.createRef();\r\n this._LastNameInputRef = React.createRef();\r\n this._EmailAddressInputRef = React.createRef();\r\n this._BuisnessNameInputRef = React.createRef();\r\n this._IndustryPositionInputRef = React.createRef();\r\n this._PrivacyPolicyRef = React.createRef();\r\n this._recaptchaRef = React.createRef();\r\n this._handleSubmit = this._handleSubmit.bind(this);\r\n\r\n this.state = {\r\n firstName: '',\r\n lastName: '',\r\n emailAddress: '',\r\n buisnessName: '',\r\n industryPosition: '',\r\n privacyPolicyChecked: false,\r\n eAValError: false,\r\n fNError: false,\r\n lNError: false,\r\n eAError: false,\r\n privacyError: false,\r\n rCCError: false,\r\n reqError: false,\r\n responseReceived: false,\r\n responseError: false,\r\n reCaptchaChecked: false,\r\n responseSuccess: false,\r\n showResponseSuccess: false,\r\n charactersLeft: Number(this.props.resources.messageCharactersLimit) || 140,\r\n firstNameErrorClass: 'hide',\r\n lastNameErrorClass: 'hide',\r\n emailErrorClass: 'hide',\r\n privacyErrorClass: 'hide'\r\n };\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps: ICittaEmarsysFormViewProps = {\r\n ...(this.props as ICittaEmarsysFormProps),\r\n SubscribeWrapper: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, this.props.config.className)\r\n },\r\n subscribeResponse: this._getSubmitResponse(),\r\n subscribeForm: this._renderForm(),\r\n responseSuccess: this.state.responseSuccess,\r\n showResponseSuccess: this.state.showResponseSuccess,\r\n formErrors: this._renderErrors(),\r\n formErrorsNodeProps: {\r\n className: 'emarsys-form-errors'\r\n },\r\n successResponse: this._renderSuccessResponse(),\r\n showSuccessResponse: this.state.responseSuccess,\r\n successResponseNodeProps: {\r\n className: 'emarsys-form-success'\r\n }\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _getSubmitResponse(): React.ReactNode {\r\n return (\r\n this.state.responseReceived && this.responseMessage !== '' || undefined\r\n ? (\r\n
\r\n

{this.responseMessage}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n \r\n private _renderSuccessResponse(): React.ReactNode {\r\n return (\r\n this.state.responseSuccess\r\n ? (\r\n
\r\n

{this.props.config.successTextResponse}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n \r\n \r\n private onRecaptchaChange = (value: string | null) => {\r\n if (value) {\r\n this.setState({ reCaptchaChecked: true, rCCError: false });\r\n } else {\r\n this.setState({ reCaptchaChecked: false });\r\n }\r\n }\r\n\r\n private _renderForm(): ICittaEmarsysFormForm {\r\n return {\r\n FormWrapper: {\r\n className: 'emarsys-form',\r\n },\r\n FormContainer: {\r\n className: 'emarsys-form-div',\r\n },\r\n firstAndLastNameInput: this._renderFirstAndLastNameInput(),\r\n emailInput: this._renderEmailInput(),\r\n buisnessInput: this._renderBuisnessNameInput(),\r\n industryInput: this._renderIndustryPositionInput(),\r\n checkboxPrivacyPolicy: this._renderCheckboxPrivacyPolicy(),\r\n reCaptcha: this._renderReCaptcha(),\r\n subscribeButtton: this._renderSubmitButton(),\r\n subscribeThanks: this._renderSubmitThanks()\r\n };\r\n }\r\n\r\n private _renderFirstAndLastNameInput(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _renderEmailInput(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('email-address-input') : ''}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderBuisnessNameInput(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('buisness-name-input') : ''}\r\n \r\n
\r\n );\r\n }\r\n private _renderIndustryPositionInput(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('industry-position-input') : ''}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderAlert(className: string): JSX.Element {\r\n return <>;\r\n }\r\n\r\n private _renderCheckboxPrivacyPolicy(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.privacyError ? this._renderAlert('checkbox-privacy-policy') : ''}\r\n
\r\n \r\n \r\n

{this.props.config.privacyPolicyText}Privacy Policy

\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n\r\n private _renderReCaptcha(): React.ReactNode {\r\n return (\r\n
\r\n {\r\n this.props.config.reCaptchaOption ?
\r\n {this.state.rCCError ? this._renderRecaptchaAlert('recaptcha-error') : ''}\r\n \r\n
: null\r\n }\r\n
\r\n );\r\n }\r\n \r\n private _renderRecaptchaAlert(className: string): JSX.Element {\r\n\r\n if (this.props.config.reCaptchaOption) {\r\n if (!this.state.reCaptchaChecked) {\r\n this.recaptchaErrorMessage = this.props.resources.recaptchaErrorMessage;\r\n }\r\n }\r\n\r\n const rCCError = this.state.rCCError;\r\n return (\r\n <>\r\n {rCCError && (\r\n \r\n {\r\n this.recaptchaErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n private _renderSubmitButton(): React.ReactNode {\r\n return (\r\n
\r\n {this.props.config.submitButtonLabel}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderSubmitThanks(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n Thanks!\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _showErrors = (): void => {\r\n this.setState({\r\n emailErrorClass: this._checkEmailError() ? 'show' : 'hide',\r\n firstNameErrorClass: (this._FirstNameInputRef.current && this._FirstNameInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n lastNameErrorClass: (this._LastNameInputRef.current && this._LastNameInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n privacyErrorClass: (this._PrivacyPolicyRef.current && !this._PrivacyPolicyRef.current.checked) ? 'show' : 'hide'\r\n });\r\n }\r\n\r\n private _checkEmailError = (): boolean => {\r\n const email: string = this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value || '';\r\n if (email.length === 0) {\r\n return true;\r\n } else {\r\n return !this._isEmailValid(email);\r\n }\r\n }\r\n\r\n private _renderErrors = (): JSX.Element => {\r\n const {resources} = this.props;\r\n return (\r\n <>\r\n
\r\n {resources.firstNameError}\r\n
\r\n
\r\n {resources.lastNameError}\r\n
\r\n
\r\n {resources.emailError}\r\n
\r\n
\r\n {resources.privacyError}\r\n
\r\n \r\n \r\n );\r\n }\r\n\r\n private _handleChange = (name: string) => (e: React.ChangeEvent | React.ChangeEvent) => {\r\n const value = e.target.value;\r\n switch (name) {\r\n case 'firstName': {\r\n this.setState({ firstName: value, fNError: false, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n case 'lastName': {\r\n this.setState({ lastName: value, lNError: false, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, eAError: false, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n case 'buisnessName': {\r\n this.setState({ buisnessName: value, eAError: false, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n case 'industryPosition': {\r\n this.setState({ industryPosition: value, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n case 'privacyPolicy': {\r\n const isChecked = this._PrivacyPolicyRef.current && this._PrivacyPolicyRef.current.checked ? this._PrivacyPolicyRef.current.checked : false;\r\n const recaptchaWrapper = document.querySelector('.recaptcha');\r\n recaptchaWrapper && recaptchaWrapper.classList.toggle('newsletter-recapture-visable', !isChecked);\r\n this.setState({ privacyPolicyChecked: isChecked, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n default: {\r\n console.log('No input box changes');\r\n this.setState({ reqError: false, eAValError: false, privacyError: false });\r\n }\r\n }\r\n }\r\n\r\n private _isEmailValid = (email: string): boolean => {\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return regex.test(email);\r\n };\r\n\r\n private async _handleSubmit(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n this._showErrors();\r\n \r\n this.firstNameValue = (this._FirstNameInputRef && this._FirstNameInputRef.current && this._FirstNameInputRef.current.value) ? true : false;\r\n this.lastNameValue = (this._LastNameInputRef && this._LastNameInputRef.current && this._LastNameInputRef.current.value) ? true : false;\r\n this.emailAddressValue = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? true : false; \r\n\r\n const fN = (this._FirstNameInputRef && this._FirstNameInputRef.current && this._FirstNameInputRef.current.value) ? this._FirstNameInputRef.current.value : '';\r\n const lN = (this._LastNameInputRef && this._LastNameInputRef.current && this._LastNameInputRef.current.value) ? this._LastNameInputRef.current.value : '';\r\n const eA = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? this._EmailAddressInputRef.current.value : '';\r\n\r\n const bN = this.state.buisnessName;\r\n const iP = this.state.industryPosition;\r\n\r\n const eAVal = this._EmailAddressInputRef.current!.value;\r\n const oI = this._PrivacyPolicyRef.current!.checked;\r\n\r\n if (!this.firstNameValue) {\r\n this.setState({\r\n fNError: true,\r\n reqError: true\r\n });\r\n } else if (!this.lastNameValue) {\r\n this.setState({\r\n lNError: true,\r\n reqError: true\r\n });\r\n } else if (!this.emailAddressValue) {\r\n this.setState({\r\n eAError: true,\r\n reqError: true\r\n });\r\n } else if (!this._isEmailValid(eAVal)) {\r\n this.setState({\r\n eAValError: true\r\n });\r\n } else if (this.props.config.reCaptchaOption && !this.state.reCaptchaChecked) {\r\n this.setState({\r\n rCCError: true\r\n });\r\n } else if (!this._PrivacyPolicyRef.current!.checked) {\r\n this.setState({\r\n privacyPolicyChecked: false,\r\n privacyError: true\r\n });\r\n } else {\r\n this.formInputValues = (this.emailAddressValue) ? true : false;\r\n if (this.formInputValues && this.state.privacyPolicyChecked && !this.state.eAValError) {\r\n try {\r\n await this._postEntry(fN, lN, eA, bN, oI, iP);\r\n\r\n this._clearValues();\r\n this._recaptchaRef.current?.reset();\r\n \r\n } catch (e) {\r\n console.log(e, 'Please fill in the form!');\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async _postEntry(firstName: string, lastName: string, email: string, businessName: string, optIn: boolean, industryPosition: string): Promise {\r\n let emarsysFieldId = this.props.config.emarsysGroupId, \r\n industryPositionFieldId = this.props.config.emarsysEmarsysGroupId;\r\n\r\n const response = await MsDyn365.commerceApiRequest(\r\n this.props.context.request,\r\n 'PostEmarsysContactEvent',\r\n 'post',\r\n {\r\n firstName,\r\n lastName,\r\n businessName,\r\n emailAddress: email,\r\n industryPosition,\r\n emarsysFieldId,\r\n industryPositionFieldId,\r\n }\r\n ) as any;\r\n \r\n this.responseMessage = response?.data.Message;\r\n\r\n if (response?.data.Result !== 'Error') {\r\n this.setState({\r\n responseReceived: true,\r\n responseError: response?.data.Result === 'Error',\r\n responseSuccess: response?.data.Result !== 'Error',\r\n showResponseSuccess: true,\r\n emailAddress: '',\r\n firstName: '',\r\n lastName: '',\r\n industryPosition: '',\r\n buisnessName: '',\r\n privacyPolicyChecked: false,\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n } else {\r\n this.setState({\r\n responseReceived: true,\r\n responseError: response?.data.Result === 'Error',\r\n responseSuccess: response?.data.Result !== 'Error',\r\n emailAddress: '',\r\n privacyPolicyChecked: false,\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n }\r\n }\r\n\r\n private _clearValues(): void {\r\n if (this._PrivacyPolicyRef.current) {\r\n this._PrivacyPolicyRef.current.checked = false;\r\n const recaptchaWrapper = document.querySelector('.recaptcha');\r\n recaptchaWrapper && recaptchaWrapper.classList.toggle('newsletter-recapture-visable', true);\r\n }\r\n if (this._EmailAddressInputRef.current) {\r\n this._EmailAddressInputRef.current!.value = '';\r\n }\r\n if (this._FirstNameInputRef.current) {\r\n this._FirstNameInputRef.current!.value = '';\r\n }\r\n if (this._LastNameInputRef.current) {\r\n this._LastNameInputRef.current!.value = '';\r\n }\r\n if (this._BuisnessNameInputRef) {\r\n this._BuisnessNameInputRef.current!.value = '';\r\n }\r\n if (this._IndustryPositionInputRef) {\r\n this._IndustryPositionInputRef.current!.value = '';\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default CittaEmarsysForm;\r\n\r\n\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICittaBlocFormViewProps } from './citta-bloc-form';\r\n\r\n/**\r\n *\r\n * ICittaProductSkuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ICittaCompetitionFormView extends React.PureComponent {\r\n\r\n public render(): JSX.Element | null {\r\n const { SubscribeWrapper, subscribeResponse, subscribeForm, responseSuccess, showResponseSuccess, formErrors, formErrorsNodeProps, successResponseNodeProps, showSuccessResponse, successResponse } = this.props;\r\n const { \r\n FormWrapper,\r\n FormContainer,\r\n firstAndLastNameInput,\r\n emailInput,\r\n storeInput,\r\n phoneInput,\r\n subscribeButtton,\r\n reCaptcha,\r\n subscribeThanks\r\n } = subscribeForm;\r\n return (\r\n \r\n {subscribeResponse}\r\n {showSuccessResponse ?\r\n \r\n {successResponse}\r\n \r\n : \r\n \r\n {firstAndLastNameInput}\r\n {emailInput}\r\n {storeInput}\r\n {phoneInput}\r\n {reCaptcha}\r\n {responseSuccess && showResponseSuccess ? subscribeThanks : subscribeButtton}\r\n \r\n \r\n {formErrors}\r\n \r\n \r\n }\r\n \r\n );\r\n }\r\n}\r\nexport default ICittaCompetitionFormView;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICittaEmarsysFormViewProps } from './citta-emarsys-form';\r\n\r\n/**\r\n *\r\n * ICittaProductSkuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ICittaEmarsysFormView extends React.PureComponent {\r\n\r\n public render(): JSX.Element | null {\r\n const { SubscribeWrapper, subscribeResponse, subscribeForm, responseSuccess, showResponseSuccess, formErrors, formErrorsNodeProps, successResponseNodeProps, showSuccessResponse, successResponse } = this.props;\r\n const { \r\n FormWrapper,\r\n FormContainer,\r\n firstAndLastNameInput,\r\n emailInput,\r\n industryInput,\r\n buisnessInput,\r\n checkboxPrivacyPolicy,\r\n subscribeButtton,\r\n reCaptcha,\r\n subscribeThanks\r\n } = subscribeForm;\r\n return (\r\n \r\n {subscribeResponse}\r\n {showSuccessResponse ?\r\n \r\n {successResponse}\r\n \r\n : \r\n \r\n {firstAndLastNameInput}\r\n {buisnessInput}\r\n {emailInput}\r\n {industryInput}\r\n {checkboxPrivacyPolicy}\r\n {reCaptcha}\r\n {responseSuccess && showResponseSuccess ? subscribeThanks : subscribeButtton}\r\n \r\n \r\n {formErrors}\r\n \r\n \r\n }\r\n \r\n );\r\n }\r\n}\r\nexport default ICittaEmarsysFormView;\r\n"],"names":["CittaBlocForm","React","constructor","props","super","firstNameValue","lastNameValue","emailAddressValue","phoneNumberValue","storeNameValue","formInputValues","moduleClassName","_showErrors","this","setState","emailErrorClass","_checkEmailError","firstNameErrorClass","_FirstNameInputRef","current","value","length","lastNameErrorClass","_LastNameInputRef","storeNameErrorClass","_StoreInputRef","phoneNameErrorClass","_PhoneInputRef","email","_EmailAddressInputRef","_isEmailValid","_renderErrors","resources","className","state","firstNameError","lastNameError","emailError","phoneNumberError","storeNameError","_handleChange","name","e","target","firstName","fNError","reqError","eAValError","lastName","lNError","emailAddress","eAError","phoneNumber","pNError","storeName","sNError","console","log","test","_recaptchaRef","_handleSubmit","bind","rCCError","responseReceived","responseError","reCaptchaChecked","responseSuccess","showResponseSuccess","render","viewProps","_objectSpread","SubscribeWrapper","moduleProps","classnames","config","subscribeResponse","_getSubmitResponse","subscribeForm","_renderForm","formErrors","formErrorsNodeProps","successResponse","_renderSuccessResponse","showSuccessResponse","successResponseNodeProps","renderView","responseMessage","successTextResponse","FormWrapper","FormContainer","firstAndLastNameInput","_renderFirstAndLastNameInput","emailInput","_renderEmailInput","phoneInput","_renderPhoneInput","storeInput","_renderStoreInput","reCaptcha","_renderReCaptcha","subscribeButtton","_renderSubmitButton","subscribeThanks","_renderSubmitThanks","ref","type","onChange","placeholder","firstNamePlaceholderText","required","lastNamePlaceholderText","phoneNumberPlaceholder","id","_renderAlert","emailInputPlaceholder","_renderRecaptchaAlert","reCaptchaOption","recaptchaErrorMessage","role","ReCAPTCHA","sitekey","reCaptchaSiteKey","size","_submit","Button","title","submitButtonLabel","color","onClick","_this$_recaptchaRef$c","execute","async","_this$_recaptchaRef$c2","fN","lN","eA","eAVal","pN","sN","recaptchaValue","getValue","_this$_recaptchaRef$c3","_this$_recaptchaRef$c10","_postEntry","_clearValues","reset","_this$_recaptchaRef$c9","_this$_recaptchaRef$c8","_this$_recaptchaRef$c7","_this$_recaptchaRef$c6","_this$_recaptchaRef$c5","_this$_recaptchaRef$c4","emarsysGroupId","emarsysStoreNameGroupId","response","MsDyn365","context","request","country","storeNameField","data","Message","Result","setTimeout","window","location","reload","CittaEmarsysForm","onRecaptchaChange","privacyErrorClass","_PrivacyPolicyRef","checked","privacyError","buisnessName","industryPosition","isChecked","recaptchaWrapper","document","querySelector","classList","toggle","privacyPolicyChecked","_BuisnessNameInputRef","_IndustryPositionInputRef","charactersLeft","Number","messageCharactersLimit","buisnessInput","_renderBuisnessNameInput","industryInput","_renderIndustryPositionInput","checkboxPrivacyPolicy","_renderCheckboxPrivacyPolicy","businessNamePlaceholder","industryPositionPlaceholder","privacyPolicyText","href","privacyPolicyLink","bN","iP","oI","businessName","optIn","emarsysFieldId","industryPositionFieldId","emarsysEmarsysGroupId","ICittaCompetitionFormView","Module","Object","assign","Node","ICittaEmarsysFormView"],"sourceRoot":""}