{"version":3,"file":"static/js/37.6025227c67cfe9c41f81.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/content-block/components/additional-content.tsx?d5f9","webpack://Citta2.0/./src/modules/content-block/components/links.tsx?abbf","webpack://Citta2.0/./src/modules/content-block/content-block.tsx?3084","webpack://Citta2.0/./src/modules/citta-journal-competition-form/citta-journal-competition-form.tsx?a73b","webpack://Citta2.0/./src/modules/citta-n-tile-list-item/components/links.tsx?adb6","webpack://Citta2.0/./src/modules/citta-n-tile-list-item/citta-n-tile-list-item.tsx?09e8","webpack://Citta2.0/./src/modules/citta-journal-competition-form/citta-journal-competition-form.view.tsx?d85b","webpack://Citta2.0/./src/modules/citta-n-tile-list-item/citta-n-tile-list-item.view.tsx?e782","webpack://Citta2.0/./src/modules/content-block/content-block.view.tsx?1773"],"sourcesContent":["/*!\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 { INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IAdditionalContentData, ILinksData } from '../content-block.props.autogenerated';\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Component props.\n */\nexport interface IContentBlockAdditionalContentProps {\n requestContext: Msdyn365.IRequestContext;\n additionalContent: IAdditionalContentData[] | undefined;\n handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void;\n handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content view props.\n */\nexport interface IContentBlockAdditionalContentViewProps {\n additionalContentNode: INodeProps;\n additionalContentItems?: IContentBlockAdditionalContentItemViewProps[];\n}\n\n/**\n * IContentBlockAdditionalContentProps: Interface for\n * Content Block Additional Content Item view props.\n */\nexport interface IContentBlockAdditionalContentItemViewProps {\n heading: React.ReactNode;\n text: React.ReactNode;\n links: React.ReactNode;\n additionalContentItemContainer: INodeProps;\n additionalContentItemLinks: INodeProps;\n}\n\n/**\n * Renders additional content heading.\n * @param additionalContentHeading - Additional content heading.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Heading Node.\n */\nconst renderHeading = (additionalContentHeading: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param additionalContentParagraphText - Additional content paragraph text.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns Paragraph Node.\n */\nconst renderParagraph = (additionalContentParagraphText: string, props: IContentBlockAdditionalContentProps, itemIndex: number) => {\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalTextChange(itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Renders additional content heading.\n * @param ctaLink - Additional content link.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @param linkIndex - Additional content link index.\n * @returns Link Node.\n */\nconst renderLinks = (ctaLink: ILinksData, props: IContentBlockAdditionalContentProps, itemIndex: number, linkIndex: number) => {\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: ctaLink.ariaLabel,\n className: 'ms-content-block__details__additional-content-cta-links',\n linkText: ctaLink.linkText,\n linkUrl: ctaLink.linkUrl.destinationUrl,\n openInNewTab: ctaLink.openInNewTab,\n role: 'link'\n };\n const requestContext = props.requestContext;\n return (\n {\n props.handleAdditionalLinkTextChange(linkIndex, itemIndex, event);\n },\n requestContext\n }}\n />\n );\n};\n\n/**\n * Create node for each additonal content item.\n * @param item - Content block additonal content item props.\n * @param props - Content Block Additional content component props.\n * @param itemIndex - Item index.\n * @returns IContentBlockAdditionalContentItemViewProps.\n */\nconst assembleNode = (\n item: IAdditionalContentData,\n props: IContentBlockAdditionalContentProps,\n itemIndex: number\n): IContentBlockAdditionalContentItemViewProps => {\n const headingNode = item.heading && renderHeading(item.heading, props, itemIndex);\n const paragraphNode = item.subtext && renderParagraph(item.subtext, props, itemIndex);\n const linksNode = item.links?.map((ctaLink: ILinksData, index: number) => {\n return renderLinks(ctaLink, props, itemIndex, index);\n });\n\n return {\n heading: headingNode,\n text: paragraphNode,\n links: linksNode,\n additionalContentItemContainer: { className: 'ms-content-block__details__additional-content__container' },\n additionalContentItemLinks: { className: 'ms-content-block__details__additional-content-cta' }\n };\n};\n\n/**\n * ContentBlockAdditionalContent component.\n * @param props - Content Block Additional content component props.\n * @returns Content Block Additional content view props.\n */\nexport const contentBlockAdditionalContent = (\n props: IContentBlockAdditionalContentProps\n): IContentBlockAdditionalContentViewProps | undefined => {\n const { additionalContent } = props;\n if (!additionalContent) {\n return undefined;\n }\n\n const reactNodes: IContentBlockAdditionalContentItemViewProps[] = [];\n additionalContent.map((item, index: number) => {\n return reactNodes.push(assembleNode(item, props, index));\n });\n\n return {\n additionalContentNode: { className: 'ms-content-block__details__additional-content' },\n additionalContentItems: reactNodes\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 { ILinksData } from '../content-block.props.autogenerated';\n\nexport interface IContentCardLinks {\n links: ILinksData[];\n requestContext: Msdyn365.IRequestContext;\n telemetryContent: ITelemetryContent;\n role?: string;\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\n}\n\n/**\n *\n * ContentCardLinks component.\n * @extends {React.PureComponent}\n */\nexport class ContentCardLinks 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: ILinksData[]): 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 btnClass = index === 0 ? 'msc-cta__primary' : 'msc-cta__secondary';\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: btnClass,\n linkText: link.linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: this.props.role,\n additionalProperties: attributes,\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\n };\n editableLinks.push(editableLink);\n });\n\n return editableLinks;\n };\n}\nexport default ContentCardLinks;\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, IModuleProps, INodeProps, ITelemetryContent } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { contentBlockAdditionalContent, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport LinksComponent from './components/links';\nimport { actionableRegion as region, IContentBlockConfig, IContentBlockProps } from './content-block.props.autogenerated';\n\nexport interface IContentBlockViewProps extends IContentBlockProps<{}> {\n title?: React.ReactNode;\n text?: React.ReactNode;\n image?: React.ReactNode;\n links?: React.ReactNode;\n className?: string;\n contentBlockContainer: IModuleProps;\n imageContainer: INodeProps;\n detailsContainer: INodeProps;\n contentBlockAnchorTag?: INodeProps;\n imageLink?: string;\n imageAriaLabel?: string;\n additionalContent?: IContentBlockAdditionalContentViewProps;\n handleAdditionalText?(): void;\n handleAdditionalParagraph?(): void;\n handleAdditionalLinkTextChange?(): void;\n}\n\n/**\n * Site-builder configuration for the module.\n */\nexport interface IContentBlockFullConfig extends IContentBlockConfig {\n // eslint-disable-next-line @typescript-eslint/naming-convention -- This field comes from SDK.\n msdyn365__moduleLayout?: string;\n}\n\n/**\n * ContentCard component.\n * @extends {React.PureComponent}\n */\nexport class ContentBlock extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n public render(): JSX.Element | null {\n const { heading, paragraph, image, links, className, imageAriaLabel } = this.props.config;\n const contentBlockTitle = heading && (\n \n );\n\n const contentBlockLinks = links && ArrayExtensions.hasElements(links) && (\n \n );\n const contentBlockText = paragraph && (\n \n );\n\n let contentBlockImageSettings: Msdyn365.IImageSettings | undefined;\n\n if (image && image.imageSettings && !image.imageSettings.backgroundColor && this.props.config.backgroundColor) {\n contentBlockImageSettings = {\n ...image?.imageSettings,\n backgroundColor: this.props.config.backgroundColor\n };\n } else {\n contentBlockImageSettings = image?.imageSettings;\n }\n\n const imageProps = {\n gridSettings: this.props.context.request.gridSettings ?? {},\n imageSettings: contentBlockImageSettings\n };\n\n const contentBlockImage = (\n \n );\n\n const contentBlockContainerStyle: React.CSSProperties | undefined = this.props.config.backgroundColor\n ? { backgroundColor: this.props.config.backgroundColor }\n : undefined;\n\n if (!contentBlockTitle && !contentBlockText && !contentBlockLinks) {\n this.props.context.telemetry.error('Content block content is empty, module wont render.');\n return null;\n }\n const contentBlockviewProps = {\n ...this.props,\n title: contentBlockTitle,\n text: contentBlockText,\n image: contentBlockImage,\n links: contentBlockLinks,\n moduleClass: this.props.config.className,\n contentBlockContainer: {\n moduleProps: this.props,\n className: classnames('ms-content-block', className),\n style: contentBlockContainerStyle\n },\n imageContainer: { className: 'ms-content-block__image' },\n detailsContainer: { className: 'ms-content-block__details' },\n contentBlockAnchorTag: {\n tag: 'a',\n className: 'ms-content-block__link',\n role: 'link'\n },\n imageLink: this._getImageLink(),\n imageAriaLabel,\n additionalContent: contentBlockAdditionalContent({\n requestContext: this.props.context.request,\n additionalContent: this.props.config.additionalContent,\n handleAdditionalTextChange: this.handleAdditionalTextChange,\n handleAdditionalParagraphChange: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n }),\n handleAdditionalText: this.handleAdditionalTextChange,\n handleAdditionalParagraph: this.handleAdditionalParagraphChange,\n handleAdditionalLinkTextChange: this.handleAdditionalLinkTextChange\n };\n\n return this.props.renderView(contentBlockviewProps) as React.ReactElement;\n }\n\n /**\n * To handle text change.\n * @param event - To handle text change event.\n * @name - HandleTextChange\n * @public\n * @returns - The Text value.\n */\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n /**\n * To handle paragraph change.\n * @param event - To handle text change event.\n * @name - HandleParagraphChange\n * @public\n * @returns - The Paragraph value.\n */\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.paragraph = event.target.value);\n\n /**\n * Handle link text change.\n * @param linkIndex - The link index.\n * @returns - Void.\n */\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent) => {\n if (this.props.config.links && this.props.config.links[Number(linkIndex)]) {\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\n }\n };\n\n public handleAdditionalTextChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].heading = event.target.value;\n }\n }\n\n public handleAdditionalLinkTextChange(linkIndex: number, index: number, event: Msdyn365.ContentEditableEvent): void {\n const additionalContentObject =\n (this.props.config.additionalContent &&\n ArrayExtensions.hasElements(this.props.config.additionalContent) &&\n this.props.config.additionalContent[Number(index)]) ||\n {};\n if (additionalContentObject.links) {\n additionalContentObject.links[Number(linkIndex)].linkText = event.target.value;\n }\n }\n\n public handleAdditionalParagraphChange(index: number, event: Msdyn365.ContentEditableEvent): void {\n if (this.props.config.additionalContent) {\n this.props.config.additionalContent[Number(index)].subtext = event.target.value;\n }\n }\n\n private _getImageLink(): string | null {\n const { imageLink, links, actionableRegion } = this.props.config;\n if (actionableRegion === region.imageAndLinks) {\n if (imageLink?.destinationUrl) {\n return imageLink.destinationUrl;\n } else if (links && ArrayExtensions.hasElements(links) && links[0].linkUrl) {\n return links[0].linkUrl.destinationUrl;\n }\n return null;\n }\n return null;\n }\n}\n\nexport default ContentBlock;\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 { ICittaJournalCompetitionFormData } from './citta-journal-competition-form.data';\r\nimport { ICittaJournalCompetitionFormProps } from './citta-journal-competition-form.props.autogenerated';\r\n\r\ninterface ICittaJournalCompetitionFormFormState {\r\n firstName: string;\r\n lastName: string;\r\n emailAddress: string;\r\n country: 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 ICittaJournalCompetitionFormForm {\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 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 ICittaJournalCompetitionFormViewProps extends ICittaJournalCompetitionFormProps {\r\n SubscribeWrapper: IModuleProps;\r\n subscribeResponse: React.ReactNode;\r\n subscribeForm: ICittaJournalCompetitionFormForm;\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, ICittaJournalCompetitionFormFormState> {\r\n private _FirstNameInputRef: React.RefObject;\r\n private _LastNameInputRef: React.RefObject;\r\n private _EmailAddressInputRef: 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: ICittaJournalCompetitionFormProps) {\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._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 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: ICittaJournalCompetitionFormViewProps = {\r\n ...(this.props as ICittaJournalCompetitionFormProps),\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 _renderForm(): ICittaJournalCompetitionFormForm {\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 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 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 private _renderReCaptcha(): React.ReactNode {\r\n //recaptcha newsletter-recapture-visable\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 this._submit()}\r\n />\r\n
: null\r\n }\r\n
\r\n );\r\n }\r\n\r\n \r\n private _renderRecaptchaAlert(className: string): JSX.Element {\r\n\r\n if (this.props.config.reCaptchaOption) {\r\n if (!this.state.reCaptchaChecked) {\r\n this.recaptchaErrorMessage = this.props.resources.recaptchaErrorMessage;\r\n }\r\n }\r\n\r\n const rCCError = this.state.rCCError;\r\n return (\r\n <>\r\n {rCCError && (\r\n \r\n {\r\n this.recaptchaErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n 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 '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 await 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 cT = this.state.country;\r\n\r\n const eAVal = this._EmailAddressInputRef.current!.value;\r\n const oI = this._PrivacyPolicyRef.current!.checked;\r\n const recaptchaValue = this._recaptchaRef.current?.getValue();\r\n\r\n if (!this.firstNameValue) {\r\n this.setState({\r\n fNError: true,\r\n reqError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!this.lastNameValue) {\r\n this.setState({\r\n lNError: true,\r\n reqError: true\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else if (!this.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 if (!this._TermsAndContitionsRef.current!.checked) {\r\n this.setState({\r\n termsAndContitionsChecked: false,\r\n tsCsError: 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.termsAndContitionsChecked && !this.state.eAValError) {\r\n try {\r\n await this._postEntry(fN, lN, eA, 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, optIn: boolean, country: 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 emarsysCompetitionGroupId = this.props.config.emarsysCompetitionGroupId,\r\n emarsysGroupName = this.props.config.emarsysGroupOptInName;\r\n\r\n if (country === 'AU') {\r\n emarsysGroupId = this.props.config.emarsysGroupIdAU; \r\n emarsysCompetitionGroupId = this.props.config.emarsysCompetitionGroupIdAU;\r\n }\r\n \r\n const response = await MsDyn365.commerceApiRequest(\r\n this.props.context.request,\r\n 'PostJournalCompetitionForm',\r\n 'post',\r\n {\r\n firstName: firstName,\r\n lastName: lastName,\r\n emailAddress: email,\r\n country: country,\r\n emarsysGroupId: emarsysGroupId,\r\n emarsysCompetitionGroupId: emarsysCompetitionGroupId,\r\n emarsysGroupName: emarsysGroupName,\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\r\n if (MsDyn365.msdyn365Commerce.isBrowser && this.props.config.urlToOpenOnSuccess) {\r\n // @ts-ignore\r\n window.location = this.props.config.urlToOpenOnSuccess;\r\n }\r\n\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 termsAndContitionsChecked: false,\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n } else {\r\n this.setState({\r\n responseReceived: true,\r\n responseError: response?.data.Result === 'Error',\r\n responseSuccess: response?.data.Result !== 'Error',\r\n emailAddress: '',\r\n 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 }\r\n\r\n}\r\n\r\nexport default CittaCompetitionForm;\r\n\r\n\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getPayloadObject, getTelemetryAttributes, ITelemetryContent, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ILinksData } from '../citta-n-tile-list-item.props.autogenerated';\r\n\r\n/**\r\n * Tile List links.\r\n */\r\nexport interface ITileListLinks {\r\n links: ILinksData[];\r\n requestContext: Msdyn365.IRequestContext;\r\n telemetryContent: ITelemetryContent;\r\n onTextChange?(index: number): (event: Msdyn365.ContentEditableEvent) => void;\r\n}\r\n\r\n/**\r\n *\r\n * ITileListLinks component.\r\n * @extends {React.PureComponent}\r\n */\r\nexport class TileListLinks extends React.PureComponent {\r\n public render(): JSX.Element {\r\n const editableLinks = this._mapEditableLinks(this.props.links);\r\n return (\r\n
\r\n {editableLinks && ArrayExtensions.hasElements(editableLinks) ? (\r\n \r\n ) : null}\r\n
\r\n );\r\n }\r\n\r\n /**\r\n * ITileListLinks component.\r\n * @param linkdata - Link data.\r\n * @returns Editable links.\r\n */\r\n private readonly _mapEditableLinks = (linkdata: ILinksData[]): Msdyn365.ILinksData[] | null => {\r\n if (!ArrayExtensions.hasElements(linkdata)) {\r\n return null;\r\n }\r\n const editableLinks: Msdyn365.ILinksData[] = [];\r\n for (const link of linkdata) {\r\n // Construct telemetry attribute to render\r\n const payLoad = getPayloadObject('click', this.props.telemetryContent, '', '');\r\n const linkText = link.linkText ? link.linkText : '';\r\n payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.props.telemetryContent, payLoad);\r\n const editableLink: Msdyn365.ILinksData = {\r\n ariaLabel: link.ariaLabel,\r\n className: 'ms-tile-list__link',\r\n linkText: link.linkText,\r\n linkUrl: link.linkUrl.destinationUrl,\r\n openInNewTab: link.openInNewTab,\r\n role: 'button',\r\n additionalProperties: attributes,\r\n onClick: onTelemetryClick(this.props.telemetryContent, payLoad, linkText)\r\n };\r\n editableLinks.push(editableLink);\r\n }\r\n\r\n return editableLinks;\r\n };\r\n}\r\nexport default TileListLinks;\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/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { ArrayExtensions, StringExtensions } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getTelemetryObject, IModuleProps, INodeProps, ITelemetryContent, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { TileListLinks } from './components';\r\nimport { IHeadingData, ICittaNTileListItemProps } from './citta-n-tile-list-item.props.autogenerated';\r\n\r\n/**\r\n * Tile-list-item view props.\r\n */\r\nexport interface ITileListItemViewProps extends ICittaNTileListItemProps<{}> {\r\n heading?: React.ReactNode;\r\n paragraph?: React.ReactNode;\r\n links?: React.ReactNode;\r\n backgroundImage?: React.ReactNode;\r\n thumbnailImage?: React.ReactNode;\r\n tileListItem: IModuleProps;\r\n tileListContainer: INodeProps;\r\n tileListImageContainer: INodeProps;\r\n tileListThumbnailImageContainer: INodeProps;\r\n tileListHeadingContainer: INodeProps;\r\n}\r\n\r\n/**\r\n *\r\n * TileListItem component.\r\n * @extends {React.PureComponent>}\r\n */\r\nexport class TileListItem extends React.PureComponent> {\r\n private readonly _telemetryContent: ITelemetryContent = getTelemetryObject(\r\n this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry\r\n );\r\n\r\n public constructor(props: ICittaNTileListItemProps<{}>) {\r\n super(props);\r\n }\r\n\r\n public render(): JSX.Element {\r\n const { heading, paragraph, backgroundImage, thumbnailImage, redirectionUrl, links } = this.props.config;\r\n const tileListLinks = links && ArrayExtensions.hasElements(links) && (\r\n \r\n );\r\n const tileListLinkContainer = {\r\n tag: 'a' as NodeTag,\r\n className: 'ms-tile-list-container',\r\n role: 'link',\r\n href: redirectionUrl?.linkUrl.destinationUrl,\r\n 'aria-label': redirectionUrl?.ariaLabel,\r\n target: redirectionUrl?.openInNewTab ? '_blank' : undefined\r\n };\r\n\r\n const tileListButtonContainer = {\r\n tag: 'button' as NodeTag,\r\n className: 'ms-tile-list-container'\r\n };\r\n const viewProps: ITileListItemViewProps = {\r\n ...this.props,\r\n heading: this._createHeading(heading),\r\n paragraph: this._createParagraph(paragraph),\r\n backgroundImage: this._renderBackgroundImage(backgroundImage),\r\n thumbnailImage: this._renderThumbnailImage(thumbnailImage),\r\n links: tileListLinks,\r\n tileListItem: {\r\n moduleProps: this.props,\r\n className: ''\r\n },\r\n tileListContainer: redirectionUrl ? tileListLinkContainer : tileListButtonContainer,\r\n tileListImageContainer: {\r\n className: 'ms-tile-list__image'\r\n },\r\n tileListThumbnailImageContainer: {\r\n className: 'ms-tile-list__thumbnail_image',\r\n 'aria-hidden': 'true'\r\n },\r\n tileListHeadingContainer: {\r\n className: 'ms-tile-list__heading'\r\n }\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n /**\r\n * Handles heading content change event.\r\n * @param event - Content editable event.\r\n */\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\r\n this.props.config.heading!.text = event.target.value;\r\n };\r\n\r\n /**\r\n * Handles paragraph content change event.\r\n * @param event - Content editable event.\r\n */\r\n public handleParagraphChange = (event: Msdyn365.ContentEditableEvent): void => {\r\n this.props.config.paragraph = event.target.value;\r\n };\r\n\r\n /**\r\n * Handles paragraph content change event.\r\n * @param linkIndex - Index of link in linkarray.\r\n * @returns Void.\r\n */\r\n public handleLinkTextChange = (linkIndex: number) => (event: Msdyn365.ContentEditableEvent): void => {\r\n if (this.props.config.links?.[Number(linkIndex)]) {\r\n this.props.config.links[Number(linkIndex)].linkText = event.target.value;\r\n }\r\n };\r\n\r\n private _createParagraph(text?: Msdyn365.RichText): React.ReactNode | null {\r\n if (!text) {\r\n return null;\r\n }\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _createHeading(heading?: IHeadingData): React.ReactNode | null {\r\n if (!heading) {\r\n return null;\r\n }\r\n if (StringExtensions.isNullOrWhitespace(heading.text)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderBackgroundImage(item?: Msdyn365.IImageData, isAriaHiddenAttribute?: boolean): React.ReactNode | null {\r\n // If image is null, we want to render the placeholder SVG - by passing image data with empty src\r\n\r\n const defaultImageSettings: Msdyn365.IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=550&h=0&m=6', w: 550, h: 0 },\r\n sm: { q: 'w=550&h=0&m=6', w: 550, h: 0 },\r\n md: { q: 'w=550&h=0&m=6', w: 550, h: 0 },\r\n lg: { q: 'w=550&h=0&m=6', w: 550, h: 0 },\r\n xl: { q: 'w=550&h=0&m=6', w: 550, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n const verifiedImageSettings = item?.imageSettings?.viewports ? item.imageSettings : defaultImageSettings;\r\n\r\n return (\r\n \r\n );\r\n }\r\n\r\n private _renderThumbnailImage(\r\n item?: Msdyn365.IImageData,\r\n itemImageSettings?: Msdyn365.IImageSettings,\r\n isAriaHiddenAttribute?: boolean\r\n ): React.ReactNode | null {\r\n if (!item) {\r\n return null;\r\n }\r\n if (StringExtensions.isNullOrWhitespace(item.src)) {\r\n return null;\r\n }\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default TileListItem;\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 { ICittaJournalCompetitionFormViewProps } from './citta-journal-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 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 {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","/*!\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/* eslint-disable no-duplicate-imports */\r\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { ITileListItemViewProps } from './citta-n-tile-list-item';\r\n\r\n/**\r\n *\r\n * ITileListItemViewProps component.\r\n * @param props - Component props.\r\n * @returns TileListView.\r\n */\r\nconst renderTileListItemContent = (props: ITileListItemViewProps): JSX.Element => {\r\n const {\r\n heading,\r\n paragraph,\r\n backgroundImage,\r\n links,\r\n thumbnailImage,\r\n tileListContainer,\r\n tileListImageContainer,\r\n tileListThumbnailImageContainer,\r\n tileListHeadingContainer\r\n } = props;\r\n\r\n return (\r\n \r\n {backgroundImage}\r\n \r\n {heading}\r\n {paragraph}\r\n {links}\r\n \r\n {thumbnailImage}\r\n \r\n );\r\n};\r\n\r\n/**\r\n *\r\n * TileListItemViewProps component.\r\n * @param props - Component props.\r\n * @returns TileListView.\r\n */\r\nexport const TileListItemViewComponent: React.FC = props => {\r\n const { tileListItem } = props;\r\n return {renderTileListItemContent(props)};\r\n};\r\n\r\nexport default TileListItemViewComponent;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IContentBlockAdditionalContentItemViewProps, IContentBlockAdditionalContentViewProps } from './components/additional-content';\nimport { IContentBlockViewProps } from './content-block';\n\n/**\n * Render Additional Content.\n * @param additionalContent - Additional content view props.\n * @returns JSX Element.\n */\nconst renderAdditionalContent = (additionalContent: IContentBlockAdditionalContentViewProps) => {\n return (\n \n {additionalContent.additionalContentItems?.map((item: IContentBlockAdditionalContentItemViewProps) => {\n return (\n <>\n {item.heading}\n \n {item.text}\n {item.links}\n \n \n );\n })}\n \n );\n};\n\nconst ContentBlockView: React.FC = props => {\n const {\n contentBlockContainer,\n imageContainer,\n detailsContainer,\n title,\n text,\n links,\n image,\n contentBlockAnchorTag,\n imageLink,\n imageAriaLabel,\n additionalContent\n } = props;\n\n if (imageLink) {\n return (\n \n \n {image}\n \n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n }\n return (\n \n {image}\n \n {title}\n {text}\n {links}\n {additionalContent && renderAdditionalContent(additionalContent)}\n \n \n );\n};\n\nexport default ContentBlockView;\n"],"names":["assembleNode","item","props","itemIndex","_item$links","headingNode","heading","renderHeading","additionalContentHeading","requestContext","React","Msdyn365","text","tag","className","editProps","onEdit","event","handleAdditionalTextChange","paragraphNode","subtext","renderParagraph","additionalContentParagraphText","linksNode","links","map","ctaLink","index","renderLinks","linkIndex","editableLink","ariaLabel","linkText","linkUrl","destinationUrl","openInNewTab","role","key","link","onTextChange","handleAdditionalLinkTextChange","additionalContentItemContainer","additionalContentItemLinks","contentBlockAdditionalContent","additionalContent","reactNodes","push","additionalContentNode","additionalContentItems","ContentCardLinks","constructor","_mapEditableLinks","linkdata","length","editableLinks","forEach","payLoad","getPayloadObject","this","telemetryContent","contentAction","etext","attributes","getTelemetryAttributes","btnClass","additionalProperties","onClick","onTelemetryClick","render","ContentBlock","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","handleTextChange","config","target","value","handleParagraphChange","paragraph","handleLinkTextChange","Number","_heading$tag","_this$props$context$r","_this$props$config$im","image","imageAriaLabel","contentBlockTitle","contentBlockLinks","ArrayExtensions","hasElements","LinksComponent","Object","assign","msdyn365__moduleLayout","contentBlockText","contentBlockImageSettings","imageSettings","backgroundColor","_objectSpread","imageProps","gridSettings","contentBlockImage","preserveImageSpace","moduleType","typeName","imagePropertyName","moduleId","id","layout","shouldSkipToMainImage","contentBlockContainerStyle","undefined","error","contentBlockviewProps","title","moduleClass","contentBlockContainer","moduleProps","classnames","style","imageContainer","detailsContainer","contentBlockAnchorTag","imageLink","_getImageLink","handleAdditionalParagraphChange","handleAdditionalText","handleAdditionalParagraph","renderView","additionalContentObject","actionableRegion","CittaCompetitionForm","super","firstNameValue","lastNameValue","emailAddressValue","formInputValues","moduleClassName","_showErrors","setState","emailErrorClass","_checkEmailError","firstNameErrorClass","_FirstNameInputRef","current","lastNameErrorClass","_LastNameInputRef","tsCsErrorClass","_TermsAndContitionsRef","checked","email","_EmailAddressInputRef","_isEmailValid","_renderErrors","resources","state","firstNameError","lastNameError","emailError","tsCsError","_handleChange","name","e","firstName","fNError","reqError","eAValError","lastName","lNError","emailAddress","eAError","country","isChecked","recaptchaWrapper","document","querySelector","classList","toggle","termsAndContitionsChecked","_PrivacyPolicyRef","privacyPolicyChecked","console","log","test","_recaptchaRef","_handleSubmit","bind","rCCError","responseReceived","responseError","reCaptchaChecked","responseSuccess","showResponseSuccess","charactersLeft","messageCharactersLimit","viewProps","SubscribeWrapper","subscribeResponse","_getSubmitResponse","subscribeForm","_renderForm","formErrors","formErrorsNodeProps","successResponse","_renderSuccessResponse","showSuccessResponse","successResponseNodeProps","responseMessage","successTextResponse","FormWrapper","FormContainer","firstAndLastNameInput","_renderFirstAndLastNameInput","emailInput","_renderEmailInput","countryInput","_renderCountryInput","checkboxTermsAndConditions","_renderCheckboxTermsAndConditions","checkboxPrivacyPolicy","_renderCheckboxPrivacyPolicy","reCaptcha","_renderReCaptcha","subscribeButtton","_renderSubmitButton","subscribeThanks","_renderSubmitThanks","ref","type","onChange","placeholder","firstNamePlaceholderText","required","lastNamePlaceholderText","_renderAlert","emailInputPlaceholder","termsAndConditionsText","href","termsAndConditionsLink","privacyPolicyText","privacyPolicyLink","reCaptchaOption","_renderRecaptchaAlert","ReCAPTCHA","sitekey","reCaptchaSiteKey","size","_submit","recaptchaErrorMessage","Button","submitButtonLabel","color","async","_this$_recaptchaRef$c","execute","_this$_recaptchaRef$c2","fN","lN","eA","cT","eAVal","oI","recaptchaValue","getValue","_this$_recaptchaRef$c3","_this$_recaptchaRef$c9","_postEntry","_clearValues","reset","_this$_recaptchaRef$c8","_this$_recaptchaRef$c7","_this$_recaptchaRef$c6","_this$_recaptchaRef$c5","_this$_recaptchaRef$c4","optIn","emarsysGroupId","emarsysCompetitionGroupId","emarsysGroupName","emarsysGroupOptInName","emarsysGroupIdAU","emarsysCompetitionGroupIdAU","response","MsDyn365","data","Message","Result","isBrowser","urlToOpenOnSuccess","window","location","TileListLinks","TileListItem","_telemetryContent","handleHeadingChange","_this$props$config$li","backgroundImage","thumbnailImage","redirectionUrl","tileListLinks","tileListLinkContainer","_createHeading","_createParagraph","_renderBackgroundImage","_renderThumbnailImage","tileListItem","tileListContainer","tileListImageContainer","tileListThumbnailImageContainer","tileListHeadingContainer","StringExtensions","isNullOrWhitespace","isAriaHiddenAttribute","_item$imageSettings","_this$props$config$ba","verifiedImageSettings","viewports","xs","q","w","h","sm","md","lg","xl","lazyload","loadFailureBehavior","itemImageSettings","_this$props$config$th","src","ICittaCompetitionFormView","Module","Node","TileListItemViewComponent","renderTileListItemContent","renderAdditionalContent","_additionalContent$ad"],"sourceRoot":""}