{"version":3,"file":"static/js/32.c286d68260d821e169cd.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/citta-emarsys-form/citta-emarsys-form.tsx?9af8","webpack://Citta2.0/./src/modules/citta-emarsys-form/citta-emarsys-form.view.tsx?edb9","webpack://Citta2.0/./src/modules/citta-journal-posts/citta-journal-posts.tsx?e969","webpack://Citta2.0/./src/modules/citta-journal-posts/citta-journal-posts.view.tsx?9b29","webpack://Citta2.0/./src/themes/citta/views/video-player.view.tsx?eef1","webpack://Citta2.0/./src/modules/footer-item/footer-item.tsx?074a","webpack://Citta2.0/./src/modules/footer-item/footer-item.view.tsx?c5af"],"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 { ICittaEmarsysFormData } from './citta-emarsys-form.data';\r\nimport { ICittaEmarsysFormProps } from './citta-emarsys-form.props.autogenerated';\r\n\r\ninterface ICittaEmarsysFormFormState {\r\n firstName: string;\r\n lastName: string;\r\n emailAddress: string;\r\n buisnessName: string;\r\n industryPosition: string;\r\n privacyPolicyChecked: boolean;\r\n eAValError: boolean;\r\n eAError: boolean;\r\n fNError: boolean;\r\n lNError: boolean;\r\n privacyError: 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 privacyErrorClass: string;\r\n}\r\n\r\nexport interface ICittaEmarsysFormForm {\r\n FormWrapper: INodeProps;\r\n FormContainer: INodeProps;\r\n firstAndLastNameInput: React.ReactNode;\r\n emailInput: React.ReactNode;\r\n buisnessInput: React.ReactNode;\r\n industryInput: 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 ICittaEmarsysFormViewProps extends ICittaEmarsysFormProps {\r\n SubscribeWrapper: IModuleProps;\r\n subscribeResponse: React.ReactNode;\r\n subscribeForm: ICittaEmarsysFormForm;\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 * CittaEmarsysForm component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaEmarsysForm extends React.PureComponent, ICittaEmarsysFormFormState> {\r\n private _FirstNameInputRef: React.RefObject;\r\n private _LastNameInputRef: React.RefObject;\r\n private _EmailAddressInputRef: React.RefObject;\r\n private _IndustryPositionInputRef: React.RefObject\r\n private _BuisnessNameInputRef: 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: ICittaEmarsysFormProps) {\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._BuisnessNameInputRef = React.createRef();\r\n this._IndustryPositionInputRef = 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 buisnessName: '',\r\n industryPosition: '',\r\n privacyPolicyChecked: false,\r\n eAValError: false,\r\n fNError: false,\r\n lNError: false,\r\n eAError: false,\r\n privacyError: 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 privacyErrorClass: 'hide'\r\n };\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const viewProps: ICittaEmarsysFormViewProps = {\r\n ...(this.props as ICittaEmarsysFormProps),\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: 'emarsys-form-errors'\r\n },\r\n successResponse: this._renderSuccessResponse(),\r\n showSuccessResponse: this.state.responseSuccess,\r\n successResponseNodeProps: {\r\n className: 'emarsys-form-success'\r\n }\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n private _getSubmitResponse(): React.ReactNode {\r\n return (\r\n this.state.responseReceived && this.responseMessage !== '' || undefined\r\n ? (\r\n
\r\n

{this.responseMessage}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n \r\n private _renderSuccessResponse(): React.ReactNode {\r\n return (\r\n this.state.responseSuccess\r\n ? (\r\n
\r\n

{this.props.config.successTextResponse}

\r\n
\r\n )\r\n : null\r\n );\r\n }\r\n \r\n \r\n private onRecaptchaChange = (value: string | null) => {\r\n if (value) {\r\n this.setState({ reCaptchaChecked: true, rCCError: false });\r\n } else {\r\n this.setState({ reCaptchaChecked: false });\r\n }\r\n }\r\n\r\n private _renderForm(): ICittaEmarsysFormForm {\r\n return {\r\n FormWrapper: {\r\n className: 'emarsys-form',\r\n },\r\n FormContainer: {\r\n className: 'emarsys-form-div',\r\n },\r\n firstAndLastNameInput: this._renderFirstAndLastNameInput(),\r\n emailInput: this._renderEmailInput(),\r\n buisnessInput: this._renderBuisnessNameInput(),\r\n industryInput: this._renderIndustryPositionInput(),\r\n checkboxPrivacyPolicy: this._renderCheckboxPrivacyPolicy(),\r\n reCaptcha: this._renderReCaptcha(),\r\n subscribeButtton: this._renderSubmitButton(),\r\n subscribeThanks: this._renderSubmitThanks()\r\n };\r\n }\r\n\r\n private _renderFirstAndLastNameInput(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n private _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 _renderBuisnessNameInput(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('buisness-name-input') : ''}\r\n \r\n
\r\n );\r\n }\r\n private _renderIndustryPositionInput(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.eAError || this.state.eAValError ? this._renderAlert('industry-position-input') : ''}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderAlert(className: string): JSX.Element {\r\n return <>;\r\n }\r\n\r\n private _renderCheckboxPrivacyPolicy(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.privacyError ? this._renderAlert('checkbox-privacy-policy') : ''}\r\n
\r\n \r\n \r\n

{this.props.config.privacyPolicyText}Privacy Policy

\r\n
\r\n
\r\n
\r\n );\r\n }\r\n\r\n\r\n private _renderReCaptcha(): React.ReactNode {\r\n return (\r\n
\r\n {\r\n this.props.config.reCaptchaOption ?
\r\n {this.state.rCCError ? this._renderRecaptchaAlert('recaptcha-error') : ''}\r\n \r\n
: null\r\n }\r\n
\r\n );\r\n }\r\n \r\n private _renderRecaptchaAlert(className: string): JSX.Element {\r\n\r\n if (this.props.config.reCaptchaOption) {\r\n if (!this.state.reCaptchaChecked) {\r\n this.recaptchaErrorMessage = this.props.resources.recaptchaErrorMessage;\r\n }\r\n }\r\n\r\n const rCCError = this.state.rCCError;\r\n return (\r\n <>\r\n {rCCError && (\r\n \r\n {\r\n this.recaptchaErrorMessage &&\r\n <>\r\n \r\n )}\r\n \r\n );\r\n }\r\n\r\n private _renderSubmitButton(): React.ReactNode {\r\n return (\r\n
\r\n {this.props.config.submitButtonLabel}\r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderSubmitThanks(): React.ReactNode {\r\n return (\r\n
\r\n
\r\n Thanks!\r\n
\r\n
\r\n );\r\n }\r\n\r\n private _showErrors = (): void => {\r\n this.setState({\r\n emailErrorClass: this._checkEmailError() ? 'show' : 'hide',\r\n firstNameErrorClass: (this._FirstNameInputRef.current && this._FirstNameInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n lastNameErrorClass: (this._LastNameInputRef.current && this._LastNameInputRef.current.value.length === 0) ? 'show' : 'hide',\r\n privacyErrorClass: (this._PrivacyPolicyRef.current && !this._PrivacyPolicyRef.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.privacyError}\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, privacyError: false });\r\n break;\r\n }\r\n case 'lastName': {\r\n this.setState({ lastName: value, lNError: false, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n case 'emailAddress': {\r\n this.setState({ emailAddress: value, eAError: false, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n case 'buisnessName': {\r\n this.setState({ buisnessName: value, eAError: false, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n case 'industryPosition': {\r\n this.setState({ industryPosition: value, reqError: false, eAValError: false, privacyError: false });\r\n break;\r\n }\r\n case 'privacyPolicy': {\r\n const isChecked = this._PrivacyPolicyRef.current && this._PrivacyPolicyRef.current.checked ? this._PrivacyPolicyRef.current.checked : false;\r\n const recaptchaWrapper = document.querySelector('.recaptcha');\r\n recaptchaWrapper && recaptchaWrapper.classList.toggle('newsletter-recapture-visable', !isChecked);\r\n this.setState({ privacyPolicyChecked: isChecked, reqError: false, eAValError: false, privacyError: 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, privacyError: false });\r\n }\r\n }\r\n }\r\n\r\n private _isEmailValid = (email: string): boolean => {\r\n const regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return regex.test(email);\r\n };\r\n\r\n private async _handleSubmit(e: React.MouseEvent | React.KeyboardEvent | React.FormEvent): Promise {\r\n this._showErrors();\r\n \r\n this.firstNameValue = (this._FirstNameInputRef && this._FirstNameInputRef.current && this._FirstNameInputRef.current.value) ? true : false;\r\n this.lastNameValue = (this._LastNameInputRef && this._LastNameInputRef.current && this._LastNameInputRef.current.value) ? true : false;\r\n this.emailAddressValue = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? true : false; \r\n\r\n const fN = (this._FirstNameInputRef && this._FirstNameInputRef.current && this._FirstNameInputRef.current.value) ? this._FirstNameInputRef.current.value : '';\r\n const lN = (this._LastNameInputRef && this._LastNameInputRef.current && this._LastNameInputRef.current.value) ? this._LastNameInputRef.current.value : '';\r\n const eA = (this._EmailAddressInputRef && this._EmailAddressInputRef.current && this._EmailAddressInputRef.current.value) ? this._EmailAddressInputRef.current.value : '';\r\n\r\n const bN = this.state.buisnessName;\r\n const iP = this.state.industryPosition;\r\n\r\n const eAVal = this._EmailAddressInputRef.current!.value;\r\n const oI = this._PrivacyPolicyRef.current!.checked;\r\n\r\n if (!this.firstNameValue) {\r\n this.setState({\r\n fNError: true,\r\n reqError: true\r\n });\r\n } else if (!this.lastNameValue) {\r\n this.setState({\r\n lNError: true,\r\n reqError: true\r\n });\r\n } else if (!this.emailAddressValue) {\r\n this.setState({\r\n eAError: true,\r\n reqError: true\r\n });\r\n } else if (!this._isEmailValid(eAVal)) {\r\n this.setState({\r\n eAValError: true\r\n });\r\n } else if (this.props.config.reCaptchaOption && !this.state.reCaptchaChecked) {\r\n this.setState({\r\n rCCError: true\r\n });\r\n } else if (!this._PrivacyPolicyRef.current!.checked) {\r\n this.setState({\r\n privacyPolicyChecked: false,\r\n privacyError: true\r\n });\r\n } else {\r\n this.formInputValues = (this.emailAddressValue) ? true : false;\r\n if (this.formInputValues && this.state.privacyPolicyChecked && !this.state.eAValError) {\r\n try {\r\n await this._postEntry(fN, lN, eA, bN, oI, iP);\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, businessName: string, optIn: boolean, industryPosition: string): Promise {\r\n let emarsysFieldId = this.props.config.emarsysGroupId, \r\n industryPositionFieldId = this.props.config.emarsysEmarsysGroupId;\r\n\r\n const response = await MsDyn365.commerceApiRequest(\r\n this.props.context.request,\r\n 'PostEmarsysContactEvent',\r\n 'post',\r\n {\r\n firstName,\r\n lastName,\r\n businessName,\r\n emailAddress: email,\r\n industryPosition,\r\n emarsysFieldId,\r\n industryPositionFieldId,\r\n }\r\n ) as any;\r\n \r\n this.responseMessage = response?.data.Message;\r\n\r\n if (response?.data.Result !== 'Error') {\r\n this.setState({\r\n responseReceived: true,\r\n responseError: response?.data.Result === 'Error',\r\n responseSuccess: response?.data.Result !== 'Error',\r\n showResponseSuccess: true,\r\n emailAddress: '',\r\n firstName: '',\r\n lastName: '',\r\n industryPosition: '',\r\n buisnessName: '',\r\n privacyPolicyChecked: 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 privacyPolicyChecked: false,\r\n reqError: false,\r\n eAValError: false,\r\n rCCError: false\r\n });\r\n }\r\n }\r\n\r\n private _clearValues(): void {\r\n if (this._PrivacyPolicyRef.current) {\r\n this._PrivacyPolicyRef.current.checked = false;\r\n const recaptchaWrapper = document.querySelector('.recaptcha');\r\n recaptchaWrapper && recaptchaWrapper.classList.toggle('newsletter-recapture-visable', true);\r\n }\r\n if (this._EmailAddressInputRef.current) {\r\n this._EmailAddressInputRef.current!.value = '';\r\n }\r\n if (this._FirstNameInputRef.current) {\r\n this._FirstNameInputRef.current!.value = '';\r\n }\r\n if (this._LastNameInputRef.current) {\r\n this._LastNameInputRef.current!.value = '';\r\n }\r\n if (this._BuisnessNameInputRef) {\r\n this._BuisnessNameInputRef.current!.value = '';\r\n }\r\n if (this._IndustryPositionInputRef) {\r\n this._IndustryPositionInputRef.current!.value = '';\r\n }\r\n }\r\n\r\n}\r\n\r\nexport default CittaEmarsysForm;\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\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { ICittaEmarsysFormViewProps } from './citta-emarsys-form';\r\n\r\n/**\r\n *\r\n * ICittaProductSkuView component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class ICittaEmarsysFormView 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 industryInput,\r\n buisnessInput,\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 {buisnessInput}\r\n {emailInput}\r\n {industryInput}\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 ICittaEmarsysFormView;\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 MsDyn365 from '@msdyn365-commerce/core';\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport * as React from 'react';\r\nimport classnames from 'classnames';\r\n\r\nimport { ICittaJournalPostsData } from './citta-journal-posts.data';\r\nimport { ICittaJournalPostsProps } from './citta-journal-posts.props.autogenerated';\r\nimport {IGetJournalPostData } from '../../data-actions/journal/get-journal-posts';\r\n\r\nenum Market {\r\n NZ = 'NZL',\r\n AU = 'AUS',\r\n US = 'USA'\r\n}\r\n\r\nexport interface ICittaJournalPostsViewProps extends ICittaJournalPostsProps {\r\n JournalsWrapper: IModuleProps;\r\n journals: React.ReactNode;\r\n loadMore: React.ReactNode;\r\n search: React.ReactNode;\r\n categories: React.ReactNode;\r\n}\r\n\r\n// const Categories = {\r\n// behindtheproduct: 'Città Behind the product',\r\n// styling: 'Stying'\r\n// }\r\n\r\nexport interface ICittaJournalPostsState {\r\n allJournals: any;\r\n displayedJournals: any;\r\n displayCount: number;\r\n searchTerm: string;\r\n categoryFilter: string;\r\n}\r\n\r\n/**\r\n *\r\n * CittaJournalPosts component\r\n * @extends {React.PureComponent>}\r\n */\r\nclass CittaJournalPosts extends React.PureComponent, ICittaJournalPostsState> {\r\n private moduleClassName: string = 'journal-posts-wrapper';\r\n\r\n constructor(props: any) {\r\n super(props);\r\n const { audience } = props.config;\r\n const journals = props.data && props.data.journals && props.data.journals.result;\r\n let journalsFilteredByAudience = journals.posts && journals.posts.filter((post: any) => post.audience.indexOf(audience) != -1);\r\n\r\n this.state = {\r\n allJournals: journalsFilteredByAudience || [],\r\n displayedJournals: (journalsFilteredByAudience || []).slice(0, 6),\r\n displayCount: 6,\r\n searchTerm: '',\r\n categoryFilter: ''\r\n }\r\n this._loadMore = this._loadMore.bind(this);\r\n this._renderSearch = this._renderSearch.bind(this);\r\n this._renderCategoryFilter = this._renderCategoryFilter.bind(this);\r\n this._onType = this._onType.bind(this);\r\n this._getPostUrl = this._getPostUrl.bind(this);\r\n }\r\n\r\n public componentDidMount(): void {\r\n if (MsDyn365.isBrowser && typeof window !== 'undefined') {\r\n const { categories } = this.props.config;\r\n const url: string = decodeURI(window.location.search);\r\n const urlParams = new URLSearchParams(url);\r\n const journalcategory = urlParams.has('journalcategory') ? urlParams.get('journalcategory') : '';\r\n const category = categories?.find((c: String) => c.toLocaleLowerCase() === journalcategory?.toLocaleLowerCase());\r\n category && this._setCategoryFilter(category)\r\n }\r\n\r\n let container = document.querySelector(\".journal-posts-wrapper-categories ul\");\r\n if (container) {\r\n const middle = container.querySelector(\"li.active\") || container.children[Math.floor((container.children.length) / 2)];\r\n // @ts-ignore\r\n container.scrollLeft = middle.offsetLeft + middle.offsetWidth / 2 - container.offsetWidth / 2;\r\n }\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n const {displayedJournals, allJournals} = this.state;\r\n\r\n if (!allJournals || !allJournals.length) {\r\n //TODO: create a better page in here for no posts found or something\r\n return
No journals found at the moment
\r\n }\r\n\r\n const viewProps: ICittaJournalPostsViewProps = {\r\n ...(this.props as ICittaJournalPostsProps ),\r\n JournalsWrapper: {\r\n moduleProps: this.props,\r\n className: classnames(this.moduleClassName)\r\n },\r\n journals: this._renderPosts(displayedJournals),\r\n loadMore: this._renderLoadMore(),\r\n search: this._renderSearch(),\r\n categories: this._renderCategoryFilter(),\r\n };\r\n\r\n return this.props.renderView(viewProps);\r\n }\r\n\r\n private _formatDate(date: string): string {\r\n const d = date.split('-');\r\n return `${parseInt(d[2], 10)}.${parseInt(d[1], 10)}.${d[0]}`\r\n }\r\n\r\n private _renderLoadMore = () => {\r\n const {displayedJournals, allJournals } = this.state;\r\n if (displayedJournals.length >= allJournals.length) {\r\n return null;\r\n }\r\n return (\r\n
\r\n Load More\r\n
\r\n )\r\n }\r\n\r\n private _onType = (e: React.ChangeEvent) => {\r\n const { categoryFilter } = this.state;\r\n\r\n const newDisplayCount = 10;\r\n\r\n const list = this._getFilteredJournals(e.target.value.toLowerCase(), categoryFilter)\r\n \r\n this.setState({\r\n displayCount: newDisplayCount,\r\n displayedJournals: list.slice(0, newDisplayCount),\r\n searchTerm: e.target.value,\r\n })\r\n }\r\n\r\n private _getFilteredJournals = (searchTerm: string, categoryFilter: string) => {\r\n const { allJournals } = this.state;\r\n\r\n let list = allJournals.filter((journal: IGetJournalPostData) => {\r\n if (categoryFilter && journal.category !== categoryFilter) {\r\n return null;\r\n }\r\n return journal.title.toLowerCase().indexOf(searchTerm) !== -1 || \r\n journal.subTitle.toLowerCase().indexOf(searchTerm) !== -1 \r\n })\r\n\r\n return list\r\n }\r\n\r\n private _setCategoryFilter = (type: string) => {\r\n const { searchTerm } = this.state;\r\n\r\n const newDisplayCount = 6;\r\n\r\n let list = this._getFilteredJournals(searchTerm, type);\r\n this.setState({\r\n categoryFilter: type,\r\n displayCount: newDisplayCount,\r\n displayedJournals: list.slice(0, newDisplayCount)\r\n })\r\n }\r\n\r\n private _renderCategoryFilter = () => {\r\n const { categories } = this.props.config;\r\n const { categoryFilter } = this.state;\r\n\r\n return (\r\n
\r\n
    \r\n
  • this._setCategoryFilter('')}>All
  • \r\n {categories?.map(category => {\r\n return
  • this._setCategoryFilter(category)}>{category}
  • \r\n })}\r\n
\r\n
\r\n )\r\n }\r\n\r\n private _renderSearch = () => {\r\n return (\r\n
\r\n \r\n
\r\n )\r\n }\r\n\r\n private _loadMore(): void {\r\n const { displayCount, searchTerm, categoryFilter } = this.state;\r\n\r\n const newDisplayCount = displayCount + 3;\r\n let list = this._getFilteredJournals(searchTerm, categoryFilter);\r\n this.setState({\r\n displayCount: newDisplayCount,\r\n displayedJournals: list.slice(0, newDisplayCount)\r\n })\r\n }\r\n\r\n private getMarket = (url: string = ''): string => {\r\n let indexOfCountry = 3;\r\n if (url.indexOf('test.') > 0 || url.indexOf('cittab.') > 0) {\r\n indexOfCountry = 4;\r\n }\r\n let market = (url && url.length > 0) \r\n ? (url.indexOf('//') > -1 \r\n ? ((url.split('/')[indexOfCountry] === undefined || (url.split('/')[indexOfCountry].length > 2 && url.split('/')[indexOfCountry].toLowerCase() !== 'international' && url.split('/')[indexOfCountry].toLowerCase() !== 'us') || url.split('/')[indexOfCountry] === '') \r\n ? Market.NZ \r\n : url.split('/')[indexOfCountry].toUpperCase()) \r\n : Market.NZ) \r\n : '';\r\n\r\n return market;\r\n };\r\n\r\n private _getPostUrl = (postUrl: string) => {\r\n const url = this.props.context.request.url && this.props.context.request.url.requestUrl && this.props.context.request.url.requestUrl.href;\r\n\r\n if (postUrl.indexOf('https://') !== -1) {\r\n return postUrl;\r\n }\r\n\r\n const market = this.getMarket(url);\r\n\r\n if (market === 'AU') {\r\n return `\\/au${postUrl}`\r\n } else if (market.toLowerCase() === 'international' || market.toLowerCase() === 'us') { \r\n return `/${market.toLowerCase()}${postUrl}`\r\n }\r\n \r\n return postUrl;\r\n }\r\n\r\n private _renderPosts = (posts: IGetJournalPostData[]) => {\r\n if (!posts.length) {\r\n return
We can't find any journals to match that
\r\n }\r\n\r\n return posts.map((post: IGetJournalPostData) => {\r\n return (\r\n \r\n );\r\n })\r\n };\r\n}\r\n\r\nexport default CittaJournalPosts;\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 } from '@msdyn365-commerce-modules/utilities';\r\n\r\nimport * as React from 'react';\r\nimport { ICittaJournalPostsViewProps } from './citta-journal-posts';\r\n\r\nexport default (props: ICittaJournalPostsViewProps) => {\r\n\r\n return (\r\n \r\n {props.categories}\r\n {props.search}\r\n \r\n
\r\n {props.journals}\r\n
\r\n {props.loadMore}\r\n
\r\n );\r\n};\r\n","/*---------------------------------------------------------------------------------------------\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License. See License.txt in the project root for license information.\r\n *--------------------------------------------------------------------------------------------*/\r\nimport { Button } from '@msdyn365-commerce-modules/utilities';\r\nimport { IVideoPlayerViewProps } from '@msdyn365-commerce-modules/video-player/src/modules/video-player/video-player';\r\n// import { IPlayerResources } from '@msdyn365-commerce/components/dist/types/videoplayer/components/data/player-resources';\r\nimport { Image } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport { IVideoPlayerProps } from '../definition-extensions/video-player.ext.props.autogenerated';\r\n\r\ninterface IVideoPlayerState {\r\n isMobile: boolean;\r\n }\r\n\r\n/**\r\n *\r\n * VideoPlayer component\r\n * @extends {React.PureComponent}\r\n */\r\nexport class VideoPlayerView extends React.PureComponent, IVideoPlayerState> {\r\n constructor(props: IVideoPlayerViewProps) {\r\n //@ts-ignore\r\n super(props);\r\n this.state = {isMobile: false};\r\n }\r\n\r\n public componentDidMount(): void {\r\n this._updateIsMobile();\r\n window.addEventListener('resize', this._updateIsMobile);\r\n }\r\n\r\n public componentWillUnmount(): void {\r\n window.removeEventListener('resize', this._updateIsMobile);\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n return (\r\n \r\n
\r\n {this.state.isMobile ? this._renderMobile() : this._renderDesktop()}\r\n {this._renderVideoPlayerOverlay()}\r\n
\r\n \r\n );\r\n }\r\n\r\n private _renderDesktop = (): React.ReactNode | null => {\r\n const playerResources: any = {\r\n playAriaLabel: this.props.config.playLabel ? this.props.config.playLabel : '',\r\n pauseAriaLabel: this.props.config.pauseLabel ? this.props.config.pauseLabel : '',\r\n muteAriaLabel: this.props.config.muteLabel ? this.props.config.muteLabel : '',\r\n unMuteAriaLabel: this.props.config.unMuteLabel ? this.props.config.unMuteLabel: '',\r\n fullScreenAriaLabel: this.props.config.fullScreenLabel ? this.props.config.fullScreenLabel : '',\r\n exitFullScreenAriaLabel: this.props.config.exitFullScreenLabel ? this.props.config.exitFullScreenLabel : '',\r\n playingAriaLabel: this.props.config.playingLabel ? this.props.config.playingLabel : '',\r\n pausedAriaLabel: this.props.config.pausedLabel ? this.props.config.pausedLabel : '',\r\n ...this.props.resources\r\n };\r\n if (this.props.player) {\r\n return React.cloneElement(this.props.player as React.ReactElement, {playerResources});\r\n }\r\n return null;\r\n };\r\n\r\n private _renderMobile = (): React.ReactNode | null => {\r\n const imageSettingsDefault = {\r\n disableLazyLoad: true,\r\n viewports: {\r\n xs: { q: `q=80&w=770&h=500&m=6`, w: 770, h: 500 }\r\n }\r\n };\r\n const image = this.props.config.mobileImage;\r\n\r\n if (image) {\r\n return (\r\n
\r\n {image && }\r\n
\r\n );\r\n }\r\n return null;\r\n }\r\n\r\n private _renderVideoPlayerOverlay = (): React.ReactNode | null => {\r\n const { buttonText, buttonLink, headerText, horizontalPosition } = this.props.config;\r\n if (buttonText || headerText) {\r\n return (\r\n
\r\n { headerText &&
{headerText}
}\r\n { buttonText && {buttonText}\r\n }\r\n
\r\n );\r\n }\r\n return null;\r\n };\r\n\r\n private _updateIsMobile = () => {\r\n this.setState({\r\n isMobile: window.innerWidth < 768\r\n });\r\n }\r\n}\r\n\r\nexport default VideoPlayerView;","/*!\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 {\n getPayloadObject,\n getTelemetryAttributes,\n getTelemetryObject,\n IModuleProps,\n INodeProps,\n IPayLoad,\n ITelemetryContent,\n onTelemetryClick\n} from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { IFooterItemConfig, IFooterItemProps, IHeadingData, ILinkData } from './footer-item.props.autogenerated';\n\nexport interface IFooterViewProps extends IFooterItemProps {\n heading: React.ReactNode;\n image: React.ReactNode;\n text: React.ReactNode;\n linkText: React.ReactNode;\n className?: string;\n FooterItem: IModuleProps;\n HeadingContainer: INodeProps;\n ItemContainer: INodeProps;\n Link: INodeProps;\n EditableLink: React.ReactNode;\n}\n\n/**\n *\n * FooterItem component.\n * @extends {React.PureComponent>}\n */\nexport class FooterItem extends React.PureComponent> {\n private readonly telemetryContent: ITelemetryContent;\n\n private readonly payLoad: IPayLoad;\n\n private attributes: Msdyn365.IDictionary | undefined;\n\n constructor(props: IFooterItemProps) {\n super(props);\n this.telemetryContent = getTelemetryObject(\n this.props.context.request.telemetryPageName!,\n this.props.friendlyName,\n this.props.telemetry\n );\n\n // Construct telemetry attribute to render\n this.payLoad = getPayloadObject('click', this.telemetryContent, '', '');\n }\n\n public render(): JSX.Element {\n const { heading, image, link, text } = this.props.config;\n const footerItemClassName = classnames('ms-footer__item', this.props.config.className);\n const linkText = link && link.linkText ? link.linkText : '';\n this.payLoad.contentAction.etext = linkText;\n this.attributes = getTelemetryAttributes(this.telemetryContent, this.payLoad);\n const viewProps: IFooterViewProps = {\n ...this.props,\n heading: this._createHeading(heading!),\n image: this._createImageMarkup(image!),\n text: this._createText(text!),\n linkText: this._createLinkText(link!),\n EditableLink: this._createLink(link!),\n\n FooterItem: {\n moduleProps: this.props,\n className: footerItemClassName\n },\n\n HeadingContainer: {\n className: 'ms-footer__heading'\n },\n\n ItemContainer: {\n className: 'ms-footer__link__container'\n },\n\n // @ts-expect-error\n Link: link &&\n link.linkUrl &&\n link.linkUrl.destinationUrl && {\n tag: 'a',\n role: 'link',\n className: 'ms-footer__link',\n href: link.linkUrl.destinationUrl,\n title: linkText,\n 'aria-label': link.ariaLabel,\n target: link.openInNewTab ? '_blank' : undefined,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText),\n ...this.attributes\n },\n className: footerItemClassName\n };\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading!.text = event.target.value);\n\n public handleTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.text = event.target.value);\n\n public handleLinkTextChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.link!.linkText = event.target.value);\n\n private _createLink(link: ILinkData): React.ReactNode | null {\n if (link) {\n const linkText = link.linkText ? link.linkText : '';\n\n // TODO: Update the inner tag in the anchor link to span\n const editableLink: Msdyn365.ILinksData = {\n ariaLabel: link.ariaLabel,\n className: 'ms-footer__link',\n linkText,\n linkUrl: link.linkUrl.destinationUrl,\n openInNewTab: link.openInNewTab,\n role: 'link',\n additionalProperties: this.attributes!,\n onClick: onTelemetryClick(this.telemetryContent, this.payLoad, linkText)\n };\n return (\n \n );\n }\n return null;\n }\n\n private _createLinkText(link: ILinkData): React.ReactNode | null {\n if (!link || !link.linkText) {\n return null;\n }\n\n return {link.linkText};\n }\n\n private _createHeading(heading: IHeadingData): React.ReactNode | null {\n if (!heading || !heading.text || heading.text.length === 0) {\n return null;\n }\n\n return (\n \n );\n }\n\n private _createText(text: string): React.ReactNode | null {\n if (!text) {\n return null;\n }\n return (\n \n );\n }\n\n private _createImageMarkup(item: Msdyn365.IImageData, ariaHiddenAttr?: boolean): React.ReactNode | null {\n if (!item || !item.src || item.src.length === 0) {\n return null;\n }\n\n const defaultImageSettings: Msdyn365.IImageSettings = {\n viewports: {\n xs: { q: 'w=24&h=24&m=6', w: 0, h: 0 },\n lg: { q: 'w=24&h=24&m=6', w: 0, h: 0 }\n },\n lazyload: true\n };\n return (\n \n );\n }\n}\n\nexport default FooterItem;\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 { IFooterViewProps } from './footer-item';\n\n/**\n *\n * FooterItemView component.\n * @extends {React.PureComponent}\n */\nexport class FooterItemView extends React.PureComponent {\n public render(): JSX.Element | null {\n const { FooterItem } = this.props;\n return {this._renderElement(this.props)};\n }\n\n private _renderElement(props: IFooterViewProps): React.ReactNode | null {\n const { heading, HeadingContainer, Link, linkText, image, text, EditableLink } = props;\n if (heading) {\n return {heading} ;\n } else if (Link && image) {\n return (\n \n {linkText}\n {image}\n \n );\n } else if (Link) {\n return EditableLink;\n }\n return (\n <>\n {text}\n {image}\n \n );\n }\n}\n\nexport default FooterItemView;\n"],"names":["CittaEmarsysForm","React","constructor","props","super","firstNameValue","lastNameValue","emailAddressValue","formInputValues","moduleClassName","onRecaptchaChange","value","this","setState","reCaptchaChecked","rCCError","_showErrors","emailErrorClass","_checkEmailError","firstNameErrorClass","_FirstNameInputRef","current","length","lastNameErrorClass","_LastNameInputRef","privacyErrorClass","_PrivacyPolicyRef","checked","email","_EmailAddressInputRef","_isEmailValid","_renderErrors","resources","className","state","firstNameError","lastNameError","emailError","privacyError","_handleChange","name","e","target","firstName","fNError","reqError","eAValError","lastName","lNError","emailAddress","eAError","buisnessName","industryPosition","isChecked","recaptchaWrapper","document","querySelector","classList","toggle","privacyPolicyChecked","console","log","test","_BuisnessNameInputRef","_IndustryPositionInputRef","_recaptchaRef","_handleSubmit","bind","responseReceived","responseError","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","buisnessInput","_renderBuisnessNameInput","industryInput","_renderIndustryPositionInput","checkboxPrivacyPolicy","_renderCheckboxPrivacyPolicy","reCaptcha","_renderReCaptcha","subscribeButtton","_renderSubmitButton","subscribeThanks","_renderSubmitThanks","ref","type","onChange","placeholder","firstNamePlaceholderText","required","lastNamePlaceholderText","_renderAlert","emailInputPlaceholder","businessNamePlaceholder","industryPositionPlaceholder","id","privacyPolicyText","href","privacyPolicyLink","reCaptchaOption","_renderRecaptchaAlert","ReCAPTCHA","sitekey","reCaptchaSiteKey","recaptchaErrorMessage","role","Button","title","submitButtonLabel","color","onClick","async","fN","lN","eA","bN","iP","eAVal","oI","_this$_recaptchaRef$c","_postEntry","_clearValues","reset","businessName","optIn","emarsysFieldId","emarsysGroupId","industryPositionFieldId","emarsysEmarsysGroupId","response","MsDyn365","context","request","data","Message","Result","ICittaEmarsysFormView","Module","Object","assign","Node","Market","CittaJournalPosts","_renderLoadMore","displayedJournals","allJournals","_loadMore","_onType","categoryFilter","list","_getFilteredJournals","toLowerCase","displayCount","slice","searchTerm","filter","journal","category","indexOf","subTitle","_setCategoryFilter","_renderCategoryFilter","categories","map","_renderSearch","getMarket","url","arguments","undefined","indexOfCountry","market","split","NZ","toUpperCase","_getPostUrl","postUrl","requestUrl","_renderPosts","posts","post","imageUrl","src","alt","_formatDate","date","audience","journals","result","journalsFilteredByAudience","componentDidMount","isBrowser","window","decodeURI","location","search","urlParams","URLSearchParams","journalcategory","has","get","find","c","toLocaleLowerCase","container","middle","children","Math","floor","scrollLeft","offsetLeft","offsetWidth","JournalsWrapper","loadMore","d","parseInt","newDisplayCount","VideoPlayerView","_renderDesktop","playerResources","playAriaLabel","playLabel","pauseAriaLabel","pauseLabel","muteAriaLabel","muteLabel","unMuteAriaLabel","unMuteLabel","fullScreenAriaLabel","fullScreenLabel","exitFullScreenAriaLabel","exitFullScreenLabel","playingAriaLabel","playingLabel","pausedAriaLabel","pausedLabel","player","_renderMobile","imageSettingsDefault","disableLazyLoad","viewports","xs","q","w","h","image","mobileImage","_image$imageSettings","Image","altText","gridSettings","imageSettings","loadFailureBehavior","_renderVideoPlayerOverlay","buttonText","buttonLink","headerText","horizontalPosition","isMobile","_updateIsMobile","innerWidth","addEventListener","componentWillUnmount","removeEventListener","renderModuleAttributes","FooterItem","handleHeadingChange","event","heading","text","handleTextChange","handleLinkTextChange","link","linkText","telemetryContent","getTelemetryObject","telemetryPageName","friendlyName","telemetry","payLoad","getPayloadObject","footerItemClassName","contentAction","etext","attributes","getTelemetryAttributes","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","HeadingContainer","ItemContainer","Link","linkUrl","destinationUrl","tag","ariaLabel","openInNewTab","onTelemetryClick","editableLink","additionalProperties","Msdyn365","editProps","onTextChange","requestContext","onEdit","item","ariaHiddenAttr","lg","lazyload","key","shouldSkipToMainImage","FooterItemView","_renderElement"],"sourceRoot":""}