{"version":3,"file":"subscription.6c83def4.js","mappings":"mIAAO,SAASA,IACVC,OAAOC,eACTD,OAAOC,cAAcC,MAAMC,gBAAgB,CAAEC,KAAM,kBAEvD,CAEO,SAASC,IACVL,OAAOC,eACTD,OAAOC,cAAcC,MAAMC,gBAAgB,CAAEC,KAAM,oBAEvD,CAEO,SAASE,IACVN,OAAOC,eACTD,OAAOC,cAAcC,MAAMC,gBAAgB,CAAEC,KAAM,gBAEvD,C,qDChBO,SAASG,EAA0BC,GACxCR,OAAOS,UAAUC,KAAK,CACpBC,MAAO,sBACPC,iBAAkB,qBAClBC,gBAAiBL,GAErB,C,qJCEMM,EAAqB,SAAHC,GAWlB,IAVJC,EAAiBD,EAAjBC,kBACAC,EAAQF,EAARE,SACAC,EAAOH,EAAPG,QACAC,EAAYJ,EAAZI,aACAC,EAAUL,EAAVK,WACAC,EAAQN,EAARM,SACAC,EAAcP,EAAdO,eACAC,EAAMR,EAANQ,OAAMC,EAAAT,EACNU,cAAAA,OAAa,IAAAD,EAAG,KAAIA,EAAAE,EAAAX,EACpBY,kBAAAA,OAAiB,IAAAD,EAAG,KAAIA,EAElBE,GAAOC,EAAAA,EAAAA,KACb,OACEC,EAAAA,cAAA,QAAMC,UAAS,GAAAC,OAAKd,EAAO,UAAUe,KAAMZ,GACzCS,EAAAA,cAAA,OAAKC,UAAS,GAAAC,OAAKd,EAAO,iBACxBY,EAAAA,cAAA,SAAOI,QAAO,GAAAF,OAAKd,EAAO,WACvBU,EAAKO,cAAc,CAClBC,GAAI,GAAFJ,OAAKb,EAAY,mBAGvBW,EAAAA,cAACO,EAAAA,EAAK,CACJjC,KAAK,QACL6B,KAAI,GAAAD,OAAKd,EAAO,UAChBkB,GAAE,GAAAJ,OAAKd,EAAO,UACd,aAAYU,EAAKO,cAAc,CAC7BC,GAAI,GAAFJ,OAAKb,EAAY,wBAErBmB,YAAaV,EAAKO,cAAc,CAC9BC,GAAI,GAAFJ,OAAKb,EAAY,wBAErBY,UAAS,GAAAC,OAAKd,EAAO,sBACrBqB,SAAUZ,KAIdG,EAAAA,cAAA,OAAKC,UAAS,GAAAC,OAAKd,EAAO,yBACxBY,EAAAA,cAAA,OAAKC,UAAS,GAAAC,OAAKd,EAAO,kBACxBY,EAAAA,cAAA,KAAGC,UAAS,GAAAC,OAAKd,EAAO,wBACrBU,EAAKO,cAAc,CAClBC,GAAI,GAAFJ,OAAKb,EAAY,sBACnBqB,eAAgB,wBAGpBV,EAAAA,cAAA,OAAKC,UAAS,GAAAC,OAAKd,EAAO,sBACxBY,EAAAA,cAACW,EAAAA,EAAQ,CACPC,aAAY,GAAAV,OAAKd,EAAO,UACxByB,mBAAkB,GAAAX,OAAKd,EAAO,0BAC9B0B,gBAAe,GAAAZ,OAAKb,EAAY,iBAChC0B,iBAAkB7B,EAClB8B,SAAUxB,KAGdQ,EAAAA,cAAA,OAAKC,UAAS,GAAAC,OAAKd,EAAO,sBACxBY,EAAAA,cAACW,EAAAA,EAAQ,CACPC,aAAY,GAAAV,OAAKd,EAAO,QACxByB,mBAAkB,GAAAX,OAAKd,EAAO,0BAC9B0B,gBAAe,GAAAZ,OAAKb,EAAY,eAChC0B,iBAAkB7B,EAClB8B,SAAUxB,MAKhBQ,EAAAA,cAAA,OAAKC,UAAS,GAAAC,OAAKd,EAAO,kBACxBY,EAAAA,cAACiB,EAAAA,EAAM,CACLC,cAAe/B,EACfG,WAAYA,EACZ6B,gBAAgB,4CAKtBnB,EAAAA,cAAA,OAAKC,UAAS,GAAAC,OAAKd,EAAO,iBACxBY,EAAAA,cAACoB,EAAAA,EAAY,CAACjB,KAAI,GAAAD,OAAKd,EAAO,YAC9BY,EAAAA,cAACoB,EAAAA,EAAY,CAACjB,KAAI,GAAAD,OAAKd,EAAO,aAC5BK,EAAO,GAADS,OAAId,EAAO,YAAaY,EAAAA,cAACoB,EAAAA,EAAY,CAACjB,KAAI,GAAAD,OAAKd,EAAO,UAC7DO,GACCK,EAAAA,cAAA,QAAMC,UAAU,iBAAiBoB,KAAK,SACnC1B,IAMb,EAEAX,EAAmBsC,aAAe,CAChC3B,cAAe,GACfE,kBAAmB,MAGrBb,EAAmBuC,UAAY,CAC7BrC,kBAAmBsC,IAAAA,KAAAA,WACnBrC,SAAUqC,IAAAA,KAAAA,WACVpC,QAASoC,IAAAA,OAAAA,WACTnC,aAAcmC,IAAAA,OAAAA,WACdlC,WAAYkC,IAAAA,OAAAA,WACZjC,SAAUiC,IAAAA,OAAAA,WACVhC,eAAgBgC,IAAAA,KAAAA,WAChB/B,OAAQ+B,IAAAA,OAAAA,WACR7B,cAAe6B,IAAAA,OACf3B,kBAAmB2B,IAAAA,MAGrB,S,4hDCrGA,IAkLeC,EA1JaC,EACpBC,EAzBRC,EAKI1D,OAAO2D,mBAJTC,EAA2BF,EAA3BE,4BACAC,EAA2BH,EAA3BG,4BACAC,EAA4BJ,EAA5BI,6BACAC,EAA+BL,EAA/BK,gCAEMC,EAAwBhE,OAAOiE,uBAA/BD,oBAEF9C,EAAU,oBACVC,EAAe,oBAEf+C,GAAoCC,EAAAA,EAAAA,IAAeP,EAA6B,QAAS,GAAF5B,OAAKd,EAAO,WAEnGkD,EAAsB,IAAIC,EAAAA,EAAoBH,GAC9CI,EAAkB,IAAIC,EAAAA,GAAgBH,GAEtCtB,GAAW0B,EAAAA,EAAAA,GAAWJ,EAAqBE,EAAiBJ,GCtB5DO,GAAuBC,EAAAA,EAAAA,IAAAA,EDwLdnB,ECxLgDoB,EAAAA,GDyL7DC,EAAAA,EAAAA,IAAS,CACPC,iBAlKqB,WAAH,IAAA9D,EAAA,OAAA+D,EAAA/D,EAAG,CAAH,KAAAiB,OAChBd,EAAO,WAAW6D,EAAAA,EAAAA,MAAiBC,OAAS,IAAEF,EAAA/D,EAAA,GAAAiB,OAC9Cd,EAAO,UAAsC,QAA3B6D,EAAAA,EAAAA,MAAiBE,OAAcH,EAAA/D,EAAA,GAAAiB,OACjDd,EAAO,QAAkC,QAAzB6D,EAAAA,EAAAA,MAAiBG,KAAYnE,CAAA,EAgK/C+B,SAAAA,EACAqC,YAAajB,EACb7C,SAAU,8BAJZuD,EAKGQ,EAAAA,EAAAA,KAhKuB5B,EAgKQD,GA/J5BE,EAAgB,SAAA4B,I,qRAAAC,CAAA7B,EAAA4B,GAAA,I,QAAAE,G,EAAA9B,E,6jBACpB,SAAAA,IAAc,IAAA+B,EAmBX,O,4FAnBWC,CAAA,KAAAhC,IACZ+B,EAAAD,EAAAG,KAAA,OAEKC,MAAQ,CACXlE,cAAe,MAGjB+D,EAAKI,gBAAkBJ,EAAKI,gBAAgBC,KAAIC,EAAAN,IAChDA,EAAKxE,kBAAoBwE,EAAKxE,kBAAkB6E,KAAIC,EAAAN,IACpDA,EAAKvE,SAAWuE,EAAKvE,SAAS4E,KAAIC,EAAAN,IAClCA,EAAKlE,eAAiBkE,EAAKlE,eAAeuE,KAAIC,EAAAN,IAC9CA,EAAK7D,kBAAoB6D,EAAK7D,kBAAkBkE,KAAIC,EAAAN,IAEpDA,EAAKO,aAAe,IAAIC,IACO,QAA3BjB,EAAAA,EAAAA,MAAiBE,OACnBO,EAAKO,aAAaE,IAAI,GAADjE,OAAId,EAAO,WAEL,QAAzB6D,EAAAA,EAAAA,MAAiBG,KACnBM,EAAKO,aAAaE,IAAI,GAADjE,OAAId,EAAO,SACjCsE,CACH,CAsHC,O,EAtHA/B,G,EAAA,EAAAyC,IAAA,oBAAAC,MAED,WACE,IAAAC,EAAkCC,KAAKC,MAA/BC,EAAeH,EAAfG,gBAAiB3E,EAAIwE,EAAJxE,KACzB2E,EAAgB,GAADvE,OAAId,EAAO,WAAU,GAAM,GAC1CqF,EAAgB,GAADvE,OAAId,EAAO,SAAQ,GAAM,GACxCgD,EAAkCsC,SAAS,GAADxE,OAAId,EAAO,WAAY,CAC/DuF,SAAU7E,EAAKO,cAAc,CAC3BC,GAAI,GAAFJ,OAAKb,EAAY,oBAGvB+C,EAAkCwC,WAAW,GAAD1E,OAAId,EAAO,WAAY,CACjEuF,SAAU,mDAEZvC,EAAkCsC,SAAS,GAADxE,OAAId,EAAO,SACnDgD,EAAkCsC,SAAS,GAADxE,OAAId,EAAO,WACvDgD,EAAkCwC,WAAW,GAAD1E,OAAId,EAAO,SACrDgD,EAAkCwC,WAAW,GAAD1E,OAAId,EAAO,UAC3D,GAAC,CAAAgF,IAAA,WAAAC,MAED,SAASQ,GAAG,IAAAC,EAAA,KACVD,EAAEE,kBAGFC,EADuBT,KAAKC,MAApBQ,cACKC,MAAK,WAChB,IAAAC,EAA2BJ,EAAKN,MAAxBW,EAAMD,EAANC,OAAQ1F,EAAMyF,EAANzF,OAEZ2F,IAAQ3F,IACVqF,EAAKhB,gBAAgBqB,EAEzB,GACF,GAAC,CAAAf,IAAA,oBAAAC,MAED,SAAkBQ,GAChBN,KAAKc,SAAS,CAAE1F,cAAe,QAE/B2F,EADyBf,KAAKC,MAAtBc,cACKT,EACf,GAAC,CAAAT,IAAA,oBAAAC,MAED,SAAkBQ,GAChB,IAAQS,EAAiBf,KAAKC,MAAtBc,aACJT,EAAEU,OAAOC,QACXjB,KAAKN,aAAaE,IAAIU,EAAEU,OAAOpF,MAE/BoE,KAAKN,aAAawB,OAAOZ,EAAEU,OAAOpF,MAEpCmF,EAAaT,EACf,GAAC,CAAAT,IAAA,iBAAAC,MAED,WACE,IAAQvE,EAASyE,KAAKC,MAAd1E,KACR,OAAKyE,KAAKN,aAAayB,KAKhB,KAJE5F,EAAKO,cAAc,CACxBC,GAAI,GAAFJ,OAAKb,EAAY,kBAIzB,GAAC,CAAA+E,IAAA,kBAAAC,MAED,SAAgBsB,GAAU,IAAAC,EAAA,KAChB9F,EAASyE,KAAKC,MAAd1E,KACF+F,EAAoB,CACxB3C,MAAOyC,EAAS,GAADzF,OAAId,EAAO,WAC1B0G,YAAa,CACX1C,IAAKuC,EAAS,GAADzF,OAAId,EAAO,SACxB+D,MAAOwC,EAAS,GAADzF,OAAId,EAAO,aAI9B,GAAImF,KAAKN,aAAayB,KAAM,CAC1B,IAAMhH,EACuB,IAA3B6F,KAAKN,aAAayB,KACd,YACAK,OAAOC,KAAKH,EAAkBC,aAAaG,MAAK,SAAA7B,GAAG,OAAIyB,EAAkBC,YAAY1B,EAAI,KAE/F8B,EAAAA,EAAAA,IAAY,OAAQnE,EAA6B8D,GAAmBZ,MAClE,SAAAkB,GACE,GAAIA,EAAIC,aACN3H,EAAAA,EAAAA,GAA0BC,IAC1BH,EAAAA,EAAAA,MACAL,OAAOmI,SAAWrE,OACb,IAAKmE,EAAIC,aAAeD,EAAIG,SACjC7H,EAAAA,EAAAA,GAA0BC,IAC1BH,EAAAA,EAAAA,MACAL,OAAOmI,SAAWpE,OACb,IAAKkE,EAAIC,cAAgBD,EAAIG,QAAS,CAC3C,IAAMC,EAAUzG,EAAKO,cAAc,CACjCC,GAAI,0EAENsF,EAAKP,SAAS,CACZ1F,cAAe4G,GAEnB,CACF,IACA,SAAAC,GAAA,IAAGC,EAAMD,EAANC,OAAM,OAAOC,EAAAA,EAAAA,GAAoBD,EAAO,GAE/C,CACF,GAAC,CAAArC,IAAA,SAAAC,MAED,WACE,IAAQ5E,EAAW8E,KAAKC,MAAhB/E,OACAE,EAAkB4E,KAAKV,MAAvBlE,cACR,OACEK,EAAAA,cAAA,WACEA,EAAAA,cAAC0B,EAAgB,CACfxC,kBAAmBqF,KAAKrF,kBACxBC,SAAUoF,KAAKpF,SACfC,QAASA,EACTC,aAAcA,EACdC,WAAY4C,EACZ3C,SAAS,mBACTC,eAAgB+E,KAAK/E,eACrBC,OAAQA,EACRE,cAAeA,EACfE,kBAAmB0E,KAAK1E,oBAIhC,M,oEAAC8B,CAAA,CA3ImB,CAASgF,EAAAA,YA8IdpF,UAAY,CAC3B9B,OAAQ+B,IAAAA,SAAmBA,IAAAA,QAAkBoF,WAC7CzB,OAAQ3D,IAAAA,SAAmBA,IAAAA,UAAoB,CAACA,IAAAA,OAAkBA,IAAAA,QAAkBoF,WACpF5B,WAAYxD,IAAAA,KAAAA,WACZ8D,aAAc9D,IAAAA,KAAAA,WACdiD,gBAAiBjD,IAAAA,KAAAA,YAGZG,QCpLTkF,EAAAA,EAAAA,GAAWC,SAASC,eAAe,qBAAqBC,OAAOhH,EAAAA,cAAC2C,EAAoB,M","sources":["webpack://fitflop-storefront/./core-app/grails-app/assets/javascripts/app/analytics/bv/bvAnalytics.js","webpack://fitflop-storefront/./core-app/grails-app/assets/javascripts/app/analytics/subscriptionAnalytics.js","webpack://fitflop-storefront/./core-app/grails-app/assets/javascripts/app/commonComponents/molecules/subscriptionForm.js","webpack://fitflop-storefront/./core-app/grails-app/assets/javascripts/app/subscriptionPage/subscriptionPageHOC.js","webpack://fitflop-storefront/./core-app/grails-app/assets/javascripts/app/subscriptionPage/subscriptionPageRoot.js"],"sourcesContent":["export function bvTrackAccountCreation() {\n if (window.bvCallbackArg) {\n window.bvCallbackArg.pixel.trackConversion({ type: 'AccountCreated' });\n }\n}\n\nexport function bvTrackSubscriptionSubmit() {\n if (window.bvCallbackArg) {\n window.bvCallbackArg.pixel.trackConversion({ type: 'NewsletterSignup' });\n }\n}\n\nexport function bvTrackUserLoggingIn() {\n if (window.bvCallbackArg) {\n window.bvCallbackArg.pixel.trackConversion({ type: 'UserLoggedIn' });\n }\n}\n","export function dlTrackSubscriptionSubmit(gender) {\n window.dataLayer.push({\n event: 'visitor interaction',\n interaction_name: 'newsletter sign up',\n newsletter_type: gender,\n });\n}\n","import React from 'react';\nimport { useIntl } from 'react-intl';\nimport PropTypes from 'prop-types';\nimport Checkbox from '../atoms/checkbox';\nimport Button from '../atoms/button';\nimport Field from '../atoms/input';\nimport ErrorMessage from '../atoms/errorMessage';\n\nconst SubscriptionCoupon = ({\n handleInputChange,\n onSubmit,\n rootBEM,\n rootMessages,\n buttonText,\n formName,\n validateGender,\n errors,\n responseError = null,\n handleEmailChange = null,\n}) => {\n const intl = useIntl();\n return (\n
\n );\n};\n\nSubscriptionCoupon.defaultProps = {\n responseError: '',\n handleEmailChange: null,\n};\n\nSubscriptionCoupon.propTypes = {\n handleInputChange: PropTypes.func.isRequired,\n onSubmit: PropTypes.func.isRequired,\n rootBEM: PropTypes.string.isRequired,\n rootMessages: PropTypes.string.isRequired,\n buttonText: PropTypes.string.isRequired,\n formName: PropTypes.string.isRequired,\n validateGender: PropTypes.func.isRequired,\n errors: PropTypes.object.isRequired,\n responseError: PropTypes.string,\n handleEmailChange: PropTypes.func,\n};\n\nexport default SubscriptionCoupon;\n","import React, { Component } from 'react';\nimport { injectIntl } from 'react-intl';\nimport { isEmpty } from 'lodash';\nimport PropTypes from 'prop-types';\nimport { ValidationProcessor, ErrorsPopulator } from '@tacitknowledge/validator';\nimport formsHOC from 'app/formComponents/formikHOC';\nimport { validateBy } from 'app/formComponents/formComponentsUtils';\nimport { ajaxRequest, replaceKeyName, getQueryParams } from 'app/utils/helpers';\nimport { dlTrackSubscriptionSubmit } from 'app/analytics/subscriptionAnalytics';\nimport { bvTrackSubscriptionSubmit } from 'app/analytics/bv/bvAnalytics';\nimport genericErrorHandler from 'app/utils/serverErrors';\n\nconst {\n emailSubscriptionValidation,\n emailSubscriptionStorageUrl,\n emailSubscriptionSuccessPage,\n newEmailSubscriptionSuccessPage,\n} = window.inlineGlobalConfig;\nconst { subscriptionPageCTA } = window.inlineSubscriptionPage;\n\nconst rootBEM = 'subscription-page';\nconst rootMessages = 'subscription.page';\n\nconst mappedEmailSubscriptionValidation = replaceKeyName(emailSubscriptionValidation, 'email', `${rootBEM}-email`);\n\nconst validationProcessor = new ValidationProcessor(mappedEmailSubscriptionValidation);\nconst errorsPopulator = new ErrorsPopulator(validationProcessor);\n\nconst validate = validateBy(validationProcessor, errorsPopulator, mappedEmailSubscriptionValidation);\n\nconst mapPropsToValues = () => ({\n [`${rootBEM}-email`]: getQueryParams().email || '',\n [`${rootBEM}-women`]: getQueryParams().women === 'on',\n [`${rootBEM}-men`]: getQueryParams().men === 'on',\n});\n\nconst subscriptionPageHOC = WrappedComponent => {\n class SubscriptionPage extends Component {\n constructor() {\n super();\n\n this.state = {\n responseError: null,\n };\n\n this.handleValidForm = this.handleValidForm.bind(this);\n this.handleInputChange = this.handleInputChange.bind(this);\n this.onSubmit = this.onSubmit.bind(this);\n this.validateGender = this.validateGender.bind(this);\n this.handleEmailChange = this.handleEmailChange.bind(this);\n\n this.checkedBoxes = new Set();\n if (getQueryParams().women === 'on') {\n this.checkedBoxes.add(`${rootBEM}-women`);\n }\n if (getQueryParams().men === 'on') {\n this.checkedBoxes.add(`${rootBEM}-men`);\n }\n }\n\n componentDidMount() {\n const { setFieldTouched, intl } = this.props;\n setFieldTouched(`${rootBEM}-women`, true, false);\n setFieldTouched(`${rootBEM}-men`, true, false);\n mappedEmailSubscriptionValidation.messages[`${rootBEM}-women`] = {\n required: intl.formatMessage({\n id: `${rootMessages}.gender.error`,\n }),\n };\n mappedEmailSubscriptionValidation.messagesEn[`${rootBEM}-women`] = {\n required: 'Please select what you would like to hear about',\n };\n mappedEmailSubscriptionValidation.messages[`${rootBEM}-men`] =\n mappedEmailSubscriptionValidation.messages[`${rootBEM}-women`];\n mappedEmailSubscriptionValidation.messagesEn[`${rootBEM}-men`] =\n mappedEmailSubscriptionValidation.messagesEn[`${rootBEM}-women`];\n }\n\n onSubmit(e) {\n e.preventDefault();\n\n const { submitForm } = this.props;\n submitForm().then(() => {\n const { values, errors } = this.props;\n\n if (isEmpty(errors)) {\n this.handleValidForm(values);\n }\n });\n }\n\n handleEmailChange(e) {\n this.setState({ responseError: null });\n const { handleChange } = this.props;\n handleChange(e);\n }\n\n handleInputChange(e) {\n const { handleChange } = this.props;\n if (e.target.checked) {\n this.checkedBoxes.add(e.target.name);\n } else {\n this.checkedBoxes.delete(e.target.name);\n }\n handleChange(e);\n }\n\n validateGender() {\n const { intl } = this.props;\n if (!this.checkedBoxes.size) {\n return intl.formatMessage({\n id: `${rootMessages}.gender.error`,\n });\n }\n return null;\n }\n\n handleValidForm(formData) {\n const { intl } = this.props;\n const formattedFormData = {\n email: formData[`${rootBEM}-email`],\n newsletters: {\n men: formData[`${rootBEM}-men`],\n women: formData[`${rootBEM}-women`],\n },\n };\n\n if (this.checkedBoxes.size) {\n const gender =\n this.checkedBoxes.size === 2\n ? 'women/men'\n : Object.keys(formattedFormData.newsletters).find(key => formattedFormData.newsletters[key]);\n\n ajaxRequest('POST', emailSubscriptionStorageUrl, formattedFormData).then(\n res => {\n if (res.couponValid) {\n dlTrackSubscriptionSubmit(gender);\n bvTrackSubscriptionSubmit();\n window.location = emailSubscriptionSuccessPage;\n } else if (!res.couponValid && res.success) {\n dlTrackSubscriptionSubmit(gender);\n bvTrackSubscriptionSubmit();\n window.location = newEmailSubscriptionSuccessPage;\n } else if (!res.couponValid && !res.success) {\n const message = intl.formatMessage({\n id: 'security.ui.auth.marketing.newsletters.already.subscribed.and.ordered',\n });\n this.setState({\n responseError: message,\n });\n }\n },\n ({ status }) => genericErrorHandler(status)\n );\n }\n }\n\n render() {\n const { errors } = this.props;\n const { responseError } = this.state;\n return (\n