{"version":3,"file":"static/js/33.b2c20a5b7a317c76e008.chunk.js","mappings":"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","sources":["webpack://Citta2.0/./src/modules/footer-item/footer-item.tsx?074a","webpack://Citta2.0/./src/modules/citta-emarsys-form/citta-emarsys-form.tsx?9af8","webpack://Citta2.0/./src/modules/citta-journal-posts/citta-journal-posts.tsx?e969","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.view.tsx?9b29","webpack://Citta2.0/./src/themes/citta/views/video-player.view.tsx?eef1","webpack://Citta2.0/./src/modules/footer-item/footer-item.view.tsx?c5af"],"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 {\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","/*!\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 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, 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 { 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 { 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":["FooterItem","React","constructor","props","super","handleHeadingChange","event","this","config","heading","text","target","value","handleTextChange","handleLinkTextChange","link","linkText","telemetryContent","getTelemetryObject","context","request","telemetryPageName","friendlyName","telemetry","payLoad","getPayloadObject","render","image","footerItemClassName","classnames","className","contentAction","etext","attributes","getTelemetryAttributes","viewProps","_objectSpread","_createHeading","_createImageMarkup","_createText","_createLinkText","EditableLink","_createLink","moduleProps","HeadingContainer","ItemContainer","Link","linkUrl","destinationUrl","tag","role","href","title","ariaLabel","openInNewTab","undefined","onClick","onTelemetryClick","renderView","editableLink","additionalProperties","Msdyn365","editProps","onTextChange","requestContext","length","onEdit","item","ariaHiddenAttr","src","Object","assign","gridSettings","imageSettings","viewports","xs","q","w","h","lg","lazyload","loadFailureBehavior","key","shouldSkipToMainImage","CittaEmarsysForm","firstNameValue","lastNameValue","emailAddressValue","formInputValues","moduleClassName","onRecaptchaChange","setState","reCaptchaChecked","rCCError","_showErrors","emailErrorClass","_checkEmailError","firstNameErrorClass","_FirstNameInputRef","current","lastNameErrorClass","_LastNameInputRef","privacyErrorClass","_PrivacyPolicyRef","checked","email","_EmailAddressInputRef","_isEmailValid","_renderErrors","resources","state","firstNameError","lastNameError","emailError","privacyError","_handleChange","name","e","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","SubscribeWrapper","subscribeResponse","_getSubmitResponse","subscribeForm","_renderForm","formErrors","formErrorsNodeProps","successResponse","_renderSuccessResponse","showSuccessResponse","successResponseNodeProps","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","privacyPolicyLink","reCaptchaOption","_renderRecaptchaAlert","ReCAPTCHA","sitekey","reCaptchaSiteKey","recaptchaErrorMessage","Button","submitButtonLabel","color","async","fN","lN","eA","bN","iP","eAVal","oI","_this$_recaptchaRef$c","_postEntry","_clearValues","reset","businessName","optIn","emarsysFieldId","emarsysGroupId","industryPositionFieldId","emarsysEmarsysGroupId","response","MsDyn365","data","Message","Result","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","indexOfCountry","market","split","NZ","toUpperCase","_getPostUrl","postUrl","requestUrl","_renderPosts","posts","post","imageUrl","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","ICittaEmarsysFormView","Module","Node","VideoPlayerView","_renderDesktop","playerResources","playAriaLabel","playLabel","pauseAriaLabel","pauseLabel","muteAriaLabel","muteLabel","unMuteAriaLabel","unMuteLabel","fullScreenAriaLabel","fullScreenLabel","exitFullScreenAriaLabel","exitFullScreenLabel","playingAriaLabel","playingLabel","pausedAriaLabel","pausedLabel","player","_renderMobile","imageSettingsDefault","disableLazyLoad","mobileImage","_image$imageSettings","Image","altText","_renderVideoPlayerOverlay","buttonText","buttonLink","headerText","horizontalPosition","isMobile","_updateIsMobile","innerWidth","addEventListener","componentWillUnmount","removeEventListener","renderModuleAttributes","FooterItemView","_renderElement"],"sourceRoot":""}