{"version":3,"file":"static/js/29.c2610d59fad619b4344c.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/citta-newsletter-subscribe-pop-up/citta-newsletter-subscribe-pop-up.tsx?a77a","webpack://Citta2.0/./src/modules/citta-newsletter-subscribe-pop-up/citta-newsletter-subscribe-pop-up.view.tsx?26ed","webpack://Citta2.0/./src/modules/citta-newsletter-subscribe/citta-newsletter-subscribe.tsx?15cf","webpack://Citta2.0/./src/modules/citta-newsletter-subscribe/citta-newsletter-subscribe.view.tsx?ab87","webpack://Citta2.0/./src/modules/citta-pop-up-copy/citta-pop-up-copy.tsx?7afb","webpack://Citta2.0/./src/modules/citta-pop-up-copy/citta-pop-up-copy.view.tsx?7967","webpack://Citta2.0/./src/shared-utils/cookie-utilities.ts?6237","webpack://Citta2.0/./src/themes/citta/views/site-picker.view.tsx?7d8d"],"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 * as React from 'react';\r\nimport { Button, INodeProps} from '@msdyn365-commerce-modules/utilities';\r\nimport { ICittaNewsletterSubscribePopUpData } from './citta-newsletter-subscribe-pop-up.data';\r\nimport { ICittaNewsletterSubscribePopUpProps } from './citta-newsletter-subscribe-pop-up.props.autogenerated';\r\nimport { GetCookie, SetCookie } from '../../shared-utils/cookie-utilities';\r\nexport interface ICittaNewsletterSubscribePopUpState {\r\n cookieValue?: string;\r\n}\r\nexport interface ICittaNewsletterSubscribePopUpViewProps extends ICittaNewsletterSubscribePopUpProps {\r\n newsletterSubscribe: React.ReactNode[];\r\n message: String;\r\n header: String;\r\n closeButton?: INodeProps;\r\n MessageTextProps: INodeProps;\r\n HeaderTextProps: INodeProps;\r\n cookieValue: string;\r\n // state: ICittaNewsletterSubscribePopUpState;\r\n}\r\n\r\n/**\r\n *\r\n * CittaNewsletterSubscribePopUp component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaNewsletterSubscribePopUp extends React.PureComponent, ICittaNewsletterSubscribePopUpState> {\r\n private _newsletterCookieName: string = 'cittaSignUp';\r\n private _timer: any;\r\n constructor(props: ICittaNewsletterSubscribePopUpViewProps) {\r\n super(props);\r\n const cookieValue = GetCookie(props.context.request.cookies, this._newsletterCookieName);\r\n\r\n this.state = {\r\n cookieValue\r\n };\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n slots, \r\n config,\r\n context\r\n } = this.props;\r\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\r\n\r\n \r\n if(!this.props.slots || !this.props.slots.newsletterSubscribe || !this.props.slots.newsletterSubscribe.length) {\r\n this.props.context.telemetry.error('newsletter slots content is empty, module wont render');\r\n return null;\r\n }\r\n\r\n if (this.state.cookieValue !== 'HIDE') {\r\n this.checkCookie();\r\n }\r\n\r\n if (this.state.cookieValue === 'HIDE' || !isConsentGiven) {\r\n this.stopTimer();\r\n return null;\r\n }\r\n\r\n const viewprops = {\r\n ...this.props,\r\n newsletterSubscribe: slots && slots.newsletterSubscribe,\r\n message: config.message,\r\n header: config.header || 'keep in touch',\r\n closeButton: this._renderCloseLink(),\r\n MessageTextProps: { className: 'ms-message__content' },\r\n HeaderTextProps: { className: 'ms-header__content' },\r\n cookieValue: this.state.cookieValue\r\n }\r\n\r\n return this.props.renderView(viewprops);\r\n }\r\n\r\n private checkCookie = () => {\r\n if(!this._timer) {\r\n this._timer = setInterval(()=> {\r\n const cookieValue = GetCookie(this.props.context.request.cookies, this._newsletterCookieName);\r\n if (cookieValue === 'HIDE') {\r\n this.setState({cookieValue: 'HIDING'})\r\n setTimeout(() => {\r\n this.setState({cookieValue: cookieValue })\r\n }, 3000)\r\n }\r\n }, 1000)\r\n }\r\n }\r\n\r\n private stopTimer = () => {\r\n clearInterval(this._timer);\r\n }\r\n\r\n private _renderCloseLink = () => {\r\n return (\r\n this._setCookie()}\r\n >x\r\n )\r\n };\r\n\r\n private _setCookie = () => {\r\n const { config } = this.props;\r\n this.setState({cookieValue: 'HIDING'})\r\n SetCookie(this.props.context.request.cookies, 'HIDE', this._newsletterCookieName, config.cookieAge || 2592000)\r\n setTimeout(() => {\r\n this.setState({cookieValue: 'HIDE'})\r\n }, 3000)\r\n }\r\n}\r\n\r\nexport default CittaNewsletterSubscribePopUp;\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 * as React from 'react';\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { ICittaNewsletterSubscribePopUpViewProps } from './citta-newsletter-subscribe-pop-up';\r\n\r\nexport default (props: ICittaNewsletterSubscribePopUpViewProps) => {\r\n const { \r\n newsletterSubscribe,\r\n message,\r\n header,\r\n closeButton,\r\n MessageTextProps,\r\n HeaderTextProps,\r\n cookieValue\r\n } = props;\r\n\r\n if(!newsletterSubscribe || !newsletterSubscribe.length) {\r\n props.context.telemetry.error('newsletter content is empty, module wont render');\r\n return null;\r\n }\r\n return (\r\n
\r\n
\r\n {closeButton}\r\n
\r\n {header &&
{header}
}\r\n {message &&

{message}

}\r\n\r\n {newsletterSubscribe}\r\n
\r\n );\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 { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport { computed } from 'mobx';\r\nimport * as React from 'react';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport { ICittaNewsletterSubscribeData } from './citta-newsletter-subscribe.data';\r\nimport { ICittaNewsletterSubscribeProps } from './citta-newsletter-subscribe.props.autogenerated';\r\nimport { SetCookie } from '../../shared-utils/cookie-utilities';\r\n\r\ninterface ICittaNewsletteSubscriberFormState {\r\n emailAddress: string;\r\n privacyPolicyChecked: boolean;\r\n eAValError: boolean;\r\n eAError: boolean;\r\n pPCError: boolean;\r\n rCCError: boolean;\r\n reqError: boolean;\r\n responseReceived: boolean;\r\n responseError: boolean;\r\n responseSuccess: boolean;\r\n reCaptchaChecked: boolean;\r\n}\r\n\r\nexport interface ICittaSubscribeNewsletterForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n emailInput: 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\nexport interface ICittaNewsletterSubscribeViewProps extends ICittaNewsletterSubscribeProps {\r\n SubscribeWrapper: IModuleProps;\r\n subscribeResponse: React.ReactNode;\r\n subscribeForm: ICittaSubscribeNewsletterForm;\r\n responseSuccess: boolean;\r\n userEmail: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * CittaNewsletterSubscribe component\r\n * @extends {React.PureComponent>}\r\n */\r\n\r\nclass CittaNewsletterSubscribe extends React.PureComponent, ICittaNewsletteSubscriberFormState> {\r\n private _EmailAddressInputRef: React.RefObject;\r\n private _PrivacyPolicyRef: React.RefObject;\r\n private _recaptchaRef: React.RefObject;\r\n\r\n private emailAddressValue: boolean = false;\r\n\r\n private formInputValues: boolean = false;\r\n\r\n private responseMessage: string | undefined;\r\n\r\n private moduleClassName: string = 'newsletterSubWrap';\r\n\r\n private _newsletterCookieName: string = 'cittaSignUp';\r\n\r\n private recaptchaErrorMessage: string | undefined;\r\n\r\n @computed public get userEmail(): Readonly {\r\n const customer = this.props.data.accountInformation?.result;\r\n return customer ? customer.Email : '';\r\n }\r\n\r\n constructor(props: ICittaNewsletterSubscribeProps) {\r\n super(props);\r\n this._EmailAddressInputRef = React.createRef();\r\n this._PrivacyPolicyRef = React.createRef();\r\n this._recaptchaRef = React.createRef();\r\n this._handleSubscribe = this._handleSubscribe.bind(this);\r\n\r\n this.state = {\r\n emailAddress: '',\r\n privacyPolicyChecked: false,\r\n eAValError: false,\r\n eAError: false,\r\n pPCError: 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 };\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps: ICittaNewsletterSubscribeViewProps = {\r\n ...(this.props as ICittaNewsletterSubscribeProps),\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 responseSuccess: this.state.responseSuccess,\r\n userEmail: this._renderHiddenEmailAddress()\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _renderHiddenEmailAddress(): React.ReactNode {\r\n return (\r\n this.userEmail && \r\n {this.userEmail}\r\n );\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 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 emailInput: this._renderEmailInput(),\r\n checkboxPrivacyPolicy: this._renderCheckboxPrivacyPolicy(),\r\n reCaptcha: this._renderReCaptcha(),\r\n subscribeButtton: this._renderSubscribeButton(),\r\n subscribeThanks: this._renderSubscribeThanks()\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 _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

{this.props.config.privacyPolicyText}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 _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 _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 _renderSubscribeThanks(): 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 _handleChange = (name: string) => (e: React.ChangeEvent) => {\r\n const value = e.target.value;\r\n switch (name) {\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 '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, 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 _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 _handleSubscribe(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n this.emailAddressValue = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? true : false;\r\n\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\r\n 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 pPCError: 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._postEmailContact(eA);\r\n\r\n this._clearValues();\r\n this._recaptchaRef.current?.reset();\r\n } catch (e) {\r\n console.log(e, 'Please fill the form!');\r\n }\r\n }\r\n }\r\n }\r\n\r\n private async _postEmailContact(email: string): Promise {\r\n // NB in test the post body will need to look like this: { content: { emailAddress: email } }\r\n\r\n /* tslint:disable */\r\n const response = await MsDyn365.commerceApiRequest(\r\n this.props.context.request,\r\n 'PostContact',\r\n 'post',\r\n {\r\n emailAddress: email,\r\n country: this.props.config.country,\r\n emarsysGroup: this.props.config.emarsysGroup\r\n }\r\n \r\n ) as any;\r\n \r\n this.responseMessage = response?.data.Message;\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 if (response?.data.Result !== 'Error') {\r\n SetCookie(this.props.context.request.cookies, 'HIDE', this._newsletterCookieName, this.props.config.cookieAge || 30* 24 * 60 * 60)\r\n }\r\n /* tslint:enable */\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\r\n if (this._EmailAddressInputRef.current) {\r\n this._EmailAddressInputRef.current!.value = '';\r\n }\r\n }\r\n}\r\n\r\nexport default CittaNewsletterSubscribe;\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 { ICittaNewsletterSubscribeViewProps } from './citta-newsletter-subscribe';\r\n\r\n/**\r\n *\r\n * ICittaProductSkuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ICittaNewsletterSubscribeView extends React.PureComponent {\r\n\r\n public render(): JSX.Element | null {\r\n const { SubscribeWrapper, subscribeResponse, subscribeForm, responseSuccess, userEmail } = this.props;\r\n const { FormWrapper, FormContainer, emailInput, checkboxPrivacyPolicy, subscribeButtton, reCaptcha, subscribeThanks } = subscribeForm;\r\n return (\r\n \r\n {subscribeResponse}\r\n \r\n \r\n {emailInput}\r\n {checkboxPrivacyPolicy}\r\n {reCaptcha}\r\n {responseSuccess ? subscribeThanks : subscribeButtton}\r\n {userEmail}\r\n \r\n \r\n \r\n );\r\n }\r\n}\r\nexport default ICittaNewsletterSubscribeView;\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 * as React from 'react';\r\nimport classnames from 'classnames';\r\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { Image, IImageSettings } from '@msdyn365-commerce/core';\r\nimport { computed } from 'mobx';\r\nimport { ICittaPopUpCopyData } from './citta-pop-up-copy.data';\r\nimport { ICittaPopUpCopyProps } from './citta-pop-up-copy.props.autogenerated';\r\nimport { GetCookie, SetCookie } from '../../shared-utils/cookie-utilities';\r\nexport interface ICittaPopUpCopyState {\r\n cookieValue?: string;\r\n // firstName: string;\r\n // lastName: string;\r\n emailAddress: string;\r\n eAValError: boolean;\r\n eAError: boolean;\r\n fNError: boolean;\r\n lNError: boolean;\r\n rCCError: boolean;\r\n reqError: boolean;\r\n responseError: boolean;\r\n responseSuccess: boolean;\r\n responseReceived: boolean;\r\n showResponseSuccess: boolean;\r\n reCaptchaChecked: boolean;\r\n // firstNameErrorClass: string;\r\n // lastNameErrorClass: string;\r\n emailErrorClass: string;\r\n}\r\n\r\nexport interface ICittaPopUpCopyForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n // firstAndLastNameInput: React.ReactNode;\r\n emailInput: React.ReactNode;\r\n reCaptcha: React.ReactNode;\r\n subscribeButtton: React.ReactNode;\r\n subscribeThanks: React.ReactNode;\r\n}\r\nexport interface ICittaPopUpCopyViewProps extends ICittaPopUpCopyProps {\r\n message: String;\r\n image: Image;\r\n cookieValue: string;\r\n closeButton: INodeProps\r\n MessageTextProps: INodeProps;\r\n ImageTextProps: INodeProps;\r\n isMobile: boolean;\r\n SubscribeWrapper: IModuleProps;\r\n subscribeForm:ICittaPopUpCopyForm;\r\n subscribeResponse: React.ReactNode;\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\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n/**\r\n *\r\n * CittaPopUpCopy component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaPopUpCopy extends React.PureComponent, ICittaPopUpCopyState> {\r\n // private _FirstNameInputRef: React.RefObject;\r\n // private _LastNameInputRef: React.RefObject;\r\n private _EmailAddressInputRef: 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\r\n @computed get isMobile(): boolean {\r\n return (this._viewport === 'xs' || this._viewport === 'sm');\r\n }\r\n private _viewport: GridSize;\r\n private _internationalCookieName: string = 'cittainternational';\r\n private _timer: any;\r\n\r\n constructor(props: ICittaPopUpCopyProps) {\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._recaptchaRef = React.createRef();\r\n const cookieValue = GetCookie(props.context.request.cookies, this._internationalCookieName);\r\n this._viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this._handleSubmit = this._handleSubmit.bind(this);\r\n\r\n this.state = {\r\n cookieValue,\r\n // firstName: '',\r\n // lastName: '',\r\n emailAddress: '',\r\n fNError: false,\r\n lNError: false,\r\n eAError: false,\r\n eAValError: 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 };\r\n \r\n this._updateViewport = this._updateViewport.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (MsDyn365.msdyn365Commerce.isBrowser && window.addEventListener) {\r\n window.addEventListener('resize', this._updateViewport);\r\n this._updateViewport();\r\n }\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n if (MsDyn365.msdyn365Commerce.isBrowser && window.removeEventListener) {\r\n window.removeEventListener('resize', this._updateViewport);\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {\r\n context\r\n } = this.props;\r\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\r\n\r\n if (this.state.cookieValue !== 'HIDE') {\r\n this.checkCookie();\r\n }\r\n\r\n if (this.state.cookieValue === 'HIDE' || !isConsentGiven) {\r\n this.stopTimer();\r\n return null;\r\n }\r\n\r\n const viewprops = {\r\n ...this.props,\r\n image: this._renderImage(),\r\n message: this._renderMessage(),\r\n closeButton: this._renderCloseLink(),\r\n SubscribeWrapper: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName, this.props.config.className)\r\n },\r\n\r\n isMobile: this.isMobile,\r\n MessageTextProps: { className: 'ms-message__content' },\r\n ImageTextProps: { className: 'ms-image__content' },\r\n cookieValue: this.state.cookieValue,\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 _renderImage(): React.ReactNode {\r\n const gridSettings = this.props.context.request.gridSettings;\r\n\r\n let defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=480&h=680&m=6`, w: 0, h: 0 },\r\n lg: { q: `w=480&h=680&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=480&h=680&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n let image = this.props.config.desktopImage;\r\n // if (this.isMobile) {\r\n // image = this.props.config.mobileImage;\r\n // defaultImageSettings = {\r\n // viewports: {\r\n // xs: { q: `w=680&h=480&m=6`, w: 0, h: 0 },\r\n // lg: { q: `w=680&h=480&m=6`, w: 0, h: 0 },\r\n // },\r\n // lazyload: true\r\n // };\r\n // } \r\n\r\n return (\r\n
\r\n {this.isMobile? null :\r\n }\r\n
\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(): ICittaPopUpCopyForm {\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 subscribeButtton: this._renderSubmitButton(),\r\n subscribeThanks: this._renderSubmitThanks(),\r\n reCaptcha: this._renderReCaptcha(),\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\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 || 'subscribe'}\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 });\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 _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 \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});\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 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 _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\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\r\n const recaptchaValue = this._recaptchaRef.current?.getValue();\r\n // console.log('recaptchaValue', recaptchaValue, this._recaptchaRef.current);\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.emailAddressValue) {\r\n 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);\r\n await this._postEntry(eA);\r\n\r\n this._clearValues();\r\n this._recaptchaRef.current?.reset();\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\r\n // private async _postEntry(firstName: string, lastName: string, email: string): Promise {\r\n private async _postEntry(email: string): Promise {\r\n // NB in test the post body will need to look like this: { content: { emailAddress: email } }\r\n /* tslint:disable */\r\n\r\n let emarsysGroupId = this.props.config.emarsysGroupId;\r\n \r\n const response = await MsDyn365.commerceApiRequest(\r\n this.props.context.request,\r\n 'PostPopUpCopy',\r\n 'post',\r\n {\r\n // firstName: firstName,\r\n // lastName: lastName,\r\n emailAddress: email,\r\n country: this.props.config.country,\r\n emarsysGroupId: emarsysGroupId,\r\n optIn:true\r\n }\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(this._setCookie, 1500)\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 \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 }\r\n\r\n private _renderMessage(): React.ReactNode {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n }\r\n\r\n private checkCookie = () => {\r\n if(!this._timer) {\r\n this._timer = setInterval(()=> {\r\n const cookieValue = GetCookie(this.props.context.request.cookies, this._internationalCookieName);\r\n if (cookieValue === 'HIDE') {\r\n this.setState({cookieValue: cookieValue })\r\n }\r\n }, 1000)\r\n }\r\n }\r\n\r\n private stopTimer = () => {\r\n clearInterval(this._timer);\r\n }\r\n\r\n private _renderCloseLink = () => {\r\n return (\r\n this._setCookie()}\r\n >x\r\n )\r\n };\r\n\r\n private _setCookie = () => {\r\n const { config } = this.props;\r\n this.setState({cookieValue: 'HIDING'})\r\n SetCookie(this.props.context.request.cookies, 'HIDE', this._internationalCookieName, config.cookieAge || 2592000)\r\n setTimeout(() => {\r\n this.setState({cookieValue: 'HIDE'})\r\n }, 3000)\r\n }\r\n\r\n private _getViewport(): GridSize {\r\n const { context } = this.props;\r\n\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\r\n if (MsDyn365.msdyn365Commerce.isBrowser && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n\r\n return 'lg';\r\n }\r\n\r\n private _updateViewport(): void {\r\n this._viewport = this._getViewport();\r\n }\r\n}\r\n\r\nexport default CittaPopUpCopy;\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 * as React from 'react';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport { ICittaPopUpCopyViewProps } from './citta-pop-up-copy';\r\n\r\nexport default (props: ICittaPopUpCopyViewProps) => {\r\n const {\r\n message,\r\n closeButton,\r\n image,\r\n cookieValue,\r\n MessageTextProps,\r\n isMobile,\r\n ImageTextProps,\r\n subscribeForm,\r\n SubscribeWrapper,\r\n subscribeResponse,\r\n responseSuccess,\r\n showResponseSuccess,\r\n formErrors,\r\n formErrorsNodeProps,\r\n successResponseNodeProps,\r\n showSuccessResponse,\r\n successResponse\r\n } = props;\r\n\r\n const {\r\n FormWrapper,\r\n FormContainer,\r\n // firstAndLastNameInput,\r\n emailInput,\r\n subscribeButtton,\r\n subscribeThanks,\r\n reCaptcha,\r\n } = subscribeForm;\r\n\r\n return (\r\n
\r\n
\r\n
\r\n {closeButton}\r\n
\r\n
\r\n {image &&

{image}

}\r\n {message && \r\n

{message}

\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 {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\n
\r\n );\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};","// @ts-nockeck\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\n// @ts-nockeck\r\nimport { ISitePickerViewProps } from '@msdyn365-commerce-modules/site-picker/src/modules/site-picker/./site-picker';\r\nimport { Button, Module, Popover } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { GetCookie, SetCookie } from '../../../shared-utils/cookie-utilities';\r\n\r\ninterface ISitePickerState {\r\n bottomPopoverOpen: boolean;\r\n requestedMarket: string;\r\n}\r\nenum Market {\r\n NZ = 'NZL',\r\n AU = 'AUS',\r\n US = 'USA'\r\n}\r\nenum MarketShort {\r\n NZL = 'NZ',\r\n AUS = 'AU',\r\n USA = 'US'\r\n}\r\n\r\nconst country = {\r\n NZL:'New Zealand',\r\n AUS:'Australia',\r\n USA: 'United States'\r\n}\r\n\r\n/**\r\n *\r\n * SitePickerView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class SitePickerView extends React.PureComponent {\r\n private _locationInputRef: React.RefObject;\r\n private _cookieExpirationInSeconds: number = this.props.context.app.config.marketPreferenceCookieAge && this.props.context.app.config.marketPreferenceCookieAge || 2592000;\r\n private _cookieName: string = this.props.context.app.config.marketPreferenceCookieName && this.props.context.app.config.marketPreferenceCookieName || '_msdyn365___market_preference';\r\n private _geoCookieName: string = 'd365mkt';\r\n private _hasOpenedCookieName: string = '_msdyn365___market_preference_has_opened';\r\n constructor(props: ISitePickerViewProps) {\r\n super(props);\r\n this._onCountryChange = this._onCountryChange.bind(this);\r\n this._togglePopover = this._togglePopover.bind(this);\r\n this._selectMarket = this._selectMarket.bind(this);\r\n\r\n // refs\r\n this._locationInputRef = React.createRef();\r\n\r\n this.getMarket = this.getMarket.bind(this);\r\n this.state = {\r\n bottomPopoverOpen: false,\r\n requestedMarket: ''\r\n };\r\n }\r\n public componentDidMount(): void {\r\n const hasOpenedCookie = GetCookie(this.props.context.request.cookies, this._hasOpenedCookieName);\r\n\r\n if (!hasOpenedCookie || hasOpenedCookie !== 'true') {\r\n const url = this.props.context.request.url && this.props.context.request.url.requestUrl && this.props.context.request.url.requestUrl.href;\r\n const requestedMarket = this.getMarket(url);\r\n // Auto-trigger if no market cookie saved and has not opened before\r\n const marketCookie = GetCookie(this.props.context.request.cookies, this._cookieName);\r\n if (!marketCookie || (marketCookie && marketCookie !== requestedMarket)) {\r\n this.setState({\r\n bottomPopoverOpen: true,\r\n requestedMarket: requestedMarket\r\n });\r\n }\r\n\r\n SetCookie(this.props.context.request.cookies, 'true', this._hasOpenedCookieName, this._cookieExpirationInSeconds);\r\n } \r\n else {\r\n const url = this.props.context.request.url && this.props.context.request.url.requestUrl && this.props.context.request.url.requestUrl.href;\r\n const requestedMarket = this.getMarket(url);\r\n\r\n this.setState({\r\n requestedMarket: requestedMarket\r\n });\r\n }\r\n }\r\n public render(): JSX.Element | null {\r\n const { SitePicker } = this.props;\r\n const { requestedMarket } = this.state;\r\n\r\n return (\r\n \r\n {this._renderMarketPickerButton()}\r\n {this._renderMarketPickerPopOver(requestedMarket)}\r\n {this._renderMarketPickerMobile(requestedMarket)}\r\n \r\n );\r\n }\r\n private getMarket = (url: string = ''): string => {\r\n let indexOfCountry = 3;\r\n if (url.indexOf('test.') > 0 || url.indexOf('cittab.') > 0) {\r\n indexOfCountry = 4;\r\n }\r\n let market = (url && url.length > 0) \r\n ? (url.indexOf('//') > -1 \r\n ? ((url.split('/')[indexOfCountry] === undefined || url.split('/')[indexOfCountry] === \"nz\"|| (url.split('/')[indexOfCountry].length > 2 && url.split('/')[indexOfCountry].toLowerCase() !== 'international' && url.split('/')[indexOfCountry].toLowerCase() !== 'intl'&& url.split('/')[indexOfCountry].toLowerCase() !== 'us') || url.split('/')[indexOfCountry] === '') \r\n ? Market.NZ \r\n : url.split('/')[indexOfCountry].toUpperCase()) \r\n : Market.NZ) \r\n : '';\r\n\r\n if (market === 'AU') {\r\n market = Market.AU;\r\n } else if (market.toLowerCase() === 'international' || market.toLowerCase() === 'intl' || market.toLowerCase() === 'us') { \r\n market = Market.US;\r\n }\r\n return market;\r\n };\r\n\r\n private _togglePopover(): void {\r\n this.setState({\r\n bottomPopoverOpen: !this.state.bottomPopoverOpen\r\n });\r\n //scroll to bottom.\r\n if(!this.state.bottomPopoverOpen) {\r\n var objDiv = document.getElementsByClassName(\"msc-modal\")[0];\r\n objDiv.scrollTop = objDiv.scrollHeight;\r\n }\r\n }\r\n private _renderMarketPickerButton(): React.ReactNode {\r\n const url = this.props.context.request.url && this.props.context.request.url.requestUrl && this.props.context.request.url.requestUrl.href;\r\n const requestedMarket = this.getMarket(url);\r\n return (\r\n <>\r\n \r\n {'Delivery'}\r\n {country[requestedMarket]}\r\n \r\n {/* {requestedMarket}\r\n */}\r\n \r\n \r\n );\r\n }\r\n private _renderMarketPickerMobile(requestedMarket: string): React.ReactNode {\r\n const siteOptions=this.props.config.siteOptions && this.props.config.siteOptions ;\r\n return (\r\n
\r\n { siteOptions && siteOptions.map((item, index) => (\r\n \r\n
\r\n {this._mapCountryName(item.siteName)}\r\n
\r\n \r\n ))\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _mapCountryName(siteName?: string): string {\r\n return siteName && country[siteName] || country['INT'];\r\n }\r\n\r\n private _renderMarketPickerPopOver(requestedMarket: string): React.ReactNode {\r\n const siteOptions=this.props.config.siteOptions && this.props.config.siteOptions;\r\n return (\r\n \r\n\r\n
\r\n

Select your delivery country

\r\n { siteOptions && siteOptions.map((item, index) => (\r\n \r\n
\r\n {this._mapCountryName(item.siteName)}\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 _selectMarket(event: React.MouseEvent): void {\r\n event.preventDefault();\r\n const redirectUrl = event.currentTarget.href;\r\n let market = Market.NZ;\r\n \r\n if(event.currentTarget.text === 'Australia') {\r\n market = Market.AU;\r\n } else if(event.currentTarget.text === 'United States') {\r\n market = Market.US;\r\n } else {\r\n market = Market.NZ;\r\n }\r\n const url = this.props.context.request.url && this.props.context.request.url.requestUrl && this.props.context.request.url.requestUrl.href;\r\n const requestedMarket = this.getMarket(url);\r\n if (market && market === requestedMarket) {\r\n // SAVE COOKIE ANYWAY\r\n SetCookie(this.props.context.request.cookies, market, this._cookieName, this._cookieExpirationInSeconds);\r\n SetCookie(this.props.context.request.cookies, 'false', this._hasOpenedCookieName, this._cookieExpirationInSeconds);\r\n SetCookie(this.props.context.request.cookies, MarketShort[market], this._geoCookieName, this._cookieExpirationInSeconds)\r\n let url = redirectUrl.split('?')[0]\r\n SetCookie(this.props.context.request.cookies, url, '_msdyn365___site_', this._cookieExpirationInSeconds)\r\n\r\n this._togglePopover();\r\n return;\r\n }\r\n this._onCountryChange(market, redirectUrl);\r\n }\r\n private _onCountryChange(market: Market, redirectUrl:string): void {\r\n if (market) {\r\n !this.props.context.request.cookies.isConsentGiven() && this.props.context.request.cookies.setConsentCookie();\r\n SetCookie(this.props.context.request.cookies, market, this._cookieName, this._cookieExpirationInSeconds);\r\n SetCookie(this.props.context.request.cookies, MarketShort[market], this._geoCookieName, this._cookieExpirationInSeconds)\r\n let url = redirectUrl.split('?')[0]\r\n SetCookie(this.props.context.request.cookies, url, '_msdyn365___site_', this._cookieExpirationInSeconds)\r\n window.location.assign(redirectUrl);\r\n }\r\n }\r\n}\r\nexport default SitePickerView;\r\n"],"names":["CittaNewsletterSubscribePopUp","React","constructor","props","super","_newsletterCookieName","checkCookie","this","_timer","setInterval","cookieValue","GetCookie","context","request","cookies","setState","setTimeout","stopTimer","clearInterval","_renderCloseLink","Button","className","color","onClick","_setCookie","config","SetCookie","cookieAge","state","render","slots","isConsentGiven","newsletterSubscribe","length","telemetry","error","viewprops","_objectSpread","message","header","closeButton","MessageTextProps","HeaderTextProps","renderView","Node","Object","assign","CittaNewsletterSubscribe","emailAddressValue","formInputValues","moduleClassName","onRecaptchaChange","value","reCaptchaChecked","rCCError","_handleChange","name","e","target","emailAddress","eAError","reqError","eAValError","pPCError","isChecked","_PrivacyPolicyRef","current","checked","recaptchaWrapper","document","querySelector","classList","toggle","privacyPolicyChecked","console","log","_isEmailValid","email","test","_EmailAddressInputRef","_recaptchaRef","_handleSubscribe","bind","responseReceived","responseError","responseSuccess","userEmail","_this$props$data$acco","customer","data","accountInformation","result","Email","viewProps","SubscribeWrapper","moduleProps","classnames","subscribeResponse","_getSubscribeResponse","subscribeForm","_renderForm","_renderHiddenEmailAddress","style","display","responseMessage","FormWrapper","FormContainer","emailInput","_renderEmailInput","checkboxPrivacyPolicy","_renderCheckboxPrivacyPolicy","reCaptcha","_renderReCaptcha","subscribeButtton","_renderSubscribeButton","subscribeThanks","_renderSubscribeThanks","_renderAlert","ref","type","onChange","required","placeholder","emailInputPlaceholder","id","privacyPolicyText","href","privacyPolicyLink","reCaptchaOption","_renderRecaptchaAlert","ReCAPTCHA","sitekey","reCaptchaSiteKey","recaptchaErrorMessage","resources","role","title","subscribeButtonLabel","async","eA","eAVal","_this$_recaptchaRef$c","_postEmailContact","_clearValues","reset","response","MsDyn365","country","emarsysGroup","Message","Result","__decorate","computed","ICittaNewsletterSubscribeView","Module","CittaPopUpCopy","_internationalCookieName","_showErrors","emailErrorClass","_checkEmailError","_renderErrors","emailError","_viewport","device","Type","_handleSubmit","fNError","lNError","showResponseSuccess","_updateViewport","isMobile","componentDidMount","isBrowser","window","addEventListener","componentWillUnmount","removeEventListener","image","_renderImage","_renderMessage","ImageTextProps","_getSubmitResponse","formErrors","formErrorsNodeProps","successResponse","_renderSuccessResponse","showSuccessResponse","successResponseNodeProps","gridSettings","defaultImageSettings","viewports","xs","q","w","h","lg","xl","lazyload","desktopImage","Image","altText","imageSettings","loadFailureBehavior","successTextResponse","_renderSubmitButton","_renderSubmitThanks","size","_submit","submitButtonLabel","execute","_this$_recaptchaRef$c2","recaptchaValue","getValue","_this$_recaptchaRef$c3","_this$_recaptchaRef$c6","_postEntry","_this$_recaptchaRef$c5","_this$_recaptchaRef$c4","emarsysGroupId","optIn","dangerouslySetInnerHTML","getRichTextHtml","popoverMessage","_getViewport","innerWidth","sm","md","cookie","cookieName","marketCookie","get","exp","set","path","maxAge","Market","MarketShort","NZL","AUS","USA","SitePickerView","_cookieExpirationInSeconds","app","marketPreferenceCookieAge","_cookieName","marketPreferenceCookieName","_geoCookieName","_hasOpenedCookieName","getMarket","url","arguments","undefined","indexOfCountry","indexOf","market","split","toLowerCase","NZ","toUpperCase","AU","US","_onCountryChange","_togglePopover","_selectMarket","_locationInputRef","bottomPopoverOpen","requestedMarket","hasOpenedCookie","requestUrl","SitePicker","_renderMarketPickerButton","_renderMarketPickerPopOver","_renderMarketPickerMobile","objDiv","getElementsByClassName","scrollTop","scrollHeight","innerRef","siteOptions","map","item","index","siteName","siteRedirectUrl","destinationUrl","_mapCountryName","Popover","placement","isOpen","event","preventDefault","redirectUrl","currentTarget","text","setConsentCookie","location"],"sourceRoot":""}