{"version":3,"sources":["webpack:///../../../src/components/VList/VListItemAction.ts","webpack:///../../../src/components/VList/VListItemGroup.ts","webpack:///./src/views/VerifyAuth.vue","webpack:///src/views/VerifyAuth.vue","webpack:///./src/views/VerifyAuth.vue?8c52","webpack:///./src/views/VerifyAuth.vue?81fe","webpack:///../../../src/components/VList/VListItemIcon.ts","webpack:///./src/views/Verify.vue?6cae","webpack:///../../../src/components/VList/VListGroup.ts","webpack:///../../../src/components/VList/index.ts","webpack:///./src/views/VerifyAgent.vue?acff","webpack:///../../../src/components/VAvatar/index.ts","webpack:///../../../src/components/VList/VListItemAvatar.ts","webpack:///./src/views/VerifyAgent.vue","webpack:///src/views/VerifyAgent.vue","webpack:///./src/views/VerifyAgent.vue?eed1","webpack:///./src/views/VerifyAgent.vue?62fc","webpack:///./src/views/Verify.vue","webpack:///src/views/Verify.vue","webpack:///./src/views/Verify.vue?6758","webpack:///./src/views/Verify.vue?2627","webpack:///./src/views/VerifyAuth.vue?13c0","webpack:///./src/views/VerifyEmail.vue","webpack:///src/views/VerifyEmail.vue","webpack:///./src/views/VerifyEmail.vue?3a4b","webpack:///./src/views/VerifyEmail.vue?5e03","webpack:///../../../src/components/VSubheader/VSubheader.ts","webpack:///./src/views/VerifyEmail.vue?e5fc"],"names":["Vue","extend","name","functional","render","h","data","children","staticClass","filteredChild","filter","VNode","isComment","text","length","mixins","BaseItemGroup","Colorable","provide","isInGroup","listItemGroup","this","computed","classes","options","call","methods","genData","setTextColor","color","attrs","role","_c","on","resetPassword","arguments","passwordShow","model","value","newPassword","callback","expression","loading","_vm","showError","click","_v","staticRenderFns","components","Password","auth","actionCode","accountEmail","errorMsg","isResetPassword","timeout","mapGetters","continueUrl","lang","email","verifyPasswordResetCode","message","restoredEmail","checkActionCode","applyActionCode","sendPasswordResetEmail","$router","push","path","query","$route","catch","code","delay","confirmPasswordReset","$store","dispatch","type","root","signInWithEmailAndPassword","mode","oobCode","firebase","handleResetPassword","handleRecoverEmail","handleVerifyEmail","component","trim","baseMixins","BindsAttrs","Bootable","RegistrableInject","Toggleable","directives","ripple","props","activeClass","String","default","appendIcon","disabled","Boolean","group","RegExp","noAction","prependIcon","Object","subGroup","isActive","watch","val","list","listClick","_uid","created","register","matchRoute","beforeDestroy","unregister","e","isBooted","$emit","$nextTick","genIcon","icon","$createElement","VIcon","genAppendIcon","slot","getSlot","VListItemIcon","genHeader","VListItem","class","inputValue","listeners$","genPrependIcon","genItems","showLazyContent","onRouteChange","to","toggle","uid","match","VExpandTransition","VListItemActionText","createSimpleFunctional","VListItemContent","VListItemTitle","VListItemSubtitle","VList","VListGroup","VListItemAction","VListItemAvatar","VListItemGroup","VAvatar","horizontal","size","Number","tile","require","agency_verification","temp","verificationData","isLoading","existingAgent","mapActions","route","logout_action","localStorage","removeItem","newAgent","register_complete_action","delete_invitations_and_verifications","currentUser","delete","userEmail","firestore","collection","where","onSnapshot","doc","snapshot","docs","handleDeclineAgency","verify","_e","JSON","parse","getItem","setItem","send_email_verification","get_error","$event","submitForm","staticStyle","accountVerified","userScacAlphaCode","$$v","isVerificationLoading","password","organizationId","rules","emailRegex","test","scacCode","scacCodeRegex","login","verifyUserEmail","validate","response","email_verification_action","scac","pendingVerificationRef","get","console","log","verification","exists","axios","post","organization_id","then","res","login_action","err","Themeable","inset","themeClasses","$attrs","$listeners"],"mappings":"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","file":"js/verify.js?id=aff8a03c741c7458087a","sourcesContent":["// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'v-list-item-action',\n\n  functional: true,\n\n  render (h, { data, children = [] }): VNode {\n    data.staticClass = data.staticClass ? `v-list-item__action ${data.staticClass}` : 'v-list-item__action'\n    const filteredChild = children.filter(VNode => {\n      return VNode.isComment === false && VNode.text !== ' '\n    })\n    if (filteredChild.length > 1) data.staticClass += ' v-list-item__action--stack'\n\n    return h('div', data, children)\n  },\n})\n","// Styles\nimport './VListItemGroup.sass'\n\n// Extensions\nimport { BaseItemGroup } from '../VItemGroup/VItemGroup'\n\n// Mixins\nimport Colorable from '../../mixins/colorable'\n\n// Utilities\nimport mixins from '../../util/mixins'\n\nexport default mixins(\n  BaseItemGroup,\n  Colorable\n).extend({\n  name: 'v-list-item-group',\n\n  provide () {\n    return {\n      isInGroup: true,\n      listItemGroup: this,\n    }\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        ...BaseItemGroup.options.computed.classes.call(this),\n        'v-list-item-group': true,\n      }\n    },\n  },\n\n  methods: {\n    genData (): object {\n      return this.setTextColor(this.color, {\n        ...BaseItemGroup.options.methods.genData.call(this),\n        attrs: {\n          role: 'listbox',\n        },\n      })\n    },\n  },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"d-flex justify-center full-height full-width\"},[(_vm.isResetPassword)?_c('v-card',{staticClass:\"pa-4 rounded-sm\",staticStyle:{\"margin-top\":\"20vh\",\"max-width\":\"35vw\"},attrs:{\"elevation\":\"0\"}},[_c('v-card-title',{staticClass:\"justify-center flex-direction-column\"},[_c('span',[_vm._v(\" Please enter your new password \")])]),_c('v-card-text',[_c('v-col',[_c('v-row',[_c('v-text-field',{attrs:{\"append-icon\":_vm.passwordShow ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.passwordShow ? 'text' : 'password',\"hide-details\":true,\"name\":\"password\",\"label\":\"Password\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;return _vm.resetPassword.apply(null, arguments)},\"click:append\":function($event){_vm.passwordShow = !_vm.passwordShow}},model:{value:(_vm.newPassword),callback:function ($$v) {_vm.newPassword=$$v},expression:\"newPassword\"}})],1),_c('v-row',[_c('password',{attrs:{\"secure-length\":6,\"strength-meter-only\":true},model:{value:(_vm.newPassword),callback:function ($$v) {_vm.newPassword=$$v},expression:\"newPassword\"}})],1),_c('v-row',[_c('v-btn',{staticClass:\"mt-4 pa-4 rounded-sm width-100\",attrs:{\"color\":\"#5BC1C1\",\"elevation\":\"0\",\"loading\":_vm.loading,\"dark\":_vm.newPassword.length >= 6,\"disabled\":_vm.newPassword.length < 6},on:{\"click\":_vm.resetPassword}},[_vm._v(\"Reset Password\")])],1)],1)],1)],1):_vm._e()],1),_c('v-snackbar',{staticClass:\"custom-snackbar rounded-sm\",attrs:{\"timeout\":_vm.timeout,\"color\":\"error\"},model:{value:(_vm.showError),callback:function ($$v) {_vm.showError=$$v},expression:\"showError\"}},[_vm._v(\" \"+_vm._s(_vm.errorMsg)+\" \"),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showError = false}}},[_vm._v(\"Close\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <div class=\"d-flex justify-center full-height full-width\">\n      <v-card\n        v-if=\"isResetPassword\"\n        class=\"pa-4 rounded-sm\"\n        elevation=\"0\"\n        style=\"margin-top: 20vh; max-width: 35vw\"\n      >\n        <v-card-title class=\"justify-center flex-direction-column\">\n          <span> Please enter your new password </span>\n        </v-card-title>\n        <v-card-text>\n          <v-col>\n            <v-row>\n              <v-text-field\n                v-model=\"newPassword\"\n                :append-icon=\"passwordShow ? 'mdi-eye' : 'mdi-eye-off'\"\n                :type=\"passwordShow ? 'text' : 'password'\"\n                :hide-details=\"true\"\n                name=\"password\"\n                label=\"Password\"\n                @keydown.enter=\"resetPassword\"\n                @click:append=\"passwordShow = !passwordShow\"\n              ></v-text-field>\n            </v-row>\n            <v-row>\n              <password\n                v-model=\"newPassword\"\n                :secure-length=\"6\"\n                :strength-meter-only=\"true\"\n              />\n            </v-row>\n            <v-row>\n              <v-btn\n                class=\"mt-4 pa-4 rounded-sm width-100\"\n                color=\"#5BC1C1\"\n                elevation=\"0\"\n                :loading=\"loading\"\n                :dark=\"newPassword.length >= 6\"\n                :disabled=\"newPassword.length < 6\"\n                @click=\"resetPassword\"\n                >Reset Password</v-btn\n              >\n            </v-row>\n          </v-col>\n        </v-card-text>\n      </v-card>\n    </div>\n\n    <v-snackbar\n      class=\"custom-snackbar rounded-sm\"\n      v-model=\"showError\"\n      :timeout=\"timeout\"\n      color=\"error\"\n    >\n      {{ errorMsg }}\n      <v-btn text @click=\"showError = false\">Close</v-btn>\n    </v-snackbar>\n  </div>\n</template>\n\n<script>\nimport { mapGetters } from 'vuex';\nimport firebase from 'firebase/app';\nimport 'firebase/auth';\n\nimport Password from 'vue-password-strength-meter';\n\nimport { delay } from 'lodash';\n\nexport default {\n  name: 'VerifyAuth',\n  components: { Password },\n  data() {\n    return {\n      auth: null,\n      actionCode: '',\n      accountEmail: '',\n      errorMsg: '',\n      showError: false,\n      isResetPassword: false,\n      newPassword: '',\n      passwordShow: false,\n      loading: false,\n      timeout: 4000,\n    };\n  },\n  computed: {\n    ...mapGetters('auth', ['get_error']),\n  },\n  methods: {\n    async handleResetPassword(auth, actionCode, continueUrl, lang) {\n      this.isResetPassword = true;\n      // Localize the UI to the selected language as determined by the lang\n      // parameter.\n\n      // Verify the password reset code is valid\n      try {\n        const email = await auth.verifyPasswordResetCode(actionCode);\n\n        this.accountEmail = email;\n      } catch ({ message }) {\n        this.showError = true;\n        this.errorMsg = message;\n      }\n    },\n    async handleRecoverEmail(auth, actionCode, lang) {\n      // Confirm the action code is valid.\n      // Get the restored email address.\n      try {\n        const {\n          data: { email: restoredEmail },\n        } = await auth.checkActionCode(actionCode);\n        // Revert to the old email.\n        try {\n          await auth.applyActionCode(actionCode);\n        } catch ({ message }) {\n          this.showError = true;\n          this.errorMsg = message;\n        }\n        // Account email reverted to restoredEmail\n\n        // TODO: Display a confirmation message to the user.\n\n        // You might also want to give the user the option to reset their password\n        // in case the account was compromised:\n        try {\n          await auth.sendPasswordResetEmail(restoredEmail);\n        } catch ({ message }) {\n          this.showError = true;\n          this.errorMsg = message;\n        }\n      } catch ({ message }) {\n        this.showError = true;\n        this.errorMsg = message;\n      }\n      // Password reset confirmation sent. Ask user to check their email.\n    },\n    async handleVerifyEmail(auth, actionCode, continueUrl, lang) {\n      try {\n        await auth.applyActionCode(actionCode);\n\n        this.$router\n          .push({\n            path: '/register/complete',\n            query: {\n              email: this.$route.query.email,\n            },\n          })\n          .catch(() => {});\n      } catch ({ code, message }) {\n        this.showError = true;\n        this.errorMsg = message;\n\n        if (code === 'auth/invalid-action-code') {\n          delay(\n            () =>\n              this.$router.push({\n                path: '/verify',\n                query: { email: this.$route.query.email },\n              }),\n            this.timeout\n          );\n        }\n      }\n    },\n    async resetPassword() {\n      if (this.newPassword.length < 6) {\n        this.showError = true;\n        this.errorMsg = 'Password should be at least 6 characters';\n\n        return;\n      }\n\n      // Save the new password.\n      try {\n        await this.auth.confirmPasswordReset(this.actionCode, this.newPassword);\n\n        this.loading = true;\n\n        this.$store.dispatch(\n          'auth/new_notification',\n          {\n            type: 'notification',\n            message: 'Password reset successfully!',\n          },\n          { root: true }\n        );\n\n        // Password reset has been confirmed and new password updated.\n        // TODO: Display a link back to the app, or sign-in the user directly\n        // if the page belongs to the same domain as the app:\n        try {\n          await this.auth.signInWithEmailAndPassword(\n            this.accountEmail,\n            this.newPassword\n          );\n\n          delay(\n            () => this.$router.push({ path: '/dashboard' }).catch(() => {}),\n            2000\n          );\n        } catch ({ message }) {\n          this.loading = false;\n          this.showError = true;\n          this.errorMsg = message;\n        }\n      } catch ({ message }) {\n        this.loading = false;\n        this.showError = true;\n        this.errorMsg = message;\n      }\n    },\n  },\n  async mounted() {\n    // Get the action to complete.\n    const mode = this.$route.query.mode;\n    // Get the one-time code from the query parameter.\n    const actionCode = this.$route.query.oobCode;\n    // (Optional) Get the continue URL from the query parameter if available.\n    const continueUrl = this.$route.query.continueUrl;\n    // (Optional) Get the language code if available.\n    const lang = this.$route.query.lang || 'en';\n\n    const auth = firebase.auth();\n\n    this.auth = auth;\n    this.actionCode = actionCode;\n\n    // Handle the user management action.\n    switch (mode) {\n      case 'resetPassword':\n        // Display reset password handler and UI.\n        this.handleResetPassword(auth, actionCode, continueUrl, lang);\n        break;\n      case 'recoverEmail':\n        // Display email recovery handler and UI.\n        this.handleRecoverEmail(auth, actionCode, lang);\n        break;\n      case 'verifyEmail':\n        // Display email verification handler and UI.\n        this.handleVerifyEmail(auth, actionCode, continueUrl, lang);\n        break;\n      default:\n      // Error: invalid mode.\n    }\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import '@/assets/scss/common.scss';\n.Password {\n  max-width: 100% !important;\n  width: 100%;\n  margin: 5px 0 0;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyAuth.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyAuth.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VerifyAuth.vue?vue&type=template&id=b0551f5a&scoped=true\"\nimport script from \"./VerifyAuth.vue?vue&type=script&lang=js\"\nexport * from \"./VerifyAuth.vue?vue&type=script&lang=js\"\nimport style0 from \"./VerifyAuth.vue?vue&type=style&index=0&id=b0551f5a&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  \"b0551f5a\",\n  null\n  \n)\n\nexport default component.exports","// Types\nimport Vue, { VNode } from 'vue'\n\n/* @vue/component */\nexport default Vue.extend({\n  name: 'v-list-item-icon',\n\n  functional: true,\n\n  render (h, { data, children }): VNode {\n    data.staticClass = (`v-list-item__icon ${data.staticClass || ''}`).trim()\n\n    return h('div', data, children)\n  },\n})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Verify.vue?vue&type=style&index=0&id=2be0ad95&prod&lang=scss&scoped=true\"","// Styles\nimport './VListGroup.sass'\n\n// Components\nimport VIcon from '../VIcon'\nimport VList from './VList'\nimport VListItem from './VListItem'\nimport VListItemIcon from './VListItemIcon'\n\n// Mixins\nimport BindsAttrs from '../../mixins/binds-attrs'\nimport Bootable from '../../mixins/bootable'\nimport Colorable from '../../mixins/colorable'\nimport Toggleable from '../../mixins/toggleable'\nimport { inject as RegistrableInject } from '../../mixins/registrable'\n\n// Directives\nimport ripple from '../../directives/ripple'\n\n// Transitions\nimport { VExpandTransition } from '../transitions'\n\n// Utils\nimport mixins, { ExtractVue } from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\nimport { Route } from 'vue-router'\n\nconst baseMixins = mixins(\n  BindsAttrs,\n  Bootable,\n  Colorable,\n  RegistrableInject('list'),\n  Toggleable\n)\n\ntype VListInstance = InstanceType<typeof VList>\n\ninterface options extends ExtractVue<typeof baseMixins> {\n  list: VListInstance\n  $refs: {\n    group: HTMLElement\n  }\n  $route: Route\n}\n\nexport default baseMixins.extend<options>().extend({\n  name: 'v-list-group',\n\n  directives: { ripple },\n\n  props: {\n    activeClass: {\n      type: String,\n      default: '',\n    },\n    appendIcon: {\n      type: String,\n      default: '$expand',\n    },\n    color: {\n      type: String,\n      default: 'primary',\n    },\n    disabled: Boolean,\n    group: [String, RegExp],\n    noAction: Boolean,\n    prependIcon: String,\n    ripple: {\n      type: [Boolean, Object],\n      default: true,\n    },\n    subGroup: Boolean,\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-list-group--active': this.isActive,\n        'v-list-group--disabled': this.disabled,\n        'v-list-group--no-action': this.noAction,\n        'v-list-group--sub-group': this.subGroup,\n      }\n    },\n  },\n\n  watch: {\n    isActive (val: boolean) {\n      /* istanbul ignore else */\n      if (!this.subGroup && val) {\n        this.list && this.list.listClick(this._uid)\n      }\n    },\n    $route: 'onRouteChange',\n  },\n\n  created () {\n    this.list && this.list.register(this)\n\n    if (this.group &&\n      this.$route &&\n      this.value == null\n    ) {\n      this.isActive = this.matchRoute(this.$route.path)\n    }\n  },\n\n  beforeDestroy () {\n    this.list && this.list.unregister(this)\n  },\n\n  methods: {\n    click (e: Event) {\n      if (this.disabled) return\n\n      this.isBooted = true\n\n      this.$emit('click', e)\n      this.$nextTick(() => (this.isActive = !this.isActive))\n    },\n    genIcon (icon: string | false): VNode {\n      return this.$createElement(VIcon, icon)\n    },\n    genAppendIcon (): VNode | null {\n      const icon = !this.subGroup ? this.appendIcon : false\n      const slot = getSlot(this, 'appendIcon')\n\n      if (!icon && !slot) return null\n\n      return this.$createElement(VListItemIcon, {\n        staticClass: 'v-list-group__header__append-icon',\n      }, [\n        slot || this.genIcon(icon),\n      ])\n    },\n    genHeader (): VNode {\n      return this.$createElement(VListItem, {\n        staticClass: 'v-list-group__header',\n        attrs: {\n          'aria-expanded': String(this.isActive),\n          role: 'button',\n        },\n        class: {\n          [this.activeClass]: this.isActive,\n        },\n        props: {\n          inputValue: this.isActive,\n        },\n        directives: [{\n          name: 'ripple',\n          value: this.ripple,\n        }],\n        on: {\n          ...this.listeners$,\n          click: this.click,\n        },\n      }, [\n        this.genPrependIcon(),\n        getSlot(this, 'activator'),\n        this.genAppendIcon(),\n      ])\n    },\n    genItems (): VNode[] {\n      return this.showLazyContent(() => [\n        this.$createElement('div', {\n          staticClass: 'v-list-group__items',\n          directives: [{\n            name: 'show',\n            value: this.isActive,\n          }],\n        }, getSlot(this)),\n      ])\n    },\n    genPrependIcon (): VNode | null {\n      const icon = this.subGroup && this.prependIcon == null\n        ? '$subgroup'\n        : this.prependIcon\n      const slot = getSlot(this, 'prependIcon')\n\n      if (!icon && !slot) return null\n\n      return this.$createElement(VListItemIcon, {\n        staticClass: 'v-list-group__header__prepend-icon',\n      }, [\n        slot || this.genIcon(icon),\n      ])\n    },\n    onRouteChange (to: Route) {\n      /* istanbul ignore if */\n      if (!this.group) return\n\n      const isActive = this.matchRoute(to.path)\n\n      /* istanbul ignore else */\n      if (isActive && this.isActive !== isActive) {\n        this.list && this.list.listClick(this._uid)\n      }\n\n      this.isActive = isActive\n    },\n    toggle (uid: number) {\n      const isActive = this._uid === uid\n\n      if (isActive) this.isBooted = true\n      this.$nextTick(() => (this.isActive = isActive))\n    },\n    matchRoute (to: string) {\n      return to.match(this.group) !== null\n    },\n  },\n\n  render (h): VNode {\n    return h('div', this.setTextColor(this.isActive && this.color, {\n      staticClass: 'v-list-group',\n      class: this.classes,\n    }), [\n      this.genHeader(),\n      h(VExpandTransition, this.genItems()),\n    ])\n  },\n})\n","import { createSimpleFunctional } from '../../util/helpers'\n\nimport VList from './VList'\nimport VListGroup from './VListGroup'\nimport VListItem from './VListItem'\nimport VListItemGroup from './VListItemGroup'\nimport VListItemAction from './VListItemAction'\nimport VListItemAvatar from './VListItemAvatar'\nimport VListItemIcon from './VListItemIcon'\n\nexport const VListItemActionText = createSimpleFunctional('v-list-item__action-text', 'span')\nexport const VListItemContent = createSimpleFunctional('v-list-item__content', 'div')\nexport const VListItemTitle = createSimpleFunctional('v-list-item__title', 'div')\nexport const VListItemSubtitle = createSimpleFunctional('v-list-item__subtitle', 'div')\n\nexport {\n  VList,\n  VListGroup,\n  VListItem,\n  VListItemAction,\n  VListItemAvatar,\n  VListItemIcon,\n  VListItemGroup,\n}\n\nexport default {\n  $_vuetify_subcomponents: {\n    VList,\n    VListGroup,\n    VListItem,\n    VListItemAction,\n    VListItemActionText,\n    VListItemAvatar,\n    VListItemContent,\n    VListItemGroup,\n    VListItemIcon,\n    VListItemSubtitle,\n    VListItemTitle,\n  },\n}\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyAgent.vue?vue&type=style&index=0&id=6aa9473a&prod&lang=scss&scoped=true\"","import VAvatar from './VAvatar'\n\nexport { VAvatar }\nexport default VAvatar\n","// Components\nimport VAvatar from '../VAvatar'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default VAvatar.extend({\n  name: 'v-list-item-avatar',\n\n  props: {\n    horizontal: Boolean,\n    size: {\n      type: [Number, String],\n      default: 40,\n    },\n  },\n\n  computed: {\n    classes (): object {\n      return {\n        'v-list-item__avatar--horizontal': this.horizontal,\n        ...VAvatar.options.computed.classes.call(this),\n        'v-avatar--tile': this.tile || this.horizontal,\n      }\n    },\n  },\n\n  render (h): VNode {\n    const render = VAvatar.options.render.call(this, h)\n\n    render.data = render.data || {}\n    render.data.staticClass += ' v-list-item__avatar'\n\n    return render\n  },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"mt-10\"},[_c('div',{staticClass:\"d-flex justify-center full-height full-width\"},[_c('v-form',{attrs:{\"id\":\"verify-form\"}},[_c('v-card',{staticClass:\"verify-card pa-4 rounded-sm\",attrs:{\"elevation\":\"0\"}},[_c('v-card-title',{staticClass:\"justify-center flex-direction-column\"},[_c('v-img',{staticClass:\"shrink\",attrs:{\"position\":\"center\",\"contain\":\"\",\"src\":require(\"@/assets/png/logo.png\"),\"max-width\":\"160\"}}),(_vm.agency_verification === 'approved')?_c('span',{staticClass:\"mt-8\"},[_vm._v(\" Your invitation approved by the administrator successfully! \")]):_c('span',{staticClass:\"mt-8\"},[_vm._v(\" Please wait for confirmation \")])],1),_c('v-card-text',[_c('v-col',[(_vm.agency_verification === 'approved')?_c('div',{staticClass:\"d-block\"},[_c('v-list',[_c('v-subheader',{staticClass:\"d-block\"},[_c('span',[_c('strong',[_vm._v(\" Click below to create workspace \")])])]),_c('v-list-item',{attrs:{\"disabled\":_vm.isLoading},on:{\"click\":function($event){return _vm.createAgentWorkspace()}}},[_c('v-list-item-icon',[_c('v-avatar',{staticClass:\"rounded-sm\",attrs:{\"color\":\"#a5abb0\",\"size\":\"36\"}},[_c('v-icon',{attrs:{\"small\":\"\",\"dark\":\"\"}},[_vm._v(\" mdi-domain \")])],1)],1),_c('v-list-item-content',[_c('v-list-item-title',[_vm._v(\"Create Workspace \")])],1),_c('v-list-item-action',[_c('v-btn',{staticClass:\"rounded-sm\",attrs:{\"icon\":\"\",\"loading\":_vm.isLoading}},[_c('v-icon',{attrs:{\"color\":\"grey lighten-1\"}},[_vm._v(\"mdi-arrow-right\")])],1)],1)],1)],1)],1):_c('v-row',[_c('div',{staticClass:\"width-100 text-align-center mt-4\"},[_vm._v(\" We've sent an Invitation to \"),_c('strong',[_vm._v(\"Administrator\")])]),_c('div',{staticClass:\"width-100 text-align-center mt-4\"},[_c('span',[_vm._v(\"Please wait until Administrator approves your request.\")])]),_c('div',{staticClass:\"width-100 text-align-center mt-2\"},[_c('div',[_vm._v(\" Already have an account? \"),_c('a',{staticClass:\"text-decoration-underline ml-3\",on:{\"click\":function($event){return _vm.navigateRoute('login')}}},[_vm._v(\" Sign In\")])]),_c('div',{staticClass:\"width-100 text-align-center mt-4\"},[_c('span',[_vm._v(\"Need help? \"),_c('a',{attrs:{\"href\":\"mailto:support@qualle.co\"}},[_vm._v(\"Contact Us\")])])])])])],1)],1)],1)],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div class=\"mt-10\">\n    <div class=\"d-flex justify-center full-height full-width\">\n      <v-form id=\"verify-form\">\n        <v-card class=\"verify-card pa-4 rounded-sm\" elevation=\"0\">\n          <v-card-title class=\"justify-center flex-direction-column\">\n            <v-img\n              class=\"shrink\"\n              position=\"center\"\n              contain\n              src=\"@/assets/png/logo.png\"\n              max-width=\"160\"\n            />\n            <span class=\"mt-8\" v-if=\"agency_verification === 'approved'\">\n              Your invitation approved by the administrator successfully!\n            </span>\n            <span class=\"mt-8\" v-else> Please wait for confirmation </span>\n          </v-card-title>\n          <v-card-text>\n            <v-col>\n              <div v-if=\"agency_verification === 'approved'\" class=\"d-block\">\n                <v-list>\n                  <v-subheader class=\"d-block\">\n                    <span>\n                      <strong> Click below to create workspace </strong>\n                    </span>\n                  </v-subheader>\n\n                  <v-list-item\n                    @click=\"createAgentWorkspace()\"\n                    :disabled=\"isLoading\"\n                  >\n                    <v-list-item-icon>\n                      <v-avatar class=\"rounded-sm\" color=\"#a5abb0\" size=\"36\">\n                        <v-icon small dark> mdi-domain </v-icon>\n                      </v-avatar>\n                    </v-list-item-icon>\n                    <v-list-item-content>\n                      <v-list-item-title>Create Workspace </v-list-item-title>\n                    </v-list-item-content>\n                    <v-list-item-action>\n                      <v-btn icon class=\"rounded-sm\" :loading=\"isLoading\">\n                        <v-icon color=\"grey lighten-1\">mdi-arrow-right</v-icon>\n                      </v-btn>\n                    </v-list-item-action>\n                  </v-list-item>\n                </v-list>\n              </div>\n              <v-row v-else>\n                <div class=\"width-100 text-align-center mt-4\">\n                  We've sent an Invitation to\n                  <strong>Administrator</strong>\n                </div>\n                <div class=\"width-100 text-align-center mt-4\">\n                  <span\n                    >Please wait until Administrator approves your\n                    request.</span\n                  >\n                </div>\n                <div class=\"width-100 text-align-center mt-2\">\n                  <div>\n                    Already have an account?\n\n                    <a\n                      class=\"text-decoration-underline ml-3\"\n                      @click=\"navigateRoute('login')\"\n                    >\n                      Sign In</a\n                    >\n                  </div>\n                  <div class=\"width-100 text-align-center mt-4\">\n                    <span\n                      >Need help?\n                      <a href=\"mailto:support@qualle.co\">Contact Us</a></span\n                    >\n                  </div>\n                </div>\n              </v-row>\n            </v-col>\n          </v-card-text>\n        </v-card>\n      </v-form>\n    </div>\n  </div>\n</template>\n<script>\nimport { mapGetters, mapActions } from 'vuex';\nimport firebase from 'firebase';\nexport default {\n  name: 'VerifyAgent',\n  components: {},\n  props: {},\n  data: () => {\n    return {\n      agency_verification: null,\n      temp: false,\n      verificationData: null,\n      isLoading: false,\n      existingAgent: null,\n    };\n  },\n  computed: {\n    ...mapGetters('auth', ['get_org']),\n  },\n  methods: {\n    ...mapActions('auth', [\n      'register_complete_action',\n      'delete_invitations_and_verifications',\n      'logout_action',\n    ]),\n    async navigateRoute(route) {\n      await this.logout_action();\n      localStorage.removeItem('agency_verification');\n      this.$router.push({ path: `/${route}` });\n    },\n\n    // creating agent account after agency approval\n    async createAgentWorkspace() {\n      this.isLoading = true;\n      this.verificationData.newAgent = true;\n      localStorage.removeItem('agency_verification');\n      await this.register_complete_action(this.verificationData);\n      await this.delete_invitations_and_verifications();\n    },\n    async handleDeclineAgency() {\n      this.agency_verification = 'declined';\n      await this.delete_invitations_and_verifications();\n      await firebase.auth().currentUser.delete();\n      localStorage.removeItem('agency_verification');\n      this.$router.push('/login').catch(() => {});\n    },\n  },\n  async mounted() {\n    const userEmail = firebase.auth().currentUser.email;\n    await firebase\n      .firestore()\n      .collection('pending_verifications')\n      .where('email', '==', userEmail)\n      .onSnapshot(async (snapshot) => {\n        const doc = snapshot.docs[0];\n        if (doc?.data().agency_verification === 'approved') {\n          this.agency_verification = 'approved';\n          this.verificationData = doc.data();\n        } else if (doc?.data().agency_verification === 'declined') {\n          await this.handleDeclineAgency();\n        }\n      });\n  },\n  watch: {},\n};\n</script>\n<style lang=\"scss\" scoped>\n@import '@/assets/scss/common.scss';\n@import '@/assets/scss/auth.scss';\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyAgent.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyAgent.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VerifyAgent.vue?vue&type=template&id=6aa9473a&scoped=true\"\nimport script from \"./VerifyAgent.vue?vue&type=script&lang=js\"\nexport * from \"./VerifyAgent.vue?vue&type=script&lang=js\"\nimport style0 from \"./VerifyAgent.vue?vue&type=style&index=0&id=6aa9473a&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  \"6aa9473a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"d-flex align-center mt-8 ml-8\"},[_c('v-btn',{staticClass:\"mr-4 rounded-sm\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")])],1),_vm._v(\" Go back \")],1),_c('div',{staticClass:\"d-flex justify-center full-height full-width\"},[_c('v-form',{attrs:{\"id\":\"verify-form\"}},[_c('v-card',{staticClass:\"verify-card pa-4 rounded-sm\",attrs:{\"elevation\":\"0\"}},[_c('v-card-title',{staticClass:\"justify-center flex-direction-column\"},[_c('v-img',{staticClass:\"shrink\",attrs:{\"position\":\"center\",\"contain\":\"\",\"src\":require(\"@/assets/png/logo.png\"),\"max-width\":\"160\"}}),_c('span',{staticClass:\"mt-8\"},[_vm._v(\" Please verify your email \")])],1),_c('v-card-text',[_c('v-col',[_c('v-row',[_c('div',{staticClass:\"width-100 text-align-center mt-4\"},[_vm._v(\" We've sent an email to \"),_c('strong',[_vm._v(_vm._s(_vm.$route.query.email))])]),_c('div',{staticClass:\"width-100 text-align-center mt-4\"},[_c('span',[_vm._v(\"Please click on the link that was sent to your email address, if you don't see it, you may need to \"),_c('strong',[_vm._v(\"check your spam\")]),_vm._v(\" folder.\")])]),_c('div',{staticClass:\"width-100 text-align-center mt-8\"},[_c('div',[_vm._v(\"Still can't find the email?\")]),_c('v-btn',{staticClass:\"my-4 rounded-sm\",attrs:{\"color\":\"#5bc1c1\",\"dark\":\"\",\"raised\":\"\",\"elevation\":\"0\"},on:{\"click\":_vm.verify}},[_vm._v(\"Resend Email\")])],1),_c('div',{staticClass:\"width-100 text-align-center mt-4\"},[_c('span',[_vm._v(\"Need help? \"),_c('a',{attrs:{\"href\":\"mailto:support@qualle.co\"}},[_vm._v(\"Contact Us\")])])]),(_vm.get_email_blocked_status)?_c('div',{staticClass:\"width-100 text-align-center mt-2\"},[_c('a',{staticClass:\"text-decoration-underline\",on:{\"click\":function($event){return _vm.$router.push({ path: '/auth/verify/email' })}}},[_vm._v(\"Still having trouble finding your email?\")])]):_vm._e()])],1)],1)],1)],1),_c('v-snackbar',{staticClass:\"custom-snackbar rounded-sm\",attrs:{\"timeout\":0,\"color\":\"error\"},model:{value:(_vm.showError),callback:function ($$v) {_vm.showError=$$v},expression:\"showError\"}},[_vm._v(\" \"+_vm._s(_vm.errorMsg)+\" \"),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showError = false}}},[_vm._v(\"Close\")])],1)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <div class=\"d-flex align-center mt-8 ml-8\">\n      <v-btn class=\"mr-4 rounded-sm\" @click=\"$router.go(-1)\" icon>\n        <v-icon>mdi-arrow-left</v-icon>\n      </v-btn>\n      Go back\n    </div>\n\n    <div class=\"d-flex justify-center full-height full-width\">\n      <v-form id=\"verify-form\">\n        <v-card class=\"verify-card pa-4 rounded-sm\" elevation=\"0\">\n          <v-card-title class=\"justify-center flex-direction-column\">\n            <v-img\n              class=\"shrink\"\n              position=\"center\"\n              contain\n              src=\"@/assets/png/logo.png\"\n              max-width=\"160\"\n            />\n            <span class=\"mt-8\"> Please verify your email </span>\n          </v-card-title>\n          <v-card-text>\n            <v-col>\n              <v-row>\n                <div class=\"width-100 text-align-center mt-4\">\n                  We've sent an email to\n                  <strong>{{ $route.query.email }}</strong>\n                </div>\n                <div class=\"width-100 text-align-center mt-4\">\n                  <span\n                    >Please click on the link that was sent to your email\n                    address, if you don't see it, you may need to\n                    <strong>check your spam</strong> folder.</span\n                  >\n                </div>\n                <div class=\"width-100 text-align-center mt-8\">\n                  <div>Still can't find the email?</div>\n                  <v-btn\n                    class=\"my-4 rounded-sm\"\n                    color=\"#5bc1c1\"\n                    dark\n                    raised\n                    elevation=\"0\"\n                    @click=\"verify\"\n                    >Resend Email</v-btn\n                  >\n                </div>\n                <div class=\"width-100 text-align-center mt-4\">\n                  <span\n                    >Need help?\n                    <a href=\"mailto:support@qualle.co\">Contact Us</a></span\n                  >\n                </div>\n                <div\n                  class=\"width-100 text-align-center mt-2\"\n                  v-if=\"get_email_blocked_status\"\n                >\n                  <a\n                    class=\"text-decoration-underline\"\n                    @click=\"$router.push({ path: '/auth/verify/email' })\"\n                    >Still having trouble finding your email?</a\n                  >\n                </div>\n              </v-row>\n            </v-col>\n          </v-card-text>\n        </v-card>\n      </v-form>\n\n      <v-snackbar\n        class=\"custom-snackbar rounded-sm\"\n        v-model=\"showError\"\n        :timeout=\"0\"\n        color=\"error\"\n      >\n        {{ errorMsg }}\n        <v-btn text @click=\"showError = false\">Close</v-btn>\n      </v-snackbar>\n    </div>\n  </div>\n</template>\n\n<script>\nimport { mapActions, mapGetters } from 'vuex';\n\nexport default {\n  name: 'Verify',\n  components: {},\n  data() {\n    return {\n      errorMsg: '',\n      showError: false,\n      timeout: 4000,\n    };\n  },\n  computed: {\n    ...mapGetters('auth', ['get_error', 'get_email_blocked_status']),\n  },\n  async mounted() {\n    if (!JSON.parse(localStorage.getItem('visited_verified_page'))) {\n      localStorage.setItem('visited_verified_page', true);\n\n      await this.verify();\n    }\n  },\n  beforeDestroy() {\n    localStorage.setItem('visited_verified_page', false);\n  },\n  methods: {\n    ...mapActions('auth', ['send_email_verification']),\n    async verify() {\n      this.send_email_verification();\n    },\n  },\n  watch: {\n    get_error(value) {\n      this.showError = true;\n      this.errorMsg = value;\n    },\n  },\n};\n</script>\n\n<style lang=\"scss\" scoped>\n@import '@/assets/scss/common.scss';\n@import '@/assets/scss/auth.scss';\n\n.verify-card {\n  margin-top: 10vh;\n  max-width: 90vw;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Verify.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Verify.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Verify.vue?vue&type=template&id=2be0ad95&scoped=true\"\nimport script from \"./Verify.vue?vue&type=script&lang=js\"\nexport * from \"./Verify.vue?vue&type=script&lang=js\"\nimport style0 from \"./Verify.vue?vue&type=style&index=0&id=2be0ad95&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  \"2be0ad95\",\n  null\n  \n)\n\nexport default component.exports","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyAuth.vue?vue&type=style&index=0&id=b0551f5a&prod&lang=scss&scoped=true\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"d-flex align-center mt-8 ml-8\"},[_c('v-btn',{staticClass:\"mr-4 rounded-sm\",attrs:{\"icon\":\"\"},on:{\"click\":function($event){return _vm.$router.go(-1)}}},[_c('v-icon',[_vm._v(\"mdi-arrow-left\")])],1),_vm._v(\" Go back \")],1),_c('div',{staticClass:\"d-flex justify-center full-height full-width\"},[_c('v-form',{attrs:{\"id\":\"verify-form\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.submitForm.apply(null, arguments)}}},[_c('v-card',{staticClass:\"pa-4 rounded-sm\",staticStyle:{\"margin-top\":\"20vh\",\"max-width\":\"35vw\"},attrs:{\"elevation\":\"0\"}},[_c('v-card-title',{staticClass:\"justify-center flex-direction-column\"},[_c('span',[_vm._v(\" Verify Your Account \")])]),_c('v-card-text',[_c('v-col',[_c('v-row',[_c('v-text-field',{attrs:{\"type\":\"text\",\"label\":\"Email*\",\"rules\":[_vm.rules.email],\"readonly\":_vm.accountVerified,\"required\":\"\"},model:{value:(_vm.auth.userEmail),callback:function ($$v) {_vm.$set(_vm.auth, \"userEmail\", $$v)},expression:\"auth.userEmail\"}})],1),_c('v-row',[_c('v-text-field',{attrs:{\"label\":\"SCAC Code*\",\"readonly\":_vm.accountVerified,\"maxlength\":\"4\",\"rules\":[_vm.rules.scacCode],\"required\":\"\"},on:{\"input\":(val) =>\n                    (_vm.auth.userScacAlphaCode =\n                      _vm.auth.userScacAlphaCode.toUpperCase())},model:{value:(_vm.auth.userScacAlphaCode),callback:function ($$v) {_vm.$set(_vm.auth, \"userScacAlphaCode\", $$v)},expression:\"auth.userScacAlphaCode\"}})],1),(_vm.accountVerified)?_c('v-row',[_c('v-text-field',{attrs:{\"append-icon\":_vm.passwordShow ? 'mdi-eye' : 'mdi-eye-off',\"type\":_vm.passwordShow ? 'text' : 'password',\"label\":\"Passward*\",\"required\":\"\"},on:{\"click:append\":function($event){_vm.passwordShow = !_vm.passwordShow}},model:{value:(_vm.auth.password),callback:function ($$v) {_vm.$set(_vm.auth, \"password\", $$v)},expression:\"auth.password\"}})],1):_vm._e()],1)],1),_c('v-card-actions',{staticClass:\"d-block\"},[(_vm.accountVerified)?_c('v-btn',{staticClass:\"width-100 auth-btn h-3 rounded-sm pa-4\",attrs:{\"type\":\"submit\",\"form\":\"verify-form\",\"color\":\"#5BC1C1\",\"dark\":\"\",\"elevation\":\"0\",\"loading\":_vm.isVerificationLoading}},[_vm._v(\"Login\")]):_c('v-btn',{staticClass:\"width-100 auth-btn h-3 rounded-sm pa-4\",attrs:{\"type\":\"submit\",\"form\":\"verify-form\",\"color\":\"#5BC1C1\",\"dark\":\"\",\"elevation\":\"0\",\"loading\":_vm.isVerificationLoading}},[_vm._v(\"Check Verification\")]),_c('span',{staticClass:\"auth-hint-label font-size-14 mt-8\"},[_vm._v(\" Already have an account? \"),_c('router-link',{staticClass:\"text-decoration-none\",attrs:{\"to\":{ name: 'Login' }}},[_c('span',{staticClass:\"auth-hint-signup\"},[_vm._v(\"Sign In\")])])],1),_c('span',{staticClass:\"auth-hint-label font-size-14 mt-2\"},[_vm._v(\" Don't have an account? \"),_c('router-link',{staticClass:\"text-decoration-none\",attrs:{\"to\":{ name: 'Register' }}},[_c('span',{staticClass:\"auth-hint-signup #5BC1C1\"},[_vm._v(\"Register\")])])],1)],1)],1)],1)],1),_c('v-overlay',{attrs:{\"value\":_vm.isVerificationLoading}}),_c('v-snackbar',{staticClass:\"custom-snackbar rounded-sm\",attrs:{\"timeout\":_vm.timeout,\"color\":\"error\"},model:{value:(_vm.showError),callback:function ($$v) {_vm.showError=$$v},expression:\"showError\"}},[_vm._v(\" \"+_vm._s(_vm.errorMsg)+\" \"),_c('v-btn',{attrs:{\"text\":\"\"},on:{\"click\":function($event){_vm.showError = false}}},[_vm._v(\"Close\")])],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n  <div>\n    <div class=\"d-flex align-center mt-8 ml-8\">\n      <v-btn class=\"mr-4 rounded-sm\" @click=\"$router.go(-1)\" icon>\n        <v-icon>mdi-arrow-left</v-icon>\n      </v-btn>\n      Go back\n    </div>\n    <div class=\"d-flex justify-center full-height full-width\">\n      <v-form id=\"verify-form\" @submit.prevent=\"submitForm\">\n        <v-card\n          class=\"pa-4 rounded-sm\"\n          elevation=\"0\"\n          style=\"margin-top: 20vh; max-width: 35vw\"\n        >\n          <v-card-title class=\"justify-center flex-direction-column\">\n            <span> Verify Your Account </span>\n          </v-card-title>\n          <v-card-text>\n            <v-col>\n              <v-row>\n                <v-text-field\n                  type=\"text\"\n                  label=\"Email*\"\n                  v-model=\"auth.userEmail\"\n                  :rules=\"[rules.email]\"\n                  :readonly=\"accountVerified\"\n                  required\n                ></v-text-field>\n              </v-row>\n              <v-row>\n                <v-text-field\n                  label=\"SCAC Code*\"\n                  v-model=\"auth.userScacAlphaCode\"\n                  :readonly=\"accountVerified\"\n                  @input=\"\n                    (val) =>\n                      (auth.userScacAlphaCode =\n                        auth.userScacAlphaCode.toUpperCase())\n                  \"\n                  maxlength=\"4\"\n                  :rules=\"[rules.scacCode]\"\n                  required\n                ></v-text-field>\n              </v-row>\n              <v-row v-if=\"accountVerified\">\n                <v-text-field\n                  :append-icon=\"passwordShow ? 'mdi-eye' : 'mdi-eye-off'\"\n                  :type=\"passwordShow ? 'text' : 'password'\"\n                  label=\"Passward*\"\n                  v-model=\"auth.password\"\n                  @click:append=\"passwordShow = !passwordShow\"\n                  required\n                >\n                </v-text-field>\n              </v-row>\n            </v-col>\n          </v-card-text>\n          <v-card-actions class=\"d-block\">\n            <v-btn\n              v-if=\"accountVerified\"\n              class=\"width-100 auth-btn h-3 rounded-sm pa-4\"\n              type=\"submit\"\n              form=\"verify-form\"\n              color=\"#5BC1C1\"\n              dark\n              elevation=\"0\"\n              :loading=\"isVerificationLoading\"\n              >Login</v-btn\n            >\n            <v-btn\n              v-else\n              class=\"width-100 auth-btn h-3 rounded-sm pa-4\"\n              type=\"submit\"\n              form=\"verify-form\"\n              color=\"#5BC1C1\"\n              dark\n              elevation=\"0\"\n              :loading=\"isVerificationLoading\"\n              >Check Verification</v-btn\n            >\n\n            <span class=\"auth-hint-label font-size-14 mt-8\">\n              Already have an account?\n              <router-link class=\"text-decoration-none\" :to=\"{ name: 'Login' }\">\n                <span class=\"auth-hint-signup\">Sign In</span>\n              </router-link>\n            </span>\n\n            <span class=\"auth-hint-label font-size-14 mt-2\">\n              Don't have an account?\n              <router-link\n                class=\"text-decoration-none\"\n                :to=\"{ name: 'Register' }\"\n              >\n                <span class=\"auth-hint-signup #5BC1C1\">Register</span>\n              </router-link>\n            </span>\n          </v-card-actions>\n        </v-card>\n      </v-form>\n    </div>\n    <v-overlay :value=\"isVerificationLoading\"></v-overlay>\n    <v-snackbar\n      class=\"custom-snackbar rounded-sm\"\n      v-model=\"showError\"\n      :timeout=\"timeout\"\n      color=\"error\"\n    >\n      {{ errorMsg }}\n      <v-btn text @click=\"showError = false\">Close</v-btn>\n    </v-snackbar>\n  </div>\n</template>\n<script>\nimport { emailRegex, scacCodeRegex } from '@qualle-admin/qutil/dist/patterns';\nimport { mapActions, mapGetters } from 'vuex';\nimport axios from 'axios';\nimport firebase from 'firebase/app';\n\nexport default {\n  data() {\n    return {\n      auth: {\n        userEmail: '',\n        userScacAlphaCode: '',\n        password: '',\n      },\n      isVerificationLoading: false,\n      errorMsg: '',\n      showError: false,\n      timeout: 4000,\n      passwordShow: false,\n      accountVerified: false,\n      organizationId: null,\n      rules: {\n        email(value) {\n          return emailRegex.test(value) || 'Invalid e-mail';\n        },\n        scacCode(value) {\n          return (\n            new RegExp(scacCodeRegex).test(value) || 'Incorrect SCAC format'\n          );\n        },\n      },\n    };\n  },\n  computed: {\n    ...mapGetters('auth', ['get_error']),\n  },\n  methods: {\n    ...mapActions('auth', ['email_verification_action', 'login_action']),\n\n    submitForm() {\n      this.accountVerified ? this.login() : this.verifyUserEmail();\n    },\n\n    // Verify user email and scac\n    async verifyUserEmail() {\n      if (this.validate()) {\n        if (this.rules.email(this.auth.userEmail) !== true) return;\n\n        this.isVerificationLoading = true;\n\n        const response = await this.email_verification_action({\n          email: this.auth.userEmail,\n          scac: this.auth.userScacAlphaCode,\n        });\n\n        if (response === 'error') {\n          this.errorMsg = 'Enter valid credentials';\n          this.showError = true;\n        } else {\n          this.accountVerified = true;\n          this.organizationId = response;\n        }\n        this.isVerificationLoading = false;\n      } else {\n        this.errorMsg = 'Please fill required fields';\n        this.showError = true;\n      }\n    },\n\n    // login user after verification\n    async login() {\n      if (this.auth.password !== '') {\n        this.isVerificationLoading = true;\n        const pendingVerificationRef = await firebase\n          .firestore()\n          .collection('pending_verifications')\n          .where('email', '==', this.auth.userEmail)\n          .where('scac', '==', this.auth.userScacAlphaCode)\n          .get();\n        console.log('pending verfications', pendingVerificationRef);\n        const verification = pendingVerificationRef.docs[0];\n        if (\n          verification?.exists &&\n          verification.data().password === this.auth.password\n        ) {\n          await axios\n            .post(`${process.env.VUE_APP_DOMAIN}/api/v1/accounts/create`, {\n              email: this.auth.userEmail,\n              organization_id: this.organizationId,\n            })\n            .then((res) => {\n              this.$store.dispatch(\n                'auth/new_notification',\n                {\n                  type: 'notification',\n                  message: 'Verification success!',\n                },\n                { root: true }\n              );\n\n              this.login_action({\n                email: this.auth.userEmail,\n                password: this.auth.password,\n              });\n            })\n            .catch((err) => {\n              this.errorMsg = err;\n              this.showError = true;\n            });\n        } else {\n          this.errorMsg = \"Password doesn't match.\";\n          this.showError = true;\n        }\n        this.isVerificationLoading = false;\n      } else {\n        this.errorMsg = 'Please fill required fields.';\n        this.showError = true;\n      }\n    },\n    // validate user email and scac\n    validate() {\n      return (\n        this.auth.userEmail !== '' &&\n        this.auth.userScacAlphaCode !== '' &&\n        new RegExp(scacCodeRegex).test(this.auth.userScacAlphaCode)\n      );\n    },\n  },\n  watch: {\n    get_error(value) {\n      this.showError = true;\n      this.errorMsg = value;\n    },\n  },\n};\n</script>\n<style lang=\"scss\" scoped>\n@import '@/assets/scss/common.scss';\n@import '@/assets/scss/auth.scss';\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyEmail.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyEmail.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./VerifyEmail.vue?vue&type=template&id=41c5ebca&scoped=true\"\nimport script from \"./VerifyEmail.vue?vue&type=script&lang=js\"\nexport * from \"./VerifyEmail.vue?vue&type=script&lang=js\"\nimport style0 from \"./VerifyEmail.vue?vue&type=style&index=0&id=41c5ebca&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  \"41c5ebca\",\n  null\n  \n)\n\nexport default component.exports","// Styles\nimport './VSubheader.sass'\n\n// Mixins\nimport Themeable from '../../mixins/themeable'\nimport mixins from '../../util/mixins'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\nexport default mixins(\n  Themeable\n  /* @vue/component */\n).extend({\n  name: 'v-subheader',\n\n  props: {\n    inset: Boolean,\n  },\n\n  render (h): VNode {\n    return h('div', {\n      staticClass: 'v-subheader',\n      class: {\n        'v-subheader--inset': this.inset,\n        ...this.themeClasses,\n      },\n      attrs: this.$attrs,\n      on: this.$listeners,\n    }, getSlot(this))\n  },\n})\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./VerifyEmail.vue?vue&type=style&index=0&id=41c5ebca&prod&lang=scss&scoped=true\""],"sourceRoot":""}