{"version":3,"sources":["webpack:///../../../src/components/VAlert/VAlert.ts","webpack:///./src/views/changePassword/Cambio_password.vue","webpack:///src/views/changePassword/Cambio_password.vue","webpack:///./src/views/changePassword/Cambio_password.vue?b2ce","webpack:///./src/views/changePassword/Cambio_password.vue?6032","webpack:///../../../src/components/VForm/VForm.ts","webpack:///../../../src/components/VMain/VMain.ts","webpack:///./src/assets/logo negro_Mesa de trabajo 1.png","webpack:///./src/views/changePassword/Cambio_password.vue?dc80"],"names":["mixins","VSheet","Toggleable","Transitionable","extend","name","props","border","type","String","validator","val","includes","closeLabel","default","coloredBorder","Boolean","dense","dismissible","closeIcon","icon","outlined","prominent","text","value","computed","__cachedBorder","this","data","staticClass","class","setBackgroundColor","computedColor","$createElement","__cachedDismissible","color","iconColor","VBtn","small","attrs","$vuetify","lang","t","on","click","isActive","VIcon","__cachedIcon","computedIcon","classes","options","call","hasColoredIcon","hasText","undefined","isDark","Themeable","created","$attrs","hasOwnProperty","breaking","methods","genWrapper","children","getSlot","genContent","$scopedSlots","close","toggle","genAlert","role","listeners$","style","styles","directives","setColor","setTextColor","render","h","transition","origin","mode","require","_vm","ref","$event","preventDefault","_c","staticStyle","model","callback","password","expression","showConfirmPassword","confirm_password","_v","components","LoadingIndicator","loading","showPassword","sendEmail","token","rules","vacio","v","minLength","length","verifyToken","axios","baseURL","url","params","$route","then","catch","error","console","log","response","status","Swal","fire","msg","message","confirmButtonText","$router","push","finally","$refs","form","validate","axiosInstance","put","headers","Authorization","title","mounted","component","staticRenderFns","BindsAttrs","RegistrableProvide","provide","inheritAttrs","disabled","lazyValidation","readonly","inputs","watchers","errorBag","watch","handler","errors","Object","values","$emit","deep","immediate","watchInput","input","watcher","$watch","$set","_uid","valid","shouldValidate","filter","reset","forEach","resetErrorBag","setTimeout","resetValidation","register","unregister","found","find","i","unwatch","$delete","novalidate","attrs$","submit","e","SSRBootable","tag","bar","top","right","footer","insetFooter","bottom","left","application","paddingTop","paddingRight","paddingBottom","paddingLeft","module","exports"],"mappings":"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","file":"js/chunk-2aff6e91.30367a5f.js","sourcesContent":["// Styles\nimport './VAlert.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VBtn from '../VBtn'\nimport VIcon from '../VIcon'\n\n// Mixins\nimport Toggleable from '../../mixins/toggleable'\nimport Themeable from '../../mixins/themeable'\nimport Transitionable from '../../mixins/transitionable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNodeData } from 'vue'\nimport { VNode } from 'vue/types'\n\n/* @vue/component */\nexport default mixins(\n  VSheet,\n  Toggleable,\n  Transitionable\n).extend({\n  name: 'v-alert',\n\n  props: {\n    border: {\n      type: String,\n      validator (val: string) {\n        return [\n          'top',\n          'right',\n          'bottom',\n          'left',\n        ].includes(val)\n      },\n    },\n    closeLabel: {\n      type: String,\n      default: '$vuetify.close',\n    },\n    coloredBorder: Boolean,\n    dense: Boolean,\n    dismissible: Boolean,\n    closeIcon: {\n      type: String,\n      default: '$cancel',\n    },\n    icon: {\n      default: '',\n      type: [Boolean, String],\n      validator (val: boolean | string) {\n        return typeof val === 'string' || val === false\n      },\n    },\n    outlined: Boolean,\n    prominent: Boolean,\n    text: Boolean,\n    type: {\n      type: String,\n      validator (val: string) {\n        return [\n          'info',\n          'error',\n          'success',\n          'warning',\n        ].includes(val)\n      },\n    },\n    value: {\n      type: Boolean,\n      default: true,\n    },\n  },\n\n  computed: {\n    __cachedBorder (): VNode | null {\n      if (!this.border) return null\n\n      let data: VNodeData = {\n        staticClass: 'v-alert__border',\n        class: {\n          [`v-alert__border--${this.border}`]: true,\n        },\n      }\n\n      if (this.coloredBorder) {\n        data = this.setBackgroundColor(this.computedColor, data)\n        data.class['v-alert__border--has-color'] = true\n      }\n\n      return this.$createElement('div', data)\n    },\n    __cachedDismissible (): VNode | null {\n      if (!this.dismissible) return null\n\n      const color = this.iconColor\n\n      return this.$createElement(VBtn, {\n        staticClass: 'v-alert__dismissible',\n        props: {\n          color,\n          icon: true,\n          small: true,\n        },\n        attrs: {\n          'aria-label': this.$vuetify.lang.t(this.closeLabel),\n        },\n        on: {\n          click: () => (this.isActive = false),\n        },\n      }, [\n        this.$createElement(VIcon, {\n          props: { color },\n        }, this.closeIcon),\n      ])\n    },\n    __cachedIcon (): VNode | null {\n      if (!this.computedIcon) return null\n\n      return this.$createElement(VIcon, {\n        staticClass: 'v-alert__icon',\n        props: { color: this.iconColor },\n      }, this.computedIcon)\n    },\n    classes (): object {\n      const classes: Record<string, boolean> = {\n        ...VSheet.options.computed.classes.call(this),\n        'v-alert--border': Boolean(this.border),\n        'v-alert--dense': this.dense,\n        'v-alert--outlined': this.outlined,\n        'v-alert--prominent': this.prominent,\n        'v-alert--text': this.text,\n      }\n\n      if (this.border) {\n        classes[`v-alert--border-${this.border}`] = true\n      }\n\n      return classes\n    },\n    computedColor (): string {\n      return this.color || this.type\n    },\n    computedIcon (): string | boolean {\n      if (this.icon === false) return false\n      if (typeof this.icon === 'string' && this.icon) return this.icon\n      if (!['error', 'info', 'success', 'warning'].includes(this.type)) return false\n\n      return `$${this.type}`\n    },\n    hasColoredIcon (): boolean {\n      return (\n        this.hasText ||\n        (Boolean(this.border) && this.coloredBorder)\n      )\n    },\n    hasText (): boolean {\n      return this.text || this.outlined\n    },\n    iconColor (): string | undefined {\n      return this.hasColoredIcon ? this.computedColor : undefined\n    },\n    isDark (): boolean {\n      if (\n        this.type &&\n        !this.coloredBorder &&\n        !this.outlined\n      ) return true\n\n      return Themeable.options.computed.isDark.call(this)\n    },\n  },\n\n  created () {\n    /* istanbul ignore next */\n    if (this.$attrs.hasOwnProperty('outline')) {\n      breaking('outline', 'outlined', this)\n    }\n  },\n\n  methods: {\n    genWrapper (): VNode {\n      const children = [\n        getSlot(this, 'prepend') || this.__cachedIcon,\n        this.genContent(),\n        this.__cachedBorder,\n        getSlot(this, 'append'),\n        this.$scopedSlots.close\n          ? this.$scopedSlots.close({ toggle: this.toggle })\n          : this.__cachedDismissible,\n      ]\n\n      const data: VNodeData = {\n        staticClass: 'v-alert__wrapper',\n      }\n\n      return this.$createElement('div', data, children)\n    },\n    genContent (): VNode {\n      return this.$createElement('div', {\n        staticClass: 'v-alert__content',\n      }, getSlot(this))\n    },\n    genAlert (): VNode {\n      let data: VNodeData = {\n        staticClass: 'v-alert',\n        attrs: {\n          role: 'alert',\n        },\n        on: this.listeners$,\n        class: this.classes,\n        style: this.styles,\n        directives: [{\n          name: 'show',\n          value: this.isActive,\n        }],\n      }\n\n      if (!this.coloredBorder) {\n        const setColor = this.hasText ? this.setTextColor : this.setBackgroundColor\n        data = setColor(this.computedColor, data)\n      }\n\n      return this.$createElement('div', data, [this.genWrapper()])\n    },\n    /** @public */\n    toggle () {\n      this.isActive = !this.isActive\n    },\n  },\n\n  render (h): VNode {\n    const render = this.genAlert()\n\n    if (!this.transition) return render\n\n    return h('transition', {\n      props: {\n        name: this.transition,\n        origin: this.origin,\n        mode: this.mode,\n      },\n    }, [render])\n  },\n})\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('v-main',[_c('v-row',{staticClass:\"full-height ma-0\"},[_c('v-col',{staticClass:\"grey darken-4 d-flex justify-center align-center\",staticStyle:{\"border\":\"50px solid #FFC107\"}},[_c('v-img',{staticClass:\"image\",attrs:{\"max-width\":\"500\",\"src\":require(\"../../assets/logo negro_Mesa de trabajo 1.png\")}})],1),_c('v-col',[(!_vm.sendEmail)?_c('v-card',{staticClass:\"pa-5 mt-12 card\"},[_c('h2',{staticClass:\"mt-5 mb-0 text-center\"},[_vm._v(\"Solicitud de cambio de contraseña\")]),_c('v-card-text',[_c('p',{staticClass:\"text-justify\"},[_vm._v(\"Escribe la nueva contraseña para tu cuenta en el ICOSOFT. Recomendamos seguir las reglas de seguridad para crear una contraseña robusta y segura.\")]),_c('v-form',{ref:\"form\",on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmitForm.apply(null, arguments)}}},[_c('v-text-field',{attrs:{\"label\":\"Nueva Contraseña\",\"type\":_vm.showPassword ? 'text' : 'password',\"outlined\":\"\",\"rules\":[].concat(_vm.rules.vacio, _vm.rules.minLength),\"append-icon\":_vm.showPassword ? 'mdi-eye' : 'mdi-eye-off'},on:{\"click:append\":function($event){_vm.showPassword = !_vm.showPassword}},model:{value:(_vm.password),callback:function ($$v) {_vm.password=$$v},expression:\"password\"}}),_c('v-text-field',{attrs:{\"label\":\"Confirmar Nueva Contraseña\",\"type\":_vm.showConfirmPassword ? 'text' : 'password',\"outlined\":\"\",\"rules\":[].concat(_vm.rules.vacio, _vm.rules.confirm_password),\"append-icon\":_vm.showConfirmPassword ? 'mdi-eye' : 'mdi-eye-off'},on:{\"click:append\":function($event){_vm.showConfirmPassword = !_vm.showConfirmPassword}},model:{value:(_vm.confirm_password),callback:function ($$v) {_vm.confirm_password=$$v},expression:\"confirm_password\"}}),_c('p',{staticClass:\"mb-0\"},[_c('b',[_vm._v(\"Reglas para una contraseña segura:\")])]),_c('ul',{staticClass:\"mb-5\"},[_c('li',[_vm._v(\"Longitud mínima de 10 caracteres (recomendado 12 o más).\")]),_c('li',[_vm._v(\"Incluir letras mayúsculas y minúsculas.\")]),_c('li',[_vm._v(\"Incluir al menos un número (0-9).\")]),_c('li',[_vm._v(\"Usar caracteres especiales (@, #, $, %, &, etc.) (opcional).\")])]),_c('v-layout',{attrs:{\"justify-center\":\"\"}},[_c('v-btn',{staticClass:\"mx-2\",attrs:{\"outlined\":\"\",\"color\":\"error\"}},[_vm._v(\"Cancelar\")]),_c('v-btn',{staticClass:\"mx-2 white--text\",attrs:{\"type\":\"submit\",\"color\":\"grey darken-4\",\"elevation\":\"0\"}},[_vm._v(\"Enviar Solicitud\")])],1)],1)],1)],1):_c('v-card',{staticClass:\"pa-5 mt-12 card\"},[_c('h2',{staticClass:\"mt-5 mb-0 text-center\"},[_vm._v(\"Solicitud de cambio de contraseña\")]),_c('v-card-text',[_c('v-alert',{attrs:{\"dense\":\"\",\"text\":\"\",\"type\":\"success\"}},[_c('b',[_vm._v(\"Cambio de contraseña exitosa\")])]),_c('router-link',{attrs:{\"to\":{ name: 'login' }}},[_c('v-btn',{staticStyle:{\"width\":\"100%\"},attrs:{\"elevation\":\"2\",\"dark\":\"\",\"color\":\"#202020\"}},[_vm._v(\" Iniciar Sesión \")])],1)],1)],1)],1)],1),(_vm.loading)?_c('LoadingIndicator'):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\r\n  <v-main>\r\n    <v-row class=\"full-height ma-0\">\r\n      <v-col class=\"grey darken-4 d-flex justify-center align-center\" style=\"border: 50px solid #FFC107;\">\r\n        <v-img max-width=\"500\" src=\"../../assets/logo negro_Mesa de trabajo 1.png\" class=\"image\" />\r\n      </v-col>\r\n      <v-col>\r\n        <v-card class=\"pa-5 mt-12 card\" v-if=\"!sendEmail\">\r\n          <h2 class=\"mt-5 mb-0 text-center\">Solicitud de cambio de contraseña</h2>\r\n          <v-card-text>\r\n            <p class=\"text-justify\">Escribe la nueva contraseña para tu cuenta en el ICOSOFT. Recomendamos seguir las reglas de seguridad para crear una contraseña robusta y segura.</p>\r\n\r\n            <v-form ref=\"form\" @submit.prevent=\"onSubmitForm\">\r\n              <v-text-field v-model=\"password\" label=\"Nueva Contraseña\" :type=\"showPassword ? 'text' : 'password'\" outlined :rules=\"[].concat(rules.vacio, rules.minLength)\" :append-icon=\"showPassword ? 'mdi-eye' : 'mdi-eye-off'\" @click:append=\"showPassword = !showPassword\" />\r\n\r\n              <v-text-field v-model=\"confirm_password\" label=\"Confirmar Nueva Contraseña\" :type=\"showConfirmPassword ? 'text' : 'password'\" outlined :rules=\"[].concat(rules.vacio, rules.confirm_password)\" :append-icon=\"showConfirmPassword ? 'mdi-eye' : 'mdi-eye-off'\"\r\n                @click:append=\"showConfirmPassword = !showConfirmPassword\" />\r\n\r\n              <p class=\"mb-0\"><b>Reglas para una contraseña segura:</b></p>\r\n              <ul class=\"mb-5\">\r\n                <li>Longitud mínima de 10 caracteres (recomendado 12 o más).</li>\r\n                <li>Incluir letras mayúsculas y minúsculas.</li>\r\n                <li>Incluir al menos un número (0-9).</li>\r\n                <li>Usar caracteres especiales (@, #, $, %, &, etc.) (opcional).</li>\r\n              </ul>\r\n\r\n              <v-layout justify-center>\r\n                <v-btn outlined color=\"error\" class=\"mx-2\">Cancelar</v-btn>\r\n                <v-btn type=\"submit\" color=\"grey darken-4\" class=\"mx-2 white--text\" elevation=\"0\">Enviar Solicitud</v-btn>\r\n              </v-layout>\r\n            </v-form>\r\n          </v-card-text>\r\n        </v-card>\r\n\r\n        <v-card class=\"pa-5 mt-12 card\" v-else>\r\n          <h2 class=\"mt-5 mb-0 text-center\">Solicitud de cambio de contraseña</h2>\r\n          <v-card-text>\r\n            <v-alert dense text type=\"success\">\r\n              <b>Cambio de contraseña exitosa</b>\r\n            </v-alert>\r\n\r\n            <router-link :to=\"{ name: 'login' }\">\r\n              <v-btn elevation=\"2\" dark color=\"#202020\" style=\"width: 100%;\">\r\n                Iniciar Sesión\r\n              </v-btn>\r\n            </router-link>\r\n          </v-card-text>\r\n        </v-card>\r\n\r\n      </v-col>\r\n    </v-row>\r\n    <LoadingIndicator v-if=\"loading\" />\r\n  </v-main>\r\n</template>\r\n\r\n<script>\r\nimport Swal from 'sweetalert2';\r\nimport LoadingIndicator from '../../components/LoadingIndicator.vue';\r\nimport axiosInstance from '../../config/axiosInstance';\r\nimport axios from 'axios';\r\nimport url from '../../Api';\r\n\r\nexport default {\r\n  components: {\r\n    LoadingIndicator,\r\n  },\r\n  data() {\r\n    return {\r\n      loading: false,\r\n      password: \"\",\r\n      confirm_password: \"\",\r\n      showPassword: false,\r\n      showConfirmPassword: false,\r\n      sendEmail: false,\r\n      token: '',\r\n      rules: {\r\n        vacio: [(v) => !!v || \"El campo es obligatorio.\"],\r\n        minLength: [(v) => v.length >= 10 || \"La contraseña debe contener mínimo 10 caracteres.\"],\r\n        confirm_password: [(v) => !!(v === this.password) || \"La contraseña no coinciden.\"],\r\n      },\r\n    };\r\n  },\r\n  methods: {\r\n    verifyToken() {\r\n      this.loading = true;\r\n      axios({\r\n        baseURL: url,\r\n        url: '/update/password/verifytoken',\r\n        params: {\r\n          token: this.$route.params.token\r\n        }\r\n      }).then(({ data }) => {\r\n        this.token = data.token\r\n      }).catch((error) => {\r\n        console.log(error);\r\n\r\n        if (error.response.status === 401 || error.response.status === 403) {\r\n          Swal.fire({\r\n            icon: \"error\",\r\n            text: error.response.data.msg || error.response.data.message,\r\n            confirmButtonText: \"Aceptar\"\r\n          });\r\n          this.$router.push({ name: 'login' });\r\n        } else {\r\n          Swal.fire({\r\n            icon: \"error\",\r\n            text: \"Error en el servidor.\",\r\n            confirmButtonText: \"Aceptar\"\r\n          })\r\n        }\r\n      }).finally(() => {\r\n        this.loading = false;\r\n      })\r\n    },\r\n    async onSubmitForm() {\r\n      if (this.$refs.form.validate()) {\r\n        try {\r\n          this.loading = true;\r\n          const data = {\r\n            password: this.password,\r\n            confirm_password: this.confirm_password,\r\n          }\r\n\r\n          await axiosInstance.put(\"/change/password\", data, {\r\n            headers: {\r\n              Authorization: `Bearer ${this.token}`\r\n            }\r\n          });\r\n          this.sendEmail = true;\r\n\r\n        } catch (error) {\r\n          console.error(error);\r\n          Swal.fire({\r\n            icon: 'error',\r\n            title: 'Error al cambiar la contraseña',\r\n            text: error.response.data.message || 'Ha ocurrido un error al enviar la solicitud. Por favor, intenta nuevamente.'\r\n          });\r\n        } finally {\r\n          this.loading = false;\r\n        }\r\n\r\n      }\r\n    }\r\n  },\r\n  mounted() {\r\n    this.verifyToken();\r\n  }\r\n}\r\n</script>\r\n\r\n<style scoped>\r\n.card {\r\n  width: 100%;\r\n  max-width: 700px;\r\n  margin: 0 auto;\r\n}\r\n\r\n.image {\r\n  filter: invert(1);\r\n}\r\n\r\n.full-height {\r\n  height: 100vh !important;\r\n}\r\n</style>\r\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!./Cambio_password.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!./Cambio_password.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Cambio_password.vue?vue&type=template&id=3e3ab6a8&scoped=true\"\nimport script from \"./Cambio_password.vue?vue&type=script&lang=js\"\nexport * from \"./Cambio_password.vue?vue&type=script&lang=js\"\nimport style0 from \"./Cambio_password.vue?vue&type=style&index=0&id=3e3ab6a8&prod&scoped=true&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  \"3e3ab6a8\",\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'\nimport { getSlot } from '../../util/helpers'\n\ntype ErrorBag = Record<number, boolean>\ntype VInputInstance = InstanceType<typeof VInput>\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    }, getSlot(this))\n  },\n})\n","// Styles\nimport './VMain.sass'\n\n// Mixins\nimport SSRBootable from '../../mixins/ssr-bootable'\nimport { getSlot } from '../../util/helpers'\n\n// Types\nimport { VNode } from 'vue'\n\n/* @vue/component */\nexport default SSRBootable.extend({\n  name: 'v-main',\n\n  props: {\n    tag: {\n      type: String,\n      default: 'main',\n    },\n  },\n\n  computed: {\n    styles (): object {\n      const {\n        bar, top, right, footer, insetFooter, bottom, left,\n      } = this.$vuetify.application\n\n      return {\n        paddingTop: `${top + bar}px`,\n        paddingRight: `${right}px`,\n        paddingBottom: `${footer + insetFooter + bottom}px`,\n        paddingLeft: `${left}px`,\n      }\n    },\n  },\n\n  render (h): VNode {\n    const data = {\n      staticClass: 'v-main',\n      style: this.styles,\n      ref: 'main',\n    }\n\n    return h(this.tag, data, [\n      h(\n        'div',\n        { staticClass: 'v-main__wrap' },\n        getSlot(this),\n      ),\n    ])\n  },\n})\n","module.exports = __webpack_public_path__ + \"img/logo negro_Mesa de trabajo 1.2a56e9fb.png\";","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!./Cambio_password.vue?vue&type=style&index=0&id=3e3ab6a8&prod&scoped=true&lang=css\""],"sourceRoot":""}