{"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":"kHAAA,0HAyBeA,sBACbC,OACAC,OACAC,QACAC,OAAO,CACPC,KAAM,UAENC,MAAO,CACLC,OAAQ,CACNC,KAAMC,OACNC,UAAWC,GACT,MAAO,CACL,MACA,QACA,SACA,QACAC,SAASD,KAGfE,WAAY,CACVL,KAAMC,OACNK,QAAS,kBAEXC,cAAeC,QACfC,MAAOD,QACPE,YAAaF,QACbG,UAAW,CACTX,KAAMC,OACNK,QAAS,WAEXM,KAAM,CACJN,QAAS,GACTN,KAAM,CAACQ,QAASP,QAChBC,UAAWC,GACT,MAAsB,kBAARA,IAA4B,IAARA,IAGtCU,SAAUL,QACVM,UAAWN,QACXO,KAAMP,QACNR,KAAM,CACJA,KAAMC,OACNC,UAAWC,GACT,MAAO,CACL,OACA,QACA,UACA,WACAC,SAASD,KAGfa,MAAO,CACLhB,KAAMQ,QACNF,SAAS,IAIbW,SAAU,CACRC,iBACE,IAAKC,KAAKpB,OAAQ,OAAO,KAEzB,IAAIqB,EAAkB,CACpBC,YAAa,kBACbC,MAAO,CACL,CAAC,oBAAoBH,KAAKpB,SAAW,IASzC,OALIoB,KAAKZ,gBACPa,EAAOD,KAAKI,mBAAmBJ,KAAKK,cAAeJ,GACnDA,EAAKE,MAAM,+BAAgC,GAGtCH,KAAKM,eAAe,MAAOL,IAEpCM,sBACE,IAAKP,KAAKT,YAAa,OAAO,KAE9B,MAAMiB,EAAQR,KAAKS,UAEnB,OAAOT,KAAKM,eAAeI,OAAM,CAC/BR,YAAa,uBACbvB,MAAO,CACL6B,QACAf,MAAM,EACNkB,OAAO,GAETC,MAAO,CACL,aAAcZ,KAAKa,SAASC,KAAKC,EAAEf,KAAKd,aAE1C8B,GAAI,CACFC,MAAOA,IAAOjB,KAAKkB,UAAW,IAE/B,CACDlB,KAAKM,eAAea,OAAO,CACzBxC,MAAO,CAAE6B,UACRR,KAAKR,cAGZ4B,eACE,OAAKpB,KAAKqB,aAEHrB,KAAKM,eAAea,OAAO,CAChCjB,YAAa,gBACbvB,MAAO,CAAE6B,MAAOR,KAAKS,YACpBT,KAAKqB,cALuB,MAOjCC,UACE,MAAMA,EAAmC,IACpChD,OAAOiD,QAAQzB,SAASwB,QAAQE,KAAKxB,MACxC,kBAAmBX,QAAQW,KAAKpB,QAChC,iBAAkBoB,KAAKV,MACvB,oBAAqBU,KAAKN,SAC1B,qBAAsBM,KAAKL,UAC3B,gBAAiBK,KAAKJ,MAOxB,OAJII,KAAKpB,SACP0C,EAAQ,mBAAmBtB,KAAKpB,SAAY,GAGvC0C,GAETjB,gBACE,OAAOL,KAAKQ,OAASR,KAAKnB,MAE5BwC,eACE,OAAkB,IAAdrB,KAAKP,OACgB,kBAAdO,KAAKP,MAAqBO,KAAKP,KAAaO,KAAKP,OACvD,CAAC,QAAS,OAAQ,UAAW,WAAWR,SAASe,KAAKnB,OAEpD,IAAImB,KAAKnB,OAElB4C,iBACE,OACEzB,KAAK0B,SACJrC,QAAQW,KAAKpB,SAAWoB,KAAKZ,eAGlCsC,UACE,OAAO1B,KAAKJ,MAAQI,KAAKN,UAE3Be,YACE,OAAOT,KAAKyB,eAAiBzB,KAAKK,mBAAgBsB,GAEpDC,SACE,SACE5B,KAAKnB,MACJmB,KAAKZ,eACLY,KAAKN,WAGDmC,OAAUN,QAAQzB,SAAS8B,OAAOJ,KAAKxB,QAIlD8B,UAEM9B,KAAK+B,OAAOC,eAAe,YAC7BC,eAAS,UAAW,WAAYjC,OAIpCkC,QAAS,CACPC,aACE,MAAMC,EAAW,CACfC,eAAQrC,KAAM,YAAcA,KAAKoB,aACjCpB,KAAKsC,aACLtC,KAAKD,eACLsC,eAAQrC,KAAM,UACdA,KAAKuC,aAAaC,MACdxC,KAAKuC,aAAaC,MAAM,CAAEC,OAAQzC,KAAKyC,SACvCzC,KAAKO,qBAGLN,EAAkB,CACtBC,YAAa,oBAGf,OAAOF,KAAKM,eAAe,MAAOL,EAAMmC,IAE1CE,aACE,OAAOtC,KAAKM,eAAe,MAAO,CAChCJ,YAAa,oBACZmC,eAAQrC,QAEb0C,WACE,IAAIzC,EAAkB,CACpBC,YAAa,UACbU,MAAO,CACL+B,KAAM,SAER3B,GAAIhB,KAAK4C,WACTzC,MAAOH,KAAKsB,QACZuB,MAAO7C,KAAK8C,OACZC,WAAY,CAAC,CACXrE,KAAM,OACNmB,MAAOG,KAAKkB,YAIhB,IAAKlB,KAAKZ,cAAe,CACvB,MAAM4D,EAAWhD,KAAK0B,QAAU1B,KAAKiD,aAAejD,KAAKI,mBACzDH,EAAO+C,EAAShD,KAAKK,cAAeJ,GAGtC,OAAOD,KAAKM,eAAe,MAAOL,EAAM,CAACD,KAAKmC,gBAGhDM,SACEzC,KAAKkB,UAAYlB,KAAKkB,WAI1BgC,OAAQC,GACN,MAAMD,EAASlD,KAAK0C,WAEpB,OAAK1C,KAAKoD,WAEHD,EAAE,aAAc,CACrBxE,MAAO,CACLD,KAAMsB,KAAKoD,WACXC,OAAQrD,KAAKqD,OACbC,KAAMtD,KAAKsD,OAEZ,CAACJ,IARyBA,M,4MClPqPtC,EAAM,W,IAAC,O,EAAkB,EAAM2C,S,OAAwD,oBAAG,YAAQ,oBAAuCrD,UAAW,CAAmB,YAAU,mDAACA,YAAY,CAA0BsD,OAAO,uBAA6F,CAACA,EAAG,OAAI,CAAoKC,YAAU,QAACzC,MAAG,CAAC,YAAS,M,IAAiB0C,EAAOC,YAA+D,yBAAk0D,U,YAAQ,mB,CAAQ,QAAC,qCAAG,CAACC,EAAG,0CAAQ,oBAACC,OAAa,MAAQ,GAAO,QAACjD,KAAM,Y,CAAiB,MAAO,GAAE,wD,MAAC,CAAiB,IAAI4C,KAAO,WAI1yF,GAASN,OAAM,C,kHAJ81B,UAAC,+BAAG,CAACU,EAAG,MAAgBhD,YAAM,yB,CAAC,KAAO,uCAAmB,iB,YAAW,gB,CAAoC,4JAAa,U,IAAC,O,GAAwD,CAA2D,mBAAK,OAAD,mBAAC,eAAwB8C,MAAM,KAAC,cAAuC,WAACI,MAAM,CAACjE,MAAO2D,mBAAcO,KAAQ,EAAC,aAAe,kB,SAAKC,GAAY,MAAC,2CAACC,cAAW,wCAAa,GAAG,CAAiBrD,eAAM,YAAC,gBAAQ,iB,MAAgG,CAA+D,iBAAkE,qBAAI,c,WAAqCsD,cAAgD,UAACJ,MAAM,CAACjE,MAAO2D,6BAAsBO,KAAQ,EAAC,oBAAe,kB,SAAKI,GAAoB,MAAC,kDAACF,cAAW,+CAAqB,GAAG,CAAM/D,eAAY,YAAW,EAAI,qBAAS,wBAA6WU,MAAM,CAAC,yBAAmB,qBAAM,EAAC,iBAAQ,GAAoBA,WAAM,sBAAe,MAAO,CAAQ,oBAAG,CAAC4C,EAAG,IAAI,gDAAyB,QAACtD,YAAY,QAAmBU,GAAK,KAAC,6Q,MAAC,CAAgB,iBAAQ,KAA+B,WAAE,YAAS,OAAmDV,OAAgC0D,SAAQ,GAAC1D,MAAW,UAAyGU,GAAK,GAAC,wB,YAAW,mB,MAAC,CAAU,KAAO,SAAS,sBAAIgD,UAAYQ,M,CAAgE,EAAI,GAAC,uC,kJC8DhqF,GACfC,WAAA,CACAC,yBAEArE,OACA,OACAsE,SAAA,EACAP,SAAA,GACAG,iBAAA,GACAK,cAAA,EACAN,qBAAA,EACAO,WAAA,EACAC,MAAA,GACAC,MAAA,CACAC,MAAA,CAAAC,QAAA,4BACAC,UAAA,CAAAD,KAAAE,QAAA,yDACAZ,iBAAA,CAAAU,SAAA,KAAAb,WAAA,kCAIA9B,QAAA,CACA8C,cACA,KAAAT,SAAA,EACAU,eAAA,CACAC,QAAAC,IACAA,IAAA,+BACAC,OAAA,CACAV,MAAA,KAAAW,OAAAD,OAAAV,SAEAY,KAAA,EAAArF,WACA,KAAAyE,MAAAzE,EAAAyE,QACAa,MAAAC,IACAC,QAAAC,IAAAF,GAEA,MAAAA,EAAAG,SAAAC,QAAA,MAAAJ,EAAAG,SAAAC,QACAC,IAAAC,KAAA,CACArG,KAAA,QACAG,KAAA4F,EAAAG,SAAA1F,KAAA8F,KAAAP,EAAAG,SAAA1F,KAAA+F,QACAC,kBAAA,YAEA,KAAAC,QAAAC,KAAA,CAAAzH,KAAA,WAEAmH,IAAAC,KAAA,CACArG,KAAA,QACAG,KAAA,wBACAqG,kBAAA,cAGAG,QAAA,KACA,KAAA7B,SAAA,KAGA,qBACA,QAAA8B,MAAAC,KAAAC,WACA,IACA,KAAAhC,SAAA,EACA,MAAAtE,EAAA,CACA+D,SAAA,KAAAA,SACAG,iBAAA,KAAAA,wBAGAqC,OAAAC,IAAA,mBAAAxG,EAAA,CACAyG,QAAA,CACAC,cAAA,eAAAjC,SAGA,KAAAD,WAAA,EAEA,MAAAe,GACAC,QAAAD,SACAK,IAAAC,KAAA,CACArG,KAAA,QACAmH,MAAA,iCACAhH,KAAA4F,EAAAG,SAAA1F,KAAA+F,SAAA,gFAEA,QACA,KAAAzB,SAAA,KAMAsC,UACA,KAAA7B,gBCjJuW,I,wBCQnW8B,EAAY,eACd,EACA,EACAC,GACA,EACA,KACA,WACA,MAIa,aAAAD,E,mJCEAzI,sBACb2I,OACAC,eAAmB,SAEnBxI,OAAO,CACPC,KAAM,SAENwI,UACE,MAAO,CAAEZ,KAAMtG,OAGjBmH,cAAc,EAEdxI,MAAO,CACLyI,SAAU/H,QACVgI,eAAgBhI,QAChBiI,SAAUjI,QACVQ,MAAOR,SAGTY,KAAMA,KAAA,CACJsH,OAAQ,GACRC,SAAU,GACVC,SAAU,KAGZC,MAAO,CACLD,SAAU,CACRE,QAAS3I,GACP,MAAM4I,EAASC,OAAOC,OAAO9I,GAAKC,UAAS,GAE3Ce,KAAK+H,MAAM,SAAUH,IAEvBI,MAAM,EACNC,WAAW,IAIf/F,QAAS,CACPgG,WAAYC,GACV,MAAMC,EAAWD,GACRA,EAAME,OAAO,WAAarJ,IAC/BgB,KAAKsI,KAAKtI,KAAKyH,SAAUU,EAAMI,KAAMvJ,IACpC,CAAEiJ,WAAW,IAGZT,EAAqB,CACzBe,KAAMJ,EAAMI,KACZC,MAAOA,OACPC,eAAgBA,QAiBlB,OAdIzI,KAAKqH,eAEPG,EAASiB,eAAiBN,EAAME,OAAO,iBAAmBrJ,IACnDA,IAGDgB,KAAKyH,SAASzF,eAAemG,EAAMI,QAEvCf,EAASgB,MAAQJ,EAAQD,OAG3BX,EAASgB,MAAQJ,EAAQD,GAGpBX,GAGTjB,WACE,OAAqE,IAA9DvG,KAAKuH,OAAOmB,OAAOP,IAAUA,EAAM5B,UAAS,IAAOxB,QAG5D4D,QACE3I,KAAKuH,OAAOqB,QAAQT,GAASA,EAAMQ,SACnC3I,KAAK6I,iBAEPA,gBACM7I,KAAKqH,gBAEPyB,WAAW,KACT9I,KAAKyH,SAAW,IACf,IAIPsB,kBACE/I,KAAKuH,OAAOqB,QAAQT,GAASA,EAAMY,mBACnC/I,KAAK6I,iBAEPG,SAAUb,GACRnI,KAAKuH,OAAOpB,KAAKgC,GACjBnI,KAAKwH,SAASrB,KAAKnG,KAAKkI,WAAWC,KAErCc,WAAYd,GACV,MAAMe,EAAQlJ,KAAKuH,OAAO4B,KAAKC,GAAKA,EAAEb,OAASJ,EAAMI,MAErD,IAAKW,EAAO,OAEZ,MAAMG,EAAUrJ,KAAKwH,SAAS2B,KAAKC,GAAKA,EAAEb,OAASW,EAAMX,MACrDc,IACFA,EAAQb,QACRa,EAAQZ,kBAGVzI,KAAKwH,SAAWxH,KAAKwH,SAASkB,OAAOU,GAAKA,EAAEb,OAASW,EAAMX,MAC3DvI,KAAKuH,OAASvH,KAAKuH,OAAOmB,OAAOU,GAAKA,EAAEb,OAASW,EAAMX,MACvDvI,KAAKsJ,QAAQtJ,KAAKyH,SAAUyB,EAAMX,QAItCrF,OAAQC,GACN,OAAOA,EAAE,OAAQ,CACfjD,YAAa,SACbU,MAAO,CACL2I,YAAY,KACTvJ,KAAKwJ,QAEVxI,GAAI,CACFyI,OAASC,GAAa1J,KAAK+H,MAAM,SAAU2B,KAE5CrH,eAAQrC,W,gFC9If,sCAWe2J,cAAYlL,OAAO,CAChCC,KAAM,SAENC,MAAO,CACLiL,IAAK,CACH/K,KAAMC,OACNK,QAAS,SAIbW,SAAU,CACRgD,SACE,MAAM,IACJ+G,EADI,IACCC,EADD,MACMC,EADN,OACaC,EADb,YACqBC,EADrB,OACkCC,EADlC,KAC0CC,GAC5CnK,KAAKa,SAASuJ,YAElB,MAAO,CACLC,WAAeP,EAAMD,EAAT,KACZS,aAAiBP,EAAH,KACdQ,cAAkBP,EAASC,EAAcC,EAA1B,KACfM,YAAgBL,EAAH,QAKnBjH,OAAQC,GACN,MAAMlD,EAAO,CACXC,YAAa,SACb2C,MAAO7C,KAAK8C,OACZW,IAAK,QAGP,OAAON,EAAEnD,KAAK4J,IAAK3J,EAAM,CACvBkD,EACE,MACA,CAAEjD,YAAa,gBACfmC,eAAQrC,a,qBC/ChByK,EAAOC,QAAU,IAA0B,iD,kCCA3C","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":""}