{"version":3,"sources":["webpack:///../../../src/components/VTextarea/VTextarea.ts","webpack:///./src/views/Landing.vue?d7d4","webpack:///./src/views/Landing.vue?b74d","webpack:///./src/views/Landing.vue?e0d3","webpack:///./src/views/Landing.vue?a0d0","webpack:///./src/views/Landing.vue?ce24"],"names":["baseMixins","name","props","autoGrow","noResize","rowHeight","type","Number","default","validator","v","isNaN","parseFloat","rows","parseInt","computed","classes","this","noResizeHandle","watch","lazyValue","$nextTick","mounted","setTimeout","methods","calculateInputHeight","input","$refs","height","minHeight","Math","genInput","onInput","onKeyDown","isFocused","e","render","_vm","_h","$createElement","_c","_self","staticClass","attrs","_v","nameErrors","on","$event","$v","$touch","model","value","callback","$$v","expression","emailErrors","email","messageErrors","message","submit","staticStyle","isInfoDialogOpen","infoTitle","infoMessage","infoButton","_e","staticRenderFns","extend","metaInfo","link","rel","href","$route","path","mixins","components","InfoDialog","data","captchaSiteKey","validations","required","val","toLowerCase","created","captchaScript","document","createElement","setAttribute","getElementById","appendChild","$invalid","grecaptcha","window","Promise","resolve","reject","ready","execute","action","then","token","captchaToken","contactClient","contactUs","reason","BusinessInquiry","reCaptchaToken","addContact","$reset","closeDialog","errors","$dirty","push","component","VBtn","VCol","VContainer","VImg","VRow","VSpacer","VTextField","VTextarea"],"mappings":"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","file":"js/chunk-eeaf1fae.4c5d599d.js","sourcesContent":["// 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 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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"landing\",attrs:{\"fill-height\":\"\",\"fluid\":\"\"}},[_c('v-row',{staticClass:\"pt-2\",attrs:{\"dense\":\"\",\"justify\":\"center\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-row',{staticClass:\"pb-10\",attrs:{\"align\":\"center\",\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-img',{attrs:{\"src\":require('../assets/logo.png'),\"height\":\"50\",\"contain\":\"\",\"alt\":\"Doceo.md Medical Information Discovery and Curation Platform\",\"title\":\"Doceo.md Medical Information Discovery and Curation Platform\"}})],1)],1),_c('v-row',{staticClass:\"pb-4\"},[_c('v-col',[_c('h1',{staticClass:\"first-header primary--text\"},[_vm._v(\"Great medical information is coming soon!\")])])],1),_c('v-row',[_c('v-col',[_vm._v(\" Doceo.md is a new information discovery and curation platform that brings Physicians and Health Practitioners together in a single community. It is the single source to find information that is relevant to your clinical practice and allows you to collect, store and access content in the most convenient way. \")])],1),_c('v-row',{staticClass:\"pb-3\"},[_c('v-col',[_vm._v(\" Doceo.md is a place to learn, organize and collaborate on the latest evidence, treatment trends, and the underlying drivers of health disparity. Be part of the conversation. Free subscriptions are coming soon. \")])],1),_c('v-row',{staticClass:\"pt-2 pb-3\"},[_c('v-col',[_c('div',{staticClass:\"second-header primary--text\"},[_vm._v(\"Contact us\")])])],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_vm._v(\" To learn more about Doceo.md and the opportunities that it offers, please complete our form and we will get back to you. Otherwise, keep checking this site for further updates. \")])],1),_c('v-row',{staticClass:\"pt-2\",attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_vm._v(\" Name \")])],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"auto\",\"error-messages\":_vm.nameErrors},on:{\"blur\":function($event){return _vm.$v.name.$touch()}},model:{value:(_vm.name),callback:function ($$v) {_vm.name=$$v},expression:\"name\"}})],1)],1)],1),_c('v-col',{attrs:{\"cols\":\"12\",\"sm\":\"6\"}},[_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',[_vm._v(\" Email \")])],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-text-field',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"auto\",\"error-messages\":_vm.emailErrors},on:{\"blur\":function($event){return _vm.$v.email.$touch()}},model:{value:(_vm.email),callback:function ($$v) {_vm.email=$$v},expression:\"email\"}})],1)],1)],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_vm._v(\" Message \")])],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-textarea',{attrs:{\"outlined\":\"\",\"dense\":\"\",\"hide-details\":\"auto\",\"error-messages\":_vm.messageErrors},on:{\"blur\":function($event){return _vm.$v.message.$touch()}},model:{value:(_vm.message),callback:function ($$v) {_vm.message=$$v},expression:\"message\"}})],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{attrs:{\"color\":\"submit\",\"ripple\":false},on:{\"click\":_vm.submit}},[_vm._v(\"Send\")])],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-spacer'),_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-btn',{staticClass:\"pr-0 pl-0\",attrs:{\"text\":\"\",\"small\":\"\",\"color\":\"primary\",\"href\":\"https://www.launchitventures.com/\",\"target\":\"_blank\",\"rel\":\"noopener\",\"ripple\":false}},[_vm._v(\" A Launchit Ventures Company \")])],1)],1),_c('v-row',{attrs:{\"dense\":\"\"}},[_c('v-col',{staticStyle:{\"font-size\":\"67%\",\"font-style\":\"italic\"}},[_vm._v(\" This site is protected by reCAPTCHA and the Google \"),_c('a',{attrs:{\"href\":\"https://policies.google.com/privacy\"}},[_vm._v(\"Privacy Policy\")]),_vm._v(\" and \"),_c('a',{attrs:{\"href\":\"https://policies.google.com/terms\"}},[_vm._v(\"Terms of Service\")]),_vm._v(\" apply. \")])],1)],1)],1),(_vm.isInfoDialogOpen)?_c('InfoDialog',{attrs:{\"isOpen\":_vm.isInfoDialogOpen,\"title\":_vm.infoTitle,\"message\":_vm.infoMessage,\"buttonText\":_vm.infoButton},on:{\"close\":function($event){_vm.isInfoDialogOpen = false}}}):_vm._e(),_c('div',{attrs:{\"id\":\"landingCaptchaScript\"}})],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\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\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\n\r\nimport { ContactClient, ContactUs, ContactUsReason, IContactUs } from \"@/api/DoceoApi\";\r\nimport Vue from \"vue\";\r\nimport { validationMixin } from \"vuelidate\";\r\nimport { required, maxLength, email } from \"vuelidate/lib/validators\";\r\nimport InfoDialog from \"@/components/userManagement/InfoDialog.vue\";\r\n\r\nexport default Vue.extend({\r\n name: \"Landing\",\r\n metaInfo() {\r\n return {\r\n link: [{ rel: \"canonical\", href: `${process.env.VUE_APP_BASE_URL}${this.$route.path}` }],\r\n };\r\n },\r\n mixins: [validationMixin],\r\n components: { InfoDialog },\r\n data: () => ({\r\n isInfoDialogOpen: false,\r\n infoTitle: \"Contact Us\",\r\n infoMessage: \"\",\r\n infoButton: \"Okay\",\r\n name: \"\",\r\n email: \"\",\r\n message: \"\",\r\n captchaSiteKey: null as string | null,\r\n }),\r\n validations: {\r\n name: { required },\r\n email: { required, email: (val) => (email as any)(val.toLowerCase()) },\r\n message: { required },\r\n },\r\n created() {\r\n this.captchaSiteKey = process.env.VUE_APP_RECAPTCHA_SITE_KEY ?? null;\r\n },\r\n mounted() {\r\n // add captcha script to this component\r\n const captchaScript = document.createElement(\"script\");\r\n captchaScript.setAttribute(\"src\", \"https://www.google.com/recaptcha/api.js?render=\" + this.captchaSiteKey);\r\n captchaScript.setAttribute(\"async\", \"\");\r\n document.getElementById(\"landingCaptchaScript\")?.appendChild(captchaScript);\r\n },\r\n methods: {\r\n async submit() {\r\n this.$v.$touch();\r\n\r\n if (this.$v.$invalid) {\r\n return;\r\n }\r\n\r\n const grecaptcha = (window as any).grecaptcha;\r\n const captchaToken = await new Promise((resolve, reject) => {\r\n grecaptcha.ready(() => {\r\n grecaptcha.execute(this.captchaSiteKey, { action: \"contact\" }).then((token: string) => {\r\n resolve(token);\r\n });\r\n });\r\n });\r\n\r\n let contactClient = new ContactClient();\r\n let contactUs: IContactUs = {\r\n name: this.name,\r\n email: this.email,\r\n message: this.message,\r\n reason: ContactUsReason.BusinessInquiry,\r\n reCaptchaToken: captchaToken,\r\n };\r\n\r\n try {\r\n await contactClient.addContact(new ContactUs(contactUs));\r\n this.infoMessage = \"Thank you for your interested in the Doceo project! We will respond back as soon as possible\";\r\n this.isInfoDialogOpen = true;\r\n this.name = \"\";\r\n this.email = \"\";\r\n this.message = \"\";\r\n this.$v.$reset();\r\n } catch {\r\n this.infoMessage = \"Error submitting request\";\r\n this.isInfoDialogOpen = true;\r\n }\r\n },\r\n closeDialog() {},\r\n },\r\n computed: {\r\n nameErrors() {\r\n const errors = [] as string[];\r\n if (!this.$v.name.$dirty) return errors;\r\n !this.$v.name.required && errors.push(\"Name is required.\");\r\n return errors;\r\n },\r\n messageErrors() {\r\n const errors = [] as string[];\r\n if (!this.$v.message.$dirty) return errors;\r\n !this.$v.message.required && errors.push(\"Message is required.\");\r\n return errors;\r\n },\r\n emailErrors() {\r\n const errors = [] as string[];\r\n if (!this.$v.email.$dirty) return errors;\r\n !this.$v.email.email && errors.push(\"Must be valid Email\");\r\n !this.$v.email.required && errors.push(\"Email is required.\");\r\n return errors;\r\n },\r\n },\r\n});\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Landing.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Landing.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Landing.vue?vue&type=template&id=0c36d341&\"\nimport script from \"./Landing.vue?vue&type=script&lang=ts&\"\nexport * from \"./Landing.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Landing.vue?vue&type=style&index=0&lang=css&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSpacer } from 'vuetify/lib/components/VGrid';\nimport { VTextField } from 'vuetify/lib/components/VTextField';\nimport { VTextarea } from 'vuetify/lib/components/VTextarea';\ninstallComponents(component, {VBtn,VCol,VContainer,VImg,VRow,VSpacer,VTextField,VTextarea})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Landing.vue?vue&type=style&index=0&lang=css&\""],"sourceRoot":""}