{"version":3,"sources":["webpack:///./src/modules/citta-competition-form/citta-competition-form.view.tsx?e1a9","webpack:///src/modules/iframe/iframe.tsx?d14a","webpack:///src/modules/cookie-compliance/components/accept-button.tsx?1709","webpack:///src/modules/cookie-compliance/components/links.tsx?807e","webpack:///src/modules/cookie-compliance/cookie-compliance.tsx?5f7e","webpack:///src/modules/spacer/spacer.tsx?3b03","webpack:///src/modules/iframe/iframe.view.tsx?dd86","webpack:///src/modules/spacer/spacer.view.tsx?bd25","webpack:///./src/themes/citta/views/reviews-list.view.tsx?2192","webpack:///./src/modules/citta-anchor/citta-anchor.view.tsx?6865","webpack:///./src/themes/citta/views/sign-up.view.tsx?449e","webpack:///./src/modules/citta-competition-form/citta-competition-form.tsx?6d47","webpack:///./src/themes/citta/views/media-gallery.view.tsx?cae3","webpack:///src/modules/cookie-compliance/cookie-compliance.view.tsx?b30b","webpack:///./src/modules/citta-anchor/citta-anchor.tsx?8f98"],"names":["ICittaCompetitionFormView","React","render","SubscribeWrapper","subscribeResponse","subscribeForm","responseSuccess","showResponseSuccess","formErrors","formErrorsNodeProps","successResponseNodeProps","showSuccessResponse","successResponse","this","props","FormWrapper","FormContainer","firstAndLastNameInput","emailInput","countryInput","additionalTextInput","checkboxTermsAndConditions","checkboxPrivacyPolicy","subscribeButtton","reCaptcha","subscribeThanks","Module","Object","assign","Node","Iframe","constructor","super","iframeRef","config","resources","isConsentGiven","context","request","cookies","target","destinationUrl","srcURL","URL","error","telemetry","exception","protocol","toLocaleLowerCase","iframeClassName","classnames","className","viewProps","_objectSpread","Heading","_createHeading","heading","IframeContainer","moduleProps","IFrame","_createIframe","cookieConsentAccepted","alert","_renderAlert","cookieConsentRequiredMessage","renderView","text","length","message","role","targetURL","src","height","iframeAriaLabel","ref","CookieComplianceAcceptButton","_ref","acceptCookiesButtonText","acceptCookiesButtonAriaLabel","telemetryContent","onClose","payLoad","getPayloadObject","attributes","getTelemetryAttributes","type","onClick","CookieComplianceLinks","_mapEditableLinks","linkdata","editableLinks","forEach","link","index","linkText","contentAction","etext","editableLink","ariaLabel","linkUrl","openInNewTab","additionalProperties","onTelemetryClick","push","links","Msdyn365","editProps","onTextChange","requestContext","CookieCompliance","getTelemetryObject","telemetryPageName","friendlyName","handleLinkTextChange","linkIndex","event","_this$props$config$ac","actionLinks","value","handleContentChange","content","state","visible","cookieRef","_onDismiss","bind","componentDidMount","setState","acceptCookiesAriaLabel","moduleConfig","MsDyn365","isBrowser","onDismiss","CookieComplianceBanner","AlertProps","color","fade","Content","onEdit","ArrayExtensions","hasElements","acceptButton","setConsentCookie","location","reload","Spacer","spacerClass","spacerHeight","IFrameView","SpacerView","id","renderModuleAttributes","buildReviewCard","cardProps","headerProps","rating","name","date","cardBodyProps","reviewProps","reviewTitle","reviewText","responseProps","responseName","responseDate","responseText","controlsProps","ratingHelpfulLabel","like","dislike","edit","report","createReviewModal","modal","modalHeader","modalBody","form","inputRow","ratingLabel","titleLabel","titleInput","textLabel","textInput","privacyPolicyUrl","modalFooter","submitButton","cancelButton","createReportModal","reported","headerSubmitted","header","reportSubmittedMessage","reportMessage","radioButtons","succesfulButton","ReviewsListview","averageRating","filterByDropdown","noReviewsMessage","noReviewsWithFilterMessage","pageControls","refineReviewsProps","reportReviewModal","reviewsListProps","reviewCards","reviewCount","reviewModal","sortByDropdown","userReview","isFilterApplied","map","review","Anchor","SignUpItem","wrapper","label","errorMessage","input","SignUpEmailVerification","_ref2","email","buttonWrapper","buttons","successMessage","button","SignUpLoading","_ref4","icon","SignUpView","signUp","viewState","loading","defaultAADConainer","aadConainer","signUpLocalAccount","signUpInput","isShowLoading","_ref3","localAccount","items","emailVerification","disclaimer","item","key","isRequired","LocalAccount","CittaCompetitionForm","firstNameValue","lastNameValue","emailAddressValue","formInputValues","moduleClassName","onRecaptchaChange","reCaptchaChecked","rCCError","_onEditMessage","charactersLeft","textArea","_AdditionalTextInputRef","current","messageEnterd","charactersLimit","additionalTextCharactersLimit","which","preventDefault","substring","additionalText","_showErrors","emailErrorClass","_checkEmailError","firstNameErrorClass","_FirstNameInputRef","lastNameErrorClass","_LastNameInputRef","tsCsErrorClass","_TermsAndContitionsRef","checked","_EmailAddressInputRef","_isEmailValid","_renderErrors","firstNameError","lastNameError","emailError","tsCsError","_handleChange","e","firstName","fNError","reqError","eAValError","lastName","lNError","emailAddress","eAError","country","isChecked","recaptchaWrapper","document","querySelector","classList","toggle","termsAndContitionsChecked","_PrivacyPolicyRef","privacyPolicyChecked","console","log","test","_recaptchaRef","_handleSubmit","responseReceived","responseError","Number","messageCharactersLimit","_getSubmitResponse","_renderForm","_renderSuccessResponse","responseMessage","successTextResponse","_renderFirstAndLastNameInput","_renderEmailInput","_renderCountryInput","_renderAdditionalTextInput","_renderCheckboxTermsAndConditions","_renderCheckboxPrivacyPolicy","_renderReCaptcha","_renderSubmitButton","_renderSubmitThanks","onChange","placeholder","firstNamePlaceholderText","required","lastNamePlaceholderText","onKeyUp","additionalTextPlaceholderText","rows","messageCharactersLimitLeftText","emailInputPlaceholder","termsAndConditionsText","href","termsAndConditionsLink","privacyPolicyText","privacyPolicyLink","reCaptchaOption","_renderRecaptchaAlert","ReCAPTCHA","sitekey","reCaptchaSiteKey","recaptchaErrorMessage","Button","title","submitButtonLabel","fN","lN","aT","eA","cT","eAVal","oI","_this$_recaptchaRef$c","_postEntry","_clearValues","reset","optIn","params","URLSearchParams","window","search","get","emarsysGroupId","emarsysCompetitionGroupId","emarsysGroupIdAdditionalText","emarsysStoreNameGroupId","emarsysGroupIdAU","emarsysCompetitionGroupIdAU","emarsysGroupIdAdditionalTextAU","emarsysStoreNameGroupIdAU","response","storeName","data","Message","Result","renderThumbnailItem","thumbnail","ThumbnailItemContainerProps","Picture","createElement","GetThumbnailItemComponent","image","imageSettings","imageId","modifiedActiveIndex","_props$config$thumbna","tag","altText","onKeyDown","_props$callbackToggle","_props$callbackThumbn","keyCode","KeyCodes","Enter","callbackToggle","call","callbackThumbnailClick","activeIndex","Image","actionContext","gridSettings","thumbnailImageSettings","loadFailureBehavior","GetEmptyThumbnailItemComponent","_props$config$thumbna2","tabIndex","defaultThumbnailImageSettings","viewports","xs","q","w","h","xl","lazyload","cropFocalRegion","mediaGalleryView","CarouselProps","Thumbnails","MediaGallery","Modal","renderThumbnails","thumbnails","ThumbnailsContainerProps","SingleSlideCarouselComponentProps","mediaGalleryItems","getMediaGalleryItems","lastUpdate","CookieComplianceView","Alert","CittaAnchor","anchorId","anchorName","replace"],"mappings":"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","file":"static/js/15.6830af2f24e98035a49f.chunk.js","sourcesContent":["/*!\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 { ICittaCompetitionFormViewProps } from './citta-competition-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 countryInput,\r\n additionalTextInput,\r\n checkboxTermsAndConditions,\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 {emailInput}\r\n {additionalTextInput}\r\n {countryInput}\r\n {checkboxTermsAndConditions}\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 ICittaCompetitionFormView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Heading, IModuleProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IHeadingData, IIframeConfig, IIframeProps } from './iframe.props.autogenerated';\n\nexport interface IIframeViewProps extends IIframeProps {\n Heading: React.ReactNode;\n IframeContainer: IModuleProps;\n IFrame: React.ReactNode;\n alert?: React.ReactNode;\n cookieConsentAccepted?: boolean;\n}\n\n/**\n *\n * Iframe component.\n * @extends {React.PureComponent}\n */\nclass Iframe extends React.PureComponent> {\n private readonly iframeRef: React.RefObject;\n\n constructor(props: IIframeProps) {\n super(props);\n this.iframeRef = React.createRef();\n }\n\n public render(): JSX.Element | null {\n const { config, resources } = this.props;\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!(config && config.target && config.target.destinationUrl)) {\n return null;\n }\n\n let srcURL;\n try {\n srcURL = new URL(config.target.destinationUrl);\n } catch (error) {\n this.props.telemetry.exception(error);\n return null;\n }\n\n if (srcURL && srcURL.protocol && srcURL.protocol.toLocaleLowerCase() !== 'https:') {\n return null;\n }\n const iframeClassName = classnames('ms-iframe', config.className);\n\n let viewProps: IIframeViewProps = {\n ...(this.props as IIframeProps),\n Heading: this._createHeading(config.heading!),\n IframeContainer: {\n moduleProps: this.props,\n className: iframeClassName\n },\n IFrame: this._createIframe()\n };\n\n if (!isConsentGiven) {\n viewProps = {\n ...viewProps,\n alert: this._renderAlert(resources.cookieConsentRequiredMessage)\n };\n } else {\n viewProps = {\n ...viewProps,\n cookieConsentAccepted: true\n };\n }\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return ;\n }\n\n private _renderAlert(message: string): React.ReactNode | null {\n return (\n

\n {message}\n

\n );\n }\n\n private _createIframe(): React.ReactNode | null {\n const { config } = this.props;\n const targetURL = config.target.destinationUrl;\n\n return (\n \n );\n }\n}\n\nexport default Iframe;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getPayloadObject, getTelemetryAttributes, IPayLoad, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nexport interface ICookieComplianceAcceptButton {\n acceptCookiesButtonText?: string;\n acceptCookiesButtonAriaLabel?: string;\n\n /**\n * The telemetry content\n */\n telemetryContent?: ITelemetryContent;\n onClose(): void;\n}\n\nexport const CookieComplianceAcceptButton: React.FC = ({\n acceptCookiesButtonText,\n acceptCookiesButtonAriaLabel,\n telemetryContent,\n onClose\n}) => {\n const payLoad: IPayLoad = getPayloadObject('click', telemetryContent!, 'accept cookies');\n const attributes = getTelemetryAttributes(telemetryContent!, payLoad);\n\n return (\n \n {acceptCookiesButtonText}\n \n );\n};\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IActionLinksData } from '../cookie-compliance.props.autogenerated';\n\nexport interface ICookieComplianceLinks {\n links: IActionLinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class CookieComplianceLinks extends React.PureComponent {\n public render(): JSX.Element {\n const editableLinks = this._mapEditableLinks(this.props.links);\n return (\n \n {editableLinks && editableLinks.length > 0 ? (\n \n ) : null}\n \n );\n }\n\n private readonly _mapEditableLinks = (linkdata: IActionLinksData[]): Msdyn365.ILinksData[] | null => {\n if (!linkdata || linkdata.length === 0) {\n return null;\n }\n const editableLinks: Msdyn365.ILinksData[] = [];\n linkdata.forEach((link, index) => {\n // Construct telemetry attribute to render\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\n const linkText = link.linkText ? link.linkText : '';\n payLoad.contentAction.etext = linkText;\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'link',\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\n\nexport default CookieComplianceLinks;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as MsDyn365 from '@msdyn365-commerce/core';\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { getTelemetryObject, IAlertProps, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { CookieComplianceAcceptButton, CookieComplianceLinks } from './components';\nimport { ICookieComplianceConfig, ICookieComplianceProps } from './cookie-compliance.props.autogenerated';\n\n/**\n * Alert state interface.\n */\nexport interface IAlertState {\n visible: boolean;\n}\n\n/**\n * Cookie compliance view props interface.\n */\nexport interface ICookieComplianceViewProps extends ICookieComplianceProps<{}> {\n CookieComplianceBanner: IModuleProps;\n AlertProps: IAlertProps;\n Content: INodeProps;\n text?: React.ReactNode;\n links?: React.ReactNode;\n acceptButton?: React.ReactNode;\n className: string;\n onDismiss(): void;\n}\n\n/**\n *\n * CookieCompliance component.\n * @extends {React.PureComponent>}\n */\nclass CookieCompliance extends React.PureComponent, IAlertState> {\n private readonly cookieRef: React.RefObject;\n\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public constructor(props: ICookieComplianceProps) {\n super(props);\n this.state = { visible: false };\n this.cookieRef = React.createRef();\n this._onDismiss = this._onDismiss.bind(this);\n }\n\n public componentDidMount(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies && !context.request.cookies.isConsentGiven()) {\n this.setState({ visible: true });\n }\n }\n\n public render(): JSX.Element | null {\n const { config, context, resources, telemetry } = this.props;\n const { acceptCookiesButtonText, acceptCookiesAriaLabel } = resources;\n const { visible } = this.state;\n\n const isConsentGiven = context && context.request && context.request.cookies && context.request.cookies.isConsentGiven();\n let moduleConfig: ICookieComplianceConfig;\n\n try {\n moduleConfig = config;\n } catch (error) {\n telemetry.error(`Something went wrong while rendering the alert module ------${error}`);\n return
{error}
;\n }\n\n if (isConsentGiven && !visible) {\n this.props.context.telemetry.error('Cookie Compliance content is empty, module wont render.');\n return null;\n }\n\n if (!MsDyn365.msdyn365Commerce.isBrowser) {\n return <>;\n }\n\n const viewProps = {\n ...this.props,\n onDismiss: this._onDismiss,\n CookieComplianceBanner: {\n moduleProps: this.props,\n className: classnames('ms-cookie-compliance', moduleConfig.className),\n ref: this.cookieRef\n },\n AlertProps: {\n className: 'ms-cookie-compliance__container',\n color: 'white',\n fade: false\n },\n Content: {\n className: 'ms-cookie-compliance__content'\n },\n text: moduleConfig.content && (\n \n ),\n links: ArrayExtensions.hasElements(moduleConfig.actionLinks) && (\n \n ),\n acceptButton: (\n \n )\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handles Link content change event.\n * @param linkIndex - Index of link in linkarray.\n * @returns Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: MsDyn365.ContentEditableEvent): void => {\n if (this.props.config.actionLinks?.[linkIndex]) {\n this.props.config.actionLinks[linkIndex].linkText = event.target.value;\n }\n };\n\n /**\n * Handles content change event.\n * @param event - Event.\n */\n public handleContentChange = (event: MsDyn365.ContentEditableEvent): void => {\n this.props.config.content = event.target.value;\n };\n\n private _onDismiss(): void {\n const { context } = this.props;\n\n if (context && context.request && context.request.cookies) {\n context.request.cookies.setConsentCookie();\n location.reload();\n }\n this.setState({ visible: false });\n }\n}\n\nexport default CookieCompliance;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISpacerProps } from './spacer.props.autogenerated';\n\nexport interface ISpacerViewProps extends ISpacerProps<{}> {\n className?: string;\n}\n\n/**\n *\n * SpacerModule component.\n * @extends {React.PureComponent}\n */\nclass Spacer extends React.PureComponent> {\n public render(): JSX.Element | null {\n const { className } = this.props.config;\n const spacerClass = this.props.config.spacerHeight ? `ms-${this.props.config.spacerHeight}` : 'ms-spacer';\n const viewProps = {\n // Context for telemetry and raw data for C1 to do customization\n // Including computed data, state data and methods\n ...this.props,\n className: (className && classnames(spacerClass, className)) || spacerClass\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n}\n\nexport default Spacer;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IIframeViewProps } from './iframe';\n\n/**\n *\n * IFrameView component.\n * @extends {React.PureComponent}\n */\nexport class IFrameView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { Heading, IframeContainer, IFrame, alert, cookieConsentAccepted } = this.props;\n\n return (\n \n {alert}\n {cookieConsentAccepted && cookieConsentAccepted ? (\n <>\n {Heading}\n {IFrame}\n \n ) : null}\n \n );\n }\n}\nexport default IFrameView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as React from 'react';\n\nimport { ISpacerViewProps } from './spacer';\n\nconst SpacerView: React.FC = props => (\n
\n);\n\nexport default SpacerView;\n","// @ts-nockeck\r\nimport { IReviewModalViewProps } from '@msdyn365-commerce-modules/ratings-reviews';\r\nimport { IReportReviewModalViewProps, IReviewCardViewProps, IReviewsListState, IReviewsListViewProps } from '@msdyn365-commerce-modules/ratings-reviews/src/modules/reviews-list';\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nconst ReviewsListview: React.FC = props => {\r\n const {\r\n averageRating,\r\n filterByDropdown,\r\n moduleProps,\r\n noReviewsMessage,\r\n noReviewsWithFilterMessage,\r\n pageControls,\r\n refineReviewsProps,\r\n reportReviewModal,\r\n reviewsListProps,\r\n reviewCards,\r\n reviewCount,\r\n reviewModal,\r\n sortByDropdown,\r\n state,\r\n userReview\r\n } = props;\r\n\r\n if (!userReview && reviewCards.length === 0 && !state.isFilterApplied) {\r\n return {noReviewsMessage};\r\n }\r\n\r\n return (\r\n \r\n {averageRating}\r\n {reviewCount}\r\n \r\n {sortByDropdown}\r\n {filterByDropdown}\r\n \r\n \r\n {userReview && buildReviewCard(userReview)}\r\n {reviewCards.map(review => {\r\n return buildReviewCard(review);\r\n })}\r\n \r\n { reviewCards.length === 0 && state.isFilterApplied && noReviewsWithFilterMessage}\r\n {pageControls}\r\n {createReviewModal(reviewModal)}\r\n {createReportModal(reportReviewModal, state)}\r\n \r\n );\r\n};\r\n\r\nconst buildReviewCard = (props: IReviewCardViewProps) => {\r\n return (\r\n \r\n \r\n {props.rating}\r\n {props.name}\r\n {props.date}\r\n \r\n \r\n \r\n {props.reviewTitle}\r\n {props.reviewText}\r\n \r\n \r\n {props.responseName}\r\n {props.responseDate}\r\n {props.responseText}\r\n \r\n \r\n {props.ratingHelpfulLabel}\r\n {props.like}\r\n {props.dislike}\r\n {props.edit}\r\n {props.report}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst createReviewModal = (props: IReviewModalViewProps): JSX.Element => {\r\n return (\r\n \r\n {props.modalHeader}\r\n \r\n \r\n \r\n {props.rating}\r\n {props.ratingLabel}\r\n \r\n \r\n {props.titleLabel}\r\n {props.titleInput}\r\n \r\n \r\n {props.textLabel}\r\n {props.textInput}\r\n \r\n {props.privacyPolicyUrl}\r\n {props.error}\r\n \r\n \r\n \r\n {props.submitButton}\r\n {props.cancelButton}\r\n \r\n \r\n );\r\n};\r\n\r\nconst createReportModal = (props: IReportReviewModalViewProps, state: IReviewsListState): JSX.Element => {\r\n return (\r\n \r\n \r\n {state.reported ? props.headerSubmitted : props.header}\r\n \r\n \r\n {state.reported ? props.reportSubmittedMessage : [props.reportMessage, props.radioButtons, props.error]}\r\n \r\n \r\n {state.reported ? props.succesfulButton : [props.submitButton, props.cancelButton]}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReviewsListview;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\nimport { Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICittaAnchorViewProps } from './citta-anchor';\r\n\r\nexport default (props: ICittaAnchorViewProps) => {\r\n const { Anchor } = props;\r\n return (\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\nimport {IModuleProps, INodeProps, Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ISignUpProps } from '../definition-extensions/sign-up.ext.props.autogenerated';\r\n\r\nexport interface ISignUpInputProps {\r\n signUpLocalAccount:ISignUpLocalAccount;\r\n}\r\n/*\r\n* Added ISignUpViewState, ISignUpViewProps, ISignUpEmailVerification, ISignUpLocalAccount, ISignUpLoading, ISignUpItem\r\n* keys overwritten error is coming if refer to the modules type because of the known issue in the new version of Typescript\r\n*/\r\nexport interface ISignUpViewState {\r\n isShowLoading: boolean;\r\n}\r\nexport interface ISignUpEmailVerification {\r\n isRequired: boolean;\r\n email: ISignUpItem;\r\n buttonWrapper: INodeProps;\r\n buttons: React.ReactNode[];\r\n successMessage: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n}\r\nexport interface ISignUpViewProps {\r\n className: string;\r\n viewState: ISignUpViewState;\r\n loading: ISignUpLoading;\r\n signUp: IModuleProps;\r\n defaultAADConainer: INodeProps;\r\n aadConainer: INodeProps;\r\n heading: React.ReactNode;\r\n signUpLocalAccount: ISignUpLocalAccount;\r\n}\r\nexport interface ISignUpLocalAccount {\r\n localAccount: INodeProps;\r\n items: ISignUpItem[];\r\n emailVerification: ISignUpEmailVerification;\r\n buttons: React.ReactNode[];\r\n errorMessage: React.ReactNode[];\r\n disclaimer: React.ReactNode;\r\n}\r\nexport interface ISignUpLoading {\r\n modal: INodeProps;\r\n modalBody: INodeProps;\r\n icon: React.ReactNode;\r\n message: React.ReactNode;\r\n}\r\nexport interface ISignUpItem {\r\n wrapper: INodeProps;\r\n key: string;\r\n label: React.ReactNode;\r\n errorMessage: React.ReactNode;\r\n input: React.ReactNode;\r\n}\r\nconst SignUpItem: React.FC = ({\r\n wrapper,\r\n label,\r\n errorMessage,\r\n input\r\n}) => {\r\n\r\n return (\r\n \r\n {label}\r\n {errorMessage}\r\n {input}\r\n \r\n );\r\n};\r\n\r\nconst SignUpEmailVerification: React.FC = ({\r\n email,\r\n buttonWrapper,\r\n buttons,\r\n successMessage,\r\n errorMessage,\r\n}) => {\r\n return (\r\n <>\r\n \r\n {successMessage && successMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((message: React.ReactNode) => {\r\n return (\r\n <>\r\n {message}\r\n \r\n );\r\n })}\r\n \r\n {buttons && buttons.map((button: React.ReactNode) => {\r\n return (\r\n <>\r\n {button}\r\n \r\n );\r\n })}\r\n \r\n \r\n );\r\n};\r\n\r\nconst LocalAccount: React.FC = ({\r\n signUpLocalAccount\r\n}) => {\r\n const{\r\n localAccount,\r\n items,\r\n emailVerification,\r\n buttons,\r\n errorMessage,\r\n disclaimer\r\n } = signUpLocalAccount;\r\n return (\r\n \r\n {items && items.map((item: ISignUpItem) => {\r\n if (item.key === 'email' && emailVerification.isRequired) {\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n }\r\n return (\r\n <>\r\n \r\n \r\n );\r\n })}\r\n {errorMessage && errorMessage.map((error: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {error}\r\n \r\n );\r\n })}\r\n {buttons && buttons.map((button: React.ReactNode, index: number) => {\r\n return (\r\n \r\n {button}\r\n \r\n );\r\n })}\r\n {disclaimer}\r\n \r\n );\r\n};\r\n\r\nconst SignUpLoading: React.FC = ({\r\n modal,\r\n modalBody,\r\n icon,\r\n message,\r\n}) => {\r\n return (\r\n \r\n \r\n {icon}\r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nconst SignUpView: React.FC> = props => {\r\n\r\n const {\r\n signUp,\r\n viewState,\r\n loading,\r\n defaultAADConainer,\r\n aadConainer,\r\n heading,\r\n signUpLocalAccount,\r\n } = props;\r\n const signUpInput:ISignUpInputProps = {\r\n signUpLocalAccount\r\n };\r\n return (\r\n \r\n {viewState.isShowLoading && }\r\n {viewState.isShowLoading && }\r\n \r\n {heading}\r\n {LocalAccount(signUpInput)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SignUpView;\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 { ICittaCompetitionFormData } from './citta-competition-form.data';\r\nimport { ICittaCompetitionFormProps } from './citta-competition-form.props.autogenerated';\r\n\r\ninterface ICittaCompetitionFormFormState {\r\n firstName: string;\r\n lastName: string;\r\n emailAddress: string;\r\n country: string;\r\n additionalText: string;\r\n termsAndContitionsChecked: boolean;\r\n privacyPolicyChecked: boolean;\r\n eAValError: boolean;\r\n eAError: boolean;\r\n fNError: boolean;\r\n lNError: boolean;\r\n tsCsError: 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 tsCsErrorClass: string;\r\n}\r\n\r\nexport interface ICittaCompetitionFormForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n firstAndLastNameInput: React.ReactNode;\r\n emailInput: React.ReactNode;\r\n countryInput: React.ReactNode;\r\n additionalTextInput: React.ReactNode;\r\n checkboxTermsAndConditions: 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 ICittaCompetitionFormViewProps extends ICittaCompetitionFormProps {\r\n SubscribeWrapper: IModuleProps;\r\n subscribeResponse: React.ReactNode;\r\n subscribeForm: ICittaCompetitionFormForm;\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 * CittaCompetitionForm component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaCompetitionForm extends React.PureComponent, ICittaCompetitionFormFormState> {\r\n private _FirstNameInputRef: React.RefObject;\r\n private _LastNameInputRef: React.RefObject;\r\n private _EmailAddressInputRef: React.RefObject;\r\n private _AdditionalTextInputRef: React.RefObject;\r\n private _TermsAndContitionsRef: 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: ICittaCompetitionFormProps) {\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._AdditionalTextInputRef = React.createRef();\r\n this._TermsAndContitionsRef = 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 country: 'NZ',\r\n additionalText: '',\r\n termsAndContitionsChecked: false,\r\n privacyPolicyChecked: false,\r\n eAValError: false,\r\n fNError: false,\r\n lNError: false,\r\n eAError: false,\r\n tsCsError: 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 tsCsErrorClass: 'hide'\r\n };\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps: ICittaCompetitionFormViewProps = {\r\n ...(this.props as ICittaCompetitionFormProps),\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 \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(): ICittaCompetitionFormForm {\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 countryInput: this._renderCountryInput(),\r\n additionalTextInput: this._renderAdditionalTextInput(),\r\n checkboxTermsAndConditions: this._renderCheckboxTermsAndConditions(),\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 _renderAdditionalTextInput(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n {`${this.state.charactersLeft} ${this.props.resources.messageCharactersLimitLeftText}`}\r\n
\r\n
\r\n );\r\n }\r\n private _onEditMessage = (event: React.KeyboardEvent): void => {\r\n const charactersLeft: number = this.state.charactersLeft || 0;\r\n const key: string = event.key.length > 1 ? '' : event.key;\r\n const textArea: HTMLTextAreaElement | null = this._AdditionalTextInputRef && this._AdditionalTextInputRef.current && this._AdditionalTextInputRef.current;\r\n const message = this._AdditionalTextInputRef && this._AdditionalTextInputRef.current && this._AdditionalTextInputRef.current.value || '';\r\n let messageEnterd: string = message || key;\r\n const charactersLimit = this.props.config.additionalTextCharactersLimit || 140;\r\n\r\n if (charactersLeft === 0 && event.which !== 8) {\r\n event.preventDefault();\r\n }\r\n if (charactersLeft <= 0) {\r\n messageEnterd = messageEnterd.substring(0, charactersLimit);\r\n textArea!.value = messageEnterd;\r\n }\r\n if (key.length === 1 || event.which === 8 || event.which === 46) {\r\n this.setState({\r\n additionalText: messageEnterd,\r\n charactersLeft: (charactersLimit - messageEnterd.length) >= 0 ? charactersLimit - messageEnterd.length : 0\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 _renderCountryInput() : 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\r\n private _renderAlert(className: string): JSX.Element {\r\n return <>;\r\n }\r\n\r\n private _renderCheckboxTermsAndConditions(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.tsCsError ? this._renderAlert('checkbox-privacy-policy') : ''}\r\n
\r\n \r\n \r\n

{this.props.config.termsAndConditionsText}Terms and Conditions

\r\n
\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.tsCsError ? 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 tsCsErrorClass: (this._TermsAndContitionsRef.current && !this._TermsAndContitionsRef.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.tsCsError}\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, tsCsError: false });\r\n break;\r\n }\r\n case 'lastName': {\r\n this.setState({ lastName: value, lNError: false, reqError: false, eAValError: false, tsCsError: false });\r\n break;\r\n }\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, eAError: false, reqError: false, eAValError: false, tsCsError: false });\r\n break;\r\n }\r\n case 'country': {\r\n this.setState({ country: value, eAError: false, reqError: false, eAValError: false, tsCsError: false });\r\n break;\r\n }\r\n case 'additionalText': {\r\n this.setState({ additionalText: value, reqError: false, eAValError: false, tsCsError: false });\r\n break;\r\n }\r\n case 'termsAndConditions': {\r\n const isChecked = this._TermsAndContitionsRef.current && this._TermsAndContitionsRef.current.checked ? this._TermsAndContitionsRef.current.checked : false;\r\n const recaptchaWrapper = document.querySelector('.recaptcha');\r\n recaptchaWrapper && recaptchaWrapper.classList.toggle('newsletter-recapture-visable', !isChecked);\r\n this.setState({ termsAndContitionsChecked: isChecked, reqError: false, eAValError: false, tsCsError: 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, tsCsError: 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, tsCsError: 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 aT = (this._AdditionalTextInputRef && this._AdditionalTextInputRef.current && this._AdditionalTextInputRef.current.value) ? this._AdditionalTextInputRef.current.value : '';\r\n const eA = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? this._EmailAddressInputRef.current.value : '';\r\n const cT = this.state.country;\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._TermsAndContitionsRef.current!.checked) {\r\n this.setState({\r\n termsAndContitionsChecked: false,\r\n tsCsError: true\r\n });\r\n } else {\r\n this.formInputValues = (this.emailAddressValue) ? true : false;\r\n if (this.formInputValues && this.state.termsAndContitionsChecked && !this.state.eAValError) {\r\n try {\r\n await this._postEntry(fN, lN, eA, aT, oI, cT || 'NZ');\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, additionalText: string, optIn: boolean, country: string): Promise {\r\n const urlSearchParams = new URLSearchParams(window.location.search);\r\n const params = urlSearchParams.get('store');\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 emarsysCompetitionGroupId = this.props.config.emarsysCompetitionGroupId,\r\n emarsysGroupIdAdditionalText = this.props.config.emarsysGroupIdAdditionalText,\r\n emarsysStoreNameGroupId = this.props.config.emarsysStoreNameGroupId;\r\n\r\n if (country === 'AU') {\r\n emarsysGroupId = this.props.config.emarsysGroupIdAU; \r\n emarsysCompetitionGroupId = this.props.config.emarsysCompetitionGroupIdAU;\r\n emarsysGroupIdAdditionalText = this.props.config.emarsysGroupIdAdditionalTextAU;\r\n emarsysStoreNameGroupId = this.props.config.emarsysStoreNameGroupIdAU;\r\n }\r\n\r\n const response = await MsDyn365.commerceApiRequest(\r\n this.props.context.request,\r\n 'PostContactEvent',\r\n 'post',\r\n {\r\n firstName: firstName,\r\n lastName: lastName,\r\n additionalText: additionalText,\r\n emailAddress: email,\r\n country: country,\r\n emarsysGroupId: emarsysGroupId,\r\n emarsysCompetitionGroupId: emarsysCompetitionGroupId,\r\n emarsysGroupIdAdditionalText: emarsysGroupIdAdditionalText,\r\n storeName: params || '',\r\n emarsysStoreNameGroupId: emarsysStoreNameGroupId,\r\n optIn: optIn\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 additionalText: '',\r\n termsAndContitionsChecked: false,\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n\r\n // if (params) {\r\n // setTimeout(() => { \r\n // window.location.reload();\r\n // }, 6000);\r\n // } else {\r\n // const baseUrl = window.location.origin;\r\n // if (baseUrl.length) {\r\n // window.location.assign(`${baseUrl}${this.props.config.successUrl}`);\r\n // }\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 termsAndContitionsChecked: false,\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n }\r\n\r\n // if (response?.data.Result !== 'Error') {\r\n // // const baseUrl = window.location.origin;\r\n // // if (baseUrl.length) {\r\n // // // window.location.assign(`${baseUrl}${this.props.config.successUrl}`);\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 // termsAndContitionsChecked: false,\r\n // reqError: false,\r\n // eAValError: false,\r\n // rCCError: false\r\n // });\r\n // }\r\n /* tslint:enable */\r\n }\r\n\r\n private _clearValues(): void {\r\n if (this._TermsAndContitionsRef.current) {\r\n this._TermsAndContitionsRef.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._PrivacyPolicyRef.current) {\r\n this._PrivacyPolicyRef.current.checked = false;\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._AdditionalTextInputRef.current) {\r\n this._AdditionalTextInputRef.current!.value = '';\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default CittaCompetitionForm;\r\n\r\n\r\n","/*--------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * See License.txt in the project root for license information.\r\n *--------------------------------------------------------------*/\r\n\r\nimport { IImageData, IImageSettings, Image } from '@msdyn365-commerce/core';\r\nimport { IMediaGalleryThumbnailItemViewProps,\r\n IMediaGalleryThumbnailsViewProps,\r\n IMediaGalleryViewProps\r\n} from '@msdyn365-commerce-modules/media-gallery';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { Button, KeyCodes, Module, Node, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport React from 'react';\r\n\r\n/**\r\n * Render the thumbnail item images.\r\n * @param thumbnail - The carousel thumbnail line props.\r\n * @returns Return HTML having thumnailcontainer props with image.\r\n */\r\nconst renderThumbnailItem = (thumbnail: IMediaGalleryThumbnailItemViewProps): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailItemContainerProps, Picture } = thumbnail;\r\n\r\n return (\r\n \r\n {Picture}\r\n \r\n );\r\n};\r\n\r\n/**\r\n * Gets the thumbnail item to display media gallery images.\r\n * @param image - The media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param imageId - Image id.\r\n * @param modifiedActiveIndex - Modified Index of the images when selection changes.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render images.\r\n */\r\nconst GetThumbnailItemComponent = (\r\n image: IImageData,\r\n imageSettings: IImageSettings,\r\n imageId: number,\r\n modifiedActiveIndex: number,\r\n props: IMediaGalleryViewProps\r\n): IMediaGalleryThumbnailItemViewProps => {\r\n\r\n /**\r\n * OnClick method of media gallery item.\r\n * */\r\n const onClick = () => {\r\n // @ts-ignore\r\n props.callbackToggle?.();\r\n // @ts-ignore\r\n props.callbackThumbnailClick?.(imageId);\r\n props.state.activeIndex = imageId;\r\n };\r\n\r\n const classes = classnames(\r\n 'ms-media-gallery__thumbnail-item',\r\n modifiedActiveIndex === imageId ? 'ms-media-gallery__thumbnail-item-active' : ''\r\n );\r\n\r\n /**\r\n * Keydown event of media gallery item.\r\n * @param event - React.KeyboardEvent.\r\n * */\r\n const handleKeyDown = (event: React.KeyboardEvent) => {\r\n if (event.keyCode === KeyCodes.Enter) {\r\n event.preventDefault();\r\n onClick();\r\n }\r\n };\r\n\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: classes,\r\n role: 'presentation',\r\n key: imageId\r\n },\r\n Picture: (\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 * Gets the empty thumbnail item to display media gallery images.\r\n * @param imageSettings - Image settings for the image gallery items.\r\n * @param props - The Media gallery view props from business layer.\r\n * @returns Return thumbnail view props which will be used to render empty images.\r\n */\r\nconst GetEmptyThumbnailItemComponent = (imageSettings: IImageSettings, props: IMediaGalleryViewProps): IMediaGalleryThumbnailItemViewProps => {\r\n return {\r\n ThumbnailItemContainerProps: {\r\n tag: 'li' as NodeTag,\r\n className: 'ms-media-gallery__thumbnail-item',\r\n role: 'tab',\r\n tabIndex: 0,\r\n key: 0,\r\n 'aria-label': '',\r\n 'aria-selected': true\r\n },\r\n Picture: (\r\n \r\n )\r\n };\r\n};\r\n\r\n/**\r\n * Update media gallery items method.\r\n * @param items - The media gallery thumbnail item view props.\r\n * @returns The IImageData array.\r\n */\r\nconst getMediaGalleryItems = (items?: IMediaGalleryThumbnailItemViewProps[]): IImageData[] | undefined => {\r\n return items?.map(item => {\r\n return {\r\n altText: item.Picture.props.altText,\r\n src: item.Picture.props.src\r\n };\r\n });\r\n};\r\n\r\nconst defaultThumbnailImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 },\r\n xl: { q: 'w=295&h=295&q=80&m=6&f=jpg', w: 295, h: 295 }\r\n },\r\n lazyload: true,\r\n cropFocalRegion: true\r\n};\r\n\r\n/**\r\n * Render the Media gallery thumbnails to represent images in grid view.\r\n * @param thumbnails - The thumbnail view props.\r\n * @param props - The media gallery view props.\r\n * @returns - The single slide carousel component to render as media gallery image.\r\n */\r\nconst renderThumbnails = (\r\n thumbnails: IMediaGalleryThumbnailsViewProps,\r\n props: IMediaGalleryViewProps\r\n): JSX.Element => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { ThumbnailsContainerProps, SingleSlideCarouselComponentProps } = thumbnails;\r\n const { state, Thumbnails } = props;\r\n const mediaGalleryItems = getMediaGalleryItems(Thumbnails.items);\r\n\r\n const items: IMediaGalleryThumbnailItemViewProps[] | undefined =\r\n // eslint-disable-next-line multiline-ternary -- need multiline for easy code reading\r\n state.lastUpdate && !ArrayExtensions.hasElements(mediaGalleryItems) ? [GetEmptyThumbnailItemComponent(defaultThumbnailImageSettings, props)] :\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery\r\n mediaGalleryItems?.map((item: IImageData, id: number) => GetThumbnailItemComponent(item,\r\n defaultThumbnailImageSettings, id, state.activeIndex, props));\r\n\r\n return (\r\n \r\n \r\n {items?.map(renderThumbnailItem)}\r\n \r\n \r\n );\r\n};\r\n\r\n/**\r\n * Render the Media gallery items using viewprops.\r\n * @param props - The media gallery view props.\r\n * @returns The media gallery module wrapping up images node.\r\n */\r\nconst mediaGalleryView: React.FC = props => {\r\n // eslint-disable-next-line @typescript-eslint/naming-convention -- Dependency from media-gallery.tsx file\r\n const { CarouselProps, Thumbnails, MediaGallery, Modal } = props;\r\n return (\r\n \r\n \r\n {Modal}\r\n {renderThumbnails(Thumbnails, props)}\r\n \r\n );\r\n};\r\n\r\nexport default mediaGalleryView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Alert, Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { ICookieComplianceViewProps } from './cookie-compliance';\n\nconst CookieComplianceView: React.FC = props => {\n const { CookieComplianceBanner, AlertProps, Content, acceptButton, text, links } = props;\n\n return (\n \n \n \n {text}\n {links}\n \n {acceptButton}\n \n \n );\n};\nexport default CookieComplianceView;\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 { INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ICittaAnchorConfig, ICittaAnchorProps } from './citta-anchor.props.autogenerated';\r\n\r\nexport interface ICittaAnchorViewProps extends ICittaAnchorProps {\r\n Anchor: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * CittaAnchor component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaAnchor extends React.PureComponent> {\r\n public render(): JSX.Element | null {\r\n const { config } = this.props;\r\n\r\n const anchorId = config && config.anchorName && config.anchorName.replace(/\\s/g, '');\r\n\r\n const viewProps: ICittaAnchorViewProps = {\r\n ...(this.props as ICittaAnchorProps),\r\n\r\n Anchor: {\r\n id: anchorId,\r\n className: ''\r\n }\r\n };\r\n return this.props.renderView(viewProps);\r\n }\r\n}\r\n\r\nexport default CittaAnchor;\r\n"],"sourceRoot":""}