{"version":3,"file":"static/js/72.5498214db00042ede85d.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/data-actions/subscribe-newsletter/submit-subscribe-form-data.ts?88fd","webpack://Citta2.0/./src/modules/citta-subscribe-newsletter/citta-subscribe-newsletter.tsx?70a8","webpack://Citta2.0/./src/modules/citta-subscribe-newsletter/citta-subscribe-newsletter.view.tsx?65f2","webpack://Citta2.0/./src/data-actions/address/get-nz-post-address.ts?5c0c","webpack://Citta2.0/./src/data-actions/address/get-nz-post-address-details.ts?0cce","webpack://Citta2.0/./src/components/citta-address-search/citta-address-search.tsx?f513","webpack://Citta2.0/./src/shared-utils/cookie-utilities.ts?6237"],"sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { dXC_SubscribeNewsletterAsync } from '../generated/DataActionExtension.g';\r\nimport { IDXC_SubscribeNewsletterRealtimeResponse } from '../generated/DataServiceEntities.g';\r\n\r\n/**\r\n * SubmitSubscribeFormDataActionInput Input Action\r\n */\r\n\r\nexport class SubmitSubscribeFormDataActionInput implements IActionInput {\r\n public firstName: string;\r\n public lastName: string;\r\n public emailAddress: string;\r\n public streetNumber: string;\r\n public streetAddress: string;\r\n public suburb: string;\r\n public city: string;\r\n public postalCode: string;\r\n public country: string;\r\n public buildingCompliment: string;\r\n\r\n // Construct the input needed to run the action\r\n constructor(firstName: string, lastName: string, emailAddress: string, streetNumber: string, streetAddress: string, suburb: string, city: string, postalCode: string, country: string, buildingCompliment: string) {\r\n this.firstName = firstName;\r\n this.lastName = lastName;\r\n this.emailAddress = emailAddress;\r\n this.streetNumber = streetNumber;\r\n this.streetAddress = streetAddress;\r\n this.suburb = suburb;\r\n this.city = city;\r\n this.postalCode = postalCode;\r\n this.country = country;\r\n this.buildingCompliment = buildingCompliment;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => 'SubmitSubscribeForm2020';\r\n public getCacheObjectType = () => 'SubmitSubscribeForm';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: SubmitSubscribeFormDataActionInput): IActionInput => {\r\n return args;\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nexport async function submitSubscribeFormAction(\r\n input: SubmitSubscribeFormDataActionInput,\r\n ctx: IActionContext\r\n): Promise {\r\n console.log(`subscribe form action called`);\r\n\r\n // Input only needs token\r\n let result: IDXC_SubscribeNewsletterRealtimeResponse = {};\r\n try {\r\n result = await dXC_SubscribeNewsletterAsync(\r\n { callerContext: ctx },\r\n input.firstName,\r\n input.lastName,\r\n input.emailAddress,\r\n input.streetNumber,\r\n input.streetAddress,\r\n input.suburb,\r\n input.city,\r\n input.postalCode,\r\n input.country,\r\n input.buildingCompliment);\r\n } catch (error) {\r\n console.log(error);\r\n }\r\n return Array.isArray(result) ? result[0] : result;\r\n}\r\n\r\nexport const ISubmitSubscribeFormDataActionAction = createObservableDataAction({\r\n action: >submitSubscribeFormAction,\r\n input: createInput\r\n});\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport AddressSearch, { IFormattedAddressDetails } from '../../components/citta-address-search/citta-address-search';\r\nimport { submitSubscribeFormAction, SubmitSubscribeFormDataActionInput } from '../../data-actions/subscribe-newsletter/submit-subscribe-form-data';\r\nimport { GetCookie } from '../../shared-utils/cookie-utilities';\r\nimport { ICittaSubscribeNewsletterData } from './citta-subscribe-newsletter.data';\r\nimport { ICittaSubscribeNewsletterProps } from './citta-subscribe-newsletter.props.autogenerated';\r\n\r\ninterface ICittaSubscribeNewsletterFormState {\r\n firstName: string;\r\n lastName: string;\r\n emailAddress: string;\r\n streetNumber: string;\r\n streetAddress: string;\r\n suburb: string;\r\n cityState: string;\r\n postCode: string;\r\n country: string;\r\n buildingCompliment: string;\r\n privacyPolicyChecked: boolean;\r\n fNError: boolean;\r\n lNError: boolean;\r\n eAError: boolean;\r\n reqError: boolean;\r\n eAValError: boolean;\r\n pPCError: boolean;\r\n rCCError: boolean;\r\n responseReceived: boolean;\r\n responseError: boolean;\r\n reCaptchaChecked: boolean;\r\n manualAddress: boolean;\r\n allowAddressSearch: boolean;\r\n}\r\n\r\nexport interface ICittaSubscribeNewsletterForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n nameInput: React.ReactNode;\r\n emailInput: React.ReactNode;\r\n addressInput: React.ReactNode;\r\n checkboxPrivacyPolicy: React.ReactNode;\r\n reCaptcha: React.ReactNode;\r\n subscribeButtton: React.ReactNode;\r\n}\r\n\r\nexport interface ICittaSubscribeNewsletterViewProps extends ICittaSubscribeNewsletterProps {\r\n SubscribeWrapper: IModuleProps;\r\n subscribeResponse: React.ReactNode;\r\n subscribeForm: ICittaSubscribeNewsletterForm;\r\n}\r\n/**\r\n *\r\n * CittaSubscribeNewsletter component\r\n * @extends {React.PureComponent>}\r\n */\r\n@observer\r\nclass CittaSubscribeNewsletter extends React.PureComponent, ICittaSubscribeNewsletterFormState> {\r\n private _FirstNameInputRef: React.RefObject;\r\n private _LastNameInputRef: React.RefObject;\r\n private _EmailAddressInputRef: React.RefObject;\r\n private _StreetNumberInputRef: React.RefObject;\r\n private _StreetAddressInputRef: React.RefObject;\r\n private _SuburbInputRef: React.RefObject;\r\n private _CityStateInputRef: React.RefObject;\r\n private _PostCodeInputRef: React.RefObject;\r\n private _CountryInputRef: React.RefObject;\r\n private _BuildingComplimentInputRef: React.RefObject;\r\n private _PrivacyPolicyRef: React.RefObject;\r\n private _SearchAddressRef: 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\r\n private formInputValues: boolean = false;\r\n private requiredErrorMessage: string | undefined;\r\n private eAValidationErrorMessage: string | undefined;\r\n private privacyPolicyErrorMessage: string | undefined;\r\n private recaptchaErrorMessage: string | undefined;\r\n\r\n private responseMessage: string | undefined;\r\n\r\n private _cookieName: string = this.props.context.app.config.marketPreferenceCookieName || '_msdyn365___market_preference';\r\n\r\n private moduleClassName: string = 'subscribeWrap';\r\n\r\n constructor(props: ICittaSubscribeNewsletterProps) {\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._StreetNumberInputRef = React.createRef();\r\n this._StreetAddressInputRef = React.createRef();\r\n this._SuburbInputRef = React.createRef();\r\n this._CityStateInputRef = React.createRef();\r\n this._PostCodeInputRef = React.createRef();\r\n this._CountryInputRef = React.createRef();\r\n this._BuildingComplimentInputRef = React.createRef();\r\n this._PrivacyPolicyRef = React.createRef();\r\n this._SearchAddressRef = React.createRef();\r\n this._recaptchaRef = React.createRef();\r\n this._handleSubscribe = this._handleSubscribe.bind(this);\r\n this._handleSearchAddressSelection = this._handleSearchAddressSelection.bind(this);\r\n this._toggleManualAddressInput = this._toggleManualAddressInput.bind(this);\r\n\r\n this.state = {\r\n firstName: '',\r\n lastName: '',\r\n emailAddress: '',\r\n streetNumber: '',\r\n streetAddress: '',\r\n suburb: '',\r\n cityState: '',\r\n postCode: '',\r\n country: '',\r\n buildingCompliment: '',\r\n privacyPolicyChecked: false,\r\n fNError: false,\r\n lNError: false,\r\n eAError: false,\r\n reqError: false,\r\n eAValError: false,\r\n pPCError: false,\r\n rCCError: false,\r\n responseReceived: false,\r\n responseError: false,\r\n reCaptchaChecked: false,\r\n manualAddress: false,\r\n allowAddressSearch: true\r\n };\r\n }\r\n\r\n public componentDidMount(): void {\r\n const market = GetCookie(this.props.context.request.cookies, this._cookieName);\r\n if (market) {\r\n this.setState({\r\n country: market\r\n });\r\n if (market === 'AUS') {\r\n this.setState({\r\n allowAddressSearch: false\r\n });\r\n }\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n\r\n const viewProps: ICittaSubscribeNewsletterViewProps = {\r\n ...(this.props as ICittaSubscribeNewsletterProps),\r\n SubscribeWrapper: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName)\r\n },\r\n subscribeResponse: this._getSubscribeResponse(),\r\n subscribeForm: this._renderForm(),\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _getSubscribeResponse(): 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 /**\r\n * callback function for receiving address details from address search component\r\n */\r\n private _handleSearchAddressSelection(address: IFormattedAddressDetails): void {\r\n if (address) {\r\n this.setState({\r\n streetNumber: address.street_number ? address.street_number : '',\r\n streetAddress: address.street ? address.street : '',\r\n suburb: address.suburb ? address.suburb : '',\r\n cityState: address.city ? address.city : '',\r\n postCode: address.postcode ? address.postcode : '',\r\n country: address.country ? 'NZL' : '',\r\n buildingCompliment: address.building_name ? address.building_name : ''\r\n });\r\n }\r\n }\r\n\r\n private _toggleManualAddressInput(): void {\r\n this.setState({\r\n manualAddress: !this.state.manualAddress,\r\n streetNumber: '',\r\n streetAddress: '',\r\n suburb: '',\r\n cityState: '',\r\n postCode: '',\r\n country: '',\r\n buildingCompliment: ''\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(): ICittaSubscribeNewsletterForm {\r\n return {\r\n FormWrapper: {\r\n className: 'newsletter-subscription',\r\n },\r\n FormContainer: {\r\n className: 'newsletter-subscription-div',\r\n },\r\n nameInput: this._renderFirstAndLastNameInput(),\r\n emailInput: this._renderEmailInput(),\r\n addressInput: this._renderAddressInput(),\r\n checkboxPrivacyPolicy: this._renderCheckboxPrivacyPolicy(),\r\n reCaptcha: this._renderReCaptcha(),\r\n subscribeButtton: this._renderSubscribeButton(),\r\n };\r\n }\r\n\r\n private _renderFirstAndLastNameInput(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n \r\n {this.state.fNError ? this._renderAlert('first-name-input') : ''}\r\n \r\n \r\n {this.state.lNError ? this._renderAlert('last-name-input') : ''}\r\n \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 // tslint:disable-next-line: max-func-body-length\r\n private _renderAddressInput(): React.ReactNode {\r\n const showManualAddress = this.state.manualAddress || !this.state.allowAddressSearch;\r\n return (\r\n
\r\n {showManualAddress &&\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
}\r\n {this.state.allowAddressSearch &&\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _renderCheckboxPrivacyPolicy(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.pPCError ? this._renderAlert('checkbox-privacy-policy') : ''}\r\n
\r\n \r\n \r\n

I accept the Privacy Policy

\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 _renderSubscribeButton(): React.ReactNode {\r\n return (\r\n
\r\n {this.props.config.subscribeButtonLabel}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _handleChange = (name: string) => (e: 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, pPCError: false });\r\n break;\r\n }\r\n case 'lastName': {\r\n this.setState({ lastName: value, lNError: false, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, eAError: false, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n case 'streetNumber': {\r\n this.setState({ streetNumber: value, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n case 'streetAddress': {\r\n this.setState({ streetAddress: value, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n case 'suburb': {\r\n this.setState({ suburb: value, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n case 'cityState': {\r\n this.setState({ cityState: value, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n case 'postCode': {\r\n this.setState({ postCode: value, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n case 'country': {\r\n this.setState({ country: value, reqError: false, eAValError: false, pPCError: false });\r\n break;\r\n }\r\n case 'buildingCompliment': {\r\n this.setState({ buildingCompliment: value, reqError: false, eAValError: false, pPCError: 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 this.setState({ privacyPolicyChecked: isChecked, reqError: false, eAValError: false, pPCError: 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, pPCError: false });\r\n }\r\n }\r\n };\r\n\r\n private _onCountryChange = (e: React.ChangeEvent) => {\r\n this.setState({\r\n country: e.target.value\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 _renderAlert(className: string): JSX.Element {\r\n const inputBoxErrors = (this.state.fNError || this.state.lNError || this.state.eAError);\r\n if (inputBoxErrors) {\r\n this.requiredErrorMessage = this.props.resources.requiredTextErrorMessage;\r\n }\r\n if (this.state.emailAddress !== '' && this.state.eAValError) {\r\n this.eAValidationErrorMessage = this.props.resources.eAValidationErrorMessage;\r\n }\r\n if (!this.state.privacyPolicyChecked) {\r\n this.privacyPolicyErrorMessage = this.props.resources.privacyPolicyErrorMessage;\r\n }\r\n const reqError = this.state.reqError;\r\n const eAValError = this.state.eAValError;\r\n const pPCError = this.state.pPCError;\r\n return (\r\n <>\r\n {reqError && (\r\n \r\n {\r\n this.requiredErrorMessage &&\r\n <>\r\n \r\n )}\r\n {eAValError && (\r\n \r\n {\r\n this.eAValidationErrorMessage &&\r\n <>\r\n \r\n )}\r\n {pPCError && (\r\n \r\n {\r\n this.privacyPolicyErrorMessage &&\r\n <>\r\n \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 // tslint:disable-next-line: cyclomatic-complexity\r\n private async _handleSubscribe(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n if (this.state.manualAddress) {\r\n this.setState({\r\n country: this._CountryInputRef.current ? this._CountryInputRef.current.value : ''\r\n });\r\n }\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 const sN = (this.state.streetNumber && this.state.streetNumber.length > 0) ? this.state.streetNumber : '';\r\n const sA = (this.state.streetAddress && this.state.streetAddress.length > 0) ? this.state.streetAddress : '';\r\n const su = (this.state.suburb && this.state.suburb.length > 0) ? this.state.suburb : '';\r\n const cS = (this.state.cityState && this.state.cityState.length > 0) ? this.state.cityState : '';\r\n const pC = (this.state.postCode && this.state.postCode.length > 0) ? this.state.postCode : '';\r\n const co = (this.state.country && this.state.country.length > 0) ? this.state.country : 'NZL';\r\n const bc = (this.state.buildingCompliment && this.state.buildingCompliment.length > 0) ? this.state.buildingCompliment : '';\r\n const eAVal = this._EmailAddressInputRef.current!.value;\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._PrivacyPolicyRef.current!.checked) {\r\n this.setState({\r\n privacyPolicyChecked: false,\r\n pPCError: 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 {\r\n this.formInputValues = (this.firstNameValue && this.lastNameValue && this.emailAddressValue) ? true : false;\r\n\r\n if (this.formInputValues && this.state.privacyPolicyChecked && !this.state.eAValError) {\r\n try {\r\n const result = await submitSubscribeFormAction(new SubmitSubscribeFormDataActionInput(fN, lN, eA, sN, sA, su, cS, pC, co, bc), this.props.context.actionContext);\r\n this.responseMessage = result.Message;\r\n this.setState({\r\n responseReceived: true,\r\n responseError: result.Result === 'Error',\r\n firstName: '',\r\n lastName: '',\r\n emailAddress: '',\r\n streetNumber: '',\r\n streetAddress: '',\r\n suburb: '',\r\n cityState: '',\r\n postCode: '',\r\n country: '',\r\n buildingCompliment: '',\r\n privacyPolicyChecked: false,\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n this._clearValues();\r\n this._recaptchaRef.current?.reset();\r\n } catch {\r\n console.log('Please fill the form!');\r\n }\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 }\r\n if (this._SearchAddressRef.current) {\r\n this._SearchAddressRef.current.clearAddress();\r\n }\r\n }\r\n}\r\n\r\nexport default CittaSubscribeNewsletter;\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 { ICittaSubscribeNewsletterViewProps } from './citta-subscribe-newsletter';\r\n\r\n/**\r\n *\r\n * ICittaProductSkuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ICittaSubscribeNewsletterView extends React.PureComponent {\r\n\r\n public render(): JSX.Element | null {\r\n const { SubscribeWrapper, subscribeResponse, subscribeForm } = this.props;\r\n const { FormWrapper, FormContainer, nameInput, emailInput, addressInput, checkboxPrivacyPolicy, subscribeButtton } = subscribeForm;\r\n return (\r\n \r\n {subscribeResponse}\r\n \r\n \r\n {nameInput}\r\n {emailInput}\r\n {addressInput}\r\n {checkboxPrivacyPolicy}\r\n {/* {reCapture} */}\r\n {subscribeButtton}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default ICittaSubscribeNewsletterView;\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { getAddressAsync } from '../generated/DataActionExtension.g';\r\nimport { IDXC_GetNZPostAddressResponse } from '../generated/DataServiceEntities.g';\r\n\r\n/**\r\n * GetNZPostAddressActionInput Input Action\r\n */\r\n\r\nexport class GetNZPostAddressResponseActionInput implements IActionInput {\r\n public search: string;\r\n\r\n // Construct the input needed to run the action\r\n constructor(search: string) {\r\n this.search = search;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => 'GetNZAddressResponse2020';\r\n public getCacheObjectType = () => 'GetNZAddressResponse';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: GetNZPostAddressResponseActionInput): IActionInput => {\r\n return args;\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nexport async function getNZAddressResponseAction(\r\n input: GetNZPostAddressResponseActionInput,\r\n ctx: IActionContext\r\n): Promise {\r\n\r\n let addressResult: IDXC_GetNZPostAddressResponse = { success: false };\r\n return getAddressAsync({ callerContext: ctx }, input.search)\r\n .then((response) => {\r\n if (response && !(response instanceof Error)) {\r\n addressResult = response;\r\n return addressResult;\r\n } else {\r\n return addressResult;\r\n }\r\n })\r\n .catch((error: Error) => {\r\n ctx.trace(error.message);\r\n return addressResult;\r\n });\r\n}\r\n\r\nexport const ISubmitSubscribeFormDataActionAction = createObservableDataAction({\r\n action: >getNZAddressResponseAction,\r\n input: createInput\r\n});\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n\r\nimport { CacheType, createObservableDataAction, IAction, IActionContext, IActionInput } from '@msdyn365-commerce/core';\r\nimport { getAddressDetailAsync } from '../generated/DataActionExtension.g';\r\nimport { IDXC_GetNZPostAddressDetailResponse } from '../generated/DataServiceEntities.g';\r\n\r\n/**\r\n * GetNZPostAddressActionInput Input Action\r\n */\r\n\r\nexport class GetNZPostAddressDetailsActionInput implements IActionInput {\r\n public addressId: string;\r\n\r\n // Construct the input needed to run the action\r\n constructor(addressId: string) {\r\n this.addressId = addressId;\r\n }\r\n\r\n // TODO: Determine if the results of this get action should cache the results and if so provide\r\n // a cache object type and an appropriate cache key\r\n public getCacheKey = () => 'GetNZAddressDetailsResponse2020';\r\n public getCacheObjectType = () => 'GetNZAddressDetailsResponse';\r\n public dataCacheType = (): CacheType => 'request';\r\n}\r\n\r\n/**\r\n * TODO: Use this function to create the input required to make the action call\r\n */\r\nconst createInput = (args: GetNZPostAddressDetailsActionInput): IActionInput => {\r\n return args;\r\n};\r\n\r\n/**\r\n * TODO: Use this function to call your action and process the results as needed\r\n */\r\nexport async function getNZAddressResponseDetailsAction(\r\n input: GetNZPostAddressDetailsActionInput,\r\n ctx: IActionContext\r\n): Promise {\r\n let addressDetailsResult: IDXC_GetNZPostAddressDetailResponse = { success: false };\r\n return getAddressDetailAsync({ callerContext: ctx }, input.addressId)\r\n .then((response) => {\r\n if (response && !(response instanceof Error)) {\r\n addressDetailsResult = response;\r\n return addressDetailsResult;\r\n } else {\r\n return addressDetailsResult;\r\n }\r\n })\r\n .catch((error: Error) => {\r\n ctx.trace(error.message);\r\n return addressDetailsResult;\r\n });\r\n}\r\n\r\nexport const ISubmitSubscribeFormDataActionAction = createObservableDataAction({\r\n action: >getNZAddressResponseDetailsAction,\r\n input: createInput\r\n});\r\n","import classname from 'classnames';\r\nimport * as React from 'react';\r\nimport { getNZAddressResponseAction, GetNZPostAddressResponseActionInput } from '../../data-actions/address/get-nz-post-address';\r\nimport { getNZAddressResponseDetailsAction, GetNZPostAddressDetailsActionInput } from '../../data-actions/address/get-nz-post-address-details';\r\nimport { IAddressDetails, IDXC_Address } from '../../data-actions/generated/DataServiceEntities.g';\r\n\r\ninterface IState {\r\n showAddressList: boolean;\r\n searchAddress: string | undefined;\r\n selectedAddress: IAddressDetails | undefined;\r\n formattedAddress: IFormattedAddressDetails | undefined;\r\n addressList: IDXC_Address[] | undefined;\r\n messageID: string | undefined;\r\n manualAddressLabel: string;\r\n searchAddressLabel: string;\r\n errorMessage: string | undefined;\r\n}\r\n\r\ninterface IProp {\r\n // tslint:disable-next-line: no-any\r\n context: any; // needed for API calls\r\n manualAddress: boolean; // boolean toggle for manual address input - passed from wrapper module\r\n addressSelectedCallback(address: IFormattedAddressDetails | undefined): void; // passes selected address to wrapper module\r\n toggleManualAddressCallback(): void; // called to toggle search and manual address input (should toggle manualAddress variable in wrapper module)\r\n}\r\n\r\n/**\r\n * AddressSearch component\r\n */\r\nclass AddressSearch extends React.Component {\r\n private _SearchAddressInputRef: React.RefObject;\r\n\r\n constructor(props: IProp) {\r\n super(props);\r\n this._SearchAddressInputRef = React.createRef();\r\n\r\n this.state = {\r\n showAddressList: false,\r\n searchAddress: '',\r\n selectedAddress: undefined,\r\n formattedAddress: undefined,\r\n addressList: [],\r\n messageID: '',\r\n manualAddressLabel: 'Enter Address Manually',\r\n searchAddressLabel: 'Search for your Address',\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n public render(): JSX.Element {\r\n return(\r\n
\r\n {!this.props.manualAddress &&\r\n
\r\n
Search Address
\r\n
\r\n
\r\n \r\n
\r\n
\r\n {this.state.showAddressList && this.state.addressList &&\r\n
\r\n
    \r\n {this.state.addressList.map((address: IDXC_Address, index: number) => {\r\n if (address) {\r\n const addressId = address && address.address_id ? address.address_id : '';\r\n const fullAddress = address && address.full_address ? address.full_address : '';\r\n return (\r\n
  • \r\n {address.full_address}\r\n
  • \r\n );\r\n }\r\n return null;\r\n })}\r\n
\r\n
\r\n }\r\n
\r\n }\r\n {this.state.errorMessage &&\r\n
\r\n {this.state.errorMessage}\r\n
\r\n }\r\n \r\n
\r\n );\r\n }\r\n\r\n public clearAddress = () => {\r\n this.setState({\r\n searchAddress: '',\r\n selectedAddress: undefined,\r\n formattedAddress: undefined\r\n });\r\n }\r\n\r\n /**\r\n * Calls lookahead search API for currently typed input string\r\n */\r\n private getNZAddress = () => (e: React.MouseEvent | React.KeyboardEvent | React.ChangeEvent) => {\r\n const inputText = this._SearchAddressInputRef.current && this._SearchAddressInputRef.current.value || '';\r\n this.setState({\r\n searchAddress: inputText,\r\n selectedAddress: undefined,\r\n formattedAddress: undefined,\r\n errorMessage: undefined\r\n });\r\n this.props.addressSelectedCallback(undefined);\r\n if (inputText.length > 3) {\r\n getNZAddressResponseAction(new GetNZPostAddressResponseActionInput(inputText), this.props.context.actionContext).then(\r\n (result) => {\r\n\r\n this.setState({\r\n addressList: result.addresses,\r\n messageID: result.message_id,\r\n showAddressList: true\r\n });\r\n }\r\n )\r\n .catch(() => {\r\n console.log('No data');\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Calls API to get full details of selected address\r\n */\r\n private getNZAddressDetails = (addressId: string, fullAddress: string) => (e: React.MouseEvent | React.KeyboardEvent | React.ChangeEvent) => {\r\n getNZAddressResponseDetailsAction(new GetNZPostAddressDetailsActionInput(addressId), this.props.context.actionContext).then(\r\n (result) => {\r\n console.log('result', result);\r\n const formattedAddressObject = this._getFormattedAddressObject(result.address);\r\n this.setState({\r\n showAddressList: false,\r\n searchAddress: result.address ? fullAddress : this.state.searchAddress,\r\n selectedAddress: result.address,\r\n formattedAddress: formattedAddressObject,\r\n errorMessage: result.address ? undefined : 'There was an error retrieving this address, if this error persists please enter your address manually'\r\n });\r\n this.props.addressSelectedCallback(formattedAddressObject);\r\n }\r\n )\r\n .catch(() => {\r\n console.log('No data');\r\n });\r\n }\r\n\r\n /**\r\n * Formats the address object to match data needed in AX\r\n * @param address Address object from NZ Post API\r\n */\r\n private _getFormattedAddressObject(address: IAddressDetails | undefined): IFormattedAddressDetails | undefined {\r\n if (!address) {\r\n return;\r\n }\r\n console.log('address', address)\r\n return {\r\n building_name: this._getFormattedBuildingName(address),\r\n street_number: this._getFormattedStreetNumber(address),\r\n street: this._getFormattedStreet(address),\r\n suburb: address.suburb,\r\n city: address.city,\r\n postcode: address.postcode,\r\n country: address.country,\r\n };\r\n }\r\n\r\n private _getFormattedBuildingName(address: IAddressDetails): string | undefined {\r\n if (!(address.unit_type || address.unit_value || address.floor)) {\r\n return;\r\n }\r\n\r\n let buildingName = address.unit_type ? address.unit_type : '';\r\n buildingName += address.unit_value ? ` ${address.unit_value}` : '';\r\n if (address.floor) {\r\n buildingName.length > 0 ? buildingName += ` ${address.floor}` : buildingName = address.floor;\r\n }\r\n return buildingName;\r\n }\r\n\r\n private _getFormattedStreetNumber(address: IAddressDetails): string | undefined {\r\n if (!(address.street_number || address.street_alpha)) {\r\n return;\r\n }\r\n let streetNumDetails = address.street_number ? `${address.street_number}` : '';\r\n streetNumDetails += address.street_alpha ? address.street_alpha : '';\r\n return streetNumDetails;\r\n }\r\n\r\n private _getFormattedStreet(address: IAddressDetails): string | undefined {\r\n if (!(address.street || address.street_type || address.road_suffix_name)) {\r\n return;\r\n }\r\n let street = address.street ? address.street : '';\r\n street += address.street_type ? ` ${address.street_type}` : '';\r\n street += address.road_suffix_name ? ` ${address.road_suffix_name}` : '';\r\n\r\n if (address.rural_delivery_number) {\r\n street += `, ${address.rural_delivery_number}` \r\n }\r\n return street;\r\n }\r\n\r\n /**\r\n * onClick function to trigger manual input toggle callback\r\n */\r\n private toggleManualAddress = () => (e: React.MouseEvent | React.KeyboardEvent | React.ChangeEvent) => {\r\n this.props.toggleManualAddressCallback();\r\n this.clearAddress();\r\n }\r\n}\r\n\r\nexport default AddressSearch;\r\n\r\n/**\r\n * Formatted address object\r\n */\r\nexport interface IFormattedAddressDetails {\r\n building_name?: string;\r\n\r\n street_number?: string;\r\n\r\n street?: string;\r\n\r\n suburb?: string;\r\n\r\n city?: string;\r\n\r\n postcode?: string;\r\n\r\n country?: string;\r\n\r\n rural_delivery_number?: string;\r\n}\r\n","import { ICookieValue } from '@msdyn365-commerce/core';\r\n\r\n// tslint:disable-next-line: no-any\r\nexport const GetCookie = (cookie: any, cookieName: string): string | undefined => {\r\n // tslint:disable-next-line: prefer-type-cast\r\n const marketCookie = cookie.get(cookieName) as ICookieValue | undefined;\r\n\r\n if (marketCookie && marketCookie.value && marketCookie.value.length > 0) {\r\n return marketCookie.value;\r\n } else {\r\n return undefined;\r\n }\r\n};\r\n\r\n// tslint:disable-next-line: no-any\r\nexport const SetCookie = (cookies: any, value: string, cookieName: string, exp: number): void => {\r\n if (value) {\r\n cookies.set(cookieName, value, { path: '/', maxAge: exp });\r\n }\r\n};"],"names":["SubmitSubscribeFormDataActionInput","constructor","firstName","lastName","emailAddress","streetNumber","streetAddress","suburb","city","postalCode","country","buildingCompliment","getCacheKey","getCacheObjectType","dataCacheType","this","async","submitSubscribeFormAction","input","ctx","console","log","result","dXC_SubscribeNewsletterAsync","callerContext","error","Array","isArray","createObservableDataAction","action","args","CittaSubscribeNewsletter","React","props","super","firstNameValue","lastNameValue","emailAddressValue","formInputValues","_cookieName","context","app","config","marketPreferenceCookieName","moduleClassName","onRecaptchaChange","value","setState","reCaptchaChecked","rCCError","_handleChange","name","e","target","fNError","reqError","eAValError","pPCError","lNError","eAError","cityState","postCode","isChecked","_PrivacyPolicyRef","current","checked","privacyPolicyChecked","_onCountryChange","_isEmailValid","email","test","_FirstNameInputRef","_LastNameInputRef","_EmailAddressInputRef","_StreetNumberInputRef","_StreetAddressInputRef","_SuburbInputRef","_CityStateInputRef","_PostCodeInputRef","_CountryInputRef","_BuildingComplimentInputRef","_SearchAddressRef","_recaptchaRef","_handleSubscribe","bind","_handleSearchAddressSelection","_toggleManualAddressInput","state","responseReceived","responseError","manualAddress","allowAddressSearch","componentDidMount","market","GetCookie","request","cookies","render","viewProps","_objectSpread","SubscribeWrapper","moduleProps","className","classnames","subscribeResponse","_getSubscribeResponse","subscribeForm","_renderForm","renderView","responseMessage","address","street_number","street","postcode","building_name","FormWrapper","FormContainer","nameInput","_renderFirstAndLastNameInput","emailInput","_renderEmailInput","addressInput","_renderAddressInput","checkboxPrivacyPolicy","_renderCheckboxPrivacyPolicy","reCaptcha","_renderReCaptcha","subscribeButtton","_renderSubscribeButton","_renderAlert","ref","type","onChange","placeholder","resources","firstNamePlaceholderText","required","lastNamePlaceholderText","emailAddressPlaceholderText","showManualAddress","buildingComplimentPlaceholderText","streetNumberPlaceholderText","streetAddressPlaceholderText","suburbPlaceholderText","cityStatePlaceholderText","pattern","max","postCodePlaceholderText","countryPlaceholderText","disabled","AddressSearch","addressSelectedCallback","toggleManualAddressCallback","id","href","privacyPolicyLink","reCaptchaOption","_renderRecaptchaAlert","ReCAPTCHA","sitekey","reCaptchaSiteKey","Button","title","subscribeButtonLabel","color","onClick","requiredErrorMessage","requiredTextErrorMessage","eAValidationErrorMessage","privacyPolicyErrorMessage","role","recaptchaErrorMessage","fN","lN","eA","sN","length","sA","su","cS","pC","co","bc","eAVal","_this$_recaptchaRef$c","actionContext","Message","Result","_clearValues","reset","_unused","clearAddress","__decorate","observer","ICittaSubscribeNewsletterView","Module","Object","assign","Node","GetNZPostAddressResponseActionInput","search","getNZAddressResponseAction","addressResult","success","getAddressAsync","then","response","Error","catch","trace","message","GetNZPostAddressDetailsActionInput","addressId","getNZAddressResponseDetailsAction","addressDetailsResult","getAddressDetailAsync","searchAddress","selectedAddress","undefined","formattedAddress","getNZAddress","inputText","_SearchAddressInputRef","errorMessage","addressList","addresses","messageID","message_id","showAddressList","getNZAddressDetails","fullAddress","formattedAddressObject","_getFormattedAddressObject","toggleManualAddress","manualAddressLabel","searchAddressLabel","classname","map","index","address_id","full_address","key","_getFormattedBuildingName","_getFormattedStreetNumber","_getFormattedStreet","unit_type","unit_value","floor","buildingName","street_alpha","streetNumDetails","street_type","road_suffix_name","rural_delivery_number","cookie","cookieName","marketCookie","get","SetCookie","exp","set","path","maxAge"],"sourceRoot":""}