{"version":3,"sources":["webpack:///src/modules/product-specification/components/product-specification-table-stucture.tsx?4b07","webpack:///src/modules/product-specification/product-specification.tsx?f393","webpack:///./src/modules/citta-product-video/citta-product-video.view.tsx?1b81","webpack:///src/modules/social-share/social-share.view.tsx?76da","webpack:///./src/modules/citta-contact/citta-contact.view.tsx?edb9","webpack:///./src/modules/citta-b2b-account-welcome-tile/citta-b2b-account-welcome-tile.view.tsx?c94b","webpack:///src/modules/product-specification/product-specification.view.tsx?bfbe","webpack:///src/modules/default-page-summary/default-page-summary.tsx?b254","webpack:///src/index.ts?c6ae","webpack:///./src/modules/citta-contact/citta-contact.tsx?c053","webpack:///./src/modules/citta-product-video/citta-product-video.tsx?870e","webpack:///./src/modules/citta-b2b-account-welcome-tile/citta-b2b-account-welcome-tile.tsx?8400","webpack:///src/modules/social-share/social-share.tsx?ed88"],"names":["ProductSpecificationTableRow","_ref","productName","cellData","className","React","scope","dangerouslySetInnerHTML","getRichTextHtml","ProductSpecification","constructor","props","super","handleHeadingChange","event","this","config","heading","text","target","value","_toggle","drawerListId","state","setState","isDrawerOpen","undefined","isAdditionalMediaDrawerOpen","context","data","telemetry","catalogId","Msdyn365","request","validateCatalogId","reaction","product","result","RecordId","actionInput","AttributesForSelectedVariantInput","actionContext","requestContext","apiSettings","channelId","getAttributesForSelectedVariant","catch","error","message","debug","shouldComponentUpdate","nextProps","nextState","render","_heading$tag","productSpecificationData","length","isAccrodion","displayStyle","viewProps","_objectSpread","handleText","moduleProps","classnames","ProductSpecificationTableProps","tag","ProductSpecificationTableBodyProps","title","editProps","onEdit","productSpecificationResult","_createDrawerBody","_createTableBody","renderView","content","_this$props$context$r","_this$props$data$addi","tableRows","map","index","_renderProductCell","key","Name","app","OmniChannelMedia","additionalMediaLocations","push","_createAdditionalMediaDrawer","_this$props$context$r2","_this$props$data$addi2","accordionItemContainer","drawers","_product$Name","Module","Object","assign","Drawer","collapseProps","timeout","isOpen","openGlyph","closeGlyph","glyphPlacement","toggleButtonText","onToggle","resources","additionalDownloadsText","prevState","mediaLocation","Uri","href","download","AltText","DataTypeValue","_renderCurrencyCell","_renderDateTimeCell","_renderDecimalCell","_renderIntegerCell","_renderTextCell","_renderTrueFalseCell","warning","CurrencyValue","CurrencyCode","_product$DateTimeOffs","DateTimeOffsetValue","toUTCString","IntegerValue","FloatValue","TextValue","BooleanValue","trueValueText","falseValueText","__decorate","observer","ProductVideoContainer","player","SocialShareView","SocialShareList","SocialShareItemElements","SocialShareItem","SocialShare","createElement","Node","SocialShareElement","ContactContainer","ContactForm","ErrorMessage","EmailAddress","PhoneNumber","Country","City","ReasonForEnquiry","Message","Recaptcha","SubmitButton","AccountWelcomeTileView","AccountWelcomeTile","ProductSpecificationView","rowdata","ArrayExtensions","hasElements","filter","row","ObjectExtensions","isNullOrUndefined","DefaultPageSummary","pageSummary","Error","description","keywords","sharingImageUrl","faviconUrl","canonicalUrl","sharingImage","src","pageTitle","_constructPageTitle","HtmlHeadInclude","name","rel","disableOgTags","_renderOgTags","disableTwitterTags","_renderTwitterTags","property","moduleConfig","ignoreTitleSuffixPrefix","appConfig","platform","pageTitlePrefix","pageTitleSuffix","CittaContact","emailAddress","phoneNumber","country","city","reasonForEnquiry","inputState","nameError","eAError","pNError","countryError","cityError","reasonEnquiryError","messageError","reqErrorMsg","eAValErrorMsg","eAValidationError","responseReceived","rCCError","reCaptchaChecked","hideFirstElement","selectedValue","nameValue","emailAddressValue","phoneNumberValue","countryValue","cityValue","messageValue","reasonEnquiryValue","formInputValues","response","onRecaptchaChange","handleChange","inputText","e","onChangeSelect","onChangeTextArea","isEmailValid","email","test","_nameInputRef","_emailAddressInputRef","_phoneNumberInputRef","_countryInputRef","_cityInputRef","_reasonForEnquirySelectRef","_messageInputRef","_recaptchaRef","_handleSend","bind","formProps","onSubmit","_renderName","_renderErrorMessage","_renderEmailAddress","_renderPhoneNumber","_renderCountry","_renderCity","_renderReasonForEnquiry","_renderMessage","_renderRecaptcha","_renderSubmitButton","responseSuccessMessage","responseErrorMessage","_renderAlert","id","ref","type","onChange","contactNamePlaceholderText","placeholder","contactEmailAddressPlaceholderText","contactPhoneNumberPlaceholderText","contactCountryPlaceholderText","contactCityPlaceholderText","contactReasonForEnquiryOption1Text","contactReasonForEnquiryOption2Text","contactReasonForEnquiryOption3Text","contactReasonForEnquiryOption4Text","contactReasonForEnquiryOption5Text","contactReasonForEnquiryOption6Text","contactReasonForEnquiryOption7Text","contactReasonForEnquiryOption8Text","contactMessagePlaceholderText","reCaptchaOption","_renderRecaptchaAlert","ReCAPTCHA","sitekey","reCaptchaSiteKey","Button","contactSendButtonText","onClick","requiredErrorMessage","requiredTextErrorMessage","eAValidationErrorMessage","reqError","eAValError","role","recaptchaErrorMessage","current","reasonEnquiryInnerText","selectedOptions","innerText","eAVal","nA","eA","pN","cV","cI","rE","mV","submitContactFormAction","SubmitContactFormDataActionInput","_this$_recaptchaRef$c","success","reset","_unused","console","log","imageSource","CittaProductVideo","attributes","srcAttribute","find","attribute","attributeName","width","controls","accountInfo","accountInformation","slots","socialShareItems","cookies","isConsentGiven","params","isEditor","viewprops","caption","orientation","tabIndex"],"mappings":"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","file":"static/js/13.9ce3a68deac1fd4a531d.chunk.js","sourcesContent":["/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { getRichTextHtml } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\n/**\n * Product specification table row.\n */\nexport interface IProductSpecificationTableRow {\n productName?: string;\n cellData?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Product specification table row component.\n * @param props - For product specification table row.\n * @param props.productName - Product name.\n * @param props.cellData - Cell data.\n * @param props.className - Class name.\n * @returns - Returns JSX element.\n */\nexport const ProductSpecificationTableRow: React.FC = ({ productName, cellData, className }) => (\n \n \n {/* eslint-disable-next-line react/no-danger */}\n \n \n {cellData}\n \n);\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport * as Msdyn365 from '@msdyn365-commerce/core';\nimport { AttributeValue } from '@msdyn365-commerce/retail-proxy/dist/Entities/CommerceTypes.g';\nimport { Drawer, IModuleProps, INodeProps, Module } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport { reaction } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\n\nimport { validateCatalogId } from '@msdyn365-commerce-modules/retail-actions';\nimport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant } from '../..';\nimport { ProductSpecificationTableRow } from './components/product-specification-table-stucture';\nimport { IProductSpecificationData } from './product-specification.data';\nimport { displayStyle, IProductSpecificationProps } from './product-specification.props.autogenerated';\n\n/**\n * Maintain Drawer State.\n */\nexport interface IProductSpecificationState {\n isDrawerOpen: boolean;\n isAdditionalMediaDrawerOpen: boolean;\n drawerListId: number | undefined;\n}\n\n/**\n * Product specification view props.\n */\nexport interface IProductSpecificationViewProps extends IProductSpecificationProps<{}> {\n ProductSpecification: IModuleProps;\n ProductSpecificationTableProps: INodeProps;\n ProductSpecificationTableBodyProps: INodeProps;\n productSpecificationResult?: (JSX.Element | null)[];\n\n title?: React.ReactNode;\n isAccrodion?: boolean;\n handleText?(event: Msdyn365.ContentEditableEvent): void;\n}\n\n/**\n * Check for display style either accordion or table.\n */\nexport interface IProductSpecificationExtentedProps extends IProductSpecificationProps {\n displayStyle?: displayStyle;\n}\n\n/**\n *\n * ProductSpecification component.\n * @extends {React.Component>}\n */\n@observer\nclass ProductSpecification extends React.Component {\n public constructor(props: IProductSpecificationExtentedProps) {\n super(props);\n this.state = {\n isDrawerOpen: false,\n isAdditionalMediaDrawerOpen: false,\n drawerListId: undefined\n };\n }\n\n public async componentDidMount(): Promise {\n const { context, data, telemetry } = this.props;\n const catalogId = Msdyn365.getCatalogId(this.props.context.request);\n validateCatalogId(catalogId);\n reaction(\n () => (data.product.result ? data.product.result.RecordId : null),\n () => {\n if (context && data.product.result) {\n const actionInput = new AttributesForSelectedVariantInput(\n data.product.result.RecordId,\n\n +context.actionContext.requestContext.apiSettings.channelId,\n data.product.result,\n catalogId\n );\n\n getAttributesForSelectedVariant(actionInput, this.props.context.actionContext).catch((error: Error) => {\n telemetry.error(error.message);\n telemetry.debug('Unable to update attributes for Product');\n telemetry.error(error.message);\n });\n }\n }\n );\n }\n\n public shouldComponentUpdate(nextProps: IProductSpecificationExtentedProps, nextState: IProductSpecificationState): boolean {\n if (this.state === nextState && this.props.data === nextProps.data) {\n return false;\n }\n return true;\n }\n\n public render(): JSX.Element | null {\n let data: IProductSpecificationData;\n try {\n data = this.props.data;\n } catch (error) {\n this.props.telemetry.error(`Something went wrong ------${error}`);\n return
{error}
;\n }\n\n if (!data.productSpecificationData.result || data.productSpecificationData.result.length <= 0) {\n this.props.telemetry.error('Product specification content is empty, module wont render.');\n return null;\n }\n\n const { heading, className } = this.props.config;\n const { productSpecificationData } = this.props.data;\n const isAccrodion = this.props.config.displayStyle === displayStyle.accordion;\n const viewProps = {\n ...this.props,\n handleText: this.handleHeadingChange,\n ProductSpecification: {\n moduleProps: this.props,\n className: classnames('ms-product-specification', className)\n },\n ProductSpecificationTableProps: isAccrodion\n ? {\n moduleProps: this.props,\n className: classnames('ms-product-specification__accordion', className)\n }\n : {\n className: classnames('ms-product-specification__table table-striped table-bordered'),\n tag: 'table'\n },\n isAccrodion,\n ProductSpecificationTableBodyProps: isAccrodion\n ? {}\n : {\n className: '',\n tag: 'tbody'\n },\n title: heading?.text && (\n \n ),\n productSpecificationResult:\n productSpecificationData.result && (isAccrodion ? this._createDrawerBody(data) : this._createTableBody(data))\n } as IProductSpecificationViewProps;\n\n return this.props.renderView(viewProps) as React.ReactElement;\n }\n\n /**\n * Handle Heading Text Change.\n * @param event - Current event.\n */\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent): void => {\n this.props.config.heading!.text = event.target.value;\n };\n\n private _createTableBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const tableRows = content.productSpecificationData.result!.map((product, index) => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n\n if (!cellData) {\n return null;\n }\n\n return (\n <>\n \n \n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n tableRows.push(this._createAdditionalMediaDrawer());\n }\n\n return tableRows;\n }\n\n private _createDrawerBody(content: IProductSpecificationData): (JSX.Element | null)[] {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n const drawers = content.productSpecificationData.result!.map(product => {\n const cellData: JSX.Element | null = this._renderProductCell(product);\n if (!cellData) {\n return null;\n }\n return (\n \n \n
{cellData}
\n \n
\n );\n });\n\n if (this.props.context.request.app?.config?.OmniChannelMedia && this.props.data.additionalMediaLocations.result?.length) {\n drawers.push(this._createAdditionalMediaDrawer());\n }\n\n return drawers;\n }\n private _createAdditionalMediaDrawer(): JSX.Element {\n const accordionItemContainer: IModuleProps = {\n moduleProps: this.props,\n className: 'ms-product-specification-title'\n };\n\n return (\n \n {\n this.setState(prevState => ({\n ...prevState,\n isAdditionalMediaDrawerOpen: !prevState.isAdditionalMediaDrawerOpen\n }));\n }}\n >\n
\n \n
\n \n
\n );\n }\n\n private readonly _toggle = (drawerListId: number | undefined) => (): void => {\n if (this.state.drawerListId !== drawerListId) {\n this.setState({ drawerListId, isDrawerOpen: true });\n } else {\n this.setState({ drawerListId: undefined, isDrawerOpen: false });\n }\n };\n\n private _renderProductCell(product: AttributeValue): JSX.Element | null {\n switch (product.DataTypeValue) {\n case 0: // None\n // Return span here instead of null so the row still shows\n return ;\n case 1: // Currency\n return this._renderCurrencyCell(product);\n case 2: // DateTime\n return this._renderDateTimeCell(product);\n case 3: // Decimal\n return this._renderDecimalCell(product);\n case 4: // Integer\n return this._renderIntegerCell(product);\n case 5: // Text\n return this._renderTextCell(product);\n case 6: // TrueFalse\n return this._renderTrueFalseCell(product);\n case 40: // Video\n this.props.telemetry.warning('Got video specification type, not supported yet so skipping line');\n return null;\n case 41: // Image\n this.props.telemetry.warning('Got image specification type, not supported yet so skipping line');\n return null;\n default:\n this.props.telemetry.warning(`Got unknown specification type ${product.DataTypeValue} so skipping line`);\n return null;\n }\n }\n\n private _renderCurrencyCell(product: AttributeValue): JSX.Element | null {\n if (product.CurrencyValue !== null && product.CurrencyValue !== undefined) {\n return (\n \n {product.CurrencyCode}\n {product.CurrencyValue}\n \n );\n }\n\n return null;\n }\n\n private _renderDateTimeCell(product: AttributeValue): JSX.Element | null {\n if (product.DateTimeOffsetValue?.toUTCString) {\n return {product.DateTimeOffsetValue.toUTCString()};\n }\n\n return null;\n }\n\n private _renderIntegerCell(product: AttributeValue): JSX.Element | null {\n if (product.IntegerValue !== null && product.IntegerValue !== undefined) {\n return {product.IntegerValue};\n }\n\n return null;\n }\n\n private _renderDecimalCell(product: AttributeValue): JSX.Element | null {\n if (product.FloatValue !== null && product.FloatValue !== undefined) {\n return {product.FloatValue};\n }\n\n return null;\n }\n\n private _renderTextCell(product: AttributeValue): JSX.Element | null {\n if (product.TextValue !== null && product.TextValue !== undefined) {\n // eslint-disable-next-line react/no-danger\n return ;\n }\n\n return null;\n }\n\n private _renderTrueFalseCell(product: AttributeValue): JSX.Element | null {\n // TODO 20369885 setting to default value is needed to work around a platform bug where\n // config string value does not get its default value.\n if (product.BooleanValue) {\n return {this.props.resources.trueValueText ? this.props.resources.trueValueText : 'Yes'};\n }\n return {this.props.resources.falseValueText ? this.props.resources.falseValueText : 'No'};\n }\n}\n\nexport default ProductSpecification;\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 * as React from 'react';\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport { ICittaProductVideoViewProps } from './citta-product-video';\r\n\r\nexport default (props: ICittaProductVideoViewProps) => {\r\n return (\r\n \r\n { /* @ts-ignore */ }\r\n {props.player}\r\n \r\n );\r\n};\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport React, { ReactNode } from 'react';\n\nimport { ISocialShareViewProps } from './social-share';\n\nexport const SocialShareView: React.FC = props => {\n const { SocialShareList, SocialShareItemElements, SocialShareItem, SocialShare } = props;\n if (SocialShareItemElements.length === 0) {\n props.context.telemetry.error('Social media list is empty, module wont render');\n return null;\n }\n return (\n \n \n {SocialShareItemElements.map((SocialShareElement: ReactNode, index: number) => {\n return (\n \n {SocialShareElement}\n \n );\n })}\n \n \n );\n};\n\nexport default SocialShareView;\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 { ICittaContactViewProps } from './citta-contact';\r\n\r\nexport default (props: ICittaContactViewProps) => {\r\n const { ContactContainer, ContactForm, ErrorMessage, Name, EmailAddress, PhoneNumber, Country, City, ReasonForEnquiry, Message, Recaptcha, SubmitButton } = props;\r\n return (\r\n \r\n \r\n {ErrorMessage}\r\n {Name}\r\n {EmailAddress}\r\n {PhoneNumber}\r\n {Country}\r\n {City}\r\n {ReasonForEnquiry}\r\n {Message}\r\n {Recaptcha}\r\n {SubmitButton}\r\n \r\n \r\n );\r\n};","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport { Module } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\n\r\nimport { IAccountWelcomeTileViewProps } from './citta-b2b-account-welcome-tile';\r\n\r\nconst AccountWelcomeTileView: React.FC = props => {\r\n const { AccountWelcomeTile, heading } = props;\r\n\r\n return {heading};\r\n};\r\n\r\nexport default AccountWelcomeTileView;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions, ObjectExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { Module, Node } from '@msdyn365-commerce-modules/utilities';\nimport * as React from 'react';\n\nimport { IProductSpecificationViewProps } from './product-specification';\n\nconst ProductSpecificationView: React.FC = props => {\n const { ProductSpecification, ProductSpecificationTableProps, ProductSpecificationTableBodyProps, productSpecificationResult } = props;\n const rowdata =\n productSpecificationResult &&\n ArrayExtensions.hasElements(productSpecificationResult) &&\n productSpecificationResult.filter(row => !ObjectExtensions.isNullOrUndefined(row));\n\n return rowdata && ArrayExtensions.hasElements(rowdata) ? (\n \n {props.title}\n \n {rowdata}\n \n \n ) : null;\n};\n\nexport default ProductSpecificationView;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { HtmlHeadInclude, IAny, IGeneric } from '@msdyn365-commerce/core';\nimport * as React from 'react';\n\nimport { IDefaultPageSummaryData } from './default-page-summary.data';\nimport { IDefaultPageSummaryProps } from './default-page-summary.props.autogenerated';\n\n/**\n *\n * DefaultPageSummaryMetadata component.\n * @extends {React.PureComponent}\n */\nclass DefaultPageSummary extends React.PureComponent> {\n public render(): JSX.Element {\n if (this.props.data.pageSummary.result === undefined) {\n throw new Error('PageSummaryData input to page-summary is undefined. Unable to generate page-summary');\n }\n let {\n data: {\n pageSummary: {\n result: { title, description, keywords, sharingImageUrl, faviconUrl }\n }\n }\n } = this.props;\n\n const {\n config,\n context,\n data: {\n pageSummary: {\n result: { canonicalUrl }\n }\n }\n } = this.props;\n\n // Override values coming from data action if config values are provided\n title = config.title || title;\n description = config.description || description;\n keywords = config.keywords || keywords;\n sharingImageUrl = (config.sharingImage && config.sharingImage.src) || sharingImageUrl;\n faviconUrl = config.faviconUrl || faviconUrl;\n\n const pageTitle = this._constructPageTitle(title, context && context.request && context.request.app);\n return (\n <>\n \n {pageTitle && {pageTitle}}\n {description && }\n {keywords && }\n {canonicalUrl && }\n {faviconUrl && }\n \n {!config.disableOgTags && this._renderOgTags(pageTitle, description, sharingImageUrl)}\n {!config.disableTwitterTags && this._renderTwitterTags(pageTitle, description, sharingImageUrl)}\n \n );\n }\n\n private _renderOgTags(title: string | undefined, description: string | undefined, sharingImageUrl: string | undefined): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _renderTwitterTags(\n title: string | undefined,\n description: string | undefined,\n sharingImageUrl: string | undefined\n ): JSX.Element {\n return (\n \n {title && }\n {description && }\n {sharingImageUrl && }\n \n \n );\n }\n\n private _constructPageTitle(title: string | undefined, app: IGeneric): string | undefined {\n if (!title) {\n title = '';\n }\n\n const moduleConfig = this.props.config;\n if (moduleConfig && moduleConfig.ignoreTitleSuffixPrefix) {\n return title;\n }\n\n const appConfig = app && app.platform;\n if (appConfig) {\n if (appConfig.pageTitlePrefix) {\n title = (appConfig.pageTitlePrefix as string) + title;\n }\n if (appConfig.pageTitleSuffix) {\n title += appConfig.pageTitleSuffix as string;\n }\n }\n\n return title;\n }\n}\n\nexport default DefaultPageSummary;\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport getAttributesForSelectedVariant, { AttributesForSelectedVariantInput } from './dataActions/get-attributes-for-selected-variant';\nimport ProductSpecification from './modules/product-specification/product-specification';\nimport ProductSpecificationView from './modules/product-specification/product-specification.view';\n\nexport * from './modules/product-specification/components/product-specification-table-stucture';\nexport * from './modules/product-specification/product-specification';\nexport * from './modules/product-specification/product-specification.data';\nexport * from './modules/product-specification/product-specification.props.autogenerated';\nexport * from './modules/product-specification/product-specification.view';\nexport { AttributesForSelectedVariantInput, getAttributesForSelectedVariant, ProductSpecification, ProductSpecificationView };\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, IModuleProps, INodeProps, NodeTag } from '@msdyn365-commerce-modules/utilities';\r\nimport { observer } from 'mobx-react';\r\nimport * as React from 'react';\r\nimport ReCAPTCHA from 'react-google-recaptcha';\r\nimport {\r\n submitContactFormAction,\r\n SubmitContactFormDataActionInput,\r\n} from '../../data-actions/contact/submit-contact-form-data.action';\r\nimport { ICittaContactData } from './citta-contact.data';\r\nimport { ICittaContactProps } from './citta-contact.props.autogenerated';\r\n\r\ninterface ICittaContactFormState {\r\n name: string;\r\n emailAddress: string;\r\n phoneNumber: string;\r\n country: string;\r\n city: string;\r\n reasonForEnquiry: string;\r\n message: string;\r\n inputState: boolean;\r\n nameError: boolean;\r\n eAError: boolean;\r\n pNError: boolean;\r\n countryError: boolean;\r\n cityError: boolean;\r\n reasonEnquiryError: boolean;\r\n messageError: boolean;\r\n reqErrorMsg: boolean;\r\n eAValErrorMsg: boolean;\r\n eAValidationError: boolean;\r\n responseReceived: boolean;\r\n rCCError: boolean;\r\n reCaptchaChecked: boolean;\r\n hideFirstElement: boolean;\r\n selectedValue: string;\r\n}\r\n\r\nexport interface ICittaContactViewProps extends ICittaContactProps {\r\n ContactContainer: IModuleProps;\r\n ContactForm: INodeProps;\r\n Name: React.ReactNode;\r\n EmailAddress: React.ReactNode;\r\n PhoneNumber: React.ReactNode;\r\n Country: React.ReactNode;\r\n City: React.ReactNode;\r\n ReasonForEnquiry: React.ReactNode;\r\n Message: React.ReactNode;\r\n ErrorMessage: React.ReactNode;\r\n Recaptcha: React.ReactNode;\r\n SubmitButton: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * CittaContact component\r\n * @extends {React.PureComponent, ICittaContactFormState>}\r\n */\r\n@observer\r\nclass CittaContact extends React.PureComponent<\r\nICittaContactProps,\r\nICittaContactFormState\r\n> {\r\n public state: ICittaContactFormState = {\r\n name: '',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n country: '',\r\n city: '',\r\n reasonForEnquiry: '',\r\n message: '',\r\n inputState: true,\r\n nameError: false,\r\n eAError: false,\r\n pNError: false,\r\n countryError: false,\r\n cityError: false,\r\n reasonEnquiryError: false,\r\n messageError: false,\r\n reqErrorMsg: false,\r\n eAValErrorMsg: false,\r\n eAValidationError: false,\r\n responseReceived: false,\r\n rCCError: false,\r\n reCaptchaChecked: false,\r\n hideFirstElement: false,\r\n selectedValue: '',\r\n };\r\n private _nameInputRef: React.RefObject;\r\n private _emailAddressInputRef: React.RefObject;\r\n private _phoneNumberInputRef: React.RefObject;\r\n private _countryInputRef: React.RefObject;\r\n private _cityInputRef: React.RefObject;\r\n private _reasonForEnquirySelectRef: React.RefObject;\r\n private _messageInputRef: React.RefObject;\r\n private _recaptchaRef: React.RefObject;\r\n\r\n private nameValue: boolean = false;\r\n private emailAddressValue: boolean = false;\r\n private phoneNumberValue: boolean = false;\r\n private countryValue: boolean = false;\r\n private cityValue: boolean = false;\r\n private messageValue: boolean = false;\r\n private reasonEnquiryValue: boolean = false;\r\n\r\n private formInputValues: boolean = false;\r\n private requiredErrorMessage: string | undefined;\r\n private eAValidationErrorMessage: string | undefined;\r\n private recaptchaErrorMessage: string | undefined;\r\n private response: boolean = false;\r\n\r\n constructor(props: ICittaContactProps) {\r\n super(props);\r\n this._nameInputRef = React.createRef();\r\n this._emailAddressInputRef = React.createRef();\r\n this._phoneNumberInputRef = React.createRef();\r\n this._countryInputRef = React.createRef();\r\n this._cityInputRef = React.createRef();\r\n this._reasonForEnquirySelectRef = React.createRef();\r\n this._messageInputRef = React.createRef();\r\n this._recaptchaRef = React.createRef();\r\n this._handleSend = this._handleSend.bind(this);\r\n }\r\n\r\n // tslint:disable-next-line: max-func-body-length cyclomatic-complexity\r\n public render(): JSX.Element {\r\n\r\n const formProps = {\r\n className: 'contact-form',\r\n onSubmit: this._handleSend,\r\n tag: 'form' as NodeTag\r\n };\r\n const viewProps = {\r\n ...this.props,\r\n ContactContainer: {\r\n moduleProps: this.props,\r\n className: 'citta-contact',\r\n },\r\n ContactForm: formProps,\r\n Name: this._renderName(),\r\n ErrorMessage: this._renderErrorMessage(),\r\n EmailAddress: this._renderEmailAddress(),\r\n PhoneNumber: this._renderPhoneNumber(),\r\n Country: this._renderCountry(),\r\n City: this._renderCity(),\r\n ReasonForEnquiry: this._renderReasonForEnquiry(),\r\n Message: this._renderMessage(),\r\n Recaptcha: this._renderRecaptcha(),\r\n SubmitButton: this._renderSubmitButton()\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n // return (\r\n //
\r\n //
\r\n\r\n // {this.props.config.reCaptchaOption ? (\r\n //
\r\n // {this.state.rCCError\r\n // ? this._renderRecaptchaAlert('recaptcha-error')\r\n // : ''}\r\n // \r\n //
\r\n // ) : null}\r\n //
\r\n // \r\n // {this.props.resources.contactSendButtonText}\r\n // \r\n //
\r\n //
\r\n //
\r\n // );\r\n }\r\n\r\n private _renderErrorMessage(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.responseReceived && this.response === true ? (\r\n
\r\n

\r\n {this.props.resources.responseSuccessMessage}\r\n

\r\n
\r\n ) : null\r\n }\r\n {\r\n this.state.responseReceived && this.response === false ? (\r\n
\r\n

\r\n {this.props.resources.responseErrorMessage}\r\n

\r\n
\r\n ) : null\r\n }\r\n
\r\n );\r\n }\r\n\r\n private _renderName(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.nameError ? this._renderAlert('contact-form-name') : ''}\r\n
\r\n );\r\n }\r\n\r\n private _renderEmailAddress(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.eAError || this.state.eAValidationError\r\n ? this._renderAlert('contact-form-emailaddress')\r\n : ''}\r\n \r\n \r\n
\r\n );\r\n }\r\n\r\n private _renderPhoneNumber(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.pNError\r\n ? this._renderAlert('contact-form-phonenumber')\r\n : ''}\r\n \r\n \r\n
\r\n );\r\n }\r\n private _renderCountry(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.countryError\r\n ? this._renderAlert('contact-form-country')\r\n : ''}\r\n
\r\n );\r\n }\r\n\r\n private _renderCity(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.cityError ? this._renderAlert('contact-form-city') : ''}\r\n
\r\n );\r\n }\r\n\r\n private _renderReasonForEnquiry(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.reasonEnquiryError\r\n ? this._renderAlert('contact-form-reasonforenquiry')\r\n : ''}\r\n
\r\n );\r\n }\r\n private _renderMessage(): React.ReactNode {\r\n return (\r\n
\r\n {this.state.messageError\r\n ? this._renderAlert('contact-form-message')\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 _renderSubmitButton(): React.ReactNode {\r\n return (\r\n
\r\n \r\n {this.props.resources.contactSendButtonText}\r\n \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 handleChange = (inputText: string) => (\r\n e: React.ChangeEvent\r\n ) => {\r\n const value = e.target.value;\r\n switch (inputText) {\r\n case 'nameInput': {\r\n this.setState({ name: value, nameError: false, reqErrorMsg: false });\r\n break;\r\n }\r\n case 'emailAddress': {\r\n this.setState({\r\n emailAddress: value,\r\n eAError: false,\r\n reqErrorMsg: false,\r\n eAValErrorMsg: false,\r\n eAValidationError: false,\r\n });\r\n break;\r\n }\r\n case 'phoneNumber': {\r\n this.setState({\r\n phoneNumber: value,\r\n pNError: false,\r\n reqErrorMsg: false,\r\n });\r\n break;\r\n }\r\n case 'countryInput': {\r\n this.setState({\r\n country: value,\r\n countryError: false,\r\n reqErrorMsg: false,\r\n });\r\n break;\r\n }\r\n case 'cityInput': {\r\n this.setState({ city: value, cityError: false, reqErrorMsg: false });\r\n break;\r\n }\r\n default:\r\n null;\r\n }\r\n };\r\n\r\n private onChangeSelect = (e: React.ChangeEvent) => {\r\n this.setState({\r\n reasonForEnquiry: e.target.value || '',\r\n reasonEnquiryError: false,\r\n reqErrorMsg: false,\r\n hideFirstElement: true,\r\n selectedValue: e.target.value,\r\n });\r\n };\r\n\r\n private onChangeTextArea = (e: React.ChangeEvent) => {\r\n this.setState({\r\n message: e.target.value || '',\r\n reqErrorMsg: false,\r\n messageError: false,\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 _renderAlert(className: string): JSX.Element {\r\n const inputBoxErrors =\r\n this.state.nameError ||\r\n this.state.eAError ||\r\n this.state.pNError ||\r\n this.state.countryError ||\r\n this.state.cityError ||\r\n this.state.reasonEnquiryError ||\r\n this.state.messageError;\r\n if (inputBoxErrors) {\r\n this.requiredErrorMessage = this.props.resources.requiredTextErrorMessage;\r\n }\r\n if (this.state.emailAddress !== '' && this.state.eAValidationError) {\r\n this.eAValidationErrorMessage = this.props.resources.eAValidationErrorMessage;\r\n }\r\n const reqError = this.state.reqErrorMsg;\r\n const eAValError = this.state.eAValErrorMsg;\r\n return (\r\n <>\r\n {reqError && (\r\n \r\n {this.requiredErrorMessage && (\r\n <>\r\n
\r\n )}\r\n {eAValError && (\r\n \r\n {this.eAValidationErrorMessage && (\r\n <>\r\n
\r\n )}\r\n \r\n );\r\n }\r\n\r\n private _renderRecaptchaAlert(className: string): JSX.Element {\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 {this.recaptchaErrorMessage && (\r\n <>\r\n
\r\n )}\r\n \r\n );\r\n }\r\n\r\n // tslint:disable-next-line: max-func-body-length cyclomatic-complexity\r\n private async _handleSend(\r\n e:\r\n | React.MouseEvent\r\n | React.KeyboardEvent\r\n | React.FormEvent\r\n ): Promise {\r\n this.nameValue =\r\n this._nameInputRef &&\r\n this._nameInputRef.current &&\r\n this._nameInputRef.current.value\r\n ? true\r\n : false;\r\n this.emailAddressValue =\r\n this._emailAddressInputRef &&\r\n this._emailAddressInputRef.current &&\r\n this._emailAddressInputRef.current.value\r\n ? true\r\n : false;\r\n this.phoneNumberValue =\r\n this._phoneNumberInputRef &&\r\n this._phoneNumberInputRef.current &&\r\n this._phoneNumberInputRef.current.value\r\n ? true\r\n : false;\r\n this.countryValue =\r\n this._countryInputRef &&\r\n this._countryInputRef.current &&\r\n this._countryInputRef.current.value\r\n ? true\r\n : false;\r\n this.cityValue =\r\n this._cityInputRef &&\r\n this._cityInputRef.current &&\r\n this._cityInputRef.current.value\r\n ? true\r\n : false;\r\n const reasonEnquiryInnerText =\r\n this._reasonForEnquirySelectRef &&\r\n this._reasonForEnquirySelectRef.current &&\r\n this._reasonForEnquirySelectRef.current.selectedOptions[0].innerText;\r\n this.reasonEnquiryValue =\r\n reasonEnquiryInnerText ===\r\n this.props.resources.contactReasonForEnquiryOption1Text\r\n ? false\r\n : true;\r\n this.messageValue =\r\n this._messageInputRef &&\r\n this._messageInputRef.current &&\r\n this._messageInputRef.current.value\r\n ? true\r\n : false;\r\n const eAVal = this._emailAddressInputRef.current!.value;\r\n\r\n const nA =\r\n this._nameInputRef &&\r\n this._nameInputRef.current &&\r\n this._nameInputRef.current.value\r\n ? this._nameInputRef.current.value\r\n : '';\r\n const eA =\r\n this._emailAddressInputRef &&\r\n this._emailAddressInputRef.current &&\r\n this._emailAddressInputRef.current.value\r\n ? this._emailAddressInputRef.current.value\r\n : '';\r\n const pN =\r\n this._phoneNumberInputRef &&\r\n this._phoneNumberInputRef.current &&\r\n this._phoneNumberInputRef.current.value\r\n ? this._phoneNumberInputRef.current.value\r\n : '';\r\n const cV =\r\n this._countryInputRef &&\r\n this._countryInputRef.current &&\r\n this._countryInputRef.current.value\r\n ? this._countryInputRef.current.value\r\n : '';\r\n const cI =\r\n this._cityInputRef &&\r\n this._cityInputRef.current &&\r\n this._cityInputRef.current.value\r\n ? this._cityInputRef.current.value\r\n : '';\r\n const rE = this.state.reasonForEnquiry ? this.state.reasonForEnquiry : '';\r\n const mV =\r\n this._messageInputRef &&\r\n this._messageInputRef.current &&\r\n this._messageInputRef.current.value\r\n ? this._messageInputRef.current.value\r\n : '';\r\n\r\n if (!this.nameValue) {\r\n this.setState({ nameError: true, reqErrorMsg: true });\r\n } else if (!this.emailAddressValue) {\r\n this.setState({ eAError: true, reqErrorMsg: true });\r\n } else if (!this.isEmailValid(eAVal)) {\r\n this.setState({ eAValidationError: true, eAValErrorMsg: true });\r\n } else if (!this.phoneNumberValue) {\r\n this.setState({ pNError: true, reqErrorMsg: true });\r\n } else if (!this.countryValue) {\r\n this.setState({ countryError: true, reqErrorMsg: true });\r\n } else if (!this.cityValue) {\r\n this.setState({ cityError: true, reqErrorMsg: true });\r\n } else if (!this.reasonEnquiryValue) {\r\n this.setState({ reasonEnquiryError: true, reqErrorMsg: true });\r\n } else if (!this.messageValue) {\r\n this.setState({ messageError: true, reqErrorMsg: true });\r\n } else if (\r\n this.props.config.reCaptchaOption &&\r\n !this.state.reCaptchaChecked\r\n ) {\r\n this.setState({ rCCError: true });\r\n } else {\r\n this.formInputValues =\r\n this.nameValue &&\r\n this.emailAddressValue &&\r\n this.phoneNumberValue &&\r\n this.countryValue &&\r\n this.cityValue &&\r\n this.messageValue\r\n ? true\r\n : false;\r\n if (this.formInputValues) {\r\n try {\r\n const result = await submitContactFormAction(\r\n new SubmitContactFormDataActionInput(nA, eA, pN, cV, cI, rE, mV),\r\n this.props.context.actionContext\r\n );\r\n this.response = result.success;\r\n if (this.response === true) {\r\n this.setState({\r\n name: '',\r\n emailAddress: '',\r\n phoneNumber: '',\r\n country: '',\r\n city: '',\r\n reasonForEnquiry: '',\r\n message: '',\r\n responseReceived: true,\r\n reqErrorMsg: false,\r\n eAValErrorMsg: false,\r\n rCCError: false,\r\n reCaptchaChecked: false,\r\n hideFirstElement:false\r\n });\r\n this._recaptchaRef.current?.reset();\r\n } else {\r\n this.setState({ responseReceived: true });\r\n }\r\n } catch {\r\n console.log('Please fill the form!');\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default CittaContact;\r\n","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n// import { reaction } from 'mobx';\r\nimport * as React from 'react';\r\n// import { IVideoMetadata } from '@msdyn365-commerce/components';\r\n\r\nimport { ICittaProductVideoData } from './citta-product-video.data';\r\nimport { ICittaProductVideoProps } from './citta-product-video.props.autogenerated';\r\n\r\nimport {\r\n IModuleProps,\r\n INodeProps\r\n} from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\n\r\nimport { IImageData } from '@msdyn365-commerce/core';\r\n\r\nimport { IMediaGalleryData, IMediaGalleryProps } from '@msdyn365-commerce-modules/media-gallery';\r\n// import { IPlayerResources } from '@msdyn365-commerce/components/dist/types/videoplayer/components/data/player-resources';\r\n// import { IPlayerData } from '@msdyn365-commerce/components/dist/types/videoplayer/players/player/Player.props';\r\n// import * as MsDyn365 from '@msdyn365-commerce/core';\r\n// import { getValidProductImages } from './utils';\r\n\r\nexport const enum imageSource {\r\n pageContext = 'pageContext',\r\n productId = 'productId'\r\n}\r\nexport interface IMediaGalleryState {\r\n animating: boolean;\r\n activeIndex: number;\r\n mediaGalleryItems: IImageData[] | undefined;\r\n isImageZoomed: boolean;\r\n modalIsOpen: boolean;\r\n lastUpdate?: number;\r\n}\r\n\r\nexport interface IMediaGalleryThumbnailsViewProps {\r\n ThumbnailsContainerProps: INodeProps;\r\n SingleSlideCarouselComponentProps: INodeProps;\r\n items?: IMediaGalleryThumbnailItemViewProps[];\r\n}\r\n\r\nexport interface IMediaGalleryThumbnailItemViewProps {\r\n ThumbnailItemContainerProps: INodeProps;\r\n Picture: React.ReactElement;\r\n}\r\n\r\nexport interface IMediaGalleryViewProps extends IMediaGalleryProps {\r\n state: IMediaGalleryState;\r\n MediaGallery: IModuleProps;\r\n CarouselProps: INodeProps;\r\n Thumbnails: IMediaGalleryThumbnailsViewProps;\r\n Modal?:React.ReactElement|null;\r\n}\r\n\r\n\r\nexport interface ICittaProductVideoViewProps extends ICittaProductVideoProps<{}> {\r\n player: INodeProps;\r\n ProductVideoContainer: IModuleProps\r\n}\r\n\r\n/**\r\n * Media gallery component\r\n */\r\nclass CittaProductVideo extends React.Component, IMediaGalleryState> {\r\n public render(): JSX.Element | null {\r\n const {\r\n className\r\n } = this.props.config;\r\n\r\n const content: ICittaProductVideoData = this.props.data;\r\n\r\n const attributes = content.attributes.result;\r\n if (!attributes) {\r\n return null;\r\n }\r\n \r\n const srcAttribute = attributes?.find(attribute => attribute.Name === this.props.resources.attributeName);\r\n\r\n if (!srcAttribute || !srcAttribute.TextValue) {\r\n return null;\r\n }\r\n \r\n const viewProps = {\r\n ...this.props,\r\n ProductVideoContainer: {\r\n moduleProps: this.props,\r\n className: classnames('product-video-container', className)\r\n },\r\n player: \r\n };\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n}\r\n\r\nexport default CittaProductVideo;","/*!\r\n * Copyright (c) Microsoft Corporation.\r\n * All rights reserved. See LICENSE in the project root for license information.\r\n */\r\n\r\n/* eslint-disable no-duplicate-imports */\r\nimport * as Msdyn365 from '@msdyn365-commerce/core';\r\nimport { IModuleProps } from '@msdyn365-commerce-modules/utilities';\r\nimport classnames from 'classnames';\r\nimport * as React from 'react';\r\n\r\nimport { ICittaB2bAccountWelcomeTileData } from './citta-b2b-account-welcome-tile.data';\r\nimport { ICittaB2bAccountWelcomeTileProps } from './citta-b2b-account-welcome-tile.props.autogenerated';\r\n\r\nexport interface IAccountWelcomeTileViewProps extends ICittaB2bAccountWelcomeTileProps {\r\n AccountWelcomeTile: IModuleProps;\r\n className: string;\r\n heading?: React.ReactNode;\r\n}\r\n\r\n/**\r\n *\r\n * AccountWelcome component.\r\n * @extends {React.PureComponent>}\r\n */\r\nclass AccountWelcomeTile extends React.PureComponent> {\r\n public render(): JSX.Element {\r\n const { config, data } = this.props;\r\n const { className } = config;\r\n\r\n const accountInfo = data.accountInformation.result;\r\n const heading = {\r\n ...config.heading,\r\n ...{\r\n text: `${config.heading.text ? config.heading.text : ''} ${\r\n accountInfo && accountInfo.Name ? accountInfo.Name : ''\r\n }`\r\n }\r\n };\r\n\r\n const viewProps = {\r\n ...this.props,\r\n className,\r\n AccountWelcomeTile: {\r\n moduleProps: this.props,\r\n className: classnames('ms-account-welcome-tile', config.className)\r\n },\r\n heading: heading && heading.text && (\r\n \r\n )\r\n };\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public handleHeadingChange = (event: Msdyn365.ContentEditableEvent) => (this.props.config.heading.text = event.target.value);\r\n}\r\n\r\nexport default AccountWelcomeTile;\r\n","/*!\n * Copyright (c) Microsoft Corporation.\n * All rights reserved. See LICENSE in the project root for license information.\n */\n\nimport { ArrayExtensions } from '@msdyn365-commerce-modules/retail-actions';\nimport { IModuleProps, INodeProps } from '@msdyn365-commerce-modules/utilities';\nimport classnames from 'classnames';\nimport * as React from 'react';\n\nimport { ISocialShareConfig, ISocialShareProps, orientation } from './social-share.props.autogenerated';\n\nexport interface ISocialShareViewProps extends ISocialShareProps {\n isConsentGiven: boolean;\n SocialShareItemElements: React.ReactNode[];\n SocialShare: IModuleProps;\n SocialShareList: INodeProps;\n SocialShareItem: INodeProps;\n SocialShareItemCustomization: INodeProps;\n}\n\n/**\n *\n * SocialShare component.\n * @extends {React.PureComponent>}\n */\nclass SocialShare extends React.PureComponent> {\n constructor(props: ISocialShareProps) {\n super(props);\n }\n\n public render(): JSX.Element | null {\n const { slots } = this.props;\n\n if (!slots || !ArrayExtensions.hasElements(slots.socialShareItems)) {\n this.props.context.telemetry.error('No social media is enable for sharing, module wont render');\n return null;\n }\n\n const isConsentGiven =\n this.props.context.request &&\n this.props.context.request.cookies &&\n this.props.context.request.cookies.isConsentGiven &&\n this.props.context.request.cookies.isConsentGiven();\n\n if (!isConsentGiven && !this.props.context.request.params.isEditor) {\n return null;\n }\n\n const viewprops = {\n ...this.props,\n SocialShare: {\n moduleProps: this.props,\n className: classnames('ms-social-share', this.props.config.className)\n },\n SocialShareList: {\n 'data-title': this.props.config.caption,\n className: `ms-social-share-ul ${this.props.config.caption && 'caption'} ${\n this.props.config.orientation === orientation.vertical ? 'vertical' : ''\n }`,\n tag: 'ul',\n role: 'group'\n },\n SocialShareItem: {\n className: 'ms-social-share-li',\n tag: 'li',\n tabIndex: '0',\n role: 'link'\n },\n SocialShareItemElements: slots && slots.socialShareItems.length > 0 && slots.socialShareItems\n };\n\n return this.props.renderView(viewprops) as React.ReactElement;\n }\n}\n\nexport default SocialShare;\n"],"sourceRoot":""}