{"version":3,"sources":["webpack:///./src/views/legal/Contact.vue?432b","webpack:///./src/views/legal/Contact.vue","webpack:///./src/views/legal/Contact.vue?5795","webpack:///./src/views/legal/Contact.vue?591a","webpack:///./src/views/legal/components/ConditionalBackLink.vue?fe61","webpack:///./src/views/legal/components/ConditionalBackLink.vue","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./src/views/legal/Contact.vue?8642"],"names":["render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","staticStyle","_v","_s","$t","VForm","ref","on","$event","preventDefault","submit","VTextField","emailErrors","model","value","callback","$$v","emailInput","expression","VTextarea","messageErrors","messageInput","VBtn","messageLoading","staticRenderFns","Contact","errors","$v","$dirty","email","push","required","$touch","$invalid","length","sendMessage","body","$refs","form","reset","$reset","Vue","__decorate","Action","Getter","Component","components","ConditionalBackLink","mixins","validationMixin","validations","component","$route","path","startsWith","VIcon","script","baseMixins","extend","name","props","autoGrow","Boolean","noResize","rowHeight","type","Number","String","default","validator","v","isNaN","parseFloat","rows","parseInt","computed","classes","noResizeHandle","options","call","watch","val","$nextTick","calculateInputHeight","input","_a","style","removeProperty","lazyValue","mounted","setTimeout","methods","height","scrollHeight","minHeight","Math","max","genInput","tag","data","onInput","e","onKeyDown","isFocused","keyCode","stopPropagation","$emit"],"mappings":"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","file":"assets/js/chunk-12265e48.0c1b18c0.js","sourcesContent":["import { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VForm } from 'vuetify/lib/components/VForm';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"legal-page\",attrs:{\"id\":\"contact\"}},[_c('ConditionalBackLink'),_c('div',{staticClass:\"legal-content\"},[_c('div',{staticClass:\"form-wrapper\"},[_c('div',[_c('h1',{staticStyle:{\"width\":\"100%\"}},[_vm._v(_vm._s(_vm.$t(\"forms.contact.title\")))]),_c(VForm,{ref:\"form\",staticClass:\"form-container\",on:{\"submit\":function($event){$event.preventDefault();return _vm.submit($event)}}},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t(\"forms.contact.email\")))]),_c(VTextField,{attrs:{\"type\":\"email\",\"error-messages\":_vm.emailErrors,\"label\":_vm.$t('forms.contact.emailPlaceHolder'),\"outlined\":\"\"},model:{value:(_vm.emailInput),callback:function ($$v) {_vm.emailInput=$$v},expression:\"emailInput\"}}),_c('div',{staticClass:\"d-flex justify-space-between align-center\"},[_c('div',{staticClass:\"label\"},[_vm._v(_vm._s(_vm.$t(\"forms.contact.message\")))])]),_c(VTextarea,{attrs:{\"counter\":\"\",\"outlined\":\"\",\"maxlength\":\"1500\",\"error-messages\":_vm.messageErrors,\"label\":_vm.$t('forms.contact.messagePlaceHolder'),\"type\":\"text\",\"rows\":\"18\"},model:{value:(_vm.messageInput),callback:function ($$v) {_vm.messageInput=$$v},expression:\"messageInput\"}}),_c('div',{staticClass:\"d-flex\"},[_c(VBtn,{attrs:{\"type\":\"submit\",\"elevation\":\"0\",\"color\":\"primary\",\"loading\":_vm.messageLoading,\"disabled\":_vm.messageLoading}},[_c('span',[_vm._v(_vm._s(_vm.$t(\"forms.contact.submit\")))])])],1)],1)],1)])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\r\nimport { Vue } from \"vue-property-decorator\";\r\nimport { Component } from \"vue-property-decorator\";\r\nimport { Action, Getter } from \"vuex-class\";\r\nimport { validationMixin } from \"vuelidate\";\r\nimport { email, required } from \"vuelidate/lib/validators\";\r\nimport ConditionalBackLink from \"@/views/legal/components/ConditionalBackLink.vue\";\r\n\r\n@Component({\r\n components: { ConditionalBackLink },\r\n mixins: [validationMixin],\r\n validations: {\r\n emailInput: { required, email },\r\n messageInput: { required },\r\n },\r\n})\r\nexport default class Contact extends Vue {\r\n @Action(\"contact/sendMessage\") sendMessage!: (data: any) => Promise;\r\n @Getter(\"contact/messageLoading\") messageLoading!: boolean;\r\n\r\n emailInput = \"\";\r\n messageInput = \"\";\r\n\r\n get emailErrors(): any[] {\r\n const errors: any[] = [];\r\n if (!this.$v.emailInput!.$dirty) return errors;\r\n !this.$v.emailInput!.email &&\r\n errors.push(this.$t(\"forms.contact.invalidEmail\"));\r\n !this.$v.emailInput!.required &&\r\n errors.push(this.$t(\"forms.contact.emailRequired\"));\r\n return errors;\r\n }\r\n\r\n get messageErrors(): any[] {\r\n const errors: any[] = [];\r\n if (!this.$v.messageInput!.$dirty) return errors;\r\n !this.$v.messageInput!.required &&\r\n errors.push(this.$t(\"forms.contact.messageRequired\"));\r\n return errors;\r\n }\r\n\r\n submit(): void {\r\n this.$v.$touch();\r\n if (!this.$v.$invalid && this.messageErrors.length === 0) {\r\n this.sendMessage({\r\n email: this.emailInput,\r\n body: this.messageInput,\r\n });\r\n // reset form including validators\r\n (this.$refs.form as HTMLFormElement).reset();\r\n this.$v.emailInput.$reset();\r\n this.$v.messageInput.$reset();\r\n }\r\n }\r\n\r\n beforeDestroy() {\r\n this.emailInput = \"\";\r\n this.messageInput = \"\";\r\n }\r\n}\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contact.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--15-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--15-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contact.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Contact.vue?vue&type=template&id=5f01b4e5&\"\nimport script from \"./Contact.vue?vue&type=script&lang=ts&\"\nexport * from \"./Contact.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Contact.vue?vue&type=style&index=0&id=5f01b4e5&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import { VIcon } from 'vuetify/lib/components/VIcon';\n\nvar render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (this.$route.path.startsWith('/auth'))?_c('p',{staticClass:\"mb-8\"},[_c('router-link',{staticClass:\"button-link\",staticStyle:{\"line-height\":\"50px\"},attrs:{\"to\":\"/auth/login\"}},[_c(VIcon,{staticClass:\"mr-2\",staticStyle:{\"margin-top\":\"-2px\"}},[_vm._v(\"mdi-arrow-left\")]),_vm._v(_vm._s(_vm.$t(\"global.backToSignUp\"))+\" \")],1)],1):(this.$route.path.startsWith('/legal'))?_c('p',{staticClass:\"mb-8\"},[_c('router-link',{staticClass:\"button-link\",staticStyle:{\"line-height\":\"50px\"},attrs:{\"to\":\"/\"}},[_c(VIcon,{staticClass:\"mr-2\",staticStyle:{\"margin-top\":\"-2px\"}},[_vm._v(\"mdi-arrow-left\")]),_vm._v(\" \"+_vm._s(_vm.$t(\"global.toApp\"))+\" \")],1)],1):_c('p',{staticClass:\"mb-8\"},[_c('router-link',{staticClass:\"button-link\",staticStyle:{\"line-height\":\"50px\"},attrs:{\"to\":\"/dashboard\"}},[_c(VIcon,{staticClass:\"mr-2\",staticStyle:{\"margin-top\":\"-2px\"}},[_vm._v(\"mdi-arrow-left\")]),_vm._v(_vm._s(_vm.$t(\"global.backToDashboard\"))+\" \")],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./ConditionalBackLink.vue?vue&type=template&id=3b6fb738&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// Styles\nimport './VTextarea.sass'\n\n// Extensions\nimport VTextField from '../VTextField/VTextField'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\n// Types\nimport Vue from 'vue'\n\ninterface options extends Vue {\n $refs: {\n input: HTMLTextAreaElement\n }\n}\n\nconst baseMixins = mixins\n>(\n VTextField\n)\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-textarea',\n\n props: {\n autoGrow: Boolean,\n noResize: Boolean,\n rowHeight: {\n type: [Number, String],\n default: 24,\n validator: (v: any) => !isNaN(parseFloat(v)),\n },\n rows: {\n type: [Number, String],\n default: 5,\n validator: (v: any) => !isNaN(parseInt(v, 10)),\n },\n },\n\n computed: {\n classes (): object {\n return {\n 'v-textarea': true,\n 'v-textarea--auto-grow': this.autoGrow,\n 'v-textarea--no-resize': this.noResizeHandle,\n ...VTextField.options.computed.classes.call(this),\n }\n },\n noResizeHandle (): boolean {\n return this.noResize || this.autoGrow\n },\n },\n\n watch: {\n autoGrow (val: boolean) {\n this.$nextTick(() => {\n val\n ? this.calculateInputHeight()\n : this.$refs.input?.style.removeProperty('height')\n })\n },\n lazyValue () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n rowHeight () {\n this.autoGrow && this.$nextTick(this.calculateInputHeight)\n },\n },\n\n mounted () {\n setTimeout(() => {\n this.autoGrow && this.calculateInputHeight()\n }, 0)\n },\n\n methods: {\n calculateInputHeight () {\n const input = this.$refs.input\n if (!input) return\n\n input.style.height = '0'\n const height = input.scrollHeight\n const minHeight = parseInt(this.rows, 10) * parseFloat(this.rowHeight)\n // This has to be done ASAP, waiting for Vue\n // to update the DOM causes ugly layout jumping\n input.style.height = Math.max(minHeight, height) + 'px'\n },\n genInput () {\n const input = VTextField.options.methods.genInput.call(this)\n\n input.tag = 'textarea'\n delete input.data!.attrs!.type\n input.data!.attrs!.rows = this.rows\n\n return input\n },\n onInput (e: Event) {\n VTextField.options.methods.onInput.call(this, e)\n this.autoGrow && this.calculateInputHeight()\n },\n onKeyDown (e: KeyboardEvent) {\n // Prevents closing of a\n // dialog when pressing\n // enter\n if (this.isFocused && e.keyCode === 13) {\n e.stopPropagation()\n }\n\n this.$emit('keydown', e)\n },\n },\n})\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Contact.vue?vue&type=style&index=0&id=5f01b4e5&prod&lang=scss&\""],"sourceRoot":""}