{"version":3,"file":"static/js/44.d7e2526cda06cedf3709.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/citta-journal-competition-form/citta-journal-competition-form.tsx?a73b","webpack://Citta2.0/./src/modules/citta-navigation-menu/citta-navigation-menu.props.autogenerated.ts?fa94","webpack://Citta2.0/./src/modules/citta-navigation-menu/citta-navigation-menu.tsx?fb75","webpack://Citta2.0/./src/modules/citta-journal-competition-form/citta-journal-competition-form.view.tsx?d85b","webpack://Citta2.0/./src/modules/citta-navigation-menu/citta-navigation-menu.view.tsx?c465"],"sourcesContent":["/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\nimport { Button, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport * as MsDyn365 from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport { 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.txt in the project root for license information.\r\n * ICittaNavigationMenu contentModule Interface Properties\r\n * THIS FILE IS AUTO-GENERATED - MANUAL MODIFICATIONS WILL BE LOST\r\n */\r\n\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\n\r\nexport const enum navigationMenuSource {\r\n retailServerOnly = 'retailServerOnly',\r\n cmsOnly = 'cmsOnly',\r\n all = 'all'\r\n}\r\n\r\nexport interface ICittaNavigationMenuConfig extends Msdyn365.IModuleConfig {\r\n categoryImageSettings?: Msdyn365.IImageSettings;\r\n displayCategoryImage?: boolean;\r\n navigationMenuSource?: navigationMenuSource;\r\n enableMultilevelMenu?: boolean;\r\n menuLevelSupport?: number;\r\n enabletopMenu?: boolean;\r\n rootMenuNavigation?: string;\r\n cmsNavItems?: ICmsNavItemsData[];\r\n className?: string;\r\n}\r\n\r\nexport interface ICittaNavigationMenuResources {\r\n menuAriaLabel: string;\r\n backButtonAriaLabel: string;\r\n allCategoryMenuText: string;\r\n}\r\n\r\nexport interface ICmsNavItemsData {\r\n linkText?: string;\r\n linkUrl?: Msdyn365.ILinkData;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n openInNewTab?: boolean;\r\n subMenus?: ISubMenusData[];\r\n}\r\n\r\nexport interface ISubMenusData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n subMenus?: ISubMenusData[];\r\n}\r\n\r\nexport interface ISubMenusData {\r\n linkText?: string;\r\n linkUrl: Msdyn365.ILinkData;\r\n ariaLabel?: string;\r\n image?: Msdyn365.IImageData;\r\n imageLink?: Msdyn365.ILinkData;\r\n}\r\n\r\nexport interface ICittaNavigationMenuProps extends Msdyn365.IModule {\r\n resources: ICittaNavigationMenuResources;\r\n config: ICittaNavigationMenuConfig;\r\n}\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { getCategoryUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { addThrottledEvent, IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\r\nimport { CategoryHierarchy } from '@msdyn365-commerce/commerce-entities';\r\nimport { IActionContext, IGridSettings, IImageSettings, isEmptyOrNullObject} from '@msdyn365-commerce/core';\r\nimport { TextValueTranslation } from '@msdyn365-commerce/retail-proxy';\r\nimport classnames from 'classnames';\r\nimport { computed, observable } from 'mobx';\r\nimport * as React from 'react';\r\nimport { IMenuItemData, ICittaNavigationMenuData } from './citta-navigation-menu.data';\r\nimport { ICmsNavItemsData, ICittaNavigationMenuProps, ISubMenusData, navigationMenuSource } from './citta-navigation-menu.props.autogenerated';\r\n\r\nexport interface INavigationMenuViewProps extends ICittaNavigationMenuProps {\r\n className: string;\r\n menuItemData: IMenuItemData[];\r\n Navigation: IModuleProps;\r\n MenuList: INodeProps;\r\n ListItem: INodeProps;\r\n Link: INodeProps;\r\n Button: INodeProps;\r\n Span: INodeProps;\r\n ImageContainer:INodeProps;\r\n MobileDescriptionContainer:INodeProps;\r\n MobileBackButton:INodeProps;\r\n MobileDescriptionLabel:INodeProps;\r\n imageSettings: IImageSettings;\r\n gridSettings: IGridSettings;\r\n isMobileView: boolean;\r\n DivContainer?:INodeProps;\r\n ImageDivContainer?:INodeProps;\r\n showCategoryImage?:boolean;\r\n}\r\n\r\nexport type GridSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';\r\n\r\nexport interface INavigationMenuState {\r\n isMobile: boolean;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenu component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass NavigationMenu extends React.PureComponent, INavigationMenuState> {\r\n private static CMSItemIdInit: number = 1000;\r\n private static RSItemIdInit: number = 5000;\r\n private resizeThrottledEventHandler?: (event: Event) => void;\r\n private menuItemList: IMenuItemData[];\r\n private isRetail: boolean = true;\r\n private isCMS: boolean = true;\r\n @observable\r\n private viewport: GridSize;\r\n public static getFriendlyName(locale: string, nameTranslations?: TextValueTranslation[]): string | undefined {\r\n let nameTranslation: TextValueTranslation | undefined;\r\n if (locale && nameTranslations && nameTranslations.length > 0) {\r\n nameTranslation = nameTranslations.find(item => item.Language!.toLowerCase() === locale.toLowerCase());\r\n }\r\n\r\n return nameTranslation && nameTranslation.Text;\r\n }\r\n\r\n constructor(props: ICittaNavigationMenuProps) {\r\n super(props);\r\n this._updateViewport = this._updateViewport.bind(this);\r\n this.viewport = props.context.request && props.context.request.device && props.context.request.device.Type === 'Mobile' ? 'xs' : 'lg';\r\n this._setNavigationSource(this.props.config && this.props.config.navigationMenuSource);\r\n this.state = {isMobile: this.isMobile};\r\n this.menuItemList = [];\r\n }\r\n\r\n @computed get isMobile(): boolean {\r\n return (this.viewport === 'xs' || this.viewport === 'sm');\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.resizeThrottledEventHandler =\r\n window && addThrottledEvent(window, 'resize', this._updateViewport as EventListener);\r\n this._updateViewport();\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window && window.removeEventListener('resize', this.resizeThrottledEventHandler!, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n this.menuItemList = this._mapData();\r\n if (isEmptyOrNullObject(this.props.data)) {\r\n this.props.telemetry.error('Navigatiomenu returned null');\r\n return null;\r\n }\r\n\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: `w=224&h=300&m=6`, w: 0, h: 0 },\r\n xl: { q: `w=224&h=300&m=6`, w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n imageSettings: defaultImageSettings,\r\n gridSettings: this.props.context.request.gridSettings,\r\n Navigation: {\r\n moduleProps: this.props,\r\n className: classnames('ms-nav', this.props.config.className, this.state.isMobile ? 'mobile-vp' : 'desktop-vp'),\r\n tag:'nav',\r\n role:'navigation',\r\n 'aria-label': this.props.resources.menuAriaLabel\r\n },\r\n MenuList: {\r\n className: 'ms-nav__list',\r\n tag:'ul',\r\n role: 'menu'\r\n },\r\n ListItem: {\r\n className: 'ms-nav__list__item',\r\n role: 'presentation',\r\n tag:'li'\r\n },\r\n showCategoryImage:this.props.config.displayCategoryImage||false,\r\n Link: {\r\n tag: 'a',\r\n className: 'ms-nav__list__item__link',\r\n role: 'menuitem'\r\n },\r\n DivContainer:\r\n {\r\n tag: 'div',\r\n className:'ms-nav__feature',\r\n role:'menuitem'\r\n },\r\n ImageDivContainer:\r\n {\r\n tag:'div',\r\n className:'category-image',\r\n role:'tabpanel'\r\n },\r\n Button: {\r\n className: 'ms-nav__list__item__button',\r\n tag:'button',\r\n role:'menuitem',\r\n onClick:this.props\r\n },\r\n ImageContainer: {\r\n className: 'ms-nav__list__item__image'\r\n },\r\n Span: {\r\n className: 'ms-nav__list__item__span',\r\n tag:'span'\r\n },\r\n MobileDescriptionContainer: {\r\n className: 'ms-nav__list__mobile__container'\r\n },\r\n MobileBackButton: {\r\n className: 'ms-nav__list__mobile__container__button',\r\n tag:'button',\r\n 'aria-label': this.props.resources.backButtonAriaLabel,\r\n onClick:this.props\r\n },\r\n MobileDescriptionLabel: {\r\n className: 'ms-nav__list__mobile__container__span',\r\n tag:'span'\r\n },\r\n isMobileView: this.state.isMobile,\r\n menuItemData: this.menuItemList,\r\n className: classnames('ms-nav', this.props.config.className)\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _mapData(): IMenuItemData[] {\r\n const { data, config } = this.props;\r\n const mergedData: IMenuItemData[] = [];\r\n if (this.isRetail && data && data.categories && data.categories.result && data.categories.result.length > 0) {\r\n data.categories.result.map((item: CategoryHierarchy,index) => (\r\n mergedData.push(this._constructMenuItemData(item, undefined, true,index,true))\r\n ));\r\n }\r\n\r\n if (this.isCMS && config.cmsNavItems && config.cmsNavItems.length > 0) {\r\n config.cmsNavItems.map((item: ICmsNavItemsData, idx: number) => (\r\n mergedData.push(this._constructMenuItemData(undefined, item, false, idx+1))\r\n ));\r\n }\r\n return this._constructTopMenuItemData(mergedData);\r\n }\r\n private _constructTopMenuItemData(mergedData:IMenuItemData[]):IMenuItemData[] {\r\n const enableTopLevelMenu = this.props.config.enabletopMenu||false;\r\n if(!enableTopLevelMenu) {\r\n return mergedData;\r\n }\r\n const mergedRootMenuData: IMenuItemData[] = [];\r\n const topMenu = {\r\n id:1,\r\n linkText:this.props.config.rootMenuNavigation||'...',\r\n linkURL:'#',\r\n imageSource:undefined,\r\n subMenu: mergedData\r\n } as IMenuItemData;\r\n mergedRootMenuData.push(topMenu);\r\n\r\n return mergedRootMenuData;\r\n }\r\n // tslint:disable-next-line: cyclomatic-complexity\r\n private _constructMenuItemData(retailItem?: CategoryHierarchy, cmsItem?: ICmsNavItemsData, isRetail?: boolean, idx?: number,addedAllMenu?:boolean): IMenuItemData {\r\n const locale = this.props.context && this.props.context.request && this.props.context.request.locale ? this.props.context.request.locale : 'en-us';\r\n const imageSouce = retailItem && retailItem.Images && retailItem.Images[0].Uri ? retailItem.Images[0].Uri: 'empty';\r\n if (isRetail) {\r\n return {\r\n id: NavigationMenu.RSItemIdInit++,\r\n linkText: NavigationMenu.getFriendlyName(locale, retailItem && retailItem.NameTranslations) || '',\r\n linkURL: retailItem && retailItem.Url,\r\n imageSource: imageSouce,\r\n subMenu: this._getNestedChildren(retailItem,imageSouce,addedAllMenu)\r\n } as IMenuItemData;\r\n } else {\r\n return {\r\n id: NavigationMenu.CMSItemIdInit++,\r\n linkText: cmsItem && cmsItem.linkText || '',\r\n linkURL: cmsItem && cmsItem.linkUrl && cmsItem.linkUrl.destinationUrl || '',\r\n imageDestinationURL: cmsItem && cmsItem.imageLink && cmsItem.imageLink.destinationUrl || '',\r\n imageSource: cmsItem && cmsItem.image && cmsItem.image.src || '',\r\n subMenu: this._getCMSNestedChildren(cmsItem)\r\n } as IMenuItemData;\r\n }\r\n }\r\n private _getNestedChildren(category?: CategoryHierarchy,imageSourceUrl?:string,addedAllMenu:boolean=false): IMenuItemData[] {\r\n const nestedChildren: IMenuItemData[] = [];\r\n if (!category || !category.Children || !category.Children.length) {\r\n return [];\r\n }\r\n if(!this.props.config.enabletopMenu && addedAllMenu) {\r\n nestedChildren.push({linkText: this.props.resources.allCategoryMenuText,imageSource:imageSourceUrl,linkURL: getCategoryUrl(category, this.props.context as unknown as IActionContext, {}) });\r\n }\r\n category.Children.map((item: CategoryHierarchy,index) => {\r\n nestedChildren.push(this._constructMenuItemData(item, undefined, true,index,false));\r\n });\r\n return nestedChildren;\r\n }\r\n\r\n private _getCMSNestedChildren(category?: ICmsNavItemsData): IMenuItemData[] {\r\n const nestedChildren: IMenuItemData[] = [];\r\n\r\n if (!category || !category.subMenus || !category.subMenus.length) {\r\n return [];\r\n }\r\n\r\n category.subMenus.map((item: ISubMenusData, idx: number) => {\r\n nestedChildren.push(this._constructMenuItemData(undefined, item, false, idx));\r\n });\r\n return nestedChildren;\r\n }\r\n\r\n private _setNavigationSource = (sourceType?: navigationMenuSource): void => {\r\n switch(sourceType) {\r\n case navigationMenuSource.retailServerOnly:\r\n this.isRetail = true;\r\n this.isCMS = false;\r\n break;\r\n case navigationMenuSource.cmsOnly:\r\n this.isRetail = false;\r\n this.isCMS = true;\r\n break;\r\n case navigationMenuSource.all:\r\n this.isRetail = true;\r\n this.isCMS = true;\r\n break;\r\n default:\r\n }\r\n }\r\n\r\n private _updateViewport(): void {\r\n this.viewport = this._getViewport();\r\n this.setState({ isMobile: this.isMobile });\r\n }\r\n\r\n private _getViewport(): GridSize {\r\n const { context } = this.props;\r\n\r\n // always render in mobile viewport on a mobile device\r\n if (context.request && context.request.device && context.request.device.Type === 'Mobile') {\r\n return 'xs';\r\n }\r\n\r\n if (typeof window !== undefined && window.innerWidth) {\r\n const gridSettings = context.request.gridSettings;\r\n if (gridSettings) {\r\n if (gridSettings.xs && window.innerWidth <= gridSettings.xs.w) {\r\n return 'xs';\r\n } else if (gridSettings.sm && window.innerWidth <= gridSettings.sm.w) {\r\n return 'sm';\r\n } else if (gridSettings.md && window.innerWidth <= gridSettings.md.w) {\r\n return 'md';\r\n } else if (gridSettings.lg && window.innerWidth <= gridSettings.lg.w) {\r\n return 'lg';\r\n } else {\r\n return 'xl';\r\n }\r\n }\r\n }\r\n\r\n return 'xs';\r\n }\r\n}\r\n\r\nexport default NavigationMenu;\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. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\n/* eslint-disable no-duplicate-imports */\r\nimport { generateImageUrl } from '@msdyn365-commerce-modules/retail-actions';\r\nimport { getPayloadObject, getTelemetryAttributes, getTelemetryObject, IPayLoad, ITelemetryContent, Module, Node, onTelemetryClick } from '@msdyn365-commerce-modules/utilities';\r\nimport { IImageData, IImageSettings, Image} from '@msdyn365-commerce/core';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\nimport { INavigationMenuViewProps } from './citta-navigation-menu';\r\nimport { IMenuItemData } from './citta-navigation-menu.data';\r\n\r\ninterface INavigationState {\r\n parentMenu?: number;\r\n activeMenu?: number;\r\n categoryImage?:string|null;\r\n mobileViewLabelText?: string;\r\n categoryImageAltText:string;\r\n}\r\n\r\n/**\r\n *\r\n * NavigationMenuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class NavigationMenuView extends React.PureComponent {\r\n private static isBackTrack: boolean = false;\r\n private currentLevel: number = 0;\r\n private menuNode: React.RefObject;\r\n private telemetryContent: ITelemetryContent;\r\n private payLoad: IPayLoad;\r\n constructor(props: INavigationMenuViewProps) {\r\n super(props);\r\n this.menuNode = React.createRef();\r\n this.state = {activeMenu: undefined, mobileViewLabelText: '', parentMenu: undefined,categoryImageAltText:''};\r\n this._closeSubmenu =this._closeSubmenu.bind(this);\r\n this.telemetryContent = getTelemetryObject(this.props.context.request.telemetryPageName!,\r\n this.props.friendlyName,\r\n this.props.telemetry);\r\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\r\n }\r\n\r\n public componentDidMount(): void {\r\n document.body && document.body.addEventListener('mousedown', this._handleClickOutside);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n document.body && document.body.removeEventListener('mousedown', this._handleClickOutside, false);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const { isMobileView, MenuList, MobileBackButton, MobileDescriptionContainer, MobileDescriptionLabel, Navigation} = this.props;\r\n\r\n this.currentLevel = 1;\r\n return(\r\n \r\n \r\n {isMobileView && this.state.activeMenu !== undefined &&\r\n \r\n \r\n {this.state.mobileViewLabelText}\r\n }\r\n {this._renderDisplay()}\r\n \r\n \r\n );\r\n }\r\n\r\n private _renderDisplay(): JSX.Element[] {\r\n const {ListItem, menuItemData, isMobileView} = this.props;\r\n const {activeMenu} = this.state;\r\n const menuItemList: JSX.Element[] = [];\r\n\r\n if (isMobileView && activeMenu !== undefined && menuItemData.length > 0) {\r\n let menuItem: IMenuItemData = {};\r\n for(let i = 0; i < menuItemData.length; i++) {\r\n if (menuItemData[i] && menuItemData[i].id === activeMenu) {\r\n menuItem = menuItemData[i];\r\n !NavigationMenuView.isBackTrack ? this.setState({parentMenu: undefined}) : this.setState({parentMenu: undefined, mobileViewLabelText: menuItemData[i].linkText});\r\n break;\r\n }\r\n menuItem = this._getFromSubMenu(menuItemData[i]) as IMenuItemData;\r\n if (menuItem && menuItem.id === activeMenu) {\r\n break;\r\n }\r\n }\r\n\r\n menuItem && menuItemList.push (\r\n {this._createMenuItemList(menuItem)} \r\n );\r\n } else {\r\n menuItemData.forEach((item: IMenuItemData, index: number) => {\r\n menuItemList.push (\r\n \r\n {this._createMenuItemList(item)}\r\n \r\n );\r\n });\r\n }\r\n\r\n return menuItemList;\r\n }\r\n\r\n private _getFromSubMenu(item?: IMenuItemData): IMenuItemData | null {\r\n const subMenus = item && item.subMenu;\r\n if (subMenus && subMenus.length > 0) {\r\n for(let i = 0; i <= subMenus.length-1; i++) {\r\n if (subMenus[i].id === this.state.activeMenu) {\r\n !NavigationMenuView.isBackTrack ? this.setState({parentMenu: item && item.id}) : this.setState({parentMenu: item && item.id, mobileViewLabelText: subMenus[i].linkText});\r\n return subMenus[i];\r\n }\r\n const found = this._getFromSubMenu(subMenus[i]);\r\n if (found) {\r\n return found;\r\n }\r\n }\r\n }\r\n this.props.context.telemetry.error('Submenu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n private _createMenuItemList(menuItemData: IMenuItemData): JSX.Element | null {\r\n if (menuItemData && menuItemData.subMenu && menuItemData.subMenu.length > 0) {\r\n if (this.props.isMobileView && this.state.activeMenu !== undefined) {\r\n return (this._renderSubMenu(menuItemData.subMenu, menuItemData.id,false));\r\n } else {\r\n return (\r\n \r\n {this._renderButtonMenuItem(menuItemData)}\r\n {this._renderSubMenu(menuItemData.subMenu, menuItemData.id,false)}\r\n \r\n );\r\n }\r\n } else if (menuItemData && menuItemData.linkText && menuItemData.linkURL && menuItemData.linkURL.length > 0) {\r\n return (this._renderLinkMenuItem(menuItemData,menuItemData.id,false));\r\n } else if (menuItemData && menuItemData.linkText && !menuItemData.linkURL) {\r\n return (this._renderSpanMenuItem(menuItemData));\r\n }\r\n this.props.context.telemetry.error('Navigation menu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n private _renderSubMenu(subMenus?: IMenuItemData[], activeMenu?: number,IsSubMenu?:boolean): JSX.Element | null {\r\n const {isMobileView, ListItem} = this.props;\r\n const enableMultiSupportMenu = this.props.config.enableMultilevelMenu || false;\r\n const multiLevelSupportedMenu = this.props.config.menuLevelSupport || 3;\r\n // const isParentMenu:boolean= false;\r\n if (activeMenu && this.state.activeMenu !== activeMenu) {\r\n this.props.context.telemetry.error('Navigation Active menu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n if (!subMenus || subMenus.length === 0) {\r\n this.props.context.telemetry.error('Navigation Submenu content is empty, module wont render.');\r\n return null;\r\n }\r\n\r\n let levelClassName: string = '';\r\n const menuOptions = subMenus && subMenus.map((option: IMenuItemData, idx: number) => {\r\n const hasOptions = (option.subMenu && option.subMenu.length > 0);\r\n let menuItem: JSX.Element | null;\r\n if (hasOptions && isMobileView) {\r\n menuItem = this._renderButtonMenuItem(option, activeMenu, idx);\r\n } else {\r\n menuItem = (option.linkURL\r\n ? this._renderLinkMenuItem(option, idx)\r\n : this._renderSpanMenuItem(option)\r\n );\r\n }\r\n\r\n let subMenu;\r\n const haveSubmenu = hasOptions && enableMultiSupportMenu && (this.currentLevel <= Math.round(multiLevelSupportedMenu)-1);\r\n if (haveSubmenu) {\r\n this.currentLevel++;\r\n levelClassName = enableMultiSupportMenu?`level-${this.currentLevel.toString()}`:'';\r\n subMenu = this._renderSubMenu(option.subMenu, isMobileView ? option.id : undefined,true);\r\n }\r\n return (\r\n \r\n { menuItem }\r\n { subMenu }\r\n \r\n );\r\n });\r\n return (this._renderMenu(levelClassName, menuOptions, activeMenu,IsSubMenu));\r\n }\r\n private _renderButtonMenuItem(option: IMenuItemData, activeMenu?: number, index?: number): JSX.Element | null {\r\n const {Button} = this.props;\r\n return (\r\n \r\n { option.linkText }\r\n \r\n );\r\n }\r\n\r\n private _renderLinkMenuItem(option: IMenuItemData, index?: number,hoverEffect:boolean=true): JSX.Element | null {\r\n const {Link} = this.props;\r\n const linkText = option.linkText ? option.linkText : '';\r\n const imagesource= option.imageSource ? option.imageSource :'';\r\n this.payLoad.contentAction.etext = linkText;\r\n const attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\r\n return (\r\n \r\n { option.linkText }\r\n \r\n );\r\n }\r\n\r\n private _renderSpanMenuItem(option: IMenuItemData, index?: number): JSX.Element | null {\r\n const {Span} = this.props;\r\n return (\r\n { option.linkText }\r\n );\r\n }\r\n\r\n private _renderMenu(level: string, menuOptions: JSX.Element[], currentItem?: number,submenu?:boolean): JSX.Element | null {\r\n\r\n const {DivContainer, MenuList,ImageDivContainer,showCategoryImage,isMobileView} = this.props;\r\n const categoryImageDisplay = !isMobileView && showCategoryImage && this.state.categoryImage !==null && this.state.categoryImage !==undefined && !submenu;\r\n const DivContainerClass = this.currentLevel > 2 || categoryImageDisplay ? DivContainer!.className:'ms-nav__deafult';\r\n this.currentLevel = 1;\r\n return (\r\n \r\n 2 && 'navmenu-multi-level') }>\r\n { menuOptions }\r\n \r\n {\r\n categoryImageDisplay && this.state.categoryImage && (\r\n \r\n { this.state.categoryImage && this._getCategoryImage(this.state.categoryImage,this.state.categoryImageAltText) }\r\n )\r\n }\r\n \r\n );\r\n }\r\n private _updateCategoryImage=(categoryImageSrc:string,linkText:string) => ()=> {\r\n this.setState({\r\n categoryImage: categoryImageSrc !==''? categoryImageSrc :'empty',\r\n categoryImageAltText:linkText\r\n });\r\n }\r\n private _handleDropdownToggle = (data: IMenuItemData, parentId?: number) => () => {\r\n if (!this.props.isMobileView) {\r\n this.setState({\r\n activeMenu: (this.state.activeMenu && this.state.activeMenu === data.id!) ? undefined : data.id!,\r\n parentMenu: parentId\r\n });\r\n if(this.props.showCategoryImage) {\r\n this._updateCategoryImage(data.imageSource!,data.linkText!)();\r\n }\r\n } else {\r\n NavigationMenuView.isBackTrack = false;\r\n this.setState({\r\n activeMenu: data.id,\r\n mobileViewLabelText: data.linkText!,\r\n parentMenu: parentId\r\n });\r\n }\r\n\r\n this._resetFocus();\r\n };\r\n\r\n private _handleGoBack = () => () => {\r\n NavigationMenuView.isBackTrack = true;\r\n this.setState({ activeMenu: this.state.parentMenu});\r\n\r\n this._resetFocus();\r\n };\r\n\r\n private _resetFocus = () => {\r\n if (this.props.isMobileView) {\r\n setTimeout(() => {\r\n this.menuNode && this.menuNode.current && this.menuNode.current.focus();\r\n }, 0);\r\n }\r\n }\r\n\r\n // tslint:disable-next-line:no-any\r\n private _handleClickOutside = (event: any) => {\r\n if (this.menuNode.current && !this.menuNode.current.contains(event.target)) {\r\n this.setState(\r\n {\r\n activeMenu:undefined,\r\n mobileViewLabelText: '',\r\n categoryImage:null\r\n }\r\n );\r\n }\r\n };\r\n\r\n private _closeSubmenu():void {\r\n if (!this.props.isMobileView) {\r\n this.setState({activeMenu:undefined,categoryImage:null,mobileViewLabelText: ''});\r\n }\r\n }\r\n private _getCategoryImage=(categoryImage:string,alttext:string):React.ReactNode|null => {\r\n\r\n const categoryImageUrl = generateImageUrl(`${categoryImage}`, this.props.context.actionContext.requestContext.apiSettings);\r\n const defaultImageSettings: IImageSettings = {\r\n viewports: {\r\n xs: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n sm: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n md: { q: 'w=300&h=250&m=8', w: 0, h: 0 },\r\n lg: { q: 'w=300&h=250&m=8', w: 0, h: 0 }\r\n },\r\n lazyload: true\r\n };\r\n if(categoryImageUrl !== undefined) {\r\n const ImageData:IImageData = {src:categoryImageUrl};\r\n return (\r\n \r\n );\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport default NavigationMenuView;"],"names":["CittaCompetitionForm","React","constructor","props","super","firstNameValue","lastNameValue","emailAddressValue","formInputValues","moduleClassName","_showErrors","this","setState","emailErrorClass","_checkEmailError","firstNameErrorClass","_FirstNameInputRef","current","value","length","lastNameErrorClass","_LastNameInputRef","tsCsErrorClass","_TermsAndContitionsRef","checked","email","_EmailAddressInputRef","_isEmailValid","_renderErrors","resources","className","state","firstNameError","lastNameError","emailError","tsCsError","_handleChange","name","e","target","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","Number","messageCharactersLimit","render","viewProps","_objectSpread","SubscribeWrapper","moduleProps","classnames","config","subscribeResponse","_getSubmitResponse","subscribeForm","_renderForm","formErrors","formErrorsNodeProps","successResponse","_renderSuccessResponse","showSuccessResponse","successResponseNodeProps","renderView","responseMessage","successTextResponse","FormWrapper","FormContainer","firstAndLastNameInput","_renderFirstAndLastNameInput","emailInput","_renderEmailInput","countryInput","_renderCountryInput","checkboxTermsAndConditions","_renderCheckboxTermsAndConditions","checkboxPrivacyPolicy","_renderCheckboxPrivacyPolicy","reCaptcha","_renderReCaptcha","subscribeButtton","_renderSubmitButton","subscribeThanks","_renderSubmitThanks","ref","type","onChange","placeholder","firstNamePlaceholderText","required","lastNamePlaceholderText","_renderAlert","emailInputPlaceholder","id","termsAndConditionsText","href","termsAndConditionsLink","privacyPolicyText","privacyPolicyLink","reCaptchaOption","_renderRecaptchaAlert","ReCAPTCHA","sitekey","reCaptchaSiteKey","size","_submit","recaptchaErrorMessage","role","Button","title","submitButtonLabel","color","onClick","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","context","request","data","Message","Result","isBrowser","urlToOpenOnSuccess","window","location","navigationMenuSource","NavigationMenu","isRetail","isCMS","_setNavigationSource","sourceType","retailServerOnly","cmsOnly","all","_updateViewport","viewport","device","Type","isMobile","menuItemList","static","locale","nameTranslations","nameTranslation","find","item","Language","toLowerCase","Text","componentDidMount","resizeThrottledEventHandler","addThrottledEvent","componentWillUnmount","removeEventListener","_mapData","isEmptyOrNullObject","telemetry","error","defaultImageSettings","viewports","xs","q","w","h","xl","lazyload","imageSettings","gridSettings","Navigation","tag","menuAriaLabel","MenuList","ListItem","showCategoryImage","displayCategoryImage","Link","DivContainer","ImageDivContainer","ImageContainer","Span","MobileDescriptionContainer","MobileBackButton","backButtonAriaLabel","MobileDescriptionLabel","isMobileView","menuItemData","mergedData","categories","result","map","index","push","_constructMenuItemData","undefined","cmsNavItems","idx","_constructTopMenuItemData","enabletopMenu","mergedRootMenuData","topMenu","linkText","rootMenuNavigation","linkURL","imageSource","subMenu","retailItem","cmsItem","addedAllMenu","imageSouce","Images","Uri","RSItemIdInit","getFriendlyName","NameTranslations","Url","_getNestedChildren","CMSItemIdInit","linkUrl","destinationUrl","imageDestinationURL","imageLink","image","src","_getCMSNestedChildren","category","imageSourceUrl","arguments","nestedChildren","Children","allCategoryMenuText","getCategoryUrl","subMenus","_getViewport","innerWidth","sm","md","lg","__decorate","observable","computed","ICittaCompetitionFormView","Module","Object","assign","Node","NavigationMenuView","currentLevel","_updateCategoryImage","categoryImageSrc","categoryImage","categoryImageAltText","_handleDropdownToggle","parentId","isBackTrack","activeMenu","mobileViewLabelText","parentMenu","_resetFocus","_handleGoBack","setTimeout","menuNode","focus","_handleClickOutside","event","contains","_getCategoryImage","alttext","categoryImageUrl","generateImageUrl","actionContext","requestContext","apiSettings","ImageData","Image","categoryImageSettings","loadFailureBehavior","altText","_closeSubmenu","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","payLoad","getPayloadObject","body","addEventListener","tabIndex","_renderDisplay","menuItem","i","_getFromSubMenu","key","_createMenuItemList","forEach","found","_renderSubMenu","_renderButtonMenuItem","_renderLinkMenuItem","_renderSpanMenuItem","IsSubMenu","enableMultiSupportMenu","enableMultilevelMenu","multiLevelSupportedMenu","menuLevelSupport","levelClassName","menuOptions","option","hasOptions","haveSubmenu","Math","round","toString","_renderMenu","onFocus","hoverEffect","imagesource","contentAction","etext","attributes","getTelemetryAttributes","onMouseOver","onTelemetryClick","level","currentItem","submenu","categoryImageDisplay","DivContainerClass"],"sourceRoot":""}