/*! For license information please see twofactor_backupscodes-settings.js.LICENSE.txt */ (()=>{"use strict";var e,n={13895:(e,n,o)=>{var a=o(16453),s=o(20144),r=o(10128),c=o.n(r);const d={name:"PersonalSettings",data:()=>({generatingCodes:!1}),computed:{downloadUrl(){return this.codes?"data:text/plain,"+encodeURIComponent(this.codes.reduce(((t,e)=>t+e+"\r\n"),"")):""},downloadFilename:()=>(OC.theme.name||"Nextcloud")+"-backup-codes.txt",enabled(){return this.$store.state.enabled},total(){return this.$store.state.total},used(){return this.$store.state.used},codes(){return this.$store.state.codes},name:()=>OC.theme.name||"Nextcloud",haveCodes(){return this.codes&&this.codes.length>0}},methods:{generateBackupCodes(){c()().then((()=>{this.generatingCodes=!0,this.$store.dispatch("generate").then((t=>{this.generatingCodes=!1})).catch((e=>{throw OC.Notification.showTemporary(t("twofactor_backupcodes","An error occurred while generating your backup codes")),this.generatingCodes=!1,e}))})).catch(console.error.bind(this))},getPrintData:t=>t?t.reduce(((t,e)=>t+e+"
"),""):"",printCodes(){!function(e){const n=OC.theme.name||"Nextcloud",o=window.open("",t("twofactor_backupcodes","{name} backup codes",{name:n}));o.document.write("

"+t("twofactor_backupcodes","{name} backup codes",{name:n})+"

"),o.document.write("
"+e+"
"),o.print(),o.close()}(this.getPrintData(this.codes))}}};var i=o(93379),u=o.n(i),l=o(94319);u()(l.Z,{insert:"head",singleton:!1}),l.Z.locals;const p=(0,o(51900).Z)(d,(function(){var t=this,e=t.$createElement,n=t._self._c||e;return n("div",[t.enabled?[n("p",[t.haveCodes?[t._v("\n\t\t\t\t"+t._s(t.t("twofactor_backupcodes","These are your backup codes. Please save and/or print them as you will not be able to read the codes again later"))+"\n\t\t\t\t"),n("ul",t._l(t.codes,(function(e){return n("li",{key:e,staticClass:"backup-code"},[t._v("\n\t\t\t\t\t\t"+t._s(e)+"\n\t\t\t\t\t")])})),0),t._v(" "),n("a",{staticClass:"button primary",attrs:{href:t.downloadUrl,download:t.downloadFilename}},[t._v(t._s(t.t("twofactor_backupcodes","Save backup codes")))]),t._v(" "),n("button",{staticClass:"button",on:{click:t.printCodes}},[t._v("\n\t\t\t\t\t"+t._s(t.t("twofactor_backupcodes","Print backup codes"))+"\n\t\t\t\t")])]:[t._v("\n\t\t\t\t"+t._s(t.t("twofactor_backupcodes","Backup codes have been generated. {used} of {total} codes have been used.",{used:t.used,total:t.total}))+"\n\t\t\t")]],2),t._v(" "),n("p",[n("button",{attrs:{id:"generate-backup-codes"},on:{click:t.generateBackupCodes}},[t._v("\n\t\t\t\t"+t._s(t.t("twofactor_backupcodes","Regenerate backup codes"))+"\n\t\t\t")])]),t._v(" "),n("p",[n("em",[t._v("\n\t\t\t\t"+t._s(t.t("twofactor_backupcodes","If you regenerate backup codes, you automatically invalidate old codes."))+"\n\t\t\t")])])]:n("button",{attrs:{id:"generate-backup-codes",disabled:t.generatingCodes},on:{click:t.generateBackupCodes}},[t._v("\n\t\t"+t._s(t.t("twofactor_backupcodes","Generate backup codes"))+"\n\t\t"),n("span",{class:{"icon-loading-small":t.generatingCodes}})])],2)}),[],!1,null,"00d0b868",null).exports;var b=o(20629),h=o(4820),f=o(79753);s.default.use(b.ZP);const m={setEnabled(t,e){s.default.set(t,"enabled",e)},setTotal(t,e){s.default.set(t,"total",e)},setUsed(t,e){s.default.set(t,"used",e)},setCodes(t,e){s.default.set(t,"codes",e)}},g={generate(t){let{commit:e}=t;return e("setEnabled",!1),function(){const t=(0,f.generateUrl)("/apps/twofactor_backupcodes/settings/create");return h.default.post(t,{}).then((t=>t.data))}().then((t=>{let{codes:n,state:o}=t;return e("setEnabled",o.enabled),e("setTotal",o.total),e("setUsed",o.used),e("setCodes",n),!0}))}},k=new b.ZP.Store({strict:!1,state:{enabled:!1,total:0,used:0,codes:[]},mutations:m,actions:g});s.default.prototype.t=t;const v=(0,a.loadState)("twofactor_backupcodes","state");k.replaceState(v),new(s.default.extend(p))({store:k}).$mount("#twofactor-backupcodes-settings")},94319:(t,e,n)=>{n.d(e,{Z:()=>c});var o=n(94015),a=n.n(o),s=n(23645),r=n.n(s)()(a());r.push([t.id,"\n.backup-code[data-v-00d0b868] {\n\tfont-family: monospace;\n\tletter-spacing: 0.02em;\n\tfont-size: 1.2em;\n}\n.button[data-v-00d0b868] {\n\tdisplay: inline-block;\n}\n","",{version:3,sources:["webpack://./apps/twofactor_backupcodes/src/views/PersonalSettings.vue"],names:[],mappings:";AAyHA;CACA,sBAAA;CACA,sBAAA;CACA,gBAAA;AACA;AACA;CACA,qBAAA;AACA",sourcesContent:["\n\n