{"version":3,"sources":["webpack:///./src/components/email.vue","webpack:///src/components/email.vue","webpack:///./src/components/email.vue?c4d3","webpack:///./src/components/email.vue?c8ce","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./src/components/email.vue?8429"],"names":["staticStyle","ref","value","callback","_c","attrs","model","email_fields","_vm","staticClass","$set","on","staticRenderFns","name","mixins","data","valid","new_email","fullname","email","body","nameRules","v","suggRules","emailRules","select","items","checkbox","methods","cancel","path","query","token","save_ti_edit","formIn","dispatch","then","self","catch","msg","send","console","validate","reset","resetValidation","message1","alert","init","mounted","component","BindsAttrs","RegistrableProvide","extend","provide","form","this","inheritAttrs","props","disabled","Boolean","lazyValidation","readonly","inputs","watchers","errorBag","watch","handler","val","errors","Object","values","includes","$emit","deep","immediate","watchInput","input","watcher","$watch","_uid","shouldValidate","hasOwnProperty","filter","length","forEach","resetErrorBag","setTimeout","register","push","unregister","found","find","i","unwatch","$delete","render","h","novalidate","attrs$","submit","e","$slots","default","baseMixins","VTextField","autoGrow","noResize","rowHeight","type","Number","String","validator","isNaN","parseFloat","rows","parseInt","computed","classes","noResizeHandle","options","call","$nextTick","calculateInputHeight","$refs","_a","style","removeProperty","lazyValue","height","scrollHeight","minHeight","Math","max","genInput","tag","onInput","onKeyDown","isFocused","keyCode","stopPropagation"],"mappings":"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","file":"js/chunk-68afb540.8e85e3f2.js","sourcesContent":["var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-container',{staticClass:\"white black--text corners\",staticStyle:{\"margin-top\":\"280px\"},attrs:{\"id\":\"email\"}},[_c('v-form',{ref:\"form\",attrs:{\"lazy-validation\":\"\"},model:{value:(_vm.valid),callback:function ($$v) {_vm.valid=$$v},expression:\"valid\"}},[_c('v-text-field',{attrs:{\"counter\":120,\"placeholder\":\"Optional\",\"label\":\"Name\"},model:{value:(_vm.email_fields.fullname),callback:function ($$v) {_vm.$set(_vm.email_fields, \"fullname\", $$v)},expression:\"email_fields.fullname\"}}),_c('v-text-field',{attrs:{\"placeholder\":\"Optional\",\"counter\":120,\"label\":\"E-mail\"},model:{value:(_vm.email_fields.email),callback:function ($$v) {_vm.$set(_vm.email_fields, \"email\", $$v)},expression:\"email_fields.email\"}}),_c('v-textarea',{staticClass:\"mt-4\",attrs:{\"rules\":_vm.suggRules,\"outlined\":\"\",\"counter\":\"2000\",\"auto-grow\":\"\",\"name\":\"input-7-4\",\"label\":\"Your Tip or Suggestion\"},model:{value:(_vm.email_fields.body),callback:function ($$v) {_vm.$set(_vm.email_fields, \"body\", $$v)},expression:\"email_fields.body\"}}),_c('v-btn',{staticClass:\"blue accent-3 white--text\",attrs:{\"small\":\"\",\"elevation\":\"2\"},on:{\"click\":_vm.send}},[_vm._v(\" Send \")]),_c('v-btn',{staticClass:\"blue accent-3 white--text ml-2\",attrs:{\"small\":\"\",\"elevation\":\"2\"},on:{\"click\":_vm.cancel}},[_vm._v(\" Cancel \")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./email.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./email.vue?vue&type=template&id=0d5438e7&scoped=true&\"\nimport script from \"./email.vue?vue&type=script&lang=js&\"\nexport * from \"./email.vue?vue&type=script&lang=js&\"\nimport style0 from \"./email.vue?vue&type=style&index=0&id=0d5438e7&prod&lang=scss&scoped=true&\"\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 \"0d5438e7\",\n null\n \n)\n\nexport default component.exports","// Components\nimport VInput from '../VInput/VInput'\n\n// Mixins\nimport mixins from '../../util/mixins'\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\n\n// Helpers\nimport { VNode } from 'vue'\n\ntype ErrorBag = Record\ntype VInputInstance = InstanceType\ntype Watchers = {\n _uid: number\n valid: () => void\n shouldValidate: () => void\n}\n\n/* @vue/component */\nexport default mixins(\n BindsAttrs,\n RegistrableProvide('form')\n /* @vue/component */\n).extend({\n name: 'v-form',\n\n provide (): object {\n return { form: this }\n },\n\n inheritAttrs: false,\n\n props: {\n disabled: Boolean,\n lazyValidation: Boolean,\n readonly: Boolean,\n value: Boolean,\n },\n\n data: () => ({\n inputs: [] as VInputInstance[],\n watchers: [] as Watchers[],\n errorBag: {} as ErrorBag,\n }),\n\n watch: {\n errorBag: {\n handler (val) {\n const errors = Object.values(val).includes(true)\n\n this.$emit('input', !errors)\n },\n deep: true,\n immediate: true,\n },\n },\n\n methods: {\n watchInput (input: any): Watchers {\n const watcher = (input: any): (() => void) => {\n return input.$watch('hasError', (val: boolean) => {\n this.$set(this.errorBag, input._uid, val)\n }, { immediate: true })\n }\n\n const watchers: Watchers = {\n _uid: input._uid,\n valid: () => {},\n shouldValidate: () => {},\n }\n\n if (this.lazyValidation) {\n // Only start watching inputs if we need to\n watchers.shouldValidate = input.$watch('shouldValidate', (val: boolean) => {\n if (!val) return\n\n // Only watch if we're not already doing it\n if (this.errorBag.hasOwnProperty(input._uid)) return\n\n watchers.valid = watcher(input)\n })\n } else {\n watchers.valid = watcher(input)\n }\n\n return watchers\n },\n /** @public */\n validate (): boolean {\n return this.inputs.filter(input => !input.validate(true)).length === 0\n },\n /** @public */\n reset (): void {\n this.inputs.forEach(input => input.reset())\n this.resetErrorBag()\n },\n resetErrorBag () {\n if (this.lazyValidation) {\n // Account for timeout in validatable\n setTimeout(() => {\n this.errorBag = {}\n }, 0)\n }\n },\n /** @public */\n resetValidation () {\n this.inputs.forEach(input => input.resetValidation())\n this.resetErrorBag()\n },\n register (input: VInputInstance) {\n this.inputs.push(input)\n this.watchers.push(this.watchInput(input))\n },\n unregister (input: VInputInstance) {\n const found = this.inputs.find(i => i._uid === input._uid)\n\n if (!found) return\n\n const unwatch = this.watchers.find(i => i._uid === found._uid)\n if (unwatch) {\n unwatch.valid()\n unwatch.shouldValidate()\n }\n\n this.watchers = this.watchers.filter(i => i._uid !== found._uid)\n this.inputs = this.inputs.filter(i => i._uid !== found._uid)\n this.$delete(this.errorBag, found._uid)\n },\n },\n\n render (h): VNode {\n return h('form', {\n staticClass: 'v-form',\n attrs: {\n novalidate: true,\n ...this.attrs$,\n },\n on: {\n submit: (e: Event) => this.$emit('submit', e),\n },\n }, this.$slots.default)\n },\n})\n","// 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!./email.vue?vue&type=style&index=0&id=0d5438e7&prod&lang=scss&scoped=true&\""],"sourceRoot":""}