(0);\r\n\r\n const shoppingModalData = {\r\n title1: 'Answer to get ',\r\n redText: '$50 OFF* ',\r\n title2: 'your next purchase',\r\n subtitle: 'How will you shop?',\r\n imageData: {\r\n default: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmzAd?pubver=1', altText: 'How will you shop'}\r\n },\r\n buttonSelection: [\r\n {text: 'Online'},\r\n {text: 'In-Store'},\r\n {text: 'Don’t Know Yet'}\r\n ],\r\n disclosure: '*Your first order of $499+. Some exclusions apply.',\r\n emailModalData: {\r\n subtitle: 'Almost there!',\r\n title: 'What email should we send the discount to?',\r\n imageData: {\r\n default: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmzAd?pubver=1', altText: 'How will you shop'}\r\n }\r\n },\r\n answerCardData: [\r\n {\r\n calloutCard: true,\r\n title: 'Your discount code is:',\r\n promoCode: 'SLEEP',\r\n imageData: {\r\n desktop: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmzAg?pubver=1'},\r\n tablet: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmx1F?pubver=1'},\r\n mobile: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmx1F?pubver=1'},\r\n default: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmzAg?pubver=1', altText: 'MattressMatcher'}\r\n },\r\n cardSubtitle: 'MATTRESSMATCHER® ',\r\n cardTitle: 'Find Your Best Sleep',\r\n cardDescription: 'Take our quick quiz & we’ll match you with the perfect bed.',\r\n cardButton: 'Start Now',\r\n cardLink: 'https://www.mattressfirm.com/mattressmatcher',\r\n disclosure: '*Your discount code has also been sent to your email'\r\n },\r\n {\r\n calloutCard: true,\r\n title: 'Your discount code is:',\r\n promoCode: 'DREAM',\r\n imageData: {\r\n desktop: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmpgC?pubver=1'},\r\n tablet: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmrQc?pubver=1'},\r\n mobile: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmrQc?pubver=1'},\r\n default: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmpgC?pubver=1', altText: 'Shop In-Store'}\r\n },\r\n cardSubtitle: 'SHOP IN-STORE',\r\n cardTitle: 'We’re here to help',\r\n cardDescription: 'Visit us in-store to meet with a Sleep Expert® and discover America’s best brands.',\r\n cardButton: 'Find a Store',\r\n cardLink: 'https://www.mattressfirm.com/en-us/stores/',\r\n disclosure: '*Your discount code has also been sent to your email'\r\n },\r\n {\r\n calloutCard: false,\r\n title: 'Your discount code is:',\r\n promoCode: 'ZZZS',\r\n description: 'We think you might like these:',\r\n disclosure: '*Your discount code has also been sent to your email',\r\n cardData: [\r\n {\r\n imageData: {\r\n desktop: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmx1C?pubver=1'},\r\n tablet: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmpgF?pubver=1'},\r\n mobile: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmpgF?pubver=1'},\r\n default: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmx1C?pubver=1', altText: 'In Stock & Ready to Ship Mattresses'}\r\n },\r\n title: 'In Stock & Ready to Ship Mattresses',\r\n link: 'https://www.mattressfirm.com/in-stock/5637154326.c'\r\n },\r\n {\r\n imageData: {\r\n desktop: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmx1I?pubver=1'},\r\n tablet: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmrQf?pubver=1'},\r\n mobile: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmrQf?pubver=1'},\r\n default: {src: 'https://images-us-prod.cms.dynamics365commerce.ms/cms/api/cncgmclkfv/imageFileData/MAmx1I?pubver=1', altText: 'Best Selling Mattresses'}\r\n },\r\n title: 'Best Selling Mattresses',\r\n link: 'https://www.mattressfirm.com/best-sellers/5637155076.c'\r\n }\r\n ]\r\n }\r\n ]\r\n };\r\n\r\n return (\r\n <>\r\n {showShoppingModal ? shoppingModalHTML(shoppingModalData) : null}\r\n {showEmailModal ? shoppingEmailModalHTML(shoppingModalData) : null}\r\n >\r\n );\r\n\r\n function shoppingButton(index: number, buttonText: string) {\r\n\r\n setShowShoppingModal(false);\r\n setShowEmailModal(true);\r\n setShopButtonIndex(index);\r\n }\r\n\r\n function shoppingModalHTML(shoppingModalData: IShoppingModalData) {\r\n return (\r\n \r\n
\r\n

\r\n
\r\n
\r\n
\r\n {}\r\n \r\n
\r\n {shoppingModalData.title1}{shoppingModalData.redText}{shoppingModalData.title2}
\r\n {shoppingModalData.subtitle}
\r\n {shoppingModalData.buttonSelection.map((button: {text: string}, index: number) => {\r\n return (\r\n \r\n );\r\n })}\r\n \r\n
{shoppingModalData.disclosure}
\r\n
\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n function shoppingEmailModalHTML(shoppingModalData: IShoppingModalData) {\r\n return (\r\n \r\n {!isSubscribeSuccessfully && (\r\n
\r\n

\r\n
\r\n )}\r\n
\r\n
\r\n {}\r\n \r\n
\r\n {/* subscription form */}\r\n {!isSubscribeSuccessfully && !isError && (\r\n <>\r\n {shoppingModalData.emailModalData.subtitle}
\r\n {shoppingModalData.emailModalData.title}
\r\n {form}\r\n {emailValidationBlock}\r\n >\r\n )}\r\n {/* Successfully subscribed state */}\r\n {isSubscribeSuccessfully && (\r\n <>\r\n {shoppingModalData.answerCardData[shopButtonIndex].calloutCard ? couponCalloutCardHTML(shoppingModalData.answerCardData[shopButtonIndex]) : shopNowHTML(shoppingModalData.answerCardData[shopButtonIndex])}\r\n >\r\n )}\r\n {/* Error state */}\r\n {isError && (\r\n \r\n {errorMsgHeading}\r\n {errorBlock}\r\n {errorCTA}\r\n
\r\n )}\r\n \r\n
\r\n
\r\n );\r\n }\r\n\r\n function couponCalloutCardHTML(answerCardData: ICalloutCardData) {\r\n return (\r\n <>\r\n {answerCardData.title}
\r\n {answerCardData.promoCode}
\r\n \r\n
\r\n {getResponsiveImage({\r\n desktop: answerCardData.imageData.desktop,\r\n tablet: answerCardData.imageData.tablet,\r\n mobile: answerCardData.imageData.mobile,\r\n defaultImg: answerCardData.imageData.default,\r\n imageSettingViewports: getDynamicImageSettings({ moduleName: 'mfrm-hero-with-tabs' })\r\n })}\r\n
\r\n
\r\n
\r\n \r\n
{answerCardData.disclosure}
\r\n
\r\n >\r\n );\r\n }\r\n\r\n function shopNowHTML(answerCardData: IShopNowData) {\r\n return (\r\n <>\r\n {answerCardData.title}
\r\n {answerCardData.promoCode}
\r\n {answerCardData.description}
\r\n \r\n \r\n
{answerCardData.disclosure}
\r\n
\r\n >\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\n\r\n// import { RichText, RichTextComponent, Text } from '@msdyn365-commerce/core';\r\nimport MsDyn365, { ICookieValue, RichTextComponent, Text } from '@msdyn365-commerce/core';\r\nimport * as React from 'react';\r\nimport uuid from 'uuid';\r\nimport { mFIEmailSubscriptionAsync } from '../../actions/EmailSubscriptionDataActionExtension.g';\r\nimport { IMFIEmailSubscription } from '../../actions/EmailSubscriptionDataServiceEntities.g';\r\nimport { emailRegex } from '../../Utilities/allRegex';\r\nimport { inputGroup, mailingData, MailingListInputGroup } from './components/input-group-mailing-list';\r\nimport ShoppingIntentModal from './components/shopping-intent-modal';\r\nimport { IMfrmEmailSubscriptionModalData } from './mfrm-email-subscription-modal.data';\r\nimport { IMfrmEmailSubscriptionModalProps } from './mfrm-email-subscription-modal.props.autogenerated';\r\nexport interface IMfrmEmailSubscriptionModalViewProps extends IMfrmEmailSubscriptionModalProps {\r\n isOpen: boolean;\r\n isSubscribeSuccessfully: boolean;\r\n className: string;\r\n isError: boolean;\r\n heading: JSX.Element;\r\n subHeading: JSX.Element;\r\n sucessMsgHeading: JSX.Element;\r\n errorMsgHeading: JSX.Element;\r\n disclosures: JSX.Element;\r\n successContent: JSX.Element;\r\n form: JSX.Element;\r\n successCTA: JSX.Element;\r\n errorCTA: JSX.Element;\r\n errorBlock: JSX.Element;\r\n emailValidationBlock: JSX.Element;\r\n onCloseModal?(): void;\r\n enableShoppingIntentModal: boolean;\r\n shoppingIntentModal: JSX.Element;\r\n}\r\n\r\ninterface IPopupModalState {\r\n isModalOpen: boolean;\r\n isError: boolean;\r\n isSubscribeSuccessfully: boolean;\r\n // tslint:disable-next-line: no-any\r\n errorMsg: any;\r\n isEmailValid: boolean;\r\n popupReady: boolean;\r\n}\r\n\r\nexport type popupModalCookie = {\r\n name: string;\r\n age: number | undefined;\r\n};\r\n\r\n/**\r\n *\r\n * MfrmEmailSubscriptionModal component\r\n * @extends {React.PureComponent, IPopupModalState>}\r\n */\r\nclass MfrmEmailSubscriptionModal extends React.Component,IPopupModalState> {\r\n private _cookie: popupModalCookie;\r\n private _delayStarted: boolean = false;\r\n\r\n constructor(props: IMfrmEmailSubscriptionModalProps) {\r\n super(props);\r\n this._closeModal = this._closeModal.bind(this);\r\n this.onFinished = this.onFinished.bind(this);\r\n this.state = {\r\n isModalOpen: true,\r\n isError: false,\r\n isSubscribeSuccessfully: false,\r\n errorMsg: '',\r\n isEmailValid: true,\r\n popupReady: false\r\n };\r\n this._cookie = {\r\n name: 'Mattress-Firm_email_sub',\r\n age: props.config.remindTime || undefined\r\n };\r\n }\r\n\r\n public componentDidMount(): void {\r\n this.setState({ isModalOpen: true });\r\n }\r\n\r\n public render(): JSX.Element | null {\r\n if (!this.props.config.enableModal) {\r\n return null;\r\n }\r\n // we add this._cookieRecievedPreForm because that means *this module did not introduce the cookie*\r\n // this means we want to notify them that the form was successfully made and not just\r\n // closing down immediately\r\n if (this._cookieExist(this._cookie.name)) {\r\n return null;\r\n }\r\n const { isModalOpen, isSubscribeSuccessfully, isError, isEmailValid } = this.state;\r\n const {\r\n className,\r\n heading,\r\n subHeading,\r\n disclosures,\r\n successHeading,\r\n errorHeading,\r\n successContent,\r\n successCTA,\r\n errorCTA,\r\n enableShoppingIntentModal\r\n } = this.props.config;\r\n {\r\n this._startDelay();\r\n }\r\n const viewProps = {\r\n ...this.props,\r\n ...this.state,\r\n className: className,\r\n isOpen: isModalOpen,\r\n heading: heading && this._renderHeading,\r\n subHeading: subHeading && this._renderSubHeading,\r\n sucessMsgHeading: successHeading && this._renderSucessMsgHeading,\r\n errorMsgHeading: errorHeading && this._renderErrorMsgHeading,\r\n disclosures: disclosures && this._renderDisclosures,\r\n successContent: successContent && this._renderSuccessContent,\r\n successCTA: successCTA && this._renderSuccessCTA,\r\n errorCTA: errorCTA && this._renderErrorCTA,\r\n isSubscribed: isSubscribeSuccessfully,\r\n isError: isError,\r\n form: this._mailingListJSX,\r\n errorBlock: this._renderErrorBlock,\r\n emailValidationBlock: !isEmailValid && this._renderValidationError,\r\n onCloseModal: this._closeModal,\r\n enableShoppingIntentModal: enableShoppingIntentModal,\r\n shoppingIntentModal: this._shoppingIntentModalJSX\r\n };\r\n if (!this.state.popupReady) {\r\n return null;\r\n }\r\n\r\n return this.props.renderView(viewProps) as React.ReactElement;\r\n }\r\n\r\n public onFinished = async (dataSet: mailingData) => {\r\n const { errorContent, showErrorException } = this.props.config;\r\n\r\n if (dataSet.email === '' || !emailRegex(dataSet.email)) {\r\n this.setState({\r\n isEmailValid: false,\r\n isSubscribeSuccessfully: false\r\n });\r\n } else {\r\n const { cookies } = this.props.context.request;\r\n const zipCode = cookies.get('zip_code').value as string;\r\n\r\n const emailSignup: IMFIEmailSubscription = {\r\n PersonaSleepStyle: '',\r\n unique_id: uuid.v4(),\r\n Email: dataSet.email,\r\n LeadSource: 'modal',\r\n PersonaMattressPreference: '',\r\n Lastname: '',\r\n LeadDate: new Date().toISOString(),\r\n Firstname: dataSet.name,\r\n PostalCode: zipCode ? zipCode : '',\r\n LeadPage: this.props.context.request.telemetryPageName?.substring(0, 120),\r\n LeadPlatform: 'D365'\r\n };\r\n try {\r\n const response = await mFIEmailSubscriptionAsync({ callerContext: this.props.context.actionContext }, emailSignup);\r\n if (response.Status === 'Success') {\r\n this.setState({ isSubscribeSuccessfully: true, isEmailValid: true });\r\n\r\n {\r\n /* VSI Customization - START - 44020*/\r\n }\r\n const pageURL = MsDyn365.isBrowser && window.location.pathname;\r\n const email = dataSet.email;\r\n const { submitCTA } = this.props.config;\r\n\r\n // @ts-ignore\r\n if(MsDyn365.isBrowser && 'utag' in window){\r\n // @ts-ignore\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n utag.link({\r\n event: 'popup-modal-email-signup',\r\n event_category: 'email signup tracking',\r\n event_action: 'click ' + `${submitCTA}`,\r\n event_label: 'from email signup modal: ' + `${pageURL}`,\r\n event_noninteraction: 'false',\r\n event_type: 'email_capture',\r\n customer_email: email\r\n });\r\n }\r\n } else {\r\n this.setState({\r\n isError: true,\r\n errorMsg: showErrorException ? response.Message : errorContent,\r\n isEmailValid: true\r\n });\r\n }\r\n } catch (error) {\r\n this.setState({\r\n isError: true,\r\n errorMsg: showErrorException ? error : errorContent,\r\n isEmailValid: true\r\n });\r\n }\r\n }\r\n };\r\n\r\n public constructMailingListGroupsFromResources(): { [groupName: string]: inputGroup } {\r\n const { emailLabel, emailValidation, nameLabel, nameValidation } = this.props.resources;\r\n\r\n return {\r\n name: {\r\n labelText: nameLabel,\r\n validationText: nameValidation,\r\n placeholder: nameLabel\r\n },\r\n email: {\r\n labelText: emailLabel,\r\n validationText: emailValidation,\r\n placeholder: emailLabel\r\n }\r\n };\r\n }\r\n\r\n // Heading for email subscription modal\r\n private get _renderHeading(): JSX.Element {\r\n const { heading } = this.props.config;\r\n return ;\r\n }\r\n\r\n // Renders Sub Heading for email subscription modal\r\n private get _renderSubHeading(): JSX.Element {\r\n const { subHeading } = this.props.config;\r\n return ;\r\n }\r\n\r\n // Renders disclosures for email subscription modal\r\n private get _renderDisclosures(): JSX.Element {\r\n const { disclosures } = this.props.config;\r\n return ;\r\n }\r\n\r\n // Renders errors occurs while email subscription\r\n private get _renderValidationError(): JSX.Element {\r\n return (\r\n \r\n
{this.props.resources.emailValidation}
\r\n
\r\n );\r\n }\r\n\r\n // Renders errors occurs while email subscription\r\n private get _renderErrorBlock(): JSX.Element {\r\n const { errorMsg } = this.state;\r\n return ;\r\n }\r\n\r\n // Heading for Success Message after successfully email subscription\r\n private get _renderSucessMsgHeading(): JSX.Element {\r\n const { successHeading } = this.props.config;\r\n return ;\r\n }\r\n // Heading for Success Message after successfully email subscription\r\n private get _renderErrorMsgHeading(): JSX.Element {\r\n const { errorHeading } = this.props.config;\r\n return ;\r\n }\r\n\r\n // Renders success message content after successfully email subscription\r\n private get _renderSuccessContent(): JSX.Element {\r\n const { successContent } = this.props.config;\r\n return ;\r\n }\r\n\r\n private get _renderSuccessCTA(): JSX.Element {\r\n const { successCTA } = this.props.config;\r\n return (\r\n \r\n {successCTA?.linkText}\r\n \r\n );\r\n }\r\n\r\n private get _renderErrorCTA(): JSX.Element {\r\n const { errorCTA } = this.props.config;\r\n return (\r\n \r\n {errorCTA?.linkText}\r\n \r\n );\r\n }\r\n\r\n // Delays the modal to show after specific time span as per delay config\r\n private _startDelay(): void {\r\n if (!this._delayStarted) {\r\n const delayTime = this.props.config.delay || 0;\r\n this._delayStarted = true;\r\n MsDyn365.isBrowser &&\r\n setTimeout(() => {\r\n this.setState({ popupReady: true }, () => {\r\n // @ts-ignore\r\n if ('utag' in window) {\r\n const pageURL = MsDyn365.isBrowser && window.location.pathname;\r\n // @ts-ignore\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n utag.link({\r\n event: 'popup-modal-loaded',\r\n event_category: 'email signup tracking',\r\n event_action: 'auto-show-email-signup-modal',\r\n event_label: 'from email signup modal: ' + `${pageURL}`,\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n });\r\n }, delayTime * 1000);\r\n }\r\n }\r\n\r\n private _setCookie(name: string, deltaDaysFromToday: number): void {\r\n const { cookies } = this.props.context.request;\r\n const expirationDate = new Date(Date.now());\r\n expirationDate.setTime(expirationDate.getTime() + (deltaDaysFromToday * 24 * 60 * 60 * 1000));\r\n\r\n cookies.set(name, false, {\r\n expires: deltaDaysFromToday ? expirationDate : null,\r\n isEssential: true\r\n } as {});\r\n }\r\n\r\n private _cookieExist(name: string): boolean {\r\n const { cookies } = this.props.context.request;\r\n // if cookie exists, don't display\r\n if (\r\n // unfortunetly the type does not match the class. isEssential does\r\n // not exist on cookies.get but is required in this function.\r\n // override the type to add it\r\n (cookies.get as (name: string, isEssential: boolean) => ICookieValue)(name, true).status === 'FOUND'\r\n ) {\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n // method to close modal and reset states\r\n private _closeModal(): void {\r\n const remindTime = this.props.config.remindTime || 0;\r\n this._setCookie(this._cookie.name, remindTime);\r\n\r\n\r\n // @ts-ignore\r\n if (this.state.isSubscribeSuccessfully === false && MsDyn365.isBrowser && 'utag' in window) {\r\n const pageURL = MsDyn365.isBrowser && window.location.pathname;\r\n // @ts-ignore\r\n // tslint:disable-next-line: object-literal-key-quotes\r\n utag.link({\r\n event: 'close-email-signup-modal',\r\n event_category: 'email signup tracking',\r\n event_action: 'modal close',\r\n event_label: 'from email signup modal: ' + `${pageURL}`,\r\n event_noninteraction: 'false'\r\n });\r\n }\r\n\r\n this.setState({\r\n isModalOpen: false,\r\n isSubscribeSuccessfully: false,\r\n isError: false,\r\n errorMsg: '',\r\n popupReady: false\r\n });\r\n }\r\n\r\n private get _mailingListJSX(): JSX.Element {\r\n const groups = this.constructMailingListGroupsFromResources();\r\n const { submitCTA } = this.props.config;\r\n return (\r\n \r\n );\r\n }\r\n\r\n private get _shoppingMailingListJSX(): JSX.Element {\r\n const groups = this.constructMailingListGroupsFromResources();\r\n return (\r\n \r\n );\r\n }\r\n\r\n private get _shoppingIntentModalJSX(): JSX.Element {\r\n const { isSubscribeSuccessfully, isError, isEmailValid } = this.state;\r\n const {\r\n errorHeading,\r\n errorCTA\r\n } = this.props.config;\r\n\r\n return (\r\n \r\n );\r\n }\r\n}\r\n\r\nexport default MfrmEmailSubscriptionModal;\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\nimport { Modal, ModalBody, ModalHeader } from '@msdyn365-commerce-modules/utilities';\r\nimport * as React from 'react';\r\nimport { IMfrmEmailSubscriptionModalViewProps } from './mfrm-email-subscription-modal';\r\n\r\nexport default (props: IMfrmEmailSubscriptionModalViewProps) => {\r\n const {\r\n isOpen,\r\n heading,\r\n subHeading,\r\n form,\r\n sucessMsgHeading,\r\n errorMsgHeading,\r\n disclosures,\r\n errorBlock,\r\n successContent,\r\n successCTA,\r\n errorCTA,\r\n emailValidationBlock,\r\n isSubscribeSuccessfully,\r\n isError,\r\n onCloseModal,\r\n enableShoppingIntentModal,\r\n shoppingIntentModal\r\n } = props;\r\n\r\n const emailModal = (\r\n <>\r\n \r\n {}\r\n \r\n \r\n {/* subscription form */}\r\n {!isSubscribeSuccessfully && !isError && (\r\n <>\r\n {subHeading}\r\n {heading}\r\n {form}\r\n {emailValidationBlock}\r\n {disclosures}\r\n >\r\n )}\r\n {/* Successfully subscribed state */}\r\n {isSubscribeSuccessfully && (\r\n \r\n {sucessMsgHeading}\r\n {successContent}\r\n {successCTA}\r\n
\r\n )}\r\n {/* Error state */}\r\n {isError && (\r\n \r\n {errorMsgHeading}\r\n {errorBlock}\r\n {errorCTA}\r\n
\r\n )}\r\n \r\n >\r\n );\r\n\r\n return (\r\n \r\n {enableShoppingIntentModal ? shoppingIntentModal : emailModal}\r\n \r\n );\r\n};\r\n","const binding = { modules: {}, dataActions: {} };\n\n (binding.modules['mfrm-email-subscription-modal'] = {\n c: () => require('partner/modules/mfrm-email-subscription-modal/mfrm-email-subscription-modal.tsx'),\n $type: 'contentModule',\n da: [],\n \n iNM: false,\n ns: '__local__',\n n: 'mfrm-email-subscription-modal',\n p: '__local__',\n \n pdp: '',\n \n \n md: 'src/modules/mfrm-email-subscription-modal'\n });\n \n\n \n window.__bindings__ = window.__bindings__ || {};\n window.__bindings__.modules = {\n ...window.__bindings__.modules || {},\n ...binding.modules\n };\n \n window.__bindings__.dataActions = {\n ...window.__bindings__.dataActions || {},\n ...binding.dataActions\n };\n export const viewDictionary = {};\n viewDictionary['__local__|__local__|modules|mfrm-email-subscription-modal|mfrm-email-subscription-modal'] = {\n c: () => require('partner/modules/mfrm-email-subscription-modal/mfrm-email-subscription-modal.view.tsx'),\n cn: '__local__-__local__-mfrm-email-subscription-modal'\n };\nwindow.__bindings__ = window.__bindings__ || {};\nwindow.__bindings__.viewDictionary = {\n ...window.__bindings__.viewDictionary || {},\n ...viewDictionary\n };","module.exports = React;","module.exports = ReactDOM;"],"names":["emailRegex","emailValue","test","removeSpecialChars","str","ctx","request","app","config","removeSpecialCharsPDP","replace","removeSpecialCharsFromURLPath","decodeURIComponent","split","inputRegexObj","nameRegex","addressInputRegex","getResponsiveFromSeoData","desktop","tablet","mobile","query","React","src","media","srcSet","className","alt","altText","getResponsiveImage","defaultImg","lazyload","imageSettings","disableLazyLoad","defaultImgSrc","quality","getDynamicImageSettings","moduleName","viewports","undefined","themeSettingsForModule","MsDyn365","mattressfirm","modules","themeSettingsForLayout","properties","dynamic","imageViewportProperties","_get","_cloneDeep","MFIEmailSubscriptionExtensionClass","constructor","odataObject","this","PersonaSleepStyle","unique_id","Email","LeadSource","PersonaMattressPreference","Lastname","LeadDate","Firstname","PostalCode","LeadPage","LeadPlatform","ExtensionProperties","i","length","substr","lastIndexOf","concat","EntityClasses","MFIEmailSignupResponseExtensionClass","Status","Unique_id","Message","createMFIEmailSubscriptionInput","emailSignup","key","DataServiceQuery","DataServiceEntities","emailSubscriptionsQuery","createDataServiceRequestForOperation","bypassCache","returnEntity","mFIEmailSubscriptionAsync","context","callActionOrExecute","callerContext","TextInputGroup","props","super","_internalValue","_errorMessage","_isFirstBlur","initialValue","_valueChanged","bind","_blurred","render","type","label","useDatePicker","placeholder","classnames","toLowerCase","onChange","value","onBlur","maxLength","htmlProps","event","target","currentlyInvalid","isValid","id","__decorate","observable","observer","MailingListInputGroup","_formStructure","name","validity","email","regex","state","isSubmitting","_handleValidityUpdate","_handleValueFinish","_handleFormExport","_setExternalGroups","Object","keys","map","fieldName","field","externalGroup","labelText","onClick","disabled","submitText","onFinish","setState","preventDefault","fieldData","validationText","styles","form","errorMsgHeading","errorBlock","errorCTA","emailValidationBlock","isSubscribeSuccessfully","isError","onCloseModal","showShoppingModal","setShowShoppingModal","showEmailModal","setShowEmailModal","shopButtonIndex","setShopButtonIndex","shoppingModalData","title1","redText","title2","subtitle","imageData","default","buttonSelection","text","disclosure","emailModalData","title","answerCardData","calloutCard","promoCode","cardSubtitle","cardTitle","cardDescription","cardButton","cardLink","description","cardData","link","ModalHeader","ModalBody","button","index","buttonText","shoppingButton","shoppingModalHTML","imageSettingViewports","href","card","shopNowHTML","shoppingEmailModalHTML","MfrmEmailSubscriptionModal","_delayStarted","onFinished","async","errorContent","showErrorException","dataSet","cookies","zipCode","get","uuid","Date","toISOString","telemetryPageName","substring","response","actionContext","isEmailValid","pageURL","window","location","pathname","submitCTA","utag","event_category","event_action","event_label","event_noninteraction","event_type","customer_email","errorMsg","error","_closeModal","isModalOpen","popupReady","_cookie","age","remindTime","componentDidMount","enableModal","_cookieExist","heading","subHeading","disclosures","successHeading","errorHeading","successContent","successCTA","enableShoppingIntentModal","_startDelay","viewProps","isOpen","_renderHeading","_renderSubHeading","sucessMsgHeading","_renderSucessMsgHeading","_renderErrorMsgHeading","_renderDisclosures","_renderSuccessContent","_renderSuccessCTA","_renderErrorCTA","isSubscribed","_mailingListJSX","_renderErrorBlock","_renderValidationError","shoppingIntentModal","_shoppingIntentModalJSX","renderView","constructMailingListGroupsFromResources","emailLabel","emailValidation","nameLabel","nameValidation","resources","Text","tag","RichTextComponent","linkUrl","destinationUrl","ariaLabel","openInNewTab","linkText","delayTime","delay","setTimeout","_setCookie","deltaDaysFromToday","expirationDate","now","setTime","getTime","set","expires","isEssential","status","groups","ShoppingIntentModal","_shoppingMailingListJSX","emailModal","Modal","autoFocus","fade","horizontalPosition","verticalPosition","zIndex","toggle","applicationNode","modalClassName","binding","dataActions","c","require","$type","da","iNM","ns","n","p","pdp","md","__bindings__","viewDictionary","cn","module","exports","ReactDOM"],"sourceRoot":""}