{"version":3,"file":"ManualRegisterForm-xAkHouB5.js","sources":["../../../app/javascript/stores/loading-store.js","../../../app/javascript/stores/user-store.js","../../../app/javascript/components/shared/ManualRegisterForm.vue"],"sourcesContent":["import { defineStore } from \"pinia\";\n\nconst useLoadingStore = defineStore(\"loading\", {\n state: () => ({\n loading: false\n }),\n actions: {\n setLoading(loading) {\n this.loading = loading;\n }\n }\n});\n\nexport default useLoadingStore;\n","import { defineStore } from \"pinia\";\nimport isEmail from \"validator/lib/isEmail\";\nimport usersApi from \"../api/user\";\nimport useLoadingStore from \"./loading-store\";\n\nconst useUserStore = defineStore(\"user\", {\n state: () => ({\n shippingAddresses: [],\n billingAddresses: [],\n guest: false,\n guestType: null,\n loginErrors: {},\n registerErrors: {},\n cards: [],\n stripeV2Cards: [],\n checkoutDotComCards: [],\n credit: {},\n newCustomer: false,\n first_name: \"\",\n last_name: \"\",\n email: \"\",\n isInternal: false\n }),\n actions: {\n async login(details) {\n if (!details.email || !isEmail(details.email)) {\n this.loginErrors = {\n email: [\"This doesn't look like a valid email\"]\n };\n return;\n }\n\n this.loginErrors = {};\n const loadingStore = useLoadingStore();\n const { setLoading } = loadingStore;\n setLoading(true);\n const response = await usersApi.login(details);\n if (response.success) {\n this.loginErrors = {};\n analytics.track(\"Logged In\", { situation: \"Papier Website\" });\n window.location.reload();\n } else {\n setLoading(false);\n this.loginErrors = { email: [response.data.error] };\n }\n },\n async register(details) {\n if (!details.email || !isEmail(details.email)) {\n this.registerErrors = {\n email: [\"This doesn't look like a valid email\"]\n };\n return;\n }\n\n this.registerErrors = {};\n const loadingStore = useLoadingStore();\n const { setLoading } = loadingStore;\n setLoading(true);\n const response = await usersApi.register(details);\n if (response.success) {\n this.registerErrors = {};\n window.location.reload();\n } else {\n setLoading(false);\n this.registerErrors = response.data.errors;\n }\n }\n }\n});\n\nexport default useUserStore;\n","<template>\n <form @submit.prevent=\"submitForm\">\n <div class=\"grid grid-cols-2 gap-3 mb-5\">\n <text-input\n v-model=\"user.first_name\"\n :errors=\"registerErrors['first_name']\"\n required\n autocorrect=\"off\"\n input-id=\"register-modal-first-name\"\n :data-cy=\"`${signupLocation}-first-name`\"\n :label=\"t('register-modal.form.first-name')\"\n type=\"text\"\n autocomplete=\"off\" />\n <text-input\n v-model=\"user.last_name\"\n :errors=\"registerErrors['last_name']\"\n required\n autocorrect=\"off\"\n input-id=\"register-modal-last-name\"\n :data-cy=\"`${signupLocation}-last-name`\"\n :label=\"t('register-modal.form.last-name')\"\n type=\"text\"\n autocomplete=\"off\" />\n </div>\n <date-of-birth-input\n v-model=\"user.date_of_birth\"\n :label=\"t('register-modal.form.date-of-birth')\"\n :errors=\"registerErrors['date_of_birth']\"\n class=\"mb-5\" />\n <text-input\n v-model=\"user.email\"\n class=\"mb-5\"\n type=\"email\"\n :errors=\"registerErrors['email']\"\n required\n autocorrect=\"off\"\n autocapitalize=\"off\"\n input-id=\"register-modal-email\"\n :data-cy=\"`${signupLocation}-email`\"\n :label=\"t('register-modal.form.email')\"\n inputmode=\"email\"\n autocomplete=\"off\" />\n <text-input\n v-model=\"user.password\"\n class=\"mb-5\"\n :errors=\"registerErrors['password']\"\n required\n autocorrect=\"off\"\n autocapitalize=\"off\"\n input-id=\"register-modal-password\"\n :data-cy=\"`${signupLocation}-password`\"\n type=\"password\"\n :label=\"t('register-modal.form.password')\"\n autocomplete=\"off\" />\n <checkbox-input\n v-if=\"!hideCheckbox\"\n v-model:checked=\"user.newsletter\"\n flex-alignment-class=\"items-start\"\n input-id=\"register-modal-newsletter\"\n :data-cy=\"`${signupLocation}-newsletter`\"\n class=\"mb-5\"\n :label=\"t('register-modal.form.newsletter.explanation')\"\n @update:checked=\"triggerAnalyticsEvent\" />\n <input\n type=\"submit\"\n :value=\"t('register-modal.form.cta')\"\n class=\"btn btn-primary btn-large btn-block\"\n data-cy=\"signup\" />\n </form>\n</template>\n\n<script setup>\nimport { storeToRefs } from \"pinia\";\nimport useUserStore from \"../../stores/user-store\";\nimport TextInput from \"./TextInput.vue\";\nimport CheckboxInput from \"./CheckboxInput.vue\";\nimport DateOfBirthInput from \"./DateOfBirthInput.vue\";\n\nconst userStore = useUserStore();\n\nconst { registerErrors } = storeToRefs(userStore);\n\nconst emit = defineEmits([\"submitRegisterForm\"]);\n\nconst submitForm = () => {\n emit(\"submitRegisterForm\");\n};\n\nconst props = defineProps({\n hideCheckbox: {\n type: Boolean,\n default: false\n },\n user: {\n type: Object,\n default: () => {}\n },\n signupLocation: {\n type: String,\n required: true\n }\n});\n\nconst triggerAnalyticsEvent = () => {\n if (props.user.newsletter) {\n analytics.track(\"Ticked Opt-In Box\");\n } else {\n analytics.track(\"Unticked Opt-In Box\");\n }\n};\n</script>\n"],"names":["useLoadingStore","defineStore","loading","useUserStore","details","isEmail","loadingStore","setLoading","response","usersApi","userStore","registerErrors","storeToRefs","emit","__emit","submitForm","props","__props","triggerAnalyticsEvent"],"mappings":"2VAEA,MAAMA,EAAkBC,EAAY,UAAW,CAC7C,MAAO,KAAO,CACZ,QAAS,EACb,GACE,QAAS,CACP,WAAWC,EAAS,CAClB,KAAK,QAAUA,CACrB,CACA,CACA,CAAC,ECNKC,EAAeF,EAAY,OAAQ,CACvC,MAAO,KAAO,CACZ,kBAAmB,CAAE,EACrB,iBAAkB,CAAE,EACpB,MAAO,GACP,UAAW,KACX,YAAa,CAAE,EACf,eAAgB,CAAE,EAClB,MAAO,CAAE,EACT,cAAe,CAAE,EACjB,oBAAqB,CAAE,EACvB,OAAQ,CAAE,EACV,YAAa,GACb,WAAY,GACZ,UAAW,GACX,MAAO,GACP,WAAY,EAChB,GACE,QAAS,CACP,MAAM,MAAMG,EAAS,CACnB,GAAI,CAACA,EAAQ,OAAS,CAACC,EAAQD,EAAQ,KAAK,EAAG,CAC7C,KAAK,YAAc,CACjB,MAAO,CAAC,sCAAsC,CAC/C,EACD,MACR,CAEM,KAAK,YAAc,CAAE,EACrB,MAAME,EAAeN,EAAiB,EAChC,CAAE,WAAAO,CAAU,EAAKD,EACvBC,EAAW,EAAI,EACf,MAAMC,EAAW,MAAMC,EAAS,MAAML,CAAO,EACzCI,EAAS,SACX,KAAK,YAAc,CAAE,EACrB,UAAU,MAAM,YAAa,CAAE,UAAW,gBAAgB,CAAE,EAC5D,OAAO,SAAS,OAAQ,IAExBD,EAAW,EAAK,EAChB,KAAK,YAAc,CAAE,MAAO,CAACC,EAAS,KAAK,KAAK,CAAG,EAEtD,EACD,MAAM,SAASJ,EAAS,CACtB,GAAI,CAACA,EAAQ,OAAS,CAACC,EAAQD,EAAQ,KAAK,EAAG,CAC7C,KAAK,eAAiB,CACpB,MAAO,CAAC,sCAAsC,CAC/C,EACD,MACR,CAEM,KAAK,eAAiB,CAAE,EACxB,MAAME,EAAeN,EAAiB,EAChC,CAAE,WAAAO,CAAU,EAAKD,EACvBC,EAAW,EAAI,EACf,MAAMC,EAAW,MAAMC,EAAS,SAASL,CAAO,EAC5CI,EAAS,SACX,KAAK,eAAiB,CAAE,EACxB,OAAO,SAAS,OAAQ,IAExBD,EAAW,EAAK,EAChB,KAAK,eAAiBC,EAAS,KAAK,OAE5C,CACA,CACA,CAAC,8PCUD,MAAME,EAAYP,EAAc,EAE1B,CAAE,eAAAQ,CAAc,EAAKC,EAAYF,CAAS,EAE1CG,EAAOC,EAEPC,EAAa,IAAM,CACvBF,EAAK,oBAAoB,CAC3B,EAEMG,EAAQC,EAeRC,EAAwB,IAAM,CAC9BF,EAAM,KAAK,WACb,UAAU,MAAM,mBAAmB,EAEnC,UAAU,MAAM,qBAAqB,CAEzC"}