From f6ebe494bac7edba6c7c917223dad7ccb84dccb3 Mon Sep 17 00:00:00 2001 From: Bubka <858858+Bubka@users.noreply.github.com> Date: Fri, 27 Sep 2024 14:20:12 +0200 Subject: [PATCH] Rebuild assets --- .../{About-BZhNTSAg.js => About-XlOmnkHo.js} | 2 +- ...{Access-BUEH-HbX.js => Access-DPUU_q_e.js} | 2 +- ...cCOFAQ5.js => AccessLogViewer-D5ku7YyO.js} | 2 +- ...ccount-bVws_VSU.js => Account-D0Vo1CDM.js} | 2 +- ...ounts-Dd3ykjhR.js => Accounts-BKgJPgW4.js} | 2 +- ...Tabs-Bl1-NjaF.js => AdminTabs-CH16Y5aI.js} | 2 +- ...Setup-CX11T-H5.js => AppSetup-CRogn-UO.js} | 2 +- .../{Auth-CmKqXT21.js => Auth-C0J9t2T1.js} | 2 +- ...apture-CfKxVMuO.js => Capture-CjOu-0oN.js} | 2 +- ...ton-CDpmfULX.js => CopyButton-jPP7GkVs.js} | 2 +- ...{Create-ISEYWR5R.js => Create-Ppjik0Rc.js} | 2 +- ...e-D5u6vBmO.js => CreateUpdate-Bcq5-Ipn.js} | 2 +- ...e-qewMO0ZY.js => CreateUpdate-CPvMgltX.js} | 2 +- .../{Edit-7XxRGrC1.js => Edit-C69CLEW0.js} | 2 +- .../{Error-B64Etrkn.js => Error-D63gl45e.js} | 2 +- .../{Form-DWTCaq3y.js => Form-BSfNB4q6.js} | 2 +- ...{Groups-D5oaRkip.js => Groups-CB6BkpLO.js} | 2 +- ...{Import-CZR4vcnj.js => Import-DzQrPeG3.js} | 2 +- .../{Login-Dvi0IpzI.js => Login-BBynD8CC.js} | 2 +- ...{Manage-D6-VL252.js => Manage-C0NOcaRv.js} | 2 +- .../{OAuth-BS_ppCvb.js => OAuth-dgZCcWlL.js} | 2 +- ...ptions-OR5uIyQb.js => Options-D3fDNCvX.js} | 2 +- ...lay-rOo0JVMb.js => OtpDisplay-CU1C9yFz.js} | 2 +- ...{QRcode-0D9Ppru-.js => QRcode-BY72oBwO.js} | 2 +- ...d7upKu.js => QrContentDisplay-CxQyxV0P.js} | 2 +- ...ecover-CE1NgbrS.js => Recover-ClJ3s80u.js} | 2 +- ...ister-BU18ipdH.js => Register-BeDlGULg.js} | 2 +- ...t-Cwf_djX8.js => RequestReset-63WcW87C.js} | 2 +- .../{Reset-C9UQ-9Xw.js => Reset-BCtRvP_c.js} | 2 +- ...hBox-BN15Yvrb.js => SearchBox-DXIAZhpY.js} | 2 +- ...bs-QG_9mr1s.js => SettingTabs-CH0cOPVM.js} | 2 +- ...pinner-DAB1mDqh.js => Spinner-BwxI0ALn.js} | 2 +- .../{Start-mHRwuU4_.js => Start-Db0pVskV.js} | 2 +- .../{Users-DjvKWsO3.js => Users-CVnBSsgh.js} | 2 +- ...Authn-C_jvKAY0.js => WebAuthn-C8Ep1BLK.js} | 2 +- .../{app-CYV6HkYG.js => app-CeOdx_TG.js} | 6 +- ...Sh5Y.js => appSettingsUpdater-Dgw-hmnk.js} | 2 +- .../{bus-9R_lUvV0.js => bus-Sx3kCjbz.js} | 2 +- public/build/assets/php_de-BNdlHPsO.js | 4 + public/build/assets/php_de-CNLq-YHx.js | 4 - ...{php_zh-BLzLFTvm.js => php_zh-Co42ifwQ.js} | 2 +- ...tkX6mue.js => webauthnService-3N-iRQ3u.js} | 2 +- public/build/manifest.json | 228 +++++++++--------- 43 files changed, 160 insertions(+), 160 deletions(-) rename public/build/assets/{About-BZhNTSAg.js => About-XlOmnkHo.js} (97%) rename public/build/assets/{Access-BUEH-HbX.js => Access-DPUU_q_e.js} (84%) rename public/build/assets/{AccessLogViewer-QcCOFAQ5.js => AccessLogViewer-D5ku7YyO.js} (96%) rename public/build/assets/{Account-bVws_VSU.js => Account-D0Vo1CDM.js} (97%) rename public/build/assets/{Accounts-Dd3ykjhR.js => Accounts-BKgJPgW4.js} (99%) rename public/build/assets/{AdminTabs-Bl1-NjaF.js => AdminTabs-CH16Y5aI.js} (93%) rename public/build/assets/{AppSetup-CX11T-H5.js => AppSetup-CRogn-UO.js} (95%) rename public/build/assets/{Auth-CmKqXT21.js => Auth-C0J9t2T1.js} (95%) rename public/build/assets/{Capture-CfKxVMuO.js => Capture-CjOu-0oN.js} (99%) rename public/build/assets/{CopyButton-CDpmfULX.js => CopyButton-jPP7GkVs.js} (90%) rename public/build/assets/{Create-ISEYWR5R.js => Create-Ppjik0Rc.js} (93%) rename public/build/assets/{CreateUpdate-D5u6vBmO.js => CreateUpdate-Bcq5-Ipn.js} (87%) rename public/build/assets/{CreateUpdate-qewMO0ZY.js => CreateUpdate-CPvMgltX.js} (98%) rename public/build/assets/{Edit-7XxRGrC1.js => Edit-C69CLEW0.js} (89%) rename public/build/assets/{Error-B64Etrkn.js => Error-D63gl45e.js} (95%) rename public/build/assets/{Form-DWTCaq3y.js => Form-BSfNB4q6.js} (98%) rename public/build/assets/{Groups-D5oaRkip.js => Groups-CB6BkpLO.js} (94%) rename public/build/assets/{Import-CZR4vcnj.js => Import-DzQrPeG3.js} (98%) rename public/build/assets/{Login-Dvi0IpzI.js => Login-BBynD8CC.js} (98%) rename public/build/assets/{Manage-D6-VL252.js => Manage-C0NOcaRv.js} (96%) rename public/build/assets/{OAuth-BS_ppCvb.js => OAuth-dgZCcWlL.js} (96%) rename public/build/assets/{Options-OR5uIyQb.js => Options-D3fDNCvX.js} (99%) rename public/build/assets/{OtpDisplay-rOo0JVMb.js => OtpDisplay-CU1C9yFz.js} (99%) rename public/build/assets/{QRcode-0D9Ppru-.js => QRcode-BY72oBwO.js} (87%) rename public/build/assets/{QrContentDisplay-BGd7upKu.js => QrContentDisplay-CxQyxV0P.js} (95%) rename public/build/assets/{Recover-CE1NgbrS.js => Recover-ClJ3s80u.js} (94%) rename public/build/assets/{Register-BU18ipdH.js => Register-BeDlGULg.js} (96%) rename public/build/assets/{RequestReset-Cwf_djX8.js => RequestReset-63WcW87C.js} (91%) rename public/build/assets/{Reset-C9UQ-9Xw.js => Reset-BCtRvP_c.js} (96%) rename public/build/assets/{SearchBox-BN15Yvrb.js => SearchBox-DXIAZhpY.js} (95%) rename public/build/assets/{SettingTabs-QG_9mr1s.js => SettingTabs-CH0cOPVM.js} (93%) rename public/build/assets/{Spinner-DAB1mDqh.js => Spinner-BwxI0ALn.js} (94%) rename public/build/assets/{Start-mHRwuU4_.js => Start-Db0pVskV.js} (96%) rename public/build/assets/{Users-DjvKWsO3.js => Users-CVnBSsgh.js} (95%) rename public/build/assets/{WebAuthn-C_jvKAY0.js => WebAuthn-C8Ep1BLK.js} (95%) rename public/build/assets/{app-CYV6HkYG.js => app-CeOdx_TG.js} (98%) rename public/build/assets/{appSettingsUpdater-CrpPSh5Y.js => appSettingsUpdater-Dgw-hmnk.js} (84%) rename public/build/assets/{bus-9R_lUvV0.js => bus-Sx3kCjbz.js} (77%) create mode 100644 public/build/assets/php_de-BNdlHPsO.js delete mode 100644 public/build/assets/php_de-CNLq-YHx.js rename public/build/assets/{php_zh-BLzLFTvm.js => php_zh-Co42ifwQ.js} (81%) rename public/build/assets/{webauthnService-CtkX6mue.js => webauthnService-3N-iRQ3u.js} (98%) diff --git a/public/build/assets/About-BZhNTSAg.js b/public/build/assets/About-XlOmnkHo.js similarity index 97% rename from public/build/assets/About-BZhNTSAg.js rename to public/build/assets/About-XlOmnkHo.js index 04f26636..1d685678 100644 --- a/public/build/assets/About-BZhNTSAg.js +++ b/public/build/assets/About-XlOmnkHo.js @@ -1 +1 @@ -import{R as b,u as k,e as i,f as g,k as C,p as r,h as s,t,m as o,n as c,j as e,i as h,U as u}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const B={class:"title has-text-grey-dark"},F={class:"block"},A=s("span",{class:"is-size-5"},"2FAuth",-1),w=s("br",null,null,-1),y=s("img",{class:"about-logo",src:"logo.svg",alt:"2FAuth logo"},null,-1),v=s("p",{class:"block"},[e(" ©Bubka "),s("a",{class:"is-size-7",href:"https://github.com/Bubka/2FAuth/blob/master/LICENSE"},"AGPL-3.0 license")],-1),I={class:"title is-5 has-text-grey-light"},L={class:"buttons"},$={class:"icon is-small"},S=s("span",null,"Github",-1),T={class:"icon is-small"},V=s("span",null,"Docs",-1),z={class:"icon is-small"},N=s("span",null,"Demo",-1),D={class:"icon is-small"},E=s("span",null,"API",-1),R={class:"title is-5 has-text-grey-light"},W={class:"block"},j=s("a",{href:"https://docs.2fauth.app/credits/"},"Laravel, Bulma CSS, Vue.js and more",-1),M=s("a",{href:"https://fontawesome.com/"},"Font Awesome",-1),x=s("a",{class:"is-size-7",href:"https://fontawesome.com/license/free"},"(CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)",-1),G=s("a",{href:"https://2fa.directory/"},"2FA Directory",-1),P=s("a",{class:"is-size-7",href:"https://github.com/2factorauth/twofactorauth/blob/master/LICENSE.md"},"(MIT License)",-1),H={__name:"About",setup(U){const _=b("2fauth"),d=k().options.history.state.back;return(a,Y)=>{const l=i("FontAwesomeIcon"),p=i("ButtonBackCloseCancel"),m=i("VueFooter"),f=i("ResponsiveWidthWrapper");return g(),C(f,null,{default:r(()=>[s("h1",B,t(a.$t("commons.about")),1),s("p",F,[o(h(u),null,{default:r(({mode:n})=>[s("span",{class:c(n=="dark"?"has-text-white":"has-text-black")},[A,e(" v"+t(h(_).version),1)],2)]),_:1}),w,e(" "+t(a.$t("commons.2fauth_teaser")),1)]),y,v,s("h2",I,t(a.$t("commons.resources")),1),s("div",L,[o(h(u),null,{default:r(({mode:n})=>[s("a",{class:c(["button",{"is-dark":n=="dark"}]),href:"https://github.com/Bubka/2FAuth",target:"_blank"},[s("span",$,[o(l,{icon:["fab","github-alt"]})]),S],2),s("a",{class:c(["button",{"is-dark":n=="dark"}]),href:"https://docs.2fauth.app/",target:"_blank"},[s("span",T,[o(l,{icon:["fas","book"]})]),V],2),s("a",{class:c(["button",{"is-dark":n=="dark"}]),href:"https://demo.2fauth.app/",target:"_blank"},[s("span",z,[o(l,{icon:["fas","flask"]})]),N],2),s("a",{class:c(["button",{"is-dark":n=="dark"}]),href:"https://docs.2fauth.app/resources/rapidoc.html",target:"_blank"},[s("span",D,[o(l,{icon:["fas","code"]})]),E],2)]),_:1})]),s("h2",R,t(a.$t("commons.credits")),1),s("p",W,[s("ul",null,[s("li",null,[e(t(a.$t("commons.made_with"))+" ",1),j]),s("li",null,[e(t(a.$t("commons.ui_icons_by"))+" ",1),M,e(" "),x]),s("li",null,[e(t(a.$t("commons.logos_by"))+" ",1),G,e(" "),P])])]),o(m,{showButtons:!0},{default:r(()=>[o(p,{returnTo:{path:h(d)},action:"back"},null,8,["returnTo"])]),_:1})]),_:1})}}};export{H as default}; +import{R as b,u as k,e as i,f as g,k as C,p as r,h as s,t,m as o,n as c,j as e,i as h,U as u}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const B={class:"title has-text-grey-dark"},F={class:"block"},A=s("span",{class:"is-size-5"},"2FAuth",-1),w=s("br",null,null,-1),y=s("img",{class:"about-logo",src:"logo.svg",alt:"2FAuth logo"},null,-1),v=s("p",{class:"block"},[e(" ©Bubka "),s("a",{class:"is-size-7",href:"https://github.com/Bubka/2FAuth/blob/master/LICENSE"},"AGPL-3.0 license")],-1),I={class:"title is-5 has-text-grey-light"},L={class:"buttons"},$={class:"icon is-small"},S=s("span",null,"Github",-1),T={class:"icon is-small"},V=s("span",null,"Docs",-1),z={class:"icon is-small"},N=s("span",null,"Demo",-1),D={class:"icon is-small"},E=s("span",null,"API",-1),R={class:"title is-5 has-text-grey-light"},W={class:"block"},j=s("a",{href:"https://docs.2fauth.app/credits/"},"Laravel, Bulma CSS, Vue.js and more",-1),M=s("a",{href:"https://fontawesome.com/"},"Font Awesome",-1),x=s("a",{class:"is-size-7",href:"https://fontawesome.com/license/free"},"(CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)",-1),G=s("a",{href:"https://2fa.directory/"},"2FA Directory",-1),P=s("a",{class:"is-size-7",href:"https://github.com/2factorauth/twofactorauth/blob/master/LICENSE.md"},"(MIT License)",-1),H={__name:"About",setup(U){const _=b("2fauth"),d=k().options.history.state.back;return(a,Y)=>{const l=i("FontAwesomeIcon"),p=i("ButtonBackCloseCancel"),m=i("VueFooter"),f=i("ResponsiveWidthWrapper");return g(),C(f,null,{default:r(()=>[s("h1",B,t(a.$t("commons.about")),1),s("p",F,[o(h(u),null,{default:r(({mode:n})=>[s("span",{class:c(n=="dark"?"has-text-white":"has-text-black")},[A,e(" v"+t(h(_).version),1)],2)]),_:1}),w,e(" "+t(a.$t("commons.2fauth_teaser")),1)]),y,v,s("h2",I,t(a.$t("commons.resources")),1),s("div",L,[o(h(u),null,{default:r(({mode:n})=>[s("a",{class:c(["button",{"is-dark":n=="dark"}]),href:"https://github.com/Bubka/2FAuth",target:"_blank"},[s("span",$,[o(l,{icon:["fab","github-alt"]})]),S],2),s("a",{class:c(["button",{"is-dark":n=="dark"}]),href:"https://docs.2fauth.app/",target:"_blank"},[s("span",T,[o(l,{icon:["fas","book"]})]),V],2),s("a",{class:c(["button",{"is-dark":n=="dark"}]),href:"https://demo.2fauth.app/",target:"_blank"},[s("span",z,[o(l,{icon:["fas","flask"]})]),N],2),s("a",{class:c(["button",{"is-dark":n=="dark"}]),href:"https://docs.2fauth.app/resources/rapidoc.html",target:"_blank"},[s("span",D,[o(l,{icon:["fas","code"]})]),E],2)]),_:1})]),s("h2",R,t(a.$t("commons.credits")),1),s("p",W,[s("ul",null,[s("li",null,[e(t(a.$t("commons.made_with"))+" ",1),j]),s("li",null,[e(t(a.$t("commons.ui_icons_by"))+" ",1),M,e(" "),x]),s("li",null,[e(t(a.$t("commons.logos_by"))+" ",1),G,e(" "),P])])]),o(m,{showButtons:!0},{default:r(()=>[o(p,{returnTo:{path:h(d)},action:"back"},null,8,["returnTo"])]),_:1})]),_:1})}}};export{H as default}; diff --git a/public/build/assets/Access-BUEH-HbX.js b/public/build/assets/Access-DPUU_q_e.js similarity index 84% rename from public/build/assets/Access-BUEH-HbX.js rename to public/build/assets/Access-DPUU_q_e.js index da3d2fc4..7c554e4a 100644 --- a/public/build/assets/Access-BUEH-HbX.js +++ b/public/build/assets/Access-DPUU_q_e.js @@ -1 +1 @@ -import{_}from"./AccessLogViewer-QcCOFAQ5.js";import{u as f,o as h,r as B,I,e as o,f as g,k,p as u,h as c,t as r,i as v,m as t}from"./app-CYV6HkYG.js";import{u as C}from"./bus-9R_lUvV0.js";import"./SearchBox-BN15Yvrb.js";import"./Spinner-DAB1mDqh.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const b={class:"title has-text-grey-dark"},y={class:"block is-size-7-mobile"},T={__name:"Access",props:{userId:[Number,String]},setup(i){const l=C();f(),h(async()=>{m()});const e=i,a=B(l.username??"");function m(){I.getById(e.userId,{returnError:!0}).then(s=>{a.value=s.data.info.name})}return(s,S)=>{const n=o("ButtonBackCloseCancel"),d=o("VueFooter"),p=o("ResponsiveWidthWrapper");return g(),k(p,null,{default:u(()=>[c("h1",b,r(s.$t("titles.admin.logs.access")),1),c("div",y,r(s.$t("admin.access_log_legend_for_user",{username:v(a)}))+" (#"+r(e.userId)+") ",1),t(_,{userId:e.userId,lastOnly:!1,showSearch:!0,period:1},null,8,["userId"]),t(d,{showButtons:!0},{default:u(()=>[t(n,{returnTo:{name:"admin.manageUser",params:{userId:e.userId}},action:"back"},null,8,["returnTo"]),t(n,{returnTo:{name:"accounts"},action:"close"})]),_:1})]),_:1})}}};export{T as default}; +import{_}from"./AccessLogViewer-D5ku7YyO.js";import{u as f,o as h,r as B,I,e as o,f as g,k,p as u,h as c,t as r,i as v,m as t}from"./app-CeOdx_TG.js";import{u as C}from"./bus-Sx3kCjbz.js";import"./SearchBox-DXIAZhpY.js";import"./Spinner-BwxI0ALn.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const b={class:"title has-text-grey-dark"},y={class:"block is-size-7-mobile"},T={__name:"Access",props:{userId:[Number,String]},setup(i){const l=C();f(),h(async()=>{m()});const e=i,a=B(l.username??"");function m(){I.getById(e.userId,{returnError:!0}).then(s=>{a.value=s.data.info.name})}return(s,S)=>{const n=o("ButtonBackCloseCancel"),d=o("VueFooter"),p=o("ResponsiveWidthWrapper");return g(),k(p,null,{default:u(()=>[c("h1",b,r(s.$t("titles.admin.logs.access")),1),c("div",y,r(s.$t("admin.access_log_legend_for_user",{username:v(a)}))+" (#"+r(e.userId)+") ",1),t(_,{userId:e.userId,lastOnly:!1,showSearch:!0,period:1},null,8,["userId"]),t(d,{showButtons:!0},{default:u(()=>[t(n,{returnTo:{name:"admin.manageUser",params:{userId:e.userId}},action:"back"},null,8,["returnTo"]),t(n,{returnTo:{name:"accounts"},action:"close"})]),_:1})]),_:1})}}};export{T as default}; diff --git a/public/build/assets/AccessLogViewer-QcCOFAQ5.js b/public/build/assets/AccessLogViewer-D5ku7YyO.js similarity index 96% rename from public/build/assets/AccessLogViewer-QcCOFAQ5.js rename to public/build/assets/AccessLogViewer-D5ku7YyO.js index ce5a0c76..53d5f5c5 100644 --- a/public/build/assets/AccessLogViewer-QcCOFAQ5.js +++ b/public/build/assets/AccessLogViewer-D5ku7YyO.js @@ -1 +1 @@ -import{_ as O}from"./SearchBox-BN15Yvrb.js";import{b as E,R as j,r as f,x as z,o as U,I as P,e as R,f as r,g as l,k as J,i as n,D as q,l as C,h as o,n as c,t as i,m as a,F as x,E as G,p as A,j as w,a8 as K,U as Q}from"./app-CYV6HkYG.js";import{S as W}from"./Spinner-DAB1mDqh.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const X={key:1,class:"level is-mobile mb-2"},Z={class:"level-item has-text-centered"},ee={class:"buttons"},se=["title"],te=["title"],oe=["title"],ne=["title"],re=["title"],ie=["title"],le={key:2},ae=["innerHTML"],de=["innerHTML"],ce=["innerHTML"],ue=["innerHTML"],he={class:"light-or-darker"},me={class:"light-or-darker"},_e={class:"light-or-darker"},ge={key:3,class:"mt-4"},fe={key:4,class:"mt-5 pl-3"},be={__name:"AccessLogViewer",props:{userId:[Number,String],lastOnly:Boolean,showSearch:Boolean,period:{type:[Number,String],default:12}},emits:["has-more-entries"],setup(T,{emit:N}){const H=E(),I=j("2fauth"),h=T,d={aMonth:1,threeMonths:3,halfYear:6,aYear:12},u=f([]),v=f(!1),p=f(""),m=f(h.period),g=f(!0),B=N,$=z(()=>u.value.filter(e=>JSON.stringify(e).toString().toLowerCase().includes(p.value)));U(()=>{L()});function y(e){m.value=e,L()}function F(){g.value=!1,S()}function S(){u.value.sort((e,t)=>e.id>t.id?1:-1)}function V(){g.value=!0,M()}function M(){u.value.sort((e,t)=>e.id{u.value=t.data,u.value.length>3&&h.lastOnly&&(B("has-more-entries"),u.value.pop()),g.value==!0?M():S()}).catch(t=>{H.error(t)}).finally(()=>{v.value=!1})}const Y=e=>{switch(e){case"phone":return"mobile-screen";case"tablet":return"tablet-screen-button";default:return"display"}},D=e=>!e.login_at&&e.logout_at,b=e=>!e.login_successful&&!e.logout_at;return(e,t)=>{const _=R("FontAwesomeIcon");return r(),l(x,null,[h.showSearch?(r(),J(O,{key:0,keyword:n(p),"onUpdate:keyword":t[0]||(t[0]=s=>q(p)?p.value=s:null),hasNoBackground:!0},null,8,["keyword"])):C("",!0),h.showSearch?(r(),l("nav",X,[o("div",Z,[o("div",ee,[o("button",{id:"btnShowOneMonth",title:e.$t("admin.show_last_month_log"),onClick:t[1]||(t[1]=s=>y(d.aMonth)),class:c([{"has-text-grey":n(m)!==d.aMonth},"button is-ghost p-1"])},i(e.$t("commons.one_month")),11,se),o("button",{id:"btnShowThreeMonths",title:e.$t("admin.show_three_months_log"),onClick:t[2]||(t[2]=s=>y(d.threeMonths)),class:c([{"has-text-grey":n(m)!==d.threeMonths},"button is-ghost p-1"])},i(e.$t("commons.x_month",{x:"3"})),11,te),o("button",{id:"btnShowSixMonths",title:e.$t("admin.show_six_months_log"),onClick:t[3]||(t[3]=s=>y(d.halfYear)),class:c([{"has-text-grey":n(m)!==d.halfYear},"button is-ghost p-1"])},i(e.$t("commons.x_month",{x:"6"})),11,oe),o("button",{id:"btnShowOneYear",title:e.$t("admin.show_one_year_log"),onClick:t[4]||(t[4]=s=>y(d.aYear)),class:c([{"has-text-grey":n(m)!==d.aYear},"button is-ghost p-1 mr-5"])},i(e.$t("commons.one_year")),11,ne),o("button",{id:"btnSortLogDesc",onClick:V,title:e.$t("admin.sort_by_date_desc"),class:c([{"has-text-grey":!n(g)},"button p-1 is-ghost"])},[a(_,{icon:["fas","arrow-up-long"],flip:"vertical"}),a(_,{icon:["far","calendar"]})],10,re),o("button",{id:"btnSortLogAsc",onClick:F,title:e.$t("admin.sort_by_date_asc"),class:c([{"has-text-grey":n(g)},"button p-1 is-ghost"])},[a(_,{icon:["fas","arrow-up-long"]}),a(_,{icon:["far","calendar"]})],10,ie)])])])):C("",!0),n($).length>0?(r(),l("div",le,[(r(!0),l(x,null,G(n($),s=>(r(),l("div",{key:s.id,class:"list-item is-size-6 is-size-7-mobile has-text-grey is-flex is-justify-content-space-between"},[a(n(Q),null,{default:A(({mode:k})=>[o("div",null,[o("div",null,[b(s)?(r(),l("span",{key:0,innerHTML:e.$t("admin.failed_login_on",{login_at:s.login_at})},null,8,ae)):D(s)?(r(),l("span",{key:1,innerHTML:e.$t("admin.successful_logout_on",{login_at:s.logout_at})},null,8,de)):n(I).config.proxyAuth?(r(),l("span",{key:2,innerHTML:e.$t("admin.viewed_on",{login_at:s.login_at})},null,8,ce)):(r(),l("span",{key:3,innerHTML:e.$t("admin.successful_login_on",{login_at:s.login_at})},null,8,ue))]),o("div",null,[w(i(e.$t("commons.IP"))+": ",1),o("span",he,i(s.ip_address),1),w(" - "+i(e.$t("commons.browser"))+": ",1),o("span",me,i(s.browser),1),w(" - "+i(e.$t("commons.operating_system_short"))+": ",1),o("span",_e,i(s.platform),1)])]),o("div",{class:c([k=="dark"?"has-text-grey-darker":"has-text-grey-lighter","is-align-self-center"])},[a(n(K),{class:"fa-2x width-1-5x"},{default:A(()=>[a(_,{icon:["fas",Y(s.device)],transform:"grow-6","fixed-width":""},null,8,["icon"]),a(_,{icon:["fas",b(s)?"times":"check"],transform:"shrink-7"+(s.device=="desktop"?" up-2":""),class:c(b(s)?"has-text-danger"+(k=="dark"?"-dark":""):"has-text-success"+(k=="dark"?"-dark":"")),"fixed-width":""},null,8,["icon","transform","class"])]),_:2},1024)],2)]),_:2},1024)]))),128))])):n(u).length==0?(r(),l("div",ge,i(e.$t("commons.no_entry_yet")),1)):(r(),l("div",fe,i(e.$t("commons.no_result")),1)),a(W,{isVisible:n(v)},null,8,["isVisible"])],64)}}};export{be as _}; +import{_ as O}from"./SearchBox-DXIAZhpY.js";import{b as E,R as j,r as f,x as z,o as U,I as P,e as R,f as r,g as l,k as J,i as n,D as q,l as C,h as o,n as c,t as i,m as a,F as x,E as G,p as A,j as w,a8 as K,U as Q}from"./app-CeOdx_TG.js";import{S as W}from"./Spinner-BwxI0ALn.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const X={key:1,class:"level is-mobile mb-2"},Z={class:"level-item has-text-centered"},ee={class:"buttons"},se=["title"],te=["title"],oe=["title"],ne=["title"],re=["title"],ie=["title"],le={key:2},ae=["innerHTML"],de=["innerHTML"],ce=["innerHTML"],ue=["innerHTML"],he={class:"light-or-darker"},me={class:"light-or-darker"},_e={class:"light-or-darker"},ge={key:3,class:"mt-4"},fe={key:4,class:"mt-5 pl-3"},be={__name:"AccessLogViewer",props:{userId:[Number,String],lastOnly:Boolean,showSearch:Boolean,period:{type:[Number,String],default:12}},emits:["has-more-entries"],setup(T,{emit:N}){const H=E(),I=j("2fauth"),h=T,d={aMonth:1,threeMonths:3,halfYear:6,aYear:12},u=f([]),v=f(!1),p=f(""),m=f(h.period),g=f(!0),B=N,$=z(()=>u.value.filter(e=>JSON.stringify(e).toString().toLowerCase().includes(p.value)));U(()=>{L()});function y(e){m.value=e,L()}function F(){g.value=!1,S()}function S(){u.value.sort((e,t)=>e.id>t.id?1:-1)}function V(){g.value=!0,M()}function M(){u.value.sort((e,t)=>e.id{u.value=t.data,u.value.length>3&&h.lastOnly&&(B("has-more-entries"),u.value.pop()),g.value==!0?M():S()}).catch(t=>{H.error(t)}).finally(()=>{v.value=!1})}const Y=e=>{switch(e){case"phone":return"mobile-screen";case"tablet":return"tablet-screen-button";default:return"display"}},D=e=>!e.login_at&&e.logout_at,b=e=>!e.login_successful&&!e.logout_at;return(e,t)=>{const _=R("FontAwesomeIcon");return r(),l(x,null,[h.showSearch?(r(),J(O,{key:0,keyword:n(p),"onUpdate:keyword":t[0]||(t[0]=s=>q(p)?p.value=s:null),hasNoBackground:!0},null,8,["keyword"])):C("",!0),h.showSearch?(r(),l("nav",X,[o("div",Z,[o("div",ee,[o("button",{id:"btnShowOneMonth",title:e.$t("admin.show_last_month_log"),onClick:t[1]||(t[1]=s=>y(d.aMonth)),class:c([{"has-text-grey":n(m)!==d.aMonth},"button is-ghost p-1"])},i(e.$t("commons.one_month")),11,se),o("button",{id:"btnShowThreeMonths",title:e.$t("admin.show_three_months_log"),onClick:t[2]||(t[2]=s=>y(d.threeMonths)),class:c([{"has-text-grey":n(m)!==d.threeMonths},"button is-ghost p-1"])},i(e.$t("commons.x_month",{x:"3"})),11,te),o("button",{id:"btnShowSixMonths",title:e.$t("admin.show_six_months_log"),onClick:t[3]||(t[3]=s=>y(d.halfYear)),class:c([{"has-text-grey":n(m)!==d.halfYear},"button is-ghost p-1"])},i(e.$t("commons.x_month",{x:"6"})),11,oe),o("button",{id:"btnShowOneYear",title:e.$t("admin.show_one_year_log"),onClick:t[4]||(t[4]=s=>y(d.aYear)),class:c([{"has-text-grey":n(m)!==d.aYear},"button is-ghost p-1 mr-5"])},i(e.$t("commons.one_year")),11,ne),o("button",{id:"btnSortLogDesc",onClick:V,title:e.$t("admin.sort_by_date_desc"),class:c([{"has-text-grey":!n(g)},"button p-1 is-ghost"])},[a(_,{icon:["fas","arrow-up-long"],flip:"vertical"}),a(_,{icon:["far","calendar"]})],10,re),o("button",{id:"btnSortLogAsc",onClick:F,title:e.$t("admin.sort_by_date_asc"),class:c([{"has-text-grey":n(g)},"button p-1 is-ghost"])},[a(_,{icon:["fas","arrow-up-long"]}),a(_,{icon:["far","calendar"]})],10,ie)])])])):C("",!0),n($).length>0?(r(),l("div",le,[(r(!0),l(x,null,G(n($),s=>(r(),l("div",{key:s.id,class:"list-item is-size-6 is-size-7-mobile has-text-grey is-flex is-justify-content-space-between"},[a(n(Q),null,{default:A(({mode:k})=>[o("div",null,[o("div",null,[b(s)?(r(),l("span",{key:0,innerHTML:e.$t("admin.failed_login_on",{login_at:s.login_at})},null,8,ae)):D(s)?(r(),l("span",{key:1,innerHTML:e.$t("admin.successful_logout_on",{login_at:s.logout_at})},null,8,de)):n(I).config.proxyAuth?(r(),l("span",{key:2,innerHTML:e.$t("admin.viewed_on",{login_at:s.login_at})},null,8,ce)):(r(),l("span",{key:3,innerHTML:e.$t("admin.successful_login_on",{login_at:s.login_at})},null,8,ue))]),o("div",null,[w(i(e.$t("commons.IP"))+": ",1),o("span",he,i(s.ip_address),1),w(" - "+i(e.$t("commons.browser"))+": ",1),o("span",me,i(s.browser),1),w(" - "+i(e.$t("commons.operating_system_short"))+": ",1),o("span",_e,i(s.platform),1)])]),o("div",{class:c([k=="dark"?"has-text-grey-darker":"has-text-grey-lighter","is-align-self-center"])},[a(n(K),{class:"fa-2x width-1-5x"},{default:A(()=>[a(_,{icon:["fas",Y(s.device)],transform:"grow-6","fixed-width":""},null,8,["icon"]),a(_,{icon:["fas",b(s)?"times":"check"],transform:"shrink-7"+(s.device=="desktop"?" up-2":""),class:c(b(s)?"has-text-danger"+(k=="dark"?"-dark":""):"has-text-success"+(k=="dark"?"-dark":"")),"fixed-width":""},null,8,["icon","transform","class"])]),_:2},1024)],2)]),_:2},1024)]))),128))])):n(u).length==0?(r(),l("div",ge,i(e.$t("commons.no_entry_yet")),1)):(r(),l("div",fe,i(e.$t("commons.no_result")),1)),a(W,{isVisible:n(v)},null,8,["isVisible"])],64)}}};export{be as _}; diff --git a/public/build/assets/Account-bVws_VSU.js b/public/build/assets/Account-D0Vo1CDM.js similarity index 97% rename from public/build/assets/Account-bVws_VSU.js rename to public/build/assets/Account-D0Vo1CDM.js index 68ea81e2..8c3a1a82 100644 --- a/public/build/assets/Account-bVws_VSU.js +++ b/public/build/assets/Account-D0Vo1CDM.js @@ -1 +1 @@ -import{R as C,a as U,b as S,u as K,a2 as D,d as y,a1 as L,e as p,f as _,g as w,m as a,h as n,p as E,i as s,t as u,l as g,C as b,H as V}from"./app-CYV6HkYG.js";import{F as v}from"./Form-DWTCaq3y.js";import{_ as R}from"./SettingTabs-QG_9mr1s.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const H={class:"options-tabs"},M={key:0,class:"notification is-warning"},W={key:1,class:"notification is-info has-text-centered"},j=["innerHTML"],z={class:"title is-4 has-text-grey-light"},I=["disabled"],q={class:"title is-4 pt-6 has-text-grey-light"},G=["disabled"],J={class:"title is-4 pt-6 has-text-danger"},O={class:"field is-size-7-mobile"},Q={class:"block"},X=["disabled"],oe={__name:"Account",setup(Y){const c=C("2fauth"),d=U(),i=S(),F=K(),x=D(c.prefix+"returnTo","accounts"),l=y(new v({name:d.name,email:d.email,password:""})),t=y(new v({currentPassword:"",password:"",password_confirmation:""})),m=y(new v({password:""}));function T(r){l.put("/user",{returnError:!0}).then(e=>{d.$patch({name:e.data.name,email:e.data.email,isAdmin:e.data.is_admin}),i.success({text:V("auth.forms.profile_saved")})}).catch(e=>{e.response.status===400?i.alert({text:e.response.data.message}):e.response.status!==422&&i.error(e.response)})}function P(r){t.patch("/user/password",{returnError:!0}).then(e=>{t.password="",t.formPassword="",t.password_confirmation="",i.success({text:e.data.message})}).catch(e=>{e.response.status===400?i.alert({text:e.response.data.message}):e.response.status!==422&&i.error(e.response)})}function $(r){confirm(V("auth.confirm.delete_account"))&&m.delete("/user",{returnError:!0}).then(e=>{i.success({text:V("auth.forms.user_account_successfully_deleted")}),F.push({name:"register"})}).catch(e=>{e.response.status===400?i.alert({text:e.response.data.message}):e.response.status!==422&&i.error(e.response)})}return L(r=>{!r.name.startsWith("settings.")&&r.name==="login"&&i.clear()}),(r,e)=>{const f=p("FormField"),h=p("FormButtons"),B=p("FormPasswordField"),N=p("FormWrapper"),k=p("ButtonBackCloseCancel"),A=p("VueFooter");return _(),w("div",null,[a(R,{activeTab:"settings.account"},null,8,["activeTab"]),n("div",H,[a(N,null,{default:E(()=>[s(d).isAdmin?(_(),w("div",M,u(r.$t("settings.you_are_administrator")),1)):g("",!0),s(d).oauth_provider?(_(),w("div",W,u(r.$t("settings.account_linked_to_sso_x_provider",{provider:s(d).oauth_provider})),1)):g("",!0),n("form",{onSubmit:b(T,["prevent"]),onKeydown:e[3]||(e[3]=o=>s(l).onKeydown(o))},[s(c).config.proxyAuth?(_(),w("div",{key:0,class:"notification is-warning has-text-centered",innerHTML:r.$t("auth.user_account_controlled_by_proxy")},null,8,j)):g("",!0),n("h4",z,u(r.$t("settings.profile")),1),n("fieldset",{disabled:s(c).config.proxyAuth||s(d).oauth_provider},[a(f,{modelValue:s(l).name,"onUpdate:modelValue":e[0]||(e[0]=o=>s(l).name=o),fieldName:"name",fieldError:s(l).errors.get("name"),label:"auth.forms.name",maxLength:255,autofocus:""},null,8,["modelValue","fieldError"]),a(f,{modelValue:s(l).email,"onUpdate:modelValue":e[1]||(e[1]=o=>s(l).email=o),fieldName:"email",fieldError:s(l).errors.get("email"),inputType:"email",label:"auth.forms.email",maxLength:255,autofocus:""},null,8,["modelValue","fieldError"]),a(f,{modelValue:s(l).password,"onUpdate:modelValue":e[2]||(e[2]=o=>s(l).password=o),fieldName:"password",fieldError:s(l).errors.get("password"),inputType:"password",label:"auth.forms.current_password.label",help:"auth.forms.current_password.help"},null,8,["modelValue","fieldError"]),a(h,{isBusy:s(l).isBusy,caption:"commons.update"},null,8,["isBusy"])],8,I)],32),n("form",{onSubmit:b(P,["prevent"]),onKeydown:e[7]||(e[7]=o=>s(t).onKeydown(o))},[n("h4",q,u(r.$t("settings.change_password")),1),n("fieldset",{disabled:s(c).config.proxyAuth||s(d).oauth_provider},[a(B,{modelValue:s(t).password,"onUpdate:modelValue":e[4]||(e[4]=o=>s(t).password=o),fieldName:"password",fieldError:s(t).errors.get("password"),autocomplete:"new-password",showRules:!0,label:"auth.forms.new_password"},null,8,["modelValue","fieldError"]),a(B,{modelValue:s(t).password_confirmation,"onUpdate:modelValue":e[5]||(e[5]=o=>s(t).password_confirmation=o),showRules:!1,fieldName:"password_confirmation",fieldError:s(t).errors.get("password_confirmation"),inputType:"password",autocomplete:"new-password",label:"auth.forms.confirm_new_password"},null,8,["modelValue","fieldError"]),a(f,{modelValue:s(t).currentPassword,"onUpdate:modelValue":e[6]||(e[6]=o=>s(t).currentPassword=o),fieldName:"currentPassword",fieldError:s(t).errors.get("currentPassword"),inputType:"password",label:"auth.forms.current_password.label",help:"auth.forms.current_password.help"},null,8,["modelValue","fieldError"]),a(h,{isBusy:s(t).isBusy,caption:"auth.forms.change_password"},null,8,["isBusy"])],8,G)],32),n("form",{id:"frmDeleteAccount",onSubmit:b($,["prevent"]),onKeydown:e[9]||(e[9]=o=>s(m).onKeydown(o))},[n("h4",J,u(r.$t("auth.forms.delete_account")),1),n("div",O,[n("p",Q,u(r.$t("auth.forms.delete_your_account_and_reset_all_data")),1),n("p",null,u(r.$t("auth.forms.reset_your_password_to_delete_your_account")),1),n("p",null,u(r.$t("auth.forms.deleting_2fauth_account_does_not_impact_provider")),1)]),n("fieldset",{disabled:s(c).config.proxyAuth},[a(f,{modelValue:s(m).password,"onUpdate:modelValue":e[8]||(e[8]=o=>s(m).password=o),fieldName:"password",fieldError:s(m).errors.get("password"),inputType:"password",autocomplete:"new-password",label:"auth.forms.current_password.label",help:"auth.forms.current_password.help"},null,8,["modelValue","fieldError"]),a(h,{isBusy:s(m).isBusy,caption:"auth.forms.delete_your_account",submitId:"btnDeleteAccount",color:"is-danger"},null,8,["isBusy"])],8,X)],32)]),_:1})]),a(A,{showButtons:!0},{default:E(()=>[a(k,{returnTo:{name:s(x)},action:"close"},null,8,["returnTo"])]),_:1})])}}};export{oe as default}; +import{R as C,a as U,b as S,u as K,a2 as D,d as y,a1 as L,e as p,f as _,g as w,m as a,h as n,p as E,i as s,t as u,l as g,C as b,H as V}from"./app-CeOdx_TG.js";import{F as v}from"./Form-BSfNB4q6.js";import{_ as R}from"./SettingTabs-CH0cOPVM.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const H={class:"options-tabs"},M={key:0,class:"notification is-warning"},W={key:1,class:"notification is-info has-text-centered"},j=["innerHTML"],z={class:"title is-4 has-text-grey-light"},I=["disabled"],q={class:"title is-4 pt-6 has-text-grey-light"},G=["disabled"],J={class:"title is-4 pt-6 has-text-danger"},O={class:"field is-size-7-mobile"},Q={class:"block"},X=["disabled"],oe={__name:"Account",setup(Y){const c=C("2fauth"),d=U(),i=S(),F=K(),x=D(c.prefix+"returnTo","accounts"),l=y(new v({name:d.name,email:d.email,password:""})),t=y(new v({currentPassword:"",password:"",password_confirmation:""})),m=y(new v({password:""}));function T(r){l.put("/user",{returnError:!0}).then(e=>{d.$patch({name:e.data.name,email:e.data.email,isAdmin:e.data.is_admin}),i.success({text:V("auth.forms.profile_saved")})}).catch(e=>{e.response.status===400?i.alert({text:e.response.data.message}):e.response.status!==422&&i.error(e.response)})}function P(r){t.patch("/user/password",{returnError:!0}).then(e=>{t.password="",t.formPassword="",t.password_confirmation="",i.success({text:e.data.message})}).catch(e=>{e.response.status===400?i.alert({text:e.response.data.message}):e.response.status!==422&&i.error(e.response)})}function $(r){confirm(V("auth.confirm.delete_account"))&&m.delete("/user",{returnError:!0}).then(e=>{i.success({text:V("auth.forms.user_account_successfully_deleted")}),F.push({name:"register"})}).catch(e=>{e.response.status===400?i.alert({text:e.response.data.message}):e.response.status!==422&&i.error(e.response)})}return L(r=>{!r.name.startsWith("settings.")&&r.name==="login"&&i.clear()}),(r,e)=>{const f=p("FormField"),h=p("FormButtons"),B=p("FormPasswordField"),N=p("FormWrapper"),k=p("ButtonBackCloseCancel"),A=p("VueFooter");return _(),w("div",null,[a(R,{activeTab:"settings.account"},null,8,["activeTab"]),n("div",H,[a(N,null,{default:E(()=>[s(d).isAdmin?(_(),w("div",M,u(r.$t("settings.you_are_administrator")),1)):g("",!0),s(d).oauth_provider?(_(),w("div",W,u(r.$t("settings.account_linked_to_sso_x_provider",{provider:s(d).oauth_provider})),1)):g("",!0),n("form",{onSubmit:b(T,["prevent"]),onKeydown:e[3]||(e[3]=o=>s(l).onKeydown(o))},[s(c).config.proxyAuth?(_(),w("div",{key:0,class:"notification is-warning has-text-centered",innerHTML:r.$t("auth.user_account_controlled_by_proxy")},null,8,j)):g("",!0),n("h4",z,u(r.$t("settings.profile")),1),n("fieldset",{disabled:s(c).config.proxyAuth||s(d).oauth_provider},[a(f,{modelValue:s(l).name,"onUpdate:modelValue":e[0]||(e[0]=o=>s(l).name=o),fieldName:"name",fieldError:s(l).errors.get("name"),label:"auth.forms.name",maxLength:255,autofocus:""},null,8,["modelValue","fieldError"]),a(f,{modelValue:s(l).email,"onUpdate:modelValue":e[1]||(e[1]=o=>s(l).email=o),fieldName:"email",fieldError:s(l).errors.get("email"),inputType:"email",label:"auth.forms.email",maxLength:255,autofocus:""},null,8,["modelValue","fieldError"]),a(f,{modelValue:s(l).password,"onUpdate:modelValue":e[2]||(e[2]=o=>s(l).password=o),fieldName:"password",fieldError:s(l).errors.get("password"),inputType:"password",label:"auth.forms.current_password.label",help:"auth.forms.current_password.help"},null,8,["modelValue","fieldError"]),a(h,{isBusy:s(l).isBusy,caption:"commons.update"},null,8,["isBusy"])],8,I)],32),n("form",{onSubmit:b(P,["prevent"]),onKeydown:e[7]||(e[7]=o=>s(t).onKeydown(o))},[n("h4",q,u(r.$t("settings.change_password")),1),n("fieldset",{disabled:s(c).config.proxyAuth||s(d).oauth_provider},[a(B,{modelValue:s(t).password,"onUpdate:modelValue":e[4]||(e[4]=o=>s(t).password=o),fieldName:"password",fieldError:s(t).errors.get("password"),autocomplete:"new-password",showRules:!0,label:"auth.forms.new_password"},null,8,["modelValue","fieldError"]),a(B,{modelValue:s(t).password_confirmation,"onUpdate:modelValue":e[5]||(e[5]=o=>s(t).password_confirmation=o),showRules:!1,fieldName:"password_confirmation",fieldError:s(t).errors.get("password_confirmation"),inputType:"password",autocomplete:"new-password",label:"auth.forms.confirm_new_password"},null,8,["modelValue","fieldError"]),a(f,{modelValue:s(t).currentPassword,"onUpdate:modelValue":e[6]||(e[6]=o=>s(t).currentPassword=o),fieldName:"currentPassword",fieldError:s(t).errors.get("currentPassword"),inputType:"password",label:"auth.forms.current_password.label",help:"auth.forms.current_password.help"},null,8,["modelValue","fieldError"]),a(h,{isBusy:s(t).isBusy,caption:"auth.forms.change_password"},null,8,["isBusy"])],8,G)],32),n("form",{id:"frmDeleteAccount",onSubmit:b($,["prevent"]),onKeydown:e[9]||(e[9]=o=>s(m).onKeydown(o))},[n("h4",J,u(r.$t("auth.forms.delete_account")),1),n("div",O,[n("p",Q,u(r.$t("auth.forms.delete_your_account_and_reset_all_data")),1),n("p",null,u(r.$t("auth.forms.reset_your_password_to_delete_your_account")),1),n("p",null,u(r.$t("auth.forms.deleting_2fauth_account_does_not_impact_provider")),1)]),n("fieldset",{disabled:s(c).config.proxyAuth},[a(f,{modelValue:s(m).password,"onUpdate:modelValue":e[8]||(e[8]=o=>s(m).password=o),fieldName:"password",fieldError:s(m).errors.get("password"),inputType:"password",autocomplete:"new-password",label:"auth.forms.current_password.label",help:"auth.forms.current_password.help"},null,8,["modelValue","fieldError"]),a(h,{isBusy:s(m).isBusy,caption:"auth.forms.delete_your_account",submitId:"btnDeleteAccount",color:"is-danger"},null,8,["isBusy"])],8,X)],32)]),_:1})]),a(A,{showButtons:!0},{default:E(()=>[a(k,{returnTo:{name:s(x)},action:"close"},null,8,["returnTo"])]),_:1})])}}};export{oe as default}; diff --git a/public/build/assets/Accounts-Dd3ykjhR.js b/public/build/assets/Accounts-BKgJPgW4.js similarity index 99% rename from public/build/assets/Accounts-Dd3ykjhR.js rename to public/build/assets/Accounts-BKgJPgW4.js index 67ffaf6b..d298678b 100644 --- a/public/build/assets/Accounts-Dd3ykjhR.js +++ b/public/build/assets/Accounts-BKgJPgW4.js @@ -1,4 +1,4 @@ -import{a as Nt,e as te,f as E,g as C,h as y,F as ut,E as dt,m as O,p as R,n as W,t as x,i as p,U as $e,j as ze,I as hn,r as oe,J as tt,K as mn,y as gn,u as Qt,k as Ee,l as Y,L as vn,M as bn,N as _n,D as nt,O as Lt,P as ot,Q as yn,R as wn,b as En,S as Sn,T as Dn,c as kn,V as Cn,s as bt,x as Tn,o as On,H as _t,C as Oe,W as In,z as yt,X as An,w as wt,Y as Ge,A as Xt,Z as Mn}from"./app-CYV6HkYG.js";import{_ as $n,a as xn,b as Pn}from"./OtpDisplay-rOo0JVMb.js";import{_ as Nn}from"./SearchBox-BN15Yvrb.js";import{u as Fn}from"./bus-9R_lUvV0.js";import"./Spinner-DAB1mDqh.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const Rn={id:"groupSwitch",class:"container groups"},Bn={class:"columns is-centered"},Gn={class:"column is-one-third-tablet is-one-quarter-desktop is-one-quarter-widescreen is-one-quarter-fullhd"},Ln={class:"columns is-multiline"},Xn=["onClick"],Yn={class:"columns is-centered"},zn={class:"column has-text-centered"},Hn={__name:"GroupSwitch",props:{showGroupSwitch:Boolean,groups:Array},emits:["update:showGroupSwitch"],setup(o,{emit:e}){const n=Nt(),t=e;function i(r){n.preferences.activeGroup=r,n.preferences.rememberActiveGroup&&hn.updatePreference("activeGroup",r),t("update:showGroupSwitch",!1)}return(r,a)=>{const l=te("RouterLink"),u=te("ButtonBackCloseCancel"),s=te("VueFooter");return E(),C("div",Rn,[y("div",Bn,[y("div",Gn,[y("div",Ln,[(E(!0),C(ut,null,dt(o.groups,f=>(E(),C("div",{class:"column is-full",key:f.id},[O(p($e),null,{default:R(({mode:c})=>[y("button",{class:W(["button is-fullwidth",{"is-dark has-text-light is-outlined":c=="dark"}]),onClick:v=>i(f.id)},x(f.name),11,Xn)]),_:2},1024)]))),128))]),y("div",Yn,[y("div",zn,[O(l,{to:{name:"groups"}},{default:R(()=>[ze(x(r.$t("groups.manage_groups")),1)]),_:1})])])])]),O(s,{showButtons:!0},{default:R(()=>[O(u,{action:"close",useLinkTag:!1,onClosed:a[0]||(a[0]=f=>r.$emit("update:showGroupSwitch",!1))})]),_:1})])}}},qn={class:"container group-selector"},Un={class:"columns is-centered is-multiline"},Wn={class:"column is-full has-text-centered"},jn={class:"column is-one-third-tablet is-one-quarter-desktop is-one-quarter-widescreen is-one-quarter-fullhd"},Vn={class:"columns is-multiline"},Kn=["onClick"],Qn={key:0,class:"is-italic"},Zn={key:1},Jn={class:"columns is-centered"},eo={class:"column has-text-centered"},to={class:"control"},no={__name:"DestinationGroupSelector",props:{showDestinationGroupSelector:Boolean,selectedAccountsIds:Array,groups:Array},emits:["update:showDestinationGroupSelector","accounts-moved"],setup(o,{emit:e}){const n=o,t=oe(null),i=e;async function r(){t.value===0?await tt.withdraw(n.selectedAccountsIds):await mn.assign(n.selectedAccountsIds,t.value),i("accounts-moved")}return(a,l)=>{const u=te("RouterLink"),s=te("ButtonBackCloseCancel"),f=te("VueFooter");return E(),C("div",qn,[y("div",Un,[y("div",Wn,x(a.$t("groups.move_selected_to")),1),y("div",jn,[y("div",Vn,[(E(!0),C(ut,null,dt(o.groups,c=>(E(),C("div",{class:"column is-full",key:c.id},[O(p($e),null,{default:R(({mode:v})=>[y("button",{class:W(["button is-fullwidth",{"is-link":p(t)===c.id,"is-dark has-text-light is-outlined":v=="dark"}]),onClick:S=>t.value=c.id},[c.id===0?(E(),C("span",Qn,x(a.$t("groups.no_group")),1)):(E(),C("span",Zn,x(c.name),1))],10,Kn)]),_:2},1024)]))),128))]),y("div",Jn,[y("div",eo,[O(u,{to:{name:"groups"}},{default:R(()=>[ze(x(a.$t("groups.manage_groups")),1)]),_:1})])])])]),O(f,{showButtons:!0},{default:R(()=>[y("p",to,[y("button",{class:"button is-link is-rounded",onClick:r},x(a.$t("commons.move")),1)]),O(s,{action:"cancel",useLinkTag:!1,onCanceled:l[0]||(l[0]=c=>a.$emit("update:showDestinationGroupSelector",!1))})]),_:1})])}}},oo={class:"toolbar has-text-centered"},io={class:"columns"},ro={class:"column has-nowrap px-0"},ao={class:"has-text-grey mr-1"},so=["title"],lo=["title"],uo=["title"],co=["title"],fo={__name:"Toolbar",props:{selectedCount:Number},setup(o){return(e,n)=>{const t=te("FontAwesomeIcon");return E(),C("div",oo,[y("div",io,[y("div",ro,[y("span",ao,x(e.$t("commons.x_selected",{count:o.selectedCount})),1),y("button",{id:"btnUnselectAll",onClick:n[0]||(n[0]=i=>e.$emit("clear-selected")),class:"clear-selection delete mr-4",style:gn({visibility:o.selectedCount>0?"visible":"hidden"}),title:e.$t("commons.clear_selection")},null,12,so),y("button",{id:"btnSelectAll",onClick:n[1]||(n[1]=i=>e.$emit("select-all")),class:"button mr-5 has-line-height p-1 is-ghost has-text-grey",title:e.$t("commons.select_all")},[y("span",null,x(e.$t("commons.check_all")),1),O(t,{class:"ml-1",icon:["fas","check-square"]})],8,lo),y("button",{id:"btnSortAscending",onClick:n[2]||(n[2]=i=>e.$emit("sort-asc")),class:"button has-line-height p-1 is-ghost has-text-grey",title:e.$t("commons.sort_ascending")},[O(t,{icon:["fas","sort-alpha-down"]})],8,uo),y("button",{id:"btnSortDescending",onClick:n[3]||(n[3]=i=>e.$emit("sort-desc")),class:"button has-line-height p-1 is-ghost has-text-grey",title:e.$t("commons.sort_descending")},[O(t,{icon:["fas","sort-alpha-up"]})],8,co)])])])}}},po={key:0,class:"control"},ho={class:"icon is-small"},mo={key:1,class:"control"},go={key:2,class:"control"},vo=["disabled","title"],bo={key:3,class:"control"},_o=["disabled"],yo={key:4,class:"control"},wo=["disabled","title"],Eo={__name:"ActionButtons",props:{inManagementMode:Boolean,areDisabled:Boolean},emits:["update:inManagementMode","move-button-clicked","delete-button-clicked","export-button-clicked"],setup(o,{emit:e}){const n=Qt(),t=Nt();function i(){t.preferences.useDirectCapture&&t.preferences.defaultCaptureMode==="advancedForm"?n.push({name:"createAccount"}):t.preferences.useDirectCapture&&t.preferences.defaultCaptureMode==="livescan"?n.push({name:"capture"}):n.push({name:"start"})}return(r,a)=>{const l=te("FontAwesomeIcon");return E(),Ee(p($e),null,{default:R(({mode:u})=>[o.inManagementMode?Y("",!0):(E(),C("p",po,[y("button",{class:"button is-link is-rounded is-focus",onClick:i},[y("span",null,x(r.$t("commons.new")),1),y("span",ho,[O(l,{icon:["fas","qrcode"]})])])])),o.inManagementMode?Y("",!0):(E(),C("p",mo,[y("button",{id:"btnManage",class:W(["button is-rounded",{"is-dark":u=="dark"}]),onClick:a[0]||(a[0]=s=>r.$emit("update:inManagementMode",!0))},x(r.$t("commons.manage")),3)])),o.inManagementMode?(E(),C("p",go,[y("button",{id:"btnMove",disabled:o.areDisabled,class:W(["button is-rounded",[{"is-outlined":u=="dark"||o.areDisabled},o.areDisabled?"is-dark":"is-link"]]),onClick:a[1]||(a[1]=s=>r.$emit("move-button-clicked")),title:r.$t("groups.move_selected_to_group")},x(r.$t("commons.move")),11,vo)])):Y("",!0),o.inManagementMode?(E(),C("p",bo,[y("button",{id:"btnDelete",disabled:o.areDisabled,class:W(["button is-rounded",[{"is-outlined":u=="dark"||o.areDisabled},o.areDisabled?"is-dark":"is-link"]]),onClick:a[2]||(a[2]=s=>r.$emit("delete-button-clicked"))},x(r.$t("commons.delete")),11,_o)])):Y("",!0),o.inManagementMode?(E(),C("p",yo,[y("button",{id:"btnExport",disabled:o.areDisabled,class:W(["button is-rounded",[{"is-outlined":u=="dark"||o.areDisabled},o.areDisabled?"is-dark":"is-link"]]),onClick:a[3]||(a[3]=s=>r.$emit("export-button-clicked")),title:r.$t("twofaccounts.export_selected_to_json")},x(r.$t("commons.export")),11,wo)])):Y("",!0)]),_:1})}}};/**! +import{a as Nt,e as te,f as E,g as C,h as y,F as ut,E as dt,m as O,p as R,n as W,t as x,i as p,U as $e,j as ze,I as hn,r as oe,J as tt,K as mn,y as gn,u as Qt,k as Ee,l as Y,L as vn,M as bn,N as _n,D as nt,O as Lt,P as ot,Q as yn,R as wn,b as En,S as Sn,T as Dn,c as kn,V as Cn,s as bt,x as Tn,o as On,H as _t,C as Oe,W as In,z as yt,X as An,w as wt,Y as Ge,A as Xt,Z as Mn}from"./app-CeOdx_TG.js";import{_ as $n,a as xn,b as Pn}from"./OtpDisplay-CU1C9yFz.js";import{_ as Nn}from"./SearchBox-DXIAZhpY.js";import{u as Fn}from"./bus-Sx3kCjbz.js";import"./Spinner-BwxI0ALn.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const Rn={id:"groupSwitch",class:"container groups"},Bn={class:"columns is-centered"},Gn={class:"column is-one-third-tablet is-one-quarter-desktop is-one-quarter-widescreen is-one-quarter-fullhd"},Ln={class:"columns is-multiline"},Xn=["onClick"],Yn={class:"columns is-centered"},zn={class:"column has-text-centered"},Hn={__name:"GroupSwitch",props:{showGroupSwitch:Boolean,groups:Array},emits:["update:showGroupSwitch"],setup(o,{emit:e}){const n=Nt(),t=e;function i(r){n.preferences.activeGroup=r,n.preferences.rememberActiveGroup&&hn.updatePreference("activeGroup",r),t("update:showGroupSwitch",!1)}return(r,a)=>{const l=te("RouterLink"),u=te("ButtonBackCloseCancel"),s=te("VueFooter");return E(),C("div",Rn,[y("div",Bn,[y("div",Gn,[y("div",Ln,[(E(!0),C(ut,null,dt(o.groups,f=>(E(),C("div",{class:"column is-full",key:f.id},[O(p($e),null,{default:R(({mode:c})=>[y("button",{class:W(["button is-fullwidth",{"is-dark has-text-light is-outlined":c=="dark"}]),onClick:v=>i(f.id)},x(f.name),11,Xn)]),_:2},1024)]))),128))]),y("div",Yn,[y("div",zn,[O(l,{to:{name:"groups"}},{default:R(()=>[ze(x(r.$t("groups.manage_groups")),1)]),_:1})])])])]),O(s,{showButtons:!0},{default:R(()=>[O(u,{action:"close",useLinkTag:!1,onClosed:a[0]||(a[0]=f=>r.$emit("update:showGroupSwitch",!1))})]),_:1})])}}},qn={class:"container group-selector"},Un={class:"columns is-centered is-multiline"},Wn={class:"column is-full has-text-centered"},jn={class:"column is-one-third-tablet is-one-quarter-desktop is-one-quarter-widescreen is-one-quarter-fullhd"},Vn={class:"columns is-multiline"},Kn=["onClick"],Qn={key:0,class:"is-italic"},Zn={key:1},Jn={class:"columns is-centered"},eo={class:"column has-text-centered"},to={class:"control"},no={__name:"DestinationGroupSelector",props:{showDestinationGroupSelector:Boolean,selectedAccountsIds:Array,groups:Array},emits:["update:showDestinationGroupSelector","accounts-moved"],setup(o,{emit:e}){const n=o,t=oe(null),i=e;async function r(){t.value===0?await tt.withdraw(n.selectedAccountsIds):await mn.assign(n.selectedAccountsIds,t.value),i("accounts-moved")}return(a,l)=>{const u=te("RouterLink"),s=te("ButtonBackCloseCancel"),f=te("VueFooter");return E(),C("div",qn,[y("div",Un,[y("div",Wn,x(a.$t("groups.move_selected_to")),1),y("div",jn,[y("div",Vn,[(E(!0),C(ut,null,dt(o.groups,c=>(E(),C("div",{class:"column is-full",key:c.id},[O(p($e),null,{default:R(({mode:v})=>[y("button",{class:W(["button is-fullwidth",{"is-link":p(t)===c.id,"is-dark has-text-light is-outlined":v=="dark"}]),onClick:S=>t.value=c.id},[c.id===0?(E(),C("span",Qn,x(a.$t("groups.no_group")),1)):(E(),C("span",Zn,x(c.name),1))],10,Kn)]),_:2},1024)]))),128))]),y("div",Jn,[y("div",eo,[O(u,{to:{name:"groups"}},{default:R(()=>[ze(x(a.$t("groups.manage_groups")),1)]),_:1})])])])]),O(f,{showButtons:!0},{default:R(()=>[y("p",to,[y("button",{class:"button is-link is-rounded",onClick:r},x(a.$t("commons.move")),1)]),O(s,{action:"cancel",useLinkTag:!1,onCanceled:l[0]||(l[0]=c=>a.$emit("update:showDestinationGroupSelector",!1))})]),_:1})])}}},oo={class:"toolbar has-text-centered"},io={class:"columns"},ro={class:"column has-nowrap px-0"},ao={class:"has-text-grey mr-1"},so=["title"],lo=["title"],uo=["title"],co=["title"],fo={__name:"Toolbar",props:{selectedCount:Number},setup(o){return(e,n)=>{const t=te("FontAwesomeIcon");return E(),C("div",oo,[y("div",io,[y("div",ro,[y("span",ao,x(e.$t("commons.x_selected",{count:o.selectedCount})),1),y("button",{id:"btnUnselectAll",onClick:n[0]||(n[0]=i=>e.$emit("clear-selected")),class:"clear-selection delete mr-4",style:gn({visibility:o.selectedCount>0?"visible":"hidden"}),title:e.$t("commons.clear_selection")},null,12,so),y("button",{id:"btnSelectAll",onClick:n[1]||(n[1]=i=>e.$emit("select-all")),class:"button mr-5 has-line-height p-1 is-ghost has-text-grey",title:e.$t("commons.select_all")},[y("span",null,x(e.$t("commons.check_all")),1),O(t,{class:"ml-1",icon:["fas","check-square"]})],8,lo),y("button",{id:"btnSortAscending",onClick:n[2]||(n[2]=i=>e.$emit("sort-asc")),class:"button has-line-height p-1 is-ghost has-text-grey",title:e.$t("commons.sort_ascending")},[O(t,{icon:["fas","sort-alpha-down"]})],8,uo),y("button",{id:"btnSortDescending",onClick:n[3]||(n[3]=i=>e.$emit("sort-desc")),class:"button has-line-height p-1 is-ghost has-text-grey",title:e.$t("commons.sort_descending")},[O(t,{icon:["fas","sort-alpha-up"]})],8,co)])])])}}},po={key:0,class:"control"},ho={class:"icon is-small"},mo={key:1,class:"control"},go={key:2,class:"control"},vo=["disabled","title"],bo={key:3,class:"control"},_o=["disabled"],yo={key:4,class:"control"},wo=["disabled","title"],Eo={__name:"ActionButtons",props:{inManagementMode:Boolean,areDisabled:Boolean},emits:["update:inManagementMode","move-button-clicked","delete-button-clicked","export-button-clicked"],setup(o,{emit:e}){const n=Qt(),t=Nt();function i(){t.preferences.useDirectCapture&&t.preferences.defaultCaptureMode==="advancedForm"?n.push({name:"createAccount"}):t.preferences.useDirectCapture&&t.preferences.defaultCaptureMode==="livescan"?n.push({name:"capture"}):n.push({name:"start"})}return(r,a)=>{const l=te("FontAwesomeIcon");return E(),Ee(p($e),null,{default:R(({mode:u})=>[o.inManagementMode?Y("",!0):(E(),C("p",po,[y("button",{class:"button is-link is-rounded is-focus",onClick:i},[y("span",null,x(r.$t("commons.new")),1),y("span",ho,[O(l,{icon:["fas","qrcode"]})])])])),o.inManagementMode?Y("",!0):(E(),C("p",mo,[y("button",{id:"btnManage",class:W(["button is-rounded",{"is-dark":u=="dark"}]),onClick:a[0]||(a[0]=s=>r.$emit("update:inManagementMode",!0))},x(r.$t("commons.manage")),3)])),o.inManagementMode?(E(),C("p",go,[y("button",{id:"btnMove",disabled:o.areDisabled,class:W(["button is-rounded",[{"is-outlined":u=="dark"||o.areDisabled},o.areDisabled?"is-dark":"is-link"]]),onClick:a[1]||(a[1]=s=>r.$emit("move-button-clicked")),title:r.$t("groups.move_selected_to_group")},x(r.$t("commons.move")),11,vo)])):Y("",!0),o.inManagementMode?(E(),C("p",bo,[y("button",{id:"btnDelete",disabled:o.areDisabled,class:W(["button is-rounded",[{"is-outlined":u=="dark"||o.areDisabled},o.areDisabled?"is-dark":"is-link"]]),onClick:a[2]||(a[2]=s=>r.$emit("delete-button-clicked"))},x(r.$t("commons.delete")),11,_o)])):Y("",!0),o.inManagementMode?(E(),C("p",yo,[y("button",{id:"btnExport",disabled:o.areDisabled,class:W(["button is-rounded",[{"is-outlined":u=="dark"||o.areDisabled},o.areDisabled?"is-dark":"is-link"]]),onClick:a[3]||(a[3]=s=>r.$emit("export-button-clicked")),title:r.$t("twofaccounts.export_selected_to_json")},x(r.$t("commons.export")),11,wo)])):Y("",!0)]),_:1})}}};/**! * Sortable 1.15.2 * @author RubaXa * @author owenm diff --git a/public/build/assets/AdminTabs-Bl1-NjaF.js b/public/build/assets/AdminTabs-CH16Y5aI.js similarity index 93% rename from public/build/assets/AdminTabs-Bl1-NjaF.js rename to public/build/assets/AdminTabs-CH16Y5aI.js index e1d81e34..45689ae2 100644 --- a/public/build/assets/AdminTabs-Bl1-NjaF.js +++ b/public/build/assets/AdminTabs-CH16Y5aI.js @@ -1 +1 @@ -import{r as u,e as t,f as a,g as s,m as n,p as i,h as o,F as _,E as v,i as h,n as f,j as k,t as w}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const T={class:"options-header"},b={class:"tabs is-centered is-fullwidth"},W={__name:"AdminTabs",props:{activeTab:{type:String,default:""}},setup(r){const d=u([{name:"admin.app_setup",view:"admin.appSetup",id:"lnkTabApp"},{name:"admin.auth",view:"admin.auth",id:"lnkTabAuth"},{name:"admin.users",view:"admin.users",id:"lnkTabUsers"}]),p=r;return(l,g)=>{const c=t("RouterLink"),m=t("ResponsiveWidthWrapper");return a(),s("div",T,[n(m,null,{default:i(()=>[o("div",b,[o("ul",null,[(a(!0),s(_,null,v(h(d),e=>(a(),s("li",{key:e.view,class:f({"is-active":e.view===p.activeTab})},[n(c,{id:e.id,to:{name:e.view}},{default:i(()=>[k(w(l.$t(e.name)),1)]),_:2},1032,["id","to"])],2))),128))])])]),_:1})])}}};export{W as _}; +import{r as u,e as t,f as a,g as s,m as n,p as i,h as o,F as _,E as v,i as h,n as f,j as k,t as w}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const T={class:"options-header"},b={class:"tabs is-centered is-fullwidth"},W={__name:"AdminTabs",props:{activeTab:{type:String,default:""}},setup(r){const d=u([{name:"admin.app_setup",view:"admin.appSetup",id:"lnkTabApp"},{name:"admin.auth",view:"admin.auth",id:"lnkTabAuth"},{name:"admin.users",view:"admin.users",id:"lnkTabUsers"}]),p=r;return(l,g)=>{const c=t("RouterLink"),m=t("ResponsiveWidthWrapper");return a(),s("div",T,[n(m,null,{default:i(()=>[o("div",b,[o("ul",null,[(a(!0),s(_,null,v(h(d),e=>(a(),s("li",{key:e.view,class:f({"is-active":e.view===p.activeTab})},[n(c,{id:e.id,to:{name:e.view}},{default:i(()=>[k(w(l.$t(e.name)),1)]),_:2},1032,["id","to"])],2))),128))])])]),_:1})])}}};export{W as _}; diff --git a/public/build/assets/AppSetup-CX11T-H5.js b/public/build/assets/AppSetup-CRogn-UO.js similarity index 95% rename from public/build/assets/AppSetup-CX11T-H5.js rename to public/build/assets/AppSetup-CRogn-UO.js index 3b2b4c7b..c906649f 100644 --- a/public/build/assets/AppSetup-CX11T-H5.js +++ b/public/build/assets/AppSetup-CRogn-UO.js @@ -1 +1 @@ -import{_ as P}from"./AdminTabs-Bl1-NjaF.js";import{a4 as W,S as V,r as f,e as p,f as r,g as c,h as e,n as T,i as s,t as n,m as a,p as w,j as k,l as L,U as j,R as D,a as q,b as S,a2 as G,a1 as J,o as K,F as O,E as Q,H as X}from"./app-CYV6HkYG.js";import{u as E}from"./appSettingsUpdater-CrpPSh5Y.js";import{_ as Y}from"./CopyButton-CDpmfULX.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const v=W("web"),$={getSystemInfos(o={}){return v.get("system/infos",{...o})},getLastRelease(o={}){return v.get("system/latestRelease",{...o})},sendTestEmail(o={}){return v.post("system/test-email",{...o})},clearCache(o={}){return v.get("system/clear-cache",{...o})},optimize(o={}){return v.get("system/optimize",{...o})}},Z={class:"columns is-mobile is-vcentered"},ee={class:"column is-narrow"},se={class:"column"},te=e("span",{class:"release-flag"},null,-1),ne={class:"is-size-7",href:"https://github.com/Bubka/2FAuth/releases"},ae={key:1,class:"has-text-grey"},oe={key:2,class:"has-text-grey"},le={__name:"VersionChecker",setup(o){const d=V(),g=f(!1),m=f();async function _(){g.value=!0,m.value=void 0,await $.getLastRelease({returnError:!0}).then(l=>{d.latestRelease=l.data.newRelease,m.value=l.data.newRelease===null?null:l.data.newRelease===!1}).catch(()=>{m.value=null}),g.value=!1}return(l,h)=>{const b=p("FontAwesomeIcon");return r(),c("div",Z,[e("div",ee,[e("button",{type:"button",class:T([s(g)?"is-loading":"","button is-link is-rounded is-small"]),onClick:_},n(l.$t("admin.check_now")),3)]),e("div",se,[a(s(j),null,{default:w(({mode:y})=>[s(d).latestRelease?(r(),c("span",{key:0,class:T(["mt-2",y=="dark"?"has-text-warning":"has-text-warning-dark"])},[te,k(n(l.$t("admin.x_is_available",{version:s(d).latestRelease}))+" ",1),e("a",ne,n(l.$t("admin.view_on_github")),1)],2)):L("",!0),s(m)?(r(),c("span",ae,[a(b,{icon:["fas","check"],class:"mr-1 has-text-success"}),k(" "+n(l.$t("commons.you_are_up_to_date")),1)])):s(m)===null?(r(),c("span",oe,[a(b,{icon:["fas","times"],class:"mr-1 has-text-danger"}),k(n(l.$t("errors.check_failed_try_later")),1)])):L("",!0)]),_:1})])])}}},ie={class:"options-tabs"},re={class:"title is-4 pt-4 has-text-grey-light"},ce={class:"field"},ue=["innerHTML"],de=["innerHTML"],me=["innerHTML"],_e={class:"columns is-mobile is-vcentered"},he={class:"column is-narrow"},pe={class:"icon is-small"},fe={class:"field"},ge=["innerHTML"],be=["innerHTML"],ye={class:"title is-4 pt-5 has-text-grey-light"},ve={class:"title is-4 pt-5 has-text-grey-light"},ke={class:"field"},$e=["innerHTML"],Te=["innerHTML"],Ce={class:"field mb-5 is-grouped"},we={class:"control"},Le={class:"field"},Fe=["innerHTML"],Me={key:0,class:"about-debug box is-family-monospace is-size-7"},He=["value"],Se={class:"has-text-grey"},Ee={key:1,class:"about-debug box is-family-monospace is-size-7 has-text-warning-dark"},Ie={__name:"AppSetup",setup(o){const d=D("2fauth"),g=q(),m=S(),_=V(),l=G(d.prefix+"returnTo","accounts"),h=f(),b=f(null),y=f(!1),C=f(!1),R=d.config.subdirectory+"/up",U=location.hostname+d.config.subdirectory+"/up";function B(){y.value=!0,$.sendTestEmail().finally(()=>{y.value=!1})}function I(){C.value=!0,$.clearCache().then(t=>{S().success({type:"is-success",text:X("admin.cache_cleared")})}).finally(()=>{C.value=!1})}return J(t=>{t.name.startsWith("admin.")||m.clear()}),K(async()=>{await _.fetch(),$.getSystemInfos({returnError:!0}).then(t=>{h.value=t.data.common}).catch(()=>{h.value=null})}),(t,u)=>{const F=p("FormCheckbox"),A=p("FontAwesomeIcon"),N=p("FormWrapper"),x=p("ButtonBackCloseCancel"),z=p("VueFooter");return r(),c("div",null,[a(P,{activeTab:"admin.appSetup"}),e("div",ie,[a(N,null,{default:w(()=>{var M;return[e("form",null,[e("h4",re,n(t.$t("settings.general")),1),a(F,{modelValue:s(_).checkForUpdate,"onUpdate:modelValue":[u[0]||(u[0]=i=>s(_).checkForUpdate=i),u[1]||(u[1]=i=>s(E)("checkForUpdate",i))],fieldName:"checkForUpdate",label:"commons.check_for_update",help:"commons.check_for_update_help"},null,8,["modelValue"]),a(le),e("div",ce,[e("label",{class:"label",innerHTML:t.$t("admin.forms.test_email.label")},null,8,ue),e("p",{class:"help",innerHTML:t.$t("admin.forms.test_email.help")},null,8,de),e("p",{class:"help",innerHTML:t.$t("admin.forms.test_email.email_will_be_send_to_x",{email:s(g).email})},null,8,me)]),e("div",_e,[e("div",he,[e("button",{type:"button",class:T([s(y)?"is-loading":"","button is-link is-rounded is-small"]),onClick:B},[e("span",pe,[a(A,{icon:["far","paper-plane"]})]),e("span",null,n(t.$t("commons.send")),1)],2)])]),e("div",fe,[e("label",{class:"label",innerHTML:t.$t("admin.forms.health_endpoint.label")},null,8,ge),e("p",{class:"help",innerHTML:t.$t("admin.forms.health_endpoint.help")},null,8,be)]),e("div",null,[e("a",{target:"_blank",href:R},n(U))]),e("h4",ye,n(t.$t("settings.security")),1),a(F,{modelValue:s(_).useEncryption,"onUpdate:modelValue":[u[2]||(u[2]=i=>s(_).useEncryption=i),u[3]||(u[3]=i=>s(E)("useEncryption",i))],fieldName:"useEncryption",label:"admin.forms.use_encryption.label",help:"admin.forms.use_encryption.help"},null,8,["modelValue"])]),e("h4",ve,n(t.$t("commons.environment")),1),e("div",ke,[e("label",{class:"label",innerHTML:t.$t("admin.forms.cache_management.label")},null,8,$e),e("p",{class:"help",innerHTML:t.$t("admin.forms.cache_management.help")},null,8,Te)]),e("div",Ce,[e("p",we,[e("button",{type:"button",class:T([s(C)?"is-loading":"","button is-link is-rounded is-small"]),onClick:I},n(t.$t("commons.clear")),3)])]),e("div",Le,[e("label",{class:"label",innerHTML:t.$t("admin.variables")},null,8,Fe)]),s(h)?(r(),c("div",Me,[a(Y,{id:"btnCopyEnvVars",token:(M=s(b))==null?void 0:M.innerText},null,8,["token"]),e("ul",{ref_key:"listInfos",ref:b,id:"listInfos"},[(r(!0),c(O,null,Q(s(h),(i,H)=>(r(),c("li",{value:i,key:H},[e("b",null,n(H),1),k(": "),e("span",Se,n(i),1)],8,He))),128))],512)])):s(h)===null?(r(),c("div",Ee,n(t.$t("errors.error_during_data_fetching")),1)):L("",!0)]}),_:1})]),a(z,{showButtons:!0},{default:w(()=>[a(x,{returnTo:{name:s(l)},action:"close"},null,8,["returnTo"])]),_:1})])}}};export{Ie as default}; +import{_ as P}from"./AdminTabs-CH16Y5aI.js";import{a4 as W,S as V,r as f,e as p,f as r,g as c,h as e,n as T,i as s,t as n,m as a,p as w,j as k,l as L,U as j,R as D,a as q,b as S,a2 as G,a1 as J,o as K,F as O,E as Q,H as X}from"./app-CeOdx_TG.js";import{u as E}from"./appSettingsUpdater-Dgw-hmnk.js";import{_ as Y}from"./CopyButton-jPP7GkVs.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const v=W("web"),$={getSystemInfos(o={}){return v.get("system/infos",{...o})},getLastRelease(o={}){return v.get("system/latestRelease",{...o})},sendTestEmail(o={}){return v.post("system/test-email",{...o})},clearCache(o={}){return v.get("system/clear-cache",{...o})},optimize(o={}){return v.get("system/optimize",{...o})}},Z={class:"columns is-mobile is-vcentered"},ee={class:"column is-narrow"},se={class:"column"},te=e("span",{class:"release-flag"},null,-1),ne={class:"is-size-7",href:"https://github.com/Bubka/2FAuth/releases"},ae={key:1,class:"has-text-grey"},oe={key:2,class:"has-text-grey"},le={__name:"VersionChecker",setup(o){const d=V(),g=f(!1),m=f();async function _(){g.value=!0,m.value=void 0,await $.getLastRelease({returnError:!0}).then(l=>{d.latestRelease=l.data.newRelease,m.value=l.data.newRelease===null?null:l.data.newRelease===!1}).catch(()=>{m.value=null}),g.value=!1}return(l,h)=>{const b=p("FontAwesomeIcon");return r(),c("div",Z,[e("div",ee,[e("button",{type:"button",class:T([s(g)?"is-loading":"","button is-link is-rounded is-small"]),onClick:_},n(l.$t("admin.check_now")),3)]),e("div",se,[a(s(j),null,{default:w(({mode:y})=>[s(d).latestRelease?(r(),c("span",{key:0,class:T(["mt-2",y=="dark"?"has-text-warning":"has-text-warning-dark"])},[te,k(n(l.$t("admin.x_is_available",{version:s(d).latestRelease}))+" ",1),e("a",ne,n(l.$t("admin.view_on_github")),1)],2)):L("",!0),s(m)?(r(),c("span",ae,[a(b,{icon:["fas","check"],class:"mr-1 has-text-success"}),k(" "+n(l.$t("commons.you_are_up_to_date")),1)])):s(m)===null?(r(),c("span",oe,[a(b,{icon:["fas","times"],class:"mr-1 has-text-danger"}),k(n(l.$t("errors.check_failed_try_later")),1)])):L("",!0)]),_:1})])])}}},ie={class:"options-tabs"},re={class:"title is-4 pt-4 has-text-grey-light"},ce={class:"field"},ue=["innerHTML"],de=["innerHTML"],me=["innerHTML"],_e={class:"columns is-mobile is-vcentered"},he={class:"column is-narrow"},pe={class:"icon is-small"},fe={class:"field"},ge=["innerHTML"],be=["innerHTML"],ye={class:"title is-4 pt-5 has-text-grey-light"},ve={class:"title is-4 pt-5 has-text-grey-light"},ke={class:"field"},$e=["innerHTML"],Te=["innerHTML"],Ce={class:"field mb-5 is-grouped"},we={class:"control"},Le={class:"field"},Fe=["innerHTML"],Me={key:0,class:"about-debug box is-family-monospace is-size-7"},He=["value"],Se={class:"has-text-grey"},Ee={key:1,class:"about-debug box is-family-monospace is-size-7 has-text-warning-dark"},Ie={__name:"AppSetup",setup(o){const d=D("2fauth"),g=q(),m=S(),_=V(),l=G(d.prefix+"returnTo","accounts"),h=f(),b=f(null),y=f(!1),C=f(!1),R=d.config.subdirectory+"/up",U=location.hostname+d.config.subdirectory+"/up";function B(){y.value=!0,$.sendTestEmail().finally(()=>{y.value=!1})}function I(){C.value=!0,$.clearCache().then(t=>{S().success({type:"is-success",text:X("admin.cache_cleared")})}).finally(()=>{C.value=!1})}return J(t=>{t.name.startsWith("admin.")||m.clear()}),K(async()=>{await _.fetch(),$.getSystemInfos({returnError:!0}).then(t=>{h.value=t.data.common}).catch(()=>{h.value=null})}),(t,u)=>{const F=p("FormCheckbox"),A=p("FontAwesomeIcon"),N=p("FormWrapper"),x=p("ButtonBackCloseCancel"),z=p("VueFooter");return r(),c("div",null,[a(P,{activeTab:"admin.appSetup"}),e("div",ie,[a(N,null,{default:w(()=>{var M;return[e("form",null,[e("h4",re,n(t.$t("settings.general")),1),a(F,{modelValue:s(_).checkForUpdate,"onUpdate:modelValue":[u[0]||(u[0]=i=>s(_).checkForUpdate=i),u[1]||(u[1]=i=>s(E)("checkForUpdate",i))],fieldName:"checkForUpdate",label:"commons.check_for_update",help:"commons.check_for_update_help"},null,8,["modelValue"]),a(le),e("div",ce,[e("label",{class:"label",innerHTML:t.$t("admin.forms.test_email.label")},null,8,ue),e("p",{class:"help",innerHTML:t.$t("admin.forms.test_email.help")},null,8,de),e("p",{class:"help",innerHTML:t.$t("admin.forms.test_email.email_will_be_send_to_x",{email:s(g).email})},null,8,me)]),e("div",_e,[e("div",he,[e("button",{type:"button",class:T([s(y)?"is-loading":"","button is-link is-rounded is-small"]),onClick:B},[e("span",pe,[a(A,{icon:["far","paper-plane"]})]),e("span",null,n(t.$t("commons.send")),1)],2)])]),e("div",fe,[e("label",{class:"label",innerHTML:t.$t("admin.forms.health_endpoint.label")},null,8,ge),e("p",{class:"help",innerHTML:t.$t("admin.forms.health_endpoint.help")},null,8,be)]),e("div",null,[e("a",{target:"_blank",href:R},n(U))]),e("h4",ye,n(t.$t("settings.security")),1),a(F,{modelValue:s(_).useEncryption,"onUpdate:modelValue":[u[2]||(u[2]=i=>s(_).useEncryption=i),u[3]||(u[3]=i=>s(E)("useEncryption",i))],fieldName:"useEncryption",label:"admin.forms.use_encryption.label",help:"admin.forms.use_encryption.help"},null,8,["modelValue"])]),e("h4",ve,n(t.$t("commons.environment")),1),e("div",ke,[e("label",{class:"label",innerHTML:t.$t("admin.forms.cache_management.label")},null,8,$e),e("p",{class:"help",innerHTML:t.$t("admin.forms.cache_management.help")},null,8,Te)]),e("div",Ce,[e("p",we,[e("button",{type:"button",class:T([s(C)?"is-loading":"","button is-link is-rounded is-small"]),onClick:I},n(t.$t("commons.clear")),3)])]),e("div",Le,[e("label",{class:"label",innerHTML:t.$t("admin.variables")},null,8,Fe)]),s(h)?(r(),c("div",Me,[a(Y,{id:"btnCopyEnvVars",token:(M=s(b))==null?void 0:M.innerText},null,8,["token"]),e("ul",{ref_key:"listInfos",ref:b,id:"listInfos"},[(r(!0),c(O,null,Q(s(h),(i,H)=>(r(),c("li",{value:i,key:H},[e("b",null,n(H),1),k(": "),e("span",Se,n(i),1)],8,He))),128))],512)])):s(h)===null?(r(),c("div",Ee,n(t.$t("errors.error_during_data_fetching")),1)):L("",!0)]}),_:1})]),a(z,{showButtons:!0},{default:w(()=>[a(x,{returnTo:{name:s(l)},action:"close"},null,8,["returnTo"])]),_:1})])}}};export{Ie as default}; diff --git a/public/build/assets/Auth-CmKqXT21.js b/public/build/assets/Auth-C0J9t2T1.js similarity index 95% rename from public/build/assets/Auth-CmKqXT21.js rename to public/build/assets/Auth-C0J9t2T1.js index 72697812..5675bdd2 100644 --- a/public/build/assets/Auth-CmKqXT21.js +++ b/public/build/assets/Auth-C0J9t2T1.js @@ -1 +1 @@ -import{_ as h}from"./AdminTabs-Bl1-NjaF.js";import{R as y,b as k,S as D,a2 as E,r as C,a1 as F,o as N,e as n,f as v,g as B,m as i,h as u,p as f,t as g,i as s,a7 as U,H as x}from"./app-CYV6HkYG.js";import{u as a}from"./appSettingsUpdater-CrpPSh5Y.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const L={class:"options-tabs"},I={class:"title is-4 pt-4 has-text-grey-light"},O={class:"title is-4 pt-4 has-text-grey-light"},W={__name:"Auth",setup(T){const V=y("2fauth"),m=k(),l=D(),R=E(V.prefix+"returnTo","accounts"),d=C({restrictList:null,restrictRule:null});async function p(r,e){if(d.value[r]=null,e=="")U.delete(r,{returnError:!0}).then(o=>{l[r]="",m.success({type:"is-success",text:x("settings.forms.setting_saved")})}).catch(o=>{o.response.status!==404&&m.error(o)});else{const{error:o}=await a(r,e,!0);o&&(d.value[r]=o.response.data.message)}}return F(r=>{r.name.startsWith("admin.")||m.clear()}),N(async()=>{await l.fetch()}),(r,e)=>{const o=n("FormCheckbox"),b=n("FormField"),c=n("FormWrapper"),S=n("ButtonBackCloseCancel"),_=n("VueFooter");return v(),B("div",null,[i(h,{activeTab:"admin.auth"}),u("div",L,[i(c,null,{default:f(()=>[u("form",null,[u("h4",I,g(r.$t("admin.single_sign_on")),1),i(o,{modelValue:s(l).enableSso,"onUpdate:modelValue":[e[0]||(e[0]=t=>s(l).enableSso=t),e[1]||(e[1]=t=>s(a)("enableSso",t))],fieldName:"enableSso",label:"admin.forms.enable_sso.label",help:"admin.forms.enable_sso.help"},null,8,["modelValue"]),i(o,{modelValue:s(l).useSsoOnly,"onUpdate:modelValue":[e[2]||(e[2]=t=>s(l).useSsoOnly=t),e[3]||(e[3]=t=>s(a)("useSsoOnly",t))],fieldName:"useSsoOnly",label:"admin.forms.use_sso_only.label",help:"admin.forms.use_sso_only.help",isDisabled:!s(l).enableSso,isIndented:!0},null,8,["modelValue","isDisabled"]),u("h4",O,g(r.$t("admin.registrations")),1),i(o,{modelValue:s(l).restrictRegistration,"onUpdate:modelValue":[e[4]||(e[4]=t=>s(l).restrictRegistration=t),e[5]||(e[5]=t=>s(a)("restrictRegistration",t))],fieldName:"restrictRegistration",isDisabled:s(l).disableRegistration,label:"admin.forms.restrict_registration.label",help:"admin.forms.restrict_registration.help"},null,8,["modelValue","isDisabled"]),i(b,{modelValue:s(l).restrictList,"onUpdate:modelValue":e[6]||(e[6]=t=>s(l).restrictList=t),"onChange:modelValue":e[7]||(e[7]=t=>p("restrictList",t)),fieldError:s(d).restrictList,fieldName:"restrictList",isDisabled:!s(l).restrictRegistration||s(l).disableRegistration,label:"admin.forms.restrict_list.label",help:"admin.forms.restrict_list.help",isIndented:!0},null,8,["modelValue","fieldError","isDisabled"]),i(b,{modelValue:s(l).restrictRule,"onUpdate:modelValue":e[8]||(e[8]=t=>s(l).restrictRule=t),"onChange:modelValue":e[9]||(e[9]=t=>p("restrictRule",t)),fieldError:s(d).restrictRule,fieldName:"restrictRule",isDisabled:!s(l).restrictRegistration||s(l).disableRegistration,label:"admin.forms.restrict_rule.label",help:"admin.forms.restrict_rule.help",isIndented:!0,leftIcon:"slash",rightIcon:"slash"},null,8,["modelValue","fieldError","isDisabled"]),i(o,{modelValue:s(l).disableRegistration,"onUpdate:modelValue":[e[10]||(e[10]=t=>s(l).disableRegistration=t),e[11]||(e[11]=t=>s(a)("disableRegistration",t))],fieldName:"disableRegistration",label:"admin.forms.disable_registration.label",help:"admin.forms.disable_registration.help"},null,8,["modelValue"]),i(o,{modelValue:s(l).keepSsoRegistrationEnabled,"onUpdate:modelValue":[e[12]||(e[12]=t=>s(l).keepSsoRegistrationEnabled=t),e[13]||(e[13]=t=>s(a)("keepSsoRegistrationEnabled",t))],fieldName:"keepSsoRegistrationEnabled",isDisabled:!s(l).enableSso||!s(l).disableRegistration,label:"admin.forms.keep_sso_registration_enabled.label",help:"admin.forms.keep_sso_registration_enabled.help",isIndented:!0},null,8,["modelValue","isDisabled"])])]),_:1})]),i(_,{showButtons:!0},{default:f(()=>[i(S,{returnTo:{name:s(R)},action:"close"},null,8,["returnTo"])]),_:1})])}}};export{W as default}; +import{_ as h}from"./AdminTabs-CH16Y5aI.js";import{R as y,b as k,S as D,a2 as E,r as C,a1 as F,o as N,e as n,f as v,g as B,m as i,h as u,p as f,t as g,i as s,a7 as U,H as x}from"./app-CeOdx_TG.js";import{u as a}from"./appSettingsUpdater-Dgw-hmnk.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const L={class:"options-tabs"},I={class:"title is-4 pt-4 has-text-grey-light"},O={class:"title is-4 pt-4 has-text-grey-light"},W={__name:"Auth",setup(T){const V=y("2fauth"),m=k(),l=D(),R=E(V.prefix+"returnTo","accounts"),d=C({restrictList:null,restrictRule:null});async function p(r,e){if(d.value[r]=null,e=="")U.delete(r,{returnError:!0}).then(o=>{l[r]="",m.success({type:"is-success",text:x("settings.forms.setting_saved")})}).catch(o=>{o.response.status!==404&&m.error(o)});else{const{error:o}=await a(r,e,!0);o&&(d.value[r]=o.response.data.message)}}return F(r=>{r.name.startsWith("admin.")||m.clear()}),N(async()=>{await l.fetch()}),(r,e)=>{const o=n("FormCheckbox"),b=n("FormField"),c=n("FormWrapper"),S=n("ButtonBackCloseCancel"),_=n("VueFooter");return v(),B("div",null,[i(h,{activeTab:"admin.auth"}),u("div",L,[i(c,null,{default:f(()=>[u("form",null,[u("h4",I,g(r.$t("admin.single_sign_on")),1),i(o,{modelValue:s(l).enableSso,"onUpdate:modelValue":[e[0]||(e[0]=t=>s(l).enableSso=t),e[1]||(e[1]=t=>s(a)("enableSso",t))],fieldName:"enableSso",label:"admin.forms.enable_sso.label",help:"admin.forms.enable_sso.help"},null,8,["modelValue"]),i(o,{modelValue:s(l).useSsoOnly,"onUpdate:modelValue":[e[2]||(e[2]=t=>s(l).useSsoOnly=t),e[3]||(e[3]=t=>s(a)("useSsoOnly",t))],fieldName:"useSsoOnly",label:"admin.forms.use_sso_only.label",help:"admin.forms.use_sso_only.help",isDisabled:!s(l).enableSso,isIndented:!0},null,8,["modelValue","isDisabled"]),u("h4",O,g(r.$t("admin.registrations")),1),i(o,{modelValue:s(l).restrictRegistration,"onUpdate:modelValue":[e[4]||(e[4]=t=>s(l).restrictRegistration=t),e[5]||(e[5]=t=>s(a)("restrictRegistration",t))],fieldName:"restrictRegistration",isDisabled:s(l).disableRegistration,label:"admin.forms.restrict_registration.label",help:"admin.forms.restrict_registration.help"},null,8,["modelValue","isDisabled"]),i(b,{modelValue:s(l).restrictList,"onUpdate:modelValue":e[6]||(e[6]=t=>s(l).restrictList=t),"onChange:modelValue":e[7]||(e[7]=t=>p("restrictList",t)),fieldError:s(d).restrictList,fieldName:"restrictList",isDisabled:!s(l).restrictRegistration||s(l).disableRegistration,label:"admin.forms.restrict_list.label",help:"admin.forms.restrict_list.help",isIndented:!0},null,8,["modelValue","fieldError","isDisabled"]),i(b,{modelValue:s(l).restrictRule,"onUpdate:modelValue":e[8]||(e[8]=t=>s(l).restrictRule=t),"onChange:modelValue":e[9]||(e[9]=t=>p("restrictRule",t)),fieldError:s(d).restrictRule,fieldName:"restrictRule",isDisabled:!s(l).restrictRegistration||s(l).disableRegistration,label:"admin.forms.restrict_rule.label",help:"admin.forms.restrict_rule.help",isIndented:!0,leftIcon:"slash",rightIcon:"slash"},null,8,["modelValue","fieldError","isDisabled"]),i(o,{modelValue:s(l).disableRegistration,"onUpdate:modelValue":[e[10]||(e[10]=t=>s(l).disableRegistration=t),e[11]||(e[11]=t=>s(a)("disableRegistration",t))],fieldName:"disableRegistration",label:"admin.forms.disable_registration.label",help:"admin.forms.disable_registration.help"},null,8,["modelValue"]),i(o,{modelValue:s(l).keepSsoRegistrationEnabled,"onUpdate:modelValue":[e[12]||(e[12]=t=>s(l).keepSsoRegistrationEnabled=t),e[13]||(e[13]=t=>s(a)("keepSsoRegistrationEnabled",t))],fieldName:"keepSsoRegistrationEnabled",isDisabled:!s(l).enableSso||!s(l).disableRegistration,label:"admin.forms.keep_sso_registration_enabled.label",help:"admin.forms.keep_sso_registration_enabled.help",isIndented:!0},null,8,["modelValue","isDisabled"])])]),_:1})]),i(_,{showButtons:!0},{default:f(()=>[i(S,{returnTo:{name:s(R)},action:"close"},null,8,["returnTo"])]),_:1})])}}};export{W as default}; diff --git a/public/build/assets/Capture-CfKxVMuO.js b/public/build/assets/Capture-CjOu-0oN.js similarity index 99% rename from public/build/assets/Capture-CfKxVMuO.js rename to public/build/assets/Capture-CjOu-0oN.js index aa09895c..25265249 100644 --- a/public/build/assets/Capture-CfKxVMuO.js +++ b/public/build/assets/Capture-CjOu-0oN.js @@ -1,3 +1,3 @@ -import{q as So,r as ne,s as Be,o as Wr,v as Po,x as Ut,f as ue,g as ge,h as I,y as Eo,z as Ht,A as Ur,B as Oo,u as Ao,b as Mo,d as xo,e as Lt,i as Z,t as Se,m as pe,p as Nt,C as ko,k as _r,l as Tr,D as $r,F as Sr,E as Do,G as jo,n as Pr,U as Er,H as Or}from"./app-CYV6HkYG.js";import{F as Ro}from"./Form-DWTCaq3y.js";import{S as Fo}from"./Spinner-DAB1mDqh.js";import{_ as Io}from"./QrContentDisplay-BGd7upKu.js";import{u as Wo}from"./bus-9R_lUvV0.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */var Lr=(r,i,a)=>{if(!i.has(r))throw TypeError("Cannot "+a)},Ar=(r,i,a)=>(Lr(r,i,"read from private field"),a?a.call(r):i.get(r)),Uo=(r,i,a)=>{if(i.has(r))throw TypeError("Cannot add the same private member more than once");i instanceof WeakSet?i.add(r):i.set(r,a)},Lo=(r,i,a,c)=>(Lr(r,i,"write to private field"),c?c.call(r,a):i.set(r,a),a);const Nr=[["aztec","Aztec"],["code_128","Code128"],["code_39","Code39"],["code_93","Code93"],["codabar","Codabar"],["databar","DataBar"],["databar_expanded","DataBarExpanded"],["data_matrix","DataMatrix"],["dx_film_edge","DXFilmEdge"],["ean_13","EAN-13"],["ean_8","EAN-8"],["itf","ITF"],["maxi_code","MaxiCode"],["micro_qr_code","MicroQRCode"],["pdf417","PDF417"],["qr_code","QRCode"],["rm_qr_code","rMQRCode"],["upc_a","UPC-A"],["upc_e","UPC-E"],["linear_codes","Linear-Codes"],["matrix_codes","Matrix-Codes"]],No=[...Nr,["unknown"]].map(r=>r[0]),lt=new Map(Nr);function Ho(r){for(const[i,a]of lt)if(r===a)return i;return"unknown"}function Vo(r){if(Hr(r))return{width:r.naturalWidth,height:r.naturalHeight};if(Vr(r))return{width:r.width.baseVal.value,height:r.height.baseVal.value};if(Br(r))return{width:r.videoWidth,height:r.videoHeight};if(Gr(r))return{width:r.width,height:r.height};if(Jr(r))return{width:r.displayWidth,height:r.displayHeight};if(zr(r))return{width:r.width,height:r.height};if(qr(r))return{width:r.width,height:r.height};throw new TypeError("The provided value is not of type '(Blob or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or ImageData or OffscreenCanvas or SVGImageElement or VideoFrame)'.")}function Hr(r){try{return r instanceof HTMLImageElement}catch{return!1}}function Vr(r){try{return r instanceof SVGImageElement}catch{return!1}}function Br(r){try{return r instanceof HTMLVideoElement}catch{return!1}}function zr(r){try{return r instanceof HTMLCanvasElement}catch{return!1}}function Gr(r){try{return r instanceof ImageBitmap}catch{return!1}}function qr(r){try{return r instanceof OffscreenCanvas}catch{return!1}}function Jr(r){try{return r instanceof VideoFrame}catch{return!1}}function Yr(r){try{return r instanceof Blob}catch{return!1}}function Bo(r){try{return r instanceof ImageData}catch{return!1}}function zo(r,i){try{const a=new OffscreenCanvas(r,i);if(a.getContext("2d")instanceof OffscreenCanvasRenderingContext2D)return a;throw void 0}catch{const c=document.createElement("canvas");return c.width=r,c.height=i,c}}async function Qr(r){if(Hr(r)&&!await Yo(r))throw new DOMException("Failed to load or decode HTMLImageElement.","InvalidStateError");if(Vr(r)&&!await Qo(r))throw new DOMException("Failed to load or decode SVGImageElement.","InvalidStateError");if(Jr(r)&&Xo(r))throw new DOMException("VideoFrame is closed.","InvalidStateError");if(Br(r)&&(r.readyState===0||r.readyState===1))throw new DOMException("Invalid element or state.","InvalidStateError");if(Gr(r)&&Zo(r))throw new DOMException("The image source is detached.","InvalidStateError");const{width:i,height:a}=Vo(r);if(i===0||a===0)return null;const c=zo(i,a).getContext("2d");c.drawImage(r,0,0);try{return c.getImageData(0,0,i,a)}catch{throw new DOMException("Source would taint origin.","SecurityError")}}async function Go(r){let i;try{if(globalThis.createImageBitmap)i=await createImageBitmap(r);else if(globalThis.Image){i=new Image;let a="";try{a=URL.createObjectURL(r),i.src=a,await i.decode()}finally{URL.revokeObjectURL(a)}}else return r}catch{throw new DOMException("Failed to load or decode Blob.","InvalidStateError")}return await Qr(i)}function qo(r){const{width:i,height:a}=r;if(i===0||a===0)return null;const c=r.getContext("2d");try{return c.getImageData(0,0,i,a)}catch{throw new DOMException("Source would taint origin.","SecurityError")}}async function Jo(r){if(Yr(r))return await Go(r);if(Bo(r)){if(Ko(r))throw new DOMException("The image data has been detached.","InvalidStateError");return r}return zr(r)||qr(r)?qo(r):await Qr(r)}async function Yo(r){try{return await r.decode(),!0}catch{return!1}}async function Qo(r){var i;try{return await((i=r.decode)==null?void 0:i.call(r)),!0}catch{return!1}}function Xo(r){return r.format===null}function Ko(r){return r.data.buffer.byteLength===0}function Zo(r){return r.width===0&&r.height===0}function Mr(r,i){return r instanceof DOMException?new DOMException(`${i}: ${r.message}`,r.name):r instanceof Error?new r.constructor(`${i}: ${r.message}`):new Error(`${i}: ${r}`)}const xr=["Aztec","Codabar","Code128","Code39","Code93","DataBar","DataBarExpanded","DataMatrix","DXFilmEdge","EAN-13","EAN-8","ITF","Linear-Codes","Matrix-Codes","MaxiCode","MicroQRCode","None","PDF417","QRCode","rMQRCode","UPC-A","UPC-E"];function ei(r){return r.join("|")}function ti(r){const i=kr(r);let a=0,c=xr.length-1;for(;a<=c;){const f=Math.floor((a+c)/2),m=xr[f],v=kr(m);if(v===i)return m;v{const a=r.match(/_(.+?)\.wasm$/);return a?`https://fastly.jsdelivr.net/npm/zxing-wasm@1.1.3/dist/${a[1]}/${r}`:i+r}};let Dr=new WeakMap;function Bt(r,i){var a;const c=Dr.get(r);if(c!=null&&c.modulePromise&&(i===void 0||Object.is(i,c.moduleOverrides)))return c.modulePromise;const f=(a=i??(c==null?void 0:c.moduleOverrides))!=null?a:ci,m=r({...f});return Dr.set(r,{moduleOverrides:f,modulePromise:m}),m}async function ui(r,i,a=De){const c={...De,...a},f=await Bt(r),{size:m}=i,v=new Uint8Array(await i.arrayBuffer()),C=f._malloc(m);f.HEAPU8.set(v,C);const h=f.readBarcodesFromImage(C,m,Xr(f,c));f._free(C);const w=[];for(let _=0;_{var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(i={}){var a=i,c,f;a.ready=new Promise((e,t)=>{c=e,f=t});var m=Object.assign({},a),v="./this.program",C=typeof window=="object",h=typeof importScripts=="function";typeof process=="object"&&typeof process.versions=="object"&&process.versions.node;var w="";function _(e){return a.locateFile?a.locateFile(e,w):w+e}var b;(C||h)&&(h?w=self.location.href:typeof document<"u"&&document.currentScript&&(w=document.currentScript.src),r&&(w=r),w.indexOf("blob:")!==0?w=w.substr(0,w.replace(/[?#].*/,"").lastIndexOf("/")+1):w="",h&&(b=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)})),a.print||console.log.bind(console);var D=a.printErr||console.error.bind(console);Object.assign(a,m),m=null,a.arguments&&a.arguments,a.thisProgram&&(v=a.thisProgram),a.quit&&a.quit;var j;a.wasmBinary&&(j=a.wasmBinary),typeof WebAssembly!="object"&&te("no native wasm support detected");var k,W=!1,L,P,F,x,S,A,N,ae;function Pe(){var e=k.buffer;a.HEAP8=L=new Int8Array(e),a.HEAP16=F=new Int16Array(e),a.HEAPU8=P=new Uint8Array(e),a.HEAPU16=x=new Uint16Array(e),a.HEAP32=S=new Int32Array(e),a.HEAPU32=A=new Uint32Array(e),a.HEAPF32=N=new Float32Array(e),a.HEAPF64=ae=new Float64Array(e)}var Ee=[],je=[],Re=[];function Ge(){if(a.preRun)for(typeof a.preRun=="function"&&(a.preRun=[a.preRun]);a.preRun.length;)mt(a.preRun.shift());bt(Ee)}function ht(){bt(je)}function pt(){if(a.postRun)for(typeof a.postRun=="function"&&(a.postRun=[a.postRun]);a.postRun.length;)Fe(a.postRun.shift());bt(Re)}function mt(e){Ee.unshift(e)}function vt(e){je.unshift(e)}function Fe(e){Re.unshift(e)}var ie=0,_e=null;function yt(e){var t;ie++,(t=a.monitorRunDependencies)===null||t===void 0||t.call(a,ie)}function ve(e){var t;if(ie--,(t=a.monitorRunDependencies)===null||t===void 0||t.call(a,ie),ie==0&&_e){var n=_e;_e=null,n()}}function te(e){var t;(t=a.onAbort)===null||t===void 0||t.call(a,e),e="Aborted("+e+")",D(e),W=!0,e+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(e);throw f(n),n}var gt="data:application/octet-stream;base64,",qe=e=>e.startsWith(gt),ye;ye="zxing_reader.wasm",qe(ye)||(ye=_(ye));function Je(e){if(e==ye&&j)return new Uint8Array(j);if(b)return b(e);throw"both async and sync fetching of the wasm failed"}function wt(e){return!j&&(C||h)&&typeof fetch=="function"?fetch(e,{credentials:"same-origin"}).then(t=>{if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";return t.arrayBuffer()}).catch(()=>Je(e)):Promise.resolve().then(()=>Je(e))}function Ye(e,t,n){return wt(e).then(o=>WebAssembly.instantiate(o,t)).then(o=>o).then(n,o=>{D(`failed to asynchronously prepare wasm: ${o}`),te(o)})}function pn(e,t,n,o){return!e&&typeof WebAssembly.instantiateStreaming=="function"&&!qe(t)&&typeof fetch=="function"?fetch(t,{credentials:"same-origin"}).then(s=>{var u=WebAssembly.instantiateStreaming(s,n);return u.then(o,function(l){return D(`wasm streaming compile failed: ${l}`),D("falling back to ArrayBuffer instantiation"),Ye(t,n,o)})}):Ye(t,n,o)}function mn(){var e={a:ro};function t(o,s){return Y=o.exports,k=Y.ia,Pe(),tr=Y.ma,vt(Y.ja),ve(),Y}yt();function n(o){t(o.instance)}if(a.instantiateWasm)try{return a.instantiateWasm(e,t)}catch(o){D(`Module.instantiateWasm callback failed with error: ${o}`),f(o)}return pn(j,ye,e,n).catch(f),{}}var bt=e=>{for(;e.length>0;)e.shift()(a)};a.noExitRuntime;var Qe=[],Xe=0,vn=e=>{var t=new Ct(e);return t.get_caught()||(t.set_caught(!0),Xe--),t.set_rethrown(!1),Qe.push(t),mr(t.excPtr),t.get_exception_ptr()},de=0,yn=()=>{H(0,0);var e=Qe.pop();pr(e.excPtr),de=0};function Ct(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(t){A[this.ptr+4>>2]=t},this.get_type=function(){return A[this.ptr+4>>2]},this.set_destructor=function(t){A[this.ptr+8>>2]=t},this.get_destructor=function(){return A[this.ptr+8>>2]},this.set_caught=function(t){t=t?1:0,L[this.ptr+12>>0]=t},this.get_caught=function(){return L[this.ptr+12>>0]!=0},this.set_rethrown=function(t){t=t?1:0,L[this.ptr+13>>0]=t},this.get_rethrown=function(){return L[this.ptr+13>>0]!=0},this.init=function(t,n){this.set_adjusted_ptr(0),this.set_type(t),this.set_destructor(n)},this.set_adjusted_ptr=function(t){A[this.ptr+16>>2]=t},this.get_adjusted_ptr=function(){return A[this.ptr+16>>2]},this.get_exception_ptr=function(){var t=yr(this.get_type());if(t)return A[this.excPtr>>2];var n=this.get_adjusted_ptr();return n!==0?n:this.excPtr}}var gn=e=>{throw de||(de=e),de},_t=e=>{var t=de;if(!t)return Ve(0),0;var n=new Ct(t);n.set_adjusted_ptr(t);var o=n.get_type();if(!o)return Ve(0),t;for(var s in e){var u=e[s];if(u===0||u===o)break;var l=n.ptr+16;if(vr(u,o,l))return Ve(u),t}return Ve(o),t},wn=()=>_t([]),bn=e=>_t([e]),Cn=(e,t)=>_t([e,t]),_n=()=>{var e=Qe.pop();e||te("no exception to throw");var t=e.excPtr;throw e.get_rethrown()||(Qe.push(e),e.set_rethrown(!0),e.set_caught(!1),Xe++),de=t,de},Tn=(e,t,n)=>{var o=new Ct(e);throw o.init(t,n),de=e,Xe++,de},$n=()=>Xe,Ke={},Tt=e=>{for(;e.length;){var t=e.pop(),n=e.pop();n(t)}};function $t(e){return this.fromWireType(S[e>>2])}var Oe={},Te={},Ze={},Gt,et=e=>{throw new Gt(e)},$e=(e,t,n)=>{e.forEach(function(d){Ze[d]=t});function o(d){var p=n(d);p.length!==e.length&&et("Mismatched type converter count");for(var g=0;g{Te.hasOwnProperty(d)?s[p]=Te[d]:(u.push(d),Oe.hasOwnProperty(d)||(Oe[d]=[]),Oe[d].push(()=>{s[p]=Te[d],++l,l===u.length&&o(s)}))}),u.length===0&&o(s)},Sn=e=>{var t=Ke[e];delete Ke[e];var n=t.rawConstructor,o=t.rawDestructor,s=t.fields,u=s.map(l=>l.getterReturnType).concat(s.map(l=>l.setterArgumentType));$e([e],u,l=>{var d={};return s.forEach((p,g)=>{var T=p.fieldName,E=l[g],O=p.getter,M=p.getterContext,V=l[g+s.length],q=p.setter,U=p.setterContext;d[T]={read:K=>E.fromWireType(O(M,K)),write:(K,y)=>{var $=[];q(U,K,V.toWireType($,y)),Tt($)}}}),[{name:t.name,fromWireType:p=>{var g={};for(var T in d)g[T]=d[T].read(p);return o(p),g},toWireType:(p,g)=>{for(var T in d)if(!(T in g))throw new TypeError(`Missing field: "${T}"`);var E=n();for(T in d)d[T].write(E,g[T]);return p!==null&&p.push(o,E),E},argPackAdvance:ce,readValueFromPointer:$t,destructorFunction:o}]})},Pn=(e,t,n,o,s)=>{},En=()=>{for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);qt=e},qt,X=e=>{for(var t="",n=e;P[n];)t+=qt[P[n++]];return t},Ae,R=e=>{throw new Ae(e)};function On(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var o=t.name;if(e||R(`type "${o}" must have a positive integer typeid pointer`),Te.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;R(`Cannot register type '${o}' twice`)}if(Te[e]=t,delete Ze[e],Oe.hasOwnProperty(e)){var s=Oe[e];delete Oe[e],s.forEach(u=>u())}}function se(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return On(e,t,n)}var ce=8,An=(e,t,n,o)=>{t=X(t),se(e,{name:t,fromWireType:function(s){return!!s},toWireType:function(s,u){return u?n:o},argPackAdvance:ce,readValueFromPointer:function(s){return this.fromWireType(P[s])},destructorFunction:null})},Mn=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),St=e=>{function t(n){return n.$$.ptrType.registeredClass.name}R(t(e)+" instance already deleted")},Pt=!1,Jt=e=>{},xn=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Yt=e=>{e.count.value-=1;var t=e.count.value===0;t&&xn(e)},Qt=(e,t,n)=>{if(t===n)return e;if(n.baseClass===void 0)return null;var o=Qt(e,t,n.baseClass);return o===null?null:n.downcast(o)},Xt={},kn=()=>Object.keys(Ue).length,Dn=()=>{var e=[];for(var t in Ue)Ue.hasOwnProperty(t)&&e.push(Ue[t]);return e},Ie=[],Et=()=>{for(;Ie.length;){var e=Ie.pop();e.$$.deleteScheduled=!1,e.delete()}},We,jn=e=>{We=e,Ie.length&&We&&We(Et)},Rn=()=>{a.getInheritedInstanceCount=kn,a.getLiveInheritedInstances=Dn,a.flushPendingDeletes=Et,a.setDelayFunction=jn},Ue={},Fn=(e,t)=>{for(t===void 0&&R("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t},In=(e,t)=>(t=Fn(e,t),Ue[t]),tt=(e,t)=>{(!t.ptrType||!t.ptr)&&et("makeClassHandle requires ptr and ptrType");var n=!!t.smartPtrType,o=!!t.smartPtr;return n!==o&&et("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Le(Object.create(e,{$$:{value:t,writable:!0}}))};function Wn(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=In(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var o=n.clone();return this.destructor(e),o}function s(){return this.isSmartPointer?tt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):tt(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var u=this.registeredClass.getActualType(t),l=Xt[u];if(!l)return s.call(this);var d;this.isConst?d=l.constPointerType:d=l.pointerType;var p=Qt(t,this.registeredClass,d.registeredClass);return p===null?s.call(this):this.isSmartPointer?tt(d.registeredClass.instancePrototype,{ptrType:d,ptr:p,smartPtrType:this,smartPtr:e}):tt(d.registeredClass.instancePrototype,{ptrType:d,ptr:p})}var Le=e=>typeof FinalizationRegistry>"u"?(Le=t=>t,e):(Pt=new FinalizationRegistry(t=>{Yt(t.$$)}),Le=t=>{var n=t.$$,o=!!n.smartPtr;if(o){var s={$$:n};Pt.register(t,s,t)}return t},Jt=t=>Pt.unregister(t),Le(e)),Un=()=>{Object.assign(rt.prototype,{isAliasOf(e){if(!(this instanceof rt)||!(e instanceof rt))return!1;var t=this.$$.ptrType.registeredClass,n=this.$$.ptr;e.$$=e.$$;for(var o=e.$$.ptrType.registeredClass,s=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;o.baseClass;)s=o.upcast(s),o=o.baseClass;return t===o&&n===s},clone(){if(this.$$.ptr||St(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=Le(Object.create(Object.getPrototypeOf(this),{$$:{value:Mn(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||St(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&R("Object already scheduled for deletion"),Jt(this),Yt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||St(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&R("Object already scheduled for deletion"),Ie.push(this),Ie.length===1&&We&&We(Et),this.$$.deleteScheduled=!0,this}})};function rt(){}var Ne=(e,t)=>Object.defineProperty(t,"name",{value:e}),Kt=(e,t,n)=>{if(e[t].overloadTable===void 0){var o=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||R(`Function '${n}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[o.argCount]=o}},Ot=(e,t,n)=>{a.hasOwnProperty(e)?((n===void 0||a[e].overloadTable!==void 0&&a[e].overloadTable[n]!==void 0)&&R(`Cannot register public name '${e}' twice`),Kt(a,e,e),a.hasOwnProperty(n)&&R(`Cannot register multiple overloads of a function with the same number of arguments (${n})!`),a[e].overloadTable[n]=t):(a[e]=t,n!==void 0&&(a[e].numArguments=n))},Ln=48,Nn=57,Hn=e=>{if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");var t=e.charCodeAt(0);return t>=Ln&&t<=Nn?`_${e}`:e};function Vn(e,t,n,o,s,u,l,d){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=o,this.baseClass=s,this.getActualType=u,this.upcast=l,this.downcast=d,this.pureVirtualFunctions=[]}var At=(e,t,n)=>{for(;t!==n;)t.upcast||R(`Expected null or instance of ${n.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e};function Bn(e,t){if(t===null)return this.isReference&&R(`null is not a valid ${this.name}`),0;t.$$||R(`Cannot pass "${jt(t)}" as a ${this.name}`),t.$$.ptr||R(`Cannot pass deleted object as a pointer of type ${this.name}`);var n=t.$$.ptrType.registeredClass,o=At(t.$$.ptr,n,this.registeredClass);return o}function zn(e,t){var n;if(t===null)return this.isReference&&R(`null is not a valid ${this.name}`),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;(!t||!t.$$)&&R(`Cannot pass "${jt(t)}" as a ${this.name}`),t.$$.ptr||R(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&R(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var o=t.$$.ptrType.registeredClass;if(n=At(t.$$.ptr,o,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&R("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:R(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var s=t.clone();n=this.rawShare(n,fe.toHandle(()=>s.delete())),e!==null&&e.push(this.rawDestructor,n)}break;default:R("Unsupporting sharing policy")}return n}function Gn(e,t){if(t===null)return this.isReference&&R(`null is not a valid ${this.name}`),0;t.$$||R(`Cannot pass "${jt(t)}" as a ${this.name}`),t.$$.ptr||R(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&R(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass,o=At(t.$$.ptr,n,this.registeredClass);return o}function Zt(e){return this.fromWireType(A[e>>2])}var qn=()=>{Object.assign(nt.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){var t;(t=this.rawDestructor)===null||t===void 0||t.call(this,e)},argPackAdvance:ce,readValueFromPointer:Zt,deleteObject(e){e!==null&&e.delete()},fromWireType:Wn})};function nt(e,t,n,o,s,u,l,d,p,g,T){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=o,this.isSmartPointer=s,this.pointeeType=u,this.sharingPolicy=l,this.rawGetPointee=d,this.rawConstructor=p,this.rawShare=g,this.rawDestructor=T,!s&&t.baseClass===void 0?o?(this.toWireType=Bn,this.destructorFunction=null):(this.toWireType=Gn,this.destructorFunction=null):this.toWireType=zn}var er=(e,t,n)=>{a.hasOwnProperty(e)||et("Replacing nonexistant public symbol"),a[e].overloadTable!==void 0&&n!==void 0?a[e].overloadTable[n]=t:(a[e]=t,a[e].argCount=n)},Jn=(e,t,n)=>{var o=a["dynCall_"+e];return n&&n.length?o.apply(null,[t].concat(n)):o.call(null,t)},at=[],tr,B=e=>{var t=at[e];return t||(e>=at.length&&(at.length=e+1),at[e]=t=tr.get(e)),t},Yn=(e,t,n)=>{if(e.includes("j"))return Jn(e,t,n);var o=B(t).apply(null,n);return o},Qn=(e,t)=>{var n=[];return function(){return n.length=0,Object.assign(n,arguments),Yn(e,t,n)}},oe=(e,t)=>{e=X(e);function n(){return e.includes("j")?Qn(e,t):B(t)}var o=n();return typeof o!="function"&&R(`unknown function pointer with signature ${e}: ${t}`),o},Xn=(e,t)=>{var n=Ne(t,function(o){this.name=t,this.message=o;var s=new Error(o).stack;s!==void 0&&(this.stack=this.toString()+` +import{q as So,r as ne,s as Be,o as Wr,v as Po,x as Ut,f as ue,g as ge,h as I,y as Eo,z as Ht,A as Ur,B as Oo,u as Ao,b as Mo,d as xo,e as Lt,i as Z,t as Se,m as pe,p as Nt,C as ko,k as _r,l as Tr,D as $r,F as Sr,E as Do,G as jo,n as Pr,U as Er,H as Or}from"./app-CeOdx_TG.js";import{F as Ro}from"./Form-BSfNB4q6.js";import{S as Fo}from"./Spinner-BwxI0ALn.js";import{_ as Io}from"./QrContentDisplay-CxQyxV0P.js";import{u as Wo}from"./bus-Sx3kCjbz.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */var Lr=(r,i,a)=>{if(!i.has(r))throw TypeError("Cannot "+a)},Ar=(r,i,a)=>(Lr(r,i,"read from private field"),a?a.call(r):i.get(r)),Uo=(r,i,a)=>{if(i.has(r))throw TypeError("Cannot add the same private member more than once");i instanceof WeakSet?i.add(r):i.set(r,a)},Lo=(r,i,a,c)=>(Lr(r,i,"write to private field"),c?c.call(r,a):i.set(r,a),a);const Nr=[["aztec","Aztec"],["code_128","Code128"],["code_39","Code39"],["code_93","Code93"],["codabar","Codabar"],["databar","DataBar"],["databar_expanded","DataBarExpanded"],["data_matrix","DataMatrix"],["dx_film_edge","DXFilmEdge"],["ean_13","EAN-13"],["ean_8","EAN-8"],["itf","ITF"],["maxi_code","MaxiCode"],["micro_qr_code","MicroQRCode"],["pdf417","PDF417"],["qr_code","QRCode"],["rm_qr_code","rMQRCode"],["upc_a","UPC-A"],["upc_e","UPC-E"],["linear_codes","Linear-Codes"],["matrix_codes","Matrix-Codes"]],No=[...Nr,["unknown"]].map(r=>r[0]),lt=new Map(Nr);function Ho(r){for(const[i,a]of lt)if(r===a)return i;return"unknown"}function Vo(r){if(Hr(r))return{width:r.naturalWidth,height:r.naturalHeight};if(Vr(r))return{width:r.width.baseVal.value,height:r.height.baseVal.value};if(Br(r))return{width:r.videoWidth,height:r.videoHeight};if(Gr(r))return{width:r.width,height:r.height};if(Jr(r))return{width:r.displayWidth,height:r.displayHeight};if(zr(r))return{width:r.width,height:r.height};if(qr(r))return{width:r.width,height:r.height};throw new TypeError("The provided value is not of type '(Blob or HTMLCanvasElement or HTMLImageElement or HTMLVideoElement or ImageBitmap or ImageData or OffscreenCanvas or SVGImageElement or VideoFrame)'.")}function Hr(r){try{return r instanceof HTMLImageElement}catch{return!1}}function Vr(r){try{return r instanceof SVGImageElement}catch{return!1}}function Br(r){try{return r instanceof HTMLVideoElement}catch{return!1}}function zr(r){try{return r instanceof HTMLCanvasElement}catch{return!1}}function Gr(r){try{return r instanceof ImageBitmap}catch{return!1}}function qr(r){try{return r instanceof OffscreenCanvas}catch{return!1}}function Jr(r){try{return r instanceof VideoFrame}catch{return!1}}function Yr(r){try{return r instanceof Blob}catch{return!1}}function Bo(r){try{return r instanceof ImageData}catch{return!1}}function zo(r,i){try{const a=new OffscreenCanvas(r,i);if(a.getContext("2d")instanceof OffscreenCanvasRenderingContext2D)return a;throw void 0}catch{const c=document.createElement("canvas");return c.width=r,c.height=i,c}}async function Qr(r){if(Hr(r)&&!await Yo(r))throw new DOMException("Failed to load or decode HTMLImageElement.","InvalidStateError");if(Vr(r)&&!await Qo(r))throw new DOMException("Failed to load or decode SVGImageElement.","InvalidStateError");if(Jr(r)&&Xo(r))throw new DOMException("VideoFrame is closed.","InvalidStateError");if(Br(r)&&(r.readyState===0||r.readyState===1))throw new DOMException("Invalid element or state.","InvalidStateError");if(Gr(r)&&Zo(r))throw new DOMException("The image source is detached.","InvalidStateError");const{width:i,height:a}=Vo(r);if(i===0||a===0)return null;const c=zo(i,a).getContext("2d");c.drawImage(r,0,0);try{return c.getImageData(0,0,i,a)}catch{throw new DOMException("Source would taint origin.","SecurityError")}}async function Go(r){let i;try{if(globalThis.createImageBitmap)i=await createImageBitmap(r);else if(globalThis.Image){i=new Image;let a="";try{a=URL.createObjectURL(r),i.src=a,await i.decode()}finally{URL.revokeObjectURL(a)}}else return r}catch{throw new DOMException("Failed to load or decode Blob.","InvalidStateError")}return await Qr(i)}function qo(r){const{width:i,height:a}=r;if(i===0||a===0)return null;const c=r.getContext("2d");try{return c.getImageData(0,0,i,a)}catch{throw new DOMException("Source would taint origin.","SecurityError")}}async function Jo(r){if(Yr(r))return await Go(r);if(Bo(r)){if(Ko(r))throw new DOMException("The image data has been detached.","InvalidStateError");return r}return zr(r)||qr(r)?qo(r):await Qr(r)}async function Yo(r){try{return await r.decode(),!0}catch{return!1}}async function Qo(r){var i;try{return await((i=r.decode)==null?void 0:i.call(r)),!0}catch{return!1}}function Xo(r){return r.format===null}function Ko(r){return r.data.buffer.byteLength===0}function Zo(r){return r.width===0&&r.height===0}function Mr(r,i){return r instanceof DOMException?new DOMException(`${i}: ${r.message}`,r.name):r instanceof Error?new r.constructor(`${i}: ${r.message}`):new Error(`${i}: ${r}`)}const xr=["Aztec","Codabar","Code128","Code39","Code93","DataBar","DataBarExpanded","DataMatrix","DXFilmEdge","EAN-13","EAN-8","ITF","Linear-Codes","Matrix-Codes","MaxiCode","MicroQRCode","None","PDF417","QRCode","rMQRCode","UPC-A","UPC-E"];function ei(r){return r.join("|")}function ti(r){const i=kr(r);let a=0,c=xr.length-1;for(;a<=c;){const f=Math.floor((a+c)/2),m=xr[f],v=kr(m);if(v===i)return m;v{const a=r.match(/_(.+?)\.wasm$/);return a?`https://fastly.jsdelivr.net/npm/zxing-wasm@1.1.3/dist/${a[1]}/${r}`:i+r}};let Dr=new WeakMap;function Bt(r,i){var a;const c=Dr.get(r);if(c!=null&&c.modulePromise&&(i===void 0||Object.is(i,c.moduleOverrides)))return c.modulePromise;const f=(a=i??(c==null?void 0:c.moduleOverrides))!=null?a:ci,m=r({...f});return Dr.set(r,{moduleOverrides:f,modulePromise:m}),m}async function ui(r,i,a=De){const c={...De,...a},f=await Bt(r),{size:m}=i,v=new Uint8Array(await i.arrayBuffer()),C=f._malloc(m);f.HEAPU8.set(v,C);const h=f.readBarcodesFromImage(C,m,Xr(f,c));f._free(C);const w=[];for(let _=0;_{var r=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return function(i={}){var a=i,c,f;a.ready=new Promise((e,t)=>{c=e,f=t});var m=Object.assign({},a),v="./this.program",C=typeof window=="object",h=typeof importScripts=="function";typeof process=="object"&&typeof process.versions=="object"&&process.versions.node;var w="";function _(e){return a.locateFile?a.locateFile(e,w):w+e}var b;(C||h)&&(h?w=self.location.href:typeof document<"u"&&document.currentScript&&(w=document.currentScript.src),r&&(w=r),w.indexOf("blob:")!==0?w=w.substr(0,w.replace(/[?#].*/,"").lastIndexOf("/")+1):w="",h&&(b=e=>{var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)})),a.print||console.log.bind(console);var D=a.printErr||console.error.bind(console);Object.assign(a,m),m=null,a.arguments&&a.arguments,a.thisProgram&&(v=a.thisProgram),a.quit&&a.quit;var j;a.wasmBinary&&(j=a.wasmBinary),typeof WebAssembly!="object"&&te("no native wasm support detected");var k,W=!1,L,P,F,x,S,A,N,ae;function Pe(){var e=k.buffer;a.HEAP8=L=new Int8Array(e),a.HEAP16=F=new Int16Array(e),a.HEAPU8=P=new Uint8Array(e),a.HEAPU16=x=new Uint16Array(e),a.HEAP32=S=new Int32Array(e),a.HEAPU32=A=new Uint32Array(e),a.HEAPF32=N=new Float32Array(e),a.HEAPF64=ae=new Float64Array(e)}var Ee=[],je=[],Re=[];function Ge(){if(a.preRun)for(typeof a.preRun=="function"&&(a.preRun=[a.preRun]);a.preRun.length;)mt(a.preRun.shift());bt(Ee)}function ht(){bt(je)}function pt(){if(a.postRun)for(typeof a.postRun=="function"&&(a.postRun=[a.postRun]);a.postRun.length;)Fe(a.postRun.shift());bt(Re)}function mt(e){Ee.unshift(e)}function vt(e){je.unshift(e)}function Fe(e){Re.unshift(e)}var ie=0,_e=null;function yt(e){var t;ie++,(t=a.monitorRunDependencies)===null||t===void 0||t.call(a,ie)}function ve(e){var t;if(ie--,(t=a.monitorRunDependencies)===null||t===void 0||t.call(a,ie),ie==0&&_e){var n=_e;_e=null,n()}}function te(e){var t;(t=a.onAbort)===null||t===void 0||t.call(a,e),e="Aborted("+e+")",D(e),W=!0,e+=". Build with -sASSERTIONS for more info.";var n=new WebAssembly.RuntimeError(e);throw f(n),n}var gt="data:application/octet-stream;base64,",qe=e=>e.startsWith(gt),ye;ye="zxing_reader.wasm",qe(ye)||(ye=_(ye));function Je(e){if(e==ye&&j)return new Uint8Array(j);if(b)return b(e);throw"both async and sync fetching of the wasm failed"}function wt(e){return!j&&(C||h)&&typeof fetch=="function"?fetch(e,{credentials:"same-origin"}).then(t=>{if(!t.ok)throw"failed to load wasm binary file at '"+e+"'";return t.arrayBuffer()}).catch(()=>Je(e)):Promise.resolve().then(()=>Je(e))}function Ye(e,t,n){return wt(e).then(o=>WebAssembly.instantiate(o,t)).then(o=>o).then(n,o=>{D(`failed to asynchronously prepare wasm: ${o}`),te(o)})}function pn(e,t,n,o){return!e&&typeof WebAssembly.instantiateStreaming=="function"&&!qe(t)&&typeof fetch=="function"?fetch(t,{credentials:"same-origin"}).then(s=>{var u=WebAssembly.instantiateStreaming(s,n);return u.then(o,function(l){return D(`wasm streaming compile failed: ${l}`),D("falling back to ArrayBuffer instantiation"),Ye(t,n,o)})}):Ye(t,n,o)}function mn(){var e={a:ro};function t(o,s){return Y=o.exports,k=Y.ia,Pe(),tr=Y.ma,vt(Y.ja),ve(),Y}yt();function n(o){t(o.instance)}if(a.instantiateWasm)try{return a.instantiateWasm(e,t)}catch(o){D(`Module.instantiateWasm callback failed with error: ${o}`),f(o)}return pn(j,ye,e,n).catch(f),{}}var bt=e=>{for(;e.length>0;)e.shift()(a)};a.noExitRuntime;var Qe=[],Xe=0,vn=e=>{var t=new Ct(e);return t.get_caught()||(t.set_caught(!0),Xe--),t.set_rethrown(!1),Qe.push(t),mr(t.excPtr),t.get_exception_ptr()},de=0,yn=()=>{H(0,0);var e=Qe.pop();pr(e.excPtr),de=0};function Ct(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(t){A[this.ptr+4>>2]=t},this.get_type=function(){return A[this.ptr+4>>2]},this.set_destructor=function(t){A[this.ptr+8>>2]=t},this.get_destructor=function(){return A[this.ptr+8>>2]},this.set_caught=function(t){t=t?1:0,L[this.ptr+12>>0]=t},this.get_caught=function(){return L[this.ptr+12>>0]!=0},this.set_rethrown=function(t){t=t?1:0,L[this.ptr+13>>0]=t},this.get_rethrown=function(){return L[this.ptr+13>>0]!=0},this.init=function(t,n){this.set_adjusted_ptr(0),this.set_type(t),this.set_destructor(n)},this.set_adjusted_ptr=function(t){A[this.ptr+16>>2]=t},this.get_adjusted_ptr=function(){return A[this.ptr+16>>2]},this.get_exception_ptr=function(){var t=yr(this.get_type());if(t)return A[this.excPtr>>2];var n=this.get_adjusted_ptr();return n!==0?n:this.excPtr}}var gn=e=>{throw de||(de=e),de},_t=e=>{var t=de;if(!t)return Ve(0),0;var n=new Ct(t);n.set_adjusted_ptr(t);var o=n.get_type();if(!o)return Ve(0),t;for(var s in e){var u=e[s];if(u===0||u===o)break;var l=n.ptr+16;if(vr(u,o,l))return Ve(u),t}return Ve(o),t},wn=()=>_t([]),bn=e=>_t([e]),Cn=(e,t)=>_t([e,t]),_n=()=>{var e=Qe.pop();e||te("no exception to throw");var t=e.excPtr;throw e.get_rethrown()||(Qe.push(e),e.set_rethrown(!0),e.set_caught(!1),Xe++),de=t,de},Tn=(e,t,n)=>{var o=new Ct(e);throw o.init(t,n),de=e,Xe++,de},$n=()=>Xe,Ke={},Tt=e=>{for(;e.length;){var t=e.pop(),n=e.pop();n(t)}};function $t(e){return this.fromWireType(S[e>>2])}var Oe={},Te={},Ze={},Gt,et=e=>{throw new Gt(e)},$e=(e,t,n)=>{e.forEach(function(d){Ze[d]=t});function o(d){var p=n(d);p.length!==e.length&&et("Mismatched type converter count");for(var g=0;g{Te.hasOwnProperty(d)?s[p]=Te[d]:(u.push(d),Oe.hasOwnProperty(d)||(Oe[d]=[]),Oe[d].push(()=>{s[p]=Te[d],++l,l===u.length&&o(s)}))}),u.length===0&&o(s)},Sn=e=>{var t=Ke[e];delete Ke[e];var n=t.rawConstructor,o=t.rawDestructor,s=t.fields,u=s.map(l=>l.getterReturnType).concat(s.map(l=>l.setterArgumentType));$e([e],u,l=>{var d={};return s.forEach((p,g)=>{var T=p.fieldName,E=l[g],O=p.getter,M=p.getterContext,V=l[g+s.length],q=p.setter,U=p.setterContext;d[T]={read:K=>E.fromWireType(O(M,K)),write:(K,y)=>{var $=[];q(U,K,V.toWireType($,y)),Tt($)}}}),[{name:t.name,fromWireType:p=>{var g={};for(var T in d)g[T]=d[T].read(p);return o(p),g},toWireType:(p,g)=>{for(var T in d)if(!(T in g))throw new TypeError(`Missing field: "${T}"`);var E=n();for(T in d)d[T].write(E,g[T]);return p!==null&&p.push(o,E),E},argPackAdvance:ce,readValueFromPointer:$t,destructorFunction:o}]})},Pn=(e,t,n,o,s)=>{},En=()=>{for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);qt=e},qt,X=e=>{for(var t="",n=e;P[n];)t+=qt[P[n++]];return t},Ae,R=e=>{throw new Ae(e)};function On(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};var o=t.name;if(e||R(`type "${o}" must have a positive integer typeid pointer`),Te.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;R(`Cannot register type '${o}' twice`)}if(Te[e]=t,delete Ze[e],Oe.hasOwnProperty(e)){var s=Oe[e];delete Oe[e],s.forEach(u=>u())}}function se(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");return On(e,t,n)}var ce=8,An=(e,t,n,o)=>{t=X(t),se(e,{name:t,fromWireType:function(s){return!!s},toWireType:function(s,u){return u?n:o},argPackAdvance:ce,readValueFromPointer:function(s){return this.fromWireType(P[s])},destructorFunction:null})},Mn=e=>({count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}),St=e=>{function t(n){return n.$$.ptrType.registeredClass.name}R(t(e)+" instance already deleted")},Pt=!1,Jt=e=>{},xn=e=>{e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)},Yt=e=>{e.count.value-=1;var t=e.count.value===0;t&&xn(e)},Qt=(e,t,n)=>{if(t===n)return e;if(n.baseClass===void 0)return null;var o=Qt(e,t,n.baseClass);return o===null?null:n.downcast(o)},Xt={},kn=()=>Object.keys(Ue).length,Dn=()=>{var e=[];for(var t in Ue)Ue.hasOwnProperty(t)&&e.push(Ue[t]);return e},Ie=[],Et=()=>{for(;Ie.length;){var e=Ie.pop();e.$$.deleteScheduled=!1,e.delete()}},We,jn=e=>{We=e,Ie.length&&We&&We(Et)},Rn=()=>{a.getInheritedInstanceCount=kn,a.getLiveInheritedInstances=Dn,a.flushPendingDeletes=Et,a.setDelayFunction=jn},Ue={},Fn=(e,t)=>{for(t===void 0&&R("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t},In=(e,t)=>(t=Fn(e,t),Ue[t]),tt=(e,t)=>{(!t.ptrType||!t.ptr)&&et("makeClassHandle requires ptr and ptrType");var n=!!t.smartPtrType,o=!!t.smartPtr;return n!==o&&et("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Le(Object.create(e,{$$:{value:t,writable:!0}}))};function Wn(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=In(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var o=n.clone();return this.destructor(e),o}function s(){return this.isSmartPointer?tt(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):tt(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var u=this.registeredClass.getActualType(t),l=Xt[u];if(!l)return s.call(this);var d;this.isConst?d=l.constPointerType:d=l.pointerType;var p=Qt(t,this.registeredClass,d.registeredClass);return p===null?s.call(this):this.isSmartPointer?tt(d.registeredClass.instancePrototype,{ptrType:d,ptr:p,smartPtrType:this,smartPtr:e}):tt(d.registeredClass.instancePrototype,{ptrType:d,ptr:p})}var Le=e=>typeof FinalizationRegistry>"u"?(Le=t=>t,e):(Pt=new FinalizationRegistry(t=>{Yt(t.$$)}),Le=t=>{var n=t.$$,o=!!n.smartPtr;if(o){var s={$$:n};Pt.register(t,s,t)}return t},Jt=t=>Pt.unregister(t),Le(e)),Un=()=>{Object.assign(rt.prototype,{isAliasOf(e){if(!(this instanceof rt)||!(e instanceof rt))return!1;var t=this.$$.ptrType.registeredClass,n=this.$$.ptr;e.$$=e.$$;for(var o=e.$$.ptrType.registeredClass,s=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;o.baseClass;)s=o.upcast(s),o=o.baseClass;return t===o&&n===s},clone(){if(this.$$.ptr||St(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=Le(Object.create(Object.getPrototypeOf(this),{$$:{value:Mn(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e},delete(){this.$$.ptr||St(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&R("Object already scheduled for deletion"),Jt(this),Yt(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||St(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&R("Object already scheduled for deletion"),Ie.push(this),Ie.length===1&&We&&We(Et),this.$$.deleteScheduled=!0,this}})};function rt(){}var Ne=(e,t)=>Object.defineProperty(t,"name",{value:e}),Kt=(e,t,n)=>{if(e[t].overloadTable===void 0){var o=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||R(`Function '${n}' called with an invalid number of arguments (${arguments.length}) - expects one of (${e[t].overloadTable})!`),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[o.argCount]=o}},Ot=(e,t,n)=>{a.hasOwnProperty(e)?((n===void 0||a[e].overloadTable!==void 0&&a[e].overloadTable[n]!==void 0)&&R(`Cannot register public name '${e}' twice`),Kt(a,e,e),a.hasOwnProperty(n)&&R(`Cannot register multiple overloads of a function with the same number of arguments (${n})!`),a[e].overloadTable[n]=t):(a[e]=t,n!==void 0&&(a[e].numArguments=n))},Ln=48,Nn=57,Hn=e=>{if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");var t=e.charCodeAt(0);return t>=Ln&&t<=Nn?`_${e}`:e};function Vn(e,t,n,o,s,u,l,d){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=o,this.baseClass=s,this.getActualType=u,this.upcast=l,this.downcast=d,this.pureVirtualFunctions=[]}var At=(e,t,n)=>{for(;t!==n;)t.upcast||R(`Expected null or instance of ${n.name}, got an instance of ${t.name}`),e=t.upcast(e),t=t.baseClass;return e};function Bn(e,t){if(t===null)return this.isReference&&R(`null is not a valid ${this.name}`),0;t.$$||R(`Cannot pass "${jt(t)}" as a ${this.name}`),t.$$.ptr||R(`Cannot pass deleted object as a pointer of type ${this.name}`);var n=t.$$.ptrType.registeredClass,o=At(t.$$.ptr,n,this.registeredClass);return o}function zn(e,t){var n;if(t===null)return this.isReference&&R(`null is not a valid ${this.name}`),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;(!t||!t.$$)&&R(`Cannot pass "${jt(t)}" as a ${this.name}`),t.$$.ptr||R(`Cannot pass deleted object as a pointer of type ${this.name}`),!this.isConst&&t.$$.ptrType.isConst&&R(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);var o=t.$$.ptrType.registeredClass;if(n=At(t.$$.ptr,o,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&R("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:R(`Cannot convert argument of type ${t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name} to parameter type ${this.name}`);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var s=t.clone();n=this.rawShare(n,fe.toHandle(()=>s.delete())),e!==null&&e.push(this.rawDestructor,n)}break;default:R("Unsupporting sharing policy")}return n}function Gn(e,t){if(t===null)return this.isReference&&R(`null is not a valid ${this.name}`),0;t.$$||R(`Cannot pass "${jt(t)}" as a ${this.name}`),t.$$.ptr||R(`Cannot pass deleted object as a pointer of type ${this.name}`),t.$$.ptrType.isConst&&R(`Cannot convert argument of type ${t.$$.ptrType.name} to parameter type ${this.name}`);var n=t.$$.ptrType.registeredClass,o=At(t.$$.ptr,n,this.registeredClass);return o}function Zt(e){return this.fromWireType(A[e>>2])}var qn=()=>{Object.assign(nt.prototype,{getPointee(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e},destructor(e){var t;(t=this.rawDestructor)===null||t===void 0||t.call(this,e)},argPackAdvance:ce,readValueFromPointer:Zt,deleteObject(e){e!==null&&e.delete()},fromWireType:Wn})};function nt(e,t,n,o,s,u,l,d,p,g,T){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=o,this.isSmartPointer=s,this.pointeeType=u,this.sharingPolicy=l,this.rawGetPointee=d,this.rawConstructor=p,this.rawShare=g,this.rawDestructor=T,!s&&t.baseClass===void 0?o?(this.toWireType=Bn,this.destructorFunction=null):(this.toWireType=Gn,this.destructorFunction=null):this.toWireType=zn}var er=(e,t,n)=>{a.hasOwnProperty(e)||et("Replacing nonexistant public symbol"),a[e].overloadTable!==void 0&&n!==void 0?a[e].overloadTable[n]=t:(a[e]=t,a[e].argCount=n)},Jn=(e,t,n)=>{var o=a["dynCall_"+e];return n&&n.length?o.apply(null,[t].concat(n)):o.call(null,t)},at=[],tr,B=e=>{var t=at[e];return t||(e>=at.length&&(at.length=e+1),at[e]=t=tr.get(e)),t},Yn=(e,t,n)=>{if(e.includes("j"))return Jn(e,t,n);var o=B(t).apply(null,n);return o},Qn=(e,t)=>{var n=[];return function(){return n.length=0,Object.assign(n,arguments),Yn(e,t,n)}},oe=(e,t)=>{e=X(e);function n(){return e.includes("j")?Qn(e,t):B(t)}var o=n();return typeof o!="function"&&R(`unknown function pointer with signature ${e}: ${t}`),o},Xn=(e,t)=>{var n=Ne(t,function(o){this.name=t,this.message=o;var s=new Error(o).stack;s!==void 0&&(this.stack=this.toString()+` `+s.replace(/^Error(:[^\n]*)?\n/,""))});return n.prototype=Object.create(e.prototype),n.prototype.constructor=n,n.prototype.toString=function(){return this.message===void 0?this.name:`${this.name}: ${this.message}`},n},rr,nr=e=>{var t=hr(e),n=X(t);return he(t),n},ot=(e,t)=>{var n=[],o={};function s(u){if(!o[u]&&!Te[u]){if(Ze[u]){Ze[u].forEach(s);return}n.push(u),o[u]=!0}}throw t.forEach(s),new rr(`${e}: `+n.map(nr).join([", "]))},Kn=(e,t,n,o,s,u,l,d,p,g,T,E,O)=>{T=X(T),u=oe(s,u),d&&(d=oe(l,d)),g&&(g=oe(p,g)),O=oe(E,O);var M=Hn(T);Ot(M,function(){ot(`Cannot construct ${T} due to unbound types`,[o])}),$e([e,t,n],o?[o]:[],function(V){V=V[0];var q,U;o?(q=V.registeredClass,U=q.instancePrototype):U=rt.prototype;var K=Ne(T,function(){if(Object.getPrototypeOf(this)!==y)throw new Ae("Use 'new' to construct "+T);if($.constructor_body===void 0)throw new Ae(T+" has no accessible constructor");var Cr=$.constructor_body[arguments.length];if(Cr===void 0)throw new Ae(`Tried to invoke ctor of ${T} with invalid number of parameters (${arguments.length}) - expected (${Object.keys($.constructor_body).toString()}) parameters instead!`);return Cr.apply(this,arguments)}),y=Object.create(U,{constructor:{value:K}});K.prototype=y;var $=new Vn(T,K,y,O,q,u,d,g);if($.baseClass){var J,Q;(Q=(J=$.baseClass).__derivedClasses)!==null&&Q!==void 0||(J.__derivedClasses=[]),$.baseClass.__derivedClasses.push($)}var Me=new nt(T,$,!0,!1,!1),ct=new nt(T+"*",$,!1,!1,!1),br=new nt(T+" const*",$,!1,!0,!1);return Xt[e]={pointerType:ct,constPointerType:br},er(M,K),[Me,ct,br]})},Mt=(e,t)=>{for(var n=[],o=0;o>2]);return n};function Zn(e){for(var t=1;t{var l=Mt(t,n);s=oe(o,s),$e([],[e],function(d){d=d[0];var p=`constructor ${d.name}`;if(d.registeredClass.constructor_body===void 0&&(d.registeredClass.constructor_body=[]),d.registeredClass.constructor_body[t-1]!==void 0)throw new Ae(`Cannot register multiple constructors with identical number of parameters (${t-1}) for class '${d.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return d.registeredClass.constructor_body[t-1]=()=>{ot(`Cannot construct ${d.name} due to unbound types`,l)},$e([],l,g=>(g.splice(1,0,null),d.registeredClass.constructor_body[t-1]=xt(p,g,null,s,u),[])),[]})},ar=e=>{e=e.trim();const t=e.indexOf("(");return t!==-1?e.substr(0,t):e},ta=(e,t,n,o,s,u,l,d,p)=>{var g=Mt(n,o);t=X(t),t=ar(t),u=oe(s,u),$e([],[e],function(T){T=T[0];var E=`${T.name}.${t}`;t.startsWith("@@")&&(t=Symbol[t.substring(2)]),d&&T.registeredClass.pureVirtualFunctions.push(t);function O(){ot(`Cannot call ${E} due to unbound types`,g)}var M=T.registeredClass.instancePrototype,V=M[t];return V===void 0||V.overloadTable===void 0&&V.className!==T.name&&V.argCount===n-2?(O.argCount=n-2,O.className=T.name,M[t]=O):(Kt(M,t,E),M[t].overloadTable[n-2]=O),$e([],g,function(q){var U=xt(E,q,T,u,l);return M[t].overloadTable===void 0?(U.argCount=n-2,M[t]=U):M[t].overloadTable[n-2]=U,[]}),[]})};function ra(){Object.assign(or.prototype,{get(e){return this.allocated[e]},has(e){return this.allocated[e]!==void 0},allocate(e){var t=this.freelist.pop()||this.allocated.length;return this.allocated[t]=e,t},free(e){this.allocated[e]=void 0,this.freelist.push(e)}})}function or(){this.allocated=[void 0],this.freelist=[]}var re=new or,kt=e=>{e>=re.reserved&&--re.get(e).refcount===0&&re.free(e)},na=()=>{for(var e=0,t=re.reserved;t{re.allocated.push({value:void 0},{value:null},{value:!0},{value:!1}),re.reserved=re.allocated.length,a.count_emval_handles=na},fe={toValue:e=>(e||R("Cannot use deleted val. handle = "+e),re.get(e).value),toHandle:e=>{switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:return re.allocate({refcount:1,value:e})}}},oa=(e,t)=>{t=X(t),se(e,{name:t,fromWireType:n=>{var o=fe.toValue(n);return kt(n),o},toWireType:(n,o)=>fe.toHandle(o),argPackAdvance:ce,readValueFromPointer:$t,destructorFunction:null})},ia=(e,t,n)=>{switch(t){case 1:return n?function(o){return this.fromWireType(L[o>>0])}:function(o){return this.fromWireType(P[o>>0])};case 2:return n?function(o){return this.fromWireType(F[o>>1])}:function(o){return this.fromWireType(x[o>>1])};case 4:return n?function(o){return this.fromWireType(S[o>>2])}:function(o){return this.fromWireType(A[o>>2])};default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},sa=(e,t,n,o)=>{t=X(t);function s(){}s.values={},se(e,{name:t,constructor:s,fromWireType:function(u){return this.constructor.values[u]},toWireType:(u,l)=>l.value,argPackAdvance:ce,readValueFromPointer:ia(t,n,o),destructorFunction:null}),Ot(t,s)},Dt=(e,t)=>{var n=Te[e];return n===void 0&&R(t+" has unknown type "+nr(e)),n},ca=(e,t,n)=>{var o=Dt(e,"enum");t=X(t);var s=o.constructor,u=Object.create(o.constructor.prototype,{value:{value:n},constructor:{value:Ne(`${o.name}_${t}`,function(){})}});s.values[n]=u,s[t]=u},jt=e=>{if(e===null)return"null";var t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():""+e},ua=(e,t)=>{switch(t){case 4:return function(n){return this.fromWireType(N[n>>2])};case 8:return function(n){return this.fromWireType(ae[n>>3])};default:throw new TypeError(`invalid float width (${t}): ${e}`)}},la=(e,t,n)=>{t=X(t),se(e,{name:t,fromWireType:o=>o,toWireType:(o,s)=>s,argPackAdvance:ce,readValueFromPointer:ua(t,n),destructorFunction:null})},da=(e,t,n,o,s,u,l)=>{var d=Mt(t,n);e=X(e),e=ar(e),s=oe(o,s),Ot(e,function(){ot(`Cannot call ${e} due to unbound types`,d)},t-1),$e([],d,function(p){var g=[p[0],null].concat(p.slice(1));return er(e,xt(e,g,null,s,u),t-1),[]})},fa=(e,t,n)=>{switch(t){case 1:return n?o=>L[o>>0]:o=>P[o>>0];case 2:return n?o=>F[o>>1]:o=>x[o>>1];case 4:return n?o=>S[o>>2]:o=>A[o>>2];default:throw new TypeError(`invalid integer width (${t}): ${e}`)}},ha=(e,t,n,o,s)=>{t=X(t);var u=T=>T;if(o===0){var l=32-8*n;u=T=>T<>>l}var d=t.includes("unsigned"),p=(T,E)=>{},g;d?g=function(T,E){return p(E,this.name),E>>>0}:g=function(T,E){return p(E,this.name),E},se(e,{name:t,fromWireType:u,toWireType:g,argPackAdvance:ce,readValueFromPointer:fa(t,n,o!==0),destructorFunction:null})},pa=(e,t,n)=>{var o=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],s=o[t];function u(l){var d=A[l>>2],p=A[l+4>>2];return new s(L.buffer,p,d)}n=X(n),se(e,{name:n,fromWireType:u,argPackAdvance:ce,readValueFromPointer:u},{ignoreDuplicateRegistrations:!0})},ir=(e,t,n,o)=>{if(!(o>0))return 0;for(var s=n,u=n+o-1,l=0;l=55296&&d<=57343){var p=e.charCodeAt(++l);d=65536+((d&1023)<<10)|p&1023}if(d<=127){if(n>=u)break;t[n++]=d}else if(d<=2047){if(n+1>=u)break;t[n++]=192|d>>6,t[n++]=128|d&63}else if(d<=65535){if(n+2>=u)break;t[n++]=224|d>>12,t[n++]=128|d>>6&63,t[n++]=128|d&63}else{if(n+3>=u)break;t[n++]=240|d>>18,t[n++]=128|d>>12&63,t[n++]=128|d>>6&63,t[n++]=128|d&63}}return t[n]=0,n-s},ma=(e,t,n)=>ir(e,P,t,n),sr=e=>{for(var t=0,n=0;n=55296&&o<=57343?(t+=4,++n):t+=3}return t},cr=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,va=(e,t,n)=>{for(var o=t+n,s=t;e[s]&&!(s>=o);)++s;if(s-t>16&&e.buffer&&cr)return cr.decode(e.subarray(t,s));for(var u="";t>10,56320|g&1023)}}return u},Rt=(e,t)=>e?va(P,e,t):"",ya=(e,t)=>{t=X(t);var n=t==="std::string";se(e,{name:t,fromWireType(o){var s=A[o>>2],u=o+4,l;if(n)for(var d=u,p=0;p<=s;++p){var g=u+p;if(p==s||P[g]==0){var T=g-d,E=Rt(d,T);l===void 0?l=E:(l+="\0",l+=E),d=g+1}}else{for(var O=new Array(s),p=0;p>2]=u,n&&l)ma(s,p,u+1);else if(l)for(var g=0;g255&&(he(p),R("String has UTF-16 code units that do not fit in 8 bits")),P[p+g]=T}else for(var g=0;g{for(var n=e,o=n>>1,s=o+t/2;!(o>=s)&&x[o];)++o;if(n=o<<1,n-e>32&&ur)return ur.decode(P.subarray(e,n));for(var u="",l=0;!(l>=t/2);++l){var d=F[e+l*2>>1];if(d==0)break;u+=String.fromCharCode(d)}return u},wa=(e,t,n)=>{var o;if((o=n)!==null&&o!==void 0||(n=2147483647),n<2)return 0;n-=2;for(var s=t,u=n>1]=d,t+=2}return F[t>>1]=0,t-s},ba=e=>e.length*2,Ca=(e,t)=>{for(var n=0,o="";!(n>=t/4);){var s=S[e+n*4>>2];if(s==0)break;if(++n,s>=65536){var u=s-65536;o+=String.fromCharCode(55296|u>>10,56320|u&1023)}else o+=String.fromCharCode(s)}return o},_a=(e,t,n)=>{var o;if((o=n)!==null&&o!==void 0||(n=2147483647),n<4)return 0;for(var s=t,u=s+n-4,l=0;l=55296&&d<=57343){var p=e.charCodeAt(++l);d=65536+((d&1023)<<10)|p&1023}if(S[t>>2]=d,t+=4,t+4>u)break}return S[t>>2]=0,t-s},Ta=e=>{for(var t=0,n=0;n=55296&&o<=57343&&++n,t+=4}return t},$a=(e,t,n)=>{n=X(n);var o,s,u,l,d;t===2?(o=ga,s=wa,l=ba,u=()=>x,d=1):t===4&&(o=Ca,s=_a,l=Ta,u=()=>A,d=2),se(e,{name:n,fromWireType:p=>{for(var g=A[p>>2],T=u(),E,O=p+4,M=0;M<=g;++M){var V=p+4+M*t;if(M==g||T[V>>d]==0){var q=V-O,U=o(O,q);E===void 0?E=U:(E+="\0",E+=U),O=V+t}}return he(p),E},toWireType:(p,g)=>{typeof g!="string"&&R(`Cannot pass non-string to C++ string type ${n}`);var T=l(g),E=Wt(4+T+t);return A[E>>2]=T>>d,s(g,E+4,T+t),p!==null&&p.push(he,E),E},argPackAdvance:ce,readValueFromPointer:$t,destructorFunction(p){he(p)}})},Sa=(e,t,n,o,s,u)=>{Ke[e]={name:X(t),rawConstructor:oe(n,o),rawDestructor:oe(s,u),fields:[]}},Pa=(e,t,n,o,s,u,l,d,p,g)=>{Ke[e].fields.push({fieldName:X(t),getterReturnType:n,getter:oe(o,s),getterContext:u,setterArgumentType:l,setter:oe(d,p),setterContext:g})},Ea=(e,t)=>{t=X(t),se(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType:()=>{},toWireType:(n,o)=>{}})},Ft=[],Oa=(e,t,n,o)=>(e=Ft[e],t=fe.toValue(t),e(null,t,n,o)),Aa={},Ma=e=>{var t=Aa[e];return t===void 0?X(e):t},lr=()=>{if(typeof globalThis=="object")return globalThis;function e(t){t.$$$embind_global$$$=t;var n=typeof $$$embind_global$$$=="object"&&t.$$$embind_global$$$==t;return n||delete t.$$$embind_global$$$,n}if(typeof $$$embind_global$$$=="object"||(typeof global=="object"&&e(global)?$$$embind_global$$$=global:typeof self=="object"&&e(self)&&($$$embind_global$$$=self),typeof $$$embind_global$$$=="object"))return $$$embind_global$$$;throw Error("unable to get global object.")},xa=e=>e===0?fe.toHandle(lr()):(e=Ma(e),fe.toHandle(lr()[e])),ka=e=>{var t=Ft.length;return Ft.push(e),t},Da=(e,t)=>{for(var n=new Array(e),o=0;o>2],"parameter "+o);return n},ja=Reflect.construct,Ra=(e,t,n)=>{var o=[],s=e.toWireType(o,n);return o.length&&(A[t>>2]=fe.toHandle(o)),s},Fa=(e,t,n)=>{var o=Da(e,t),s=o.shift();e--;var u=new Array(e),l=(p,g,T,E)=>{for(var O=0,M=0;Mp.name).join(", ")}) => ${s.name}>`;return ka(Ne(d,l))},Ia=e=>{e>4&&(re.get(e).refcount+=1)},Wa=e=>{var t=fe.toValue(e);Tt(t),kt(e)},Ua=(e,t)=>{e=Dt(e,"_emval_take_value");var n=e.readValueFromPointer(t);return fe.toHandle(n)},La=()=>{te("")},Na=(e,t,n)=>P.copyWithin(e,t,t+n),Ha=()=>2147483648,Va=e=>{var t=k.buffer,n=(e-t.byteLength+65535)/65536;try{return k.grow(n),Pe(),1}catch{}},Ba=e=>{var t=P.length;e>>>=0;var n=Ha();if(e>n)return!1;for(var o=(p,g)=>p+(g-p%g)%g,s=1;s<=4;s*=2){var u=t*(1+.2/s);u=Math.min(u,e+100663296);var l=Math.min(n,o(Math.max(e,u),65536)),d=Va(l);if(d)return!0}return!1},It={},za=()=>v||"./this.program",He=()=>{if(!He.strings){var e=(typeof navigator=="object"&&navigator.languages&&navigator.languages[0]||"C").replace("-","_")+".UTF-8",t={USER:"web_user",LOGNAME:"web_user",PATH:"/",PWD:"/",HOME:"/home/web_user",LANG:e,_:za()};for(var n in It)It[n]===void 0?delete t[n]:t[n]=It[n];var o=[];for(var n in t)o.push(`${n}=${t[n]}`);He.strings=o}return He.strings},Ga=(e,t)=>{for(var n=0;n>0]=e.charCodeAt(n);L[t>>0]=0},qa=(e,t)=>{var n=0;return He().forEach((o,s)=>{var u=t+n;A[e+s*4>>2]=u,Ga(o,u),n+=o.length+1}),0},Ja=(e,t)=>{var n=He();A[e>>2]=n.length;var o=0;return n.forEach(s=>o+=s.length+1),A[t>>2]=o,0},Ya=e=>e,it=e=>e%4===0&&(e%100!==0||e%400===0),Qa=(e,t)=>{for(var n=0,o=0;o<=t;n+=e[o++]);return n},dr=[31,29,31,30,31,30,31,31,30,31,30,31],fr=[31,28,31,30,31,30,31,31,30,31,30,31],Xa=(e,t)=>{for(var n=new Date(e.getTime());t>0;){var o=it(n.getFullYear()),s=n.getMonth(),u=(o?dr:fr)[s];if(t>u-n.getDate())t-=u-n.getDate()+1,n.setDate(1),s<11?n.setMonth(s+1):(n.setMonth(0),n.setFullYear(n.getFullYear()+1));else return n.setDate(n.getDate()+t),n}return n};function Ka(e,t,n){var o=n>0?n:sr(e)+1,s=new Array(o),u=ir(e,s,0,s.length);return t&&(s.length=u),s}var Za=(e,t)=>{L.set(e,t)},eo=(e,t,n,o)=>{var s=A[o+40>>2],u={tm_sec:S[o>>2],tm_min:S[o+4>>2],tm_hour:S[o+8>>2],tm_mday:S[o+12>>2],tm_mon:S[o+16>>2],tm_year:S[o+20>>2],tm_wday:S[o+24>>2],tm_yday:S[o+28>>2],tm_isdst:S[o+32>>2],tm_gmtoff:S[o+36>>2],tm_zone:s?Rt(s):""},l=Rt(n),d={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y","%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S","%Ec":"%c","%EC":"%C","%Ex":"%m/%d/%y","%EX":"%H:%M:%S","%Ey":"%y","%EY":"%Y","%Od":"%d","%Oe":"%e","%OH":"%H","%OI":"%I","%Om":"%m","%OM":"%M","%OS":"%S","%Ou":"%u","%OU":"%U","%OV":"%V","%Ow":"%w","%OW":"%W","%Oy":"%y"};for(var p in d)l=l.replace(new RegExp(p,"g"),d[p]);var g=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],T=["January","February","March","April","May","June","July","August","September","October","November","December"];function E(y,$,J){for(var Q=typeof y=="number"?y.toString():y||"";Q.length<$;)Q=J[0]+Q;return Q}function O(y,$){return E(y,$,"0")}function M(y,$){function J(Me){return Me<0?-1:Me>0?1:0}var Q;return(Q=J(y.getFullYear()-$.getFullYear()))===0&&(Q=J(y.getMonth()-$.getMonth()))===0&&(Q=J(y.getDate()-$.getDate())),Q}function V(y){switch(y.getDay()){case 0:return new Date(y.getFullYear()-1,11,29);case 1:return y;case 2:return new Date(y.getFullYear(),0,3);case 3:return new Date(y.getFullYear(),0,2);case 4:return new Date(y.getFullYear(),0,1);case 5:return new Date(y.getFullYear()-1,11,31);case 6:return new Date(y.getFullYear()-1,11,30)}}function q(y){var $=Xa(new Date(y.tm_year+1900,0,1),y.tm_yday),J=new Date($.getFullYear(),0,4),Q=new Date($.getFullYear()+1,0,4),Me=V(J),ct=V(Q);return M(Me,$)<=0?M(ct,$)<=0?$.getFullYear()+1:$.getFullYear():$.getFullYear()-1}var U={"%a":y=>g[y.tm_wday].substring(0,3),"%A":y=>g[y.tm_wday],"%b":y=>T[y.tm_mon].substring(0,3),"%B":y=>T[y.tm_mon],"%C":y=>{var $=y.tm_year+1900;return O($/100|0,2)},"%d":y=>O(y.tm_mday,2),"%e":y=>E(y.tm_mday,2," "),"%g":y=>q(y).toString().substring(2),"%G":y=>q(y),"%H":y=>O(y.tm_hour,2),"%I":y=>{var $=y.tm_hour;return $==0?$=12:$>12&&($-=12),O($,2)},"%j":y=>O(y.tm_mday+Qa(it(y.tm_year+1900)?dr:fr,y.tm_mon-1),3),"%m":y=>O(y.tm_mon+1,2),"%M":y=>O(y.tm_min,2),"%n":()=>` `,"%p":y=>y.tm_hour>=0&&y.tm_hour<12?"AM":"PM","%S":y=>O(y.tm_sec,2),"%t":()=>" ","%u":y=>y.tm_wday||7,"%U":y=>{var $=y.tm_yday+7-y.tm_wday;return O(Math.floor($/7),2)},"%V":y=>{var $=Math.floor((y.tm_yday+7-(y.tm_wday+6)%7)/7);if((y.tm_wday+371-y.tm_yday-2)%7<=2&&$++,$){if($==53){var J=(y.tm_wday+371-y.tm_yday)%7;J!=4&&(J!=3||!it(y.tm_year))&&($=1)}}else{$=52;var Q=(y.tm_wday+7-y.tm_yday-1)%7;(Q==4||Q==5&&it(y.tm_year%400-1))&&$++}return O($,2)},"%w":y=>y.tm_wday,"%W":y=>{var $=y.tm_yday+7-(y.tm_wday+6)%7;return O(Math.floor($/7),2)},"%y":y=>(y.tm_year+1900).toString().substring(2),"%Y":y=>y.tm_year+1900,"%z":y=>{var $=y.tm_gmtoff,J=$>=0;return $=Math.abs($)/60,$=$/60*100+$%60,(J?"+":"-")+("0000"+$).slice(-4)},"%Z":y=>y.tm_zone,"%%":()=>"%"};l=l.replace(/%%/g,"\0\0");for(var p in U)l.includes(p)&&(l=l.replace(new RegExp(p,"g"),U[p](u)));l=l.replace(/\0\0/g,"%");var K=Ka(l,!1);return K.length>t?0:(Za(K,e),K.length-1)},to=(e,t,n,o,s)=>eo(e,t,n,o);Gt=a.InternalError=class extends Error{constructor(e){super(e),this.name="InternalError"}},En(),Ae=a.BindingError=class extends Error{constructor(e){super(e),this.name="BindingError"}},Un(),Rn(),qn(),rr=a.UnboundTypeError=Xn(Error,"UnboundTypeError"),ra(),aa();var ro={s:vn,u:yn,b:wn,g:bn,q:Cn,J:_n,f:Tn,V:$n,d:gn,da:Sn,Q:Pn,_:An,ca:Kn,ba:ea,w:ta,Y:oa,x:sa,h:ca,L:la,M:da,t:ha,o:pa,K:ya,C:$a,A:Sa,ea:Pa,$:Ea,R:Oa,ha:kt,fa:xa,Z:Fa,N:Ia,O:Wa,aa:Ua,B:La,X:Na,W:Ba,T:qa,U:Ja,E:wo,D:so,F:go,n:bo,a:no,e:uo,m:io,k:fo,H:vo,v:po,G:yo,z:_o,P:$o,l:lo,j:co,c:oo,p:ao,I:mo,r:Co,i:ho,y:To,ga:Ya,S:to},Y=mn(),he=a._free=e=>(he=a._free=Y.ka)(e),Wt=a._malloc=e=>(Wt=a._malloc=Y.la)(e),hr=e=>(hr=Y.na)(e),H=(e,t)=>(H=Y.oa)(e,t),Ve=e=>(Ve=Y.pa)(e),z=()=>(z=Y.qa)(),G=e=>(G=Y.ra)(e),pr=e=>(pr=Y.sa)(e),mr=e=>(mr=Y.ta)(e),vr=(e,t,n)=>(vr=Y.ua)(e,t,n),yr=e=>(yr=Y.va)(e);a.dynCall_viijii=(e,t,n,o,s,u,l)=>(a.dynCall_viijii=Y.wa)(e,t,n,o,s,u,l);var gr=a.dynCall_jiiii=(e,t,n,o,s)=>(gr=a.dynCall_jiiii=Y.xa)(e,t,n,o,s);a.dynCall_iiiiij=(e,t,n,o,s,u,l)=>(a.dynCall_iiiiij=Y.ya)(e,t,n,o,s,u,l),a.dynCall_iiiiijj=(e,t,n,o,s,u,l,d,p)=>(a.dynCall_iiiiijj=Y.za)(e,t,n,o,s,u,l,d,p),a.dynCall_iiiiiijj=(e,t,n,o,s,u,l,d,p,g)=>(a.dynCall_iiiiiijj=Y.Aa)(e,t,n,o,s,u,l,d,p,g);function no(e,t){var n=z();try{return B(e)(t)}catch(o){if(G(n),o!==o+0)throw o;H(1,0)}}function ao(e,t,n,o){var s=z();try{B(e)(t,n,o)}catch(u){if(G(s),u!==u+0)throw u;H(1,0)}}function oo(e,t,n){var o=z();try{B(e)(t,n)}catch(s){if(G(o),s!==s+0)throw s;H(1,0)}}function io(e,t,n,o){var s=z();try{return B(e)(t,n,o)}catch(u){if(G(s),u!==u+0)throw u;H(1,0)}}function so(e,t,n,o,s){var u=z();try{return B(e)(t,n,o,s)}catch(l){if(G(u),l!==l+0)throw l;H(1,0)}}function co(e,t){var n=z();try{B(e)(t)}catch(o){if(G(n),o!==o+0)throw o;H(1,0)}}function uo(e,t,n){var o=z();try{return B(e)(t,n)}catch(s){if(G(o),s!==s+0)throw s;H(1,0)}}function lo(e){var t=z();try{B(e)()}catch(n){if(G(t),n!==n+0)throw n;H(1,0)}}function fo(e,t,n,o,s){var u=z();try{return B(e)(t,n,o,s)}catch(l){if(G(u),l!==l+0)throw l;H(1,0)}}function ho(e,t,n,o,s,u,l,d,p,g,T){var E=z();try{B(e)(t,n,o,s,u,l,d,p,g,T)}catch(O){if(G(E),O!==O+0)throw O;H(1,0)}}function po(e,t,n,o,s,u,l){var d=z();try{return B(e)(t,n,o,s,u,l)}catch(p){if(G(d),p!==p+0)throw p;H(1,0)}}function mo(e,t,n,o,s){var u=z();try{B(e)(t,n,o,s)}catch(l){if(G(u),l!==l+0)throw l;H(1,0)}}function vo(e,t,n,o,s,u){var l=z();try{return B(e)(t,n,o,s,u)}catch(d){if(G(l),d!==d+0)throw d;H(1,0)}}function yo(e,t,n,o,s,u,l,d){var p=z();try{return B(e)(t,n,o,s,u,l,d)}catch(g){if(G(p),g!==g+0)throw g;H(1,0)}}function go(e,t,n,o){var s=z();try{return B(e)(t,n,o)}catch(u){if(G(s),u!==u+0)throw u;H(1,0)}}function wo(e,t,n,o){var s=z();try{return B(e)(t,n,o)}catch(u){if(G(s),u!==u+0)throw u;H(1,0)}}function bo(e){var t=z();try{return B(e)()}catch(n){if(G(t),n!==n+0)throw n;H(1,0)}}function Co(e,t,n,o,s,u,l,d){var p=z();try{B(e)(t,n,o,s,u,l,d)}catch(g){if(G(p),g!==g+0)throw g;H(1,0)}}function _o(e,t,n,o,s,u,l,d,p,g,T,E){var O=z();try{return B(e)(t,n,o,s,u,l,d,p,g,T,E)}catch(M){if(G(O),M!==M+0)throw M;H(1,0)}}function To(e,t,n,o,s,u,l,d,p,g,T,E,O,M,V,q){var U=z();try{B(e)(t,n,o,s,u,l,d,p,g,T,E,O,M,V,q)}catch(K){if(G(U),K!==K+0)throw K;H(1,0)}}function $o(e,t,n,o,s){var u=z();try{return gr(e,t,n,o,s)}catch(l){if(G(u),l!==l+0)throw l;H(1,0)}}var st;_e=function e(){st||wr(),st||(_e=e)};function wr(){if(ie>0||(Ge(),ie>0))return;function e(){st||(st=!0,a.calledRun=!0,!W&&(ht(),c(a),a.onRuntimeInitialized&&a.onRuntimeInitialized(),pt()))}a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1),e()},1)):e()}if(a.preInit)for(typeof a.preInit=="function"&&(a.preInit=[a.preInit]);a.preInit.length>0;)a.preInit.pop()();return wr(),i.ready}})();function di(r){return Bt(zt,r)}async function fi(r,i){return ui(zt,r,i)}async function hi(r,i){return li(zt,r,i)}var ze;class Zr extends EventTarget{constructor(i={}){var a;super(),Uo(this,ze,void 0);try{const c=(a=i==null?void 0:i.formats)==null?void 0:a.filter(f=>f!=="unknown");if((c==null?void 0:c.length)===0)throw new TypeError("Hint option provided, but is empty.");c==null||c.forEach(f=>{if(!lt.has(f))throw new TypeError(`Failed to read the 'formats' property from 'BarcodeDetectorOptions': The provided value '${f}' is not a valid enum value of type BarcodeFormat.`)}),Lo(this,ze,c??[]),di().then(f=>{this.dispatchEvent(new CustomEvent("load",{detail:f}))}).catch(f=>{this.dispatchEvent(new CustomEvent("error",{detail:f}))})}catch(c){throw Mr(c,"Failed to construct 'BarcodeDetector'")}}static async getSupportedFormats(){return No.filter(i=>i!=="unknown")}async detect(i){try{const a=await Jo(i);if(a===null)return[];let c;try{Yr(a)?c=await fi(a,{tryHarder:!0,formats:Ar(this,ze).map(f=>lt.get(f))}):c=await hi(a,{tryHarder:!0,formats:Ar(this,ze).map(f=>lt.get(f))})}catch(f){throw console.error(f),new DOMException("Barcode detection service unavailable.","NotSupportedError")}return c.map(f=>{const{topLeft:{x:m,y:v},topRight:{x:C,y:h},bottomLeft:{x:w,y:_},bottomRight:{x:b,y:D}}=f.position,j=Math.min(m,C,w,b),k=Math.min(v,h,_,D),W=Math.max(m,C,w,b),L=Math.max(v,h,_,D);return{boundingBox:new DOMRectReadOnly(j,k,W-j,L-k),rawValue:f.text,format:Ho(f.format),cornerPoints:[{x:m,y:v},{x:C,y:h},{x:b,y:D},{x:w,y:_}]}})}catch(a){throw Mr(a,"Failed to execute 'detect' on 'BarcodeDetector'")}}}ze=new WeakMap;const en=(r,i,a="error")=>{let c,f;const m=new Promise((v,C)=>{c=v,f=C,r.addEventListener(i,c),r.addEventListener(a,f)});return m.finally(()=>{r.removeEventListener(i,c),r.removeEventListener(a,f)}),m},jr=r=>new Promise(i=>setTimeout(i,r));class tn extends Error{constructor(){super("this browser has no Stream API support"),this.name="StreamApiNotSupportedError"}}class pi extends Error{constructor(){super("camera access is only permitted in secure context. Use HTTPS or localhost rather than HTTP."),this.name="InsecureContextError"}}class mi extends Error{constructor(){super("Loading camera stream timed out after 3 seconds. If you are on iOS in PWA mode, this is a known issue (see https://github.com/gruhn/vue-qrcode-reader/issues/298)"),this.name="StreamLoadTimeoutError"}}let Vt;const vi=r=>{Vt=new Zr({formats:r})},yi=async(r,{detectHandler:i,locateHandler:a,minDelay:c,formats:f})=>{Vt=new Zr({formats:f});const m=v=>async C=>{if(r.readyState>1){const{lastScanned:h,contentBefore:w,lastScanHadContent:_}=v;if(C-h!w.includes(W.rawValue));D&&i(b);const j=b.length>0;j&&a(b),!j&&_&&a(b);const k={lastScanned:C,lastScanHadContent:j,contentBefore:D?b.map(W=>W.rawValue):w};window.requestAnimationFrame(m(k))}}};m({lastScanned:performance.now(),contentBefore:[],lastScanHadContent:!1})(performance.now())};var rn={},ee={};Object.defineProperty(ee,"__esModule",{value:!0});ee.compactObject=on;ee.deprecated=Pi;var gi=ee.detectBrowser=Ei;ee.disableLog=Ti;ee.disableWarnings=$i;ee.extractVersion=dt;ee.filterStats=Oi;ee.log=Si;ee.walkStats=ft;ee.wrapPeerConnectionEvent=_i;function wi(r,i,a){return i=bi(i),i in r?Object.defineProperty(r,i,{value:a,enumerable:!0,configurable:!0,writable:!0}):r[i]=a,r}function bi(r){var i=Ci(r,"string");return be(i)==="symbol"?i:String(i)}function Ci(r,i){if(be(r)!=="object"||r===null)return r;var a=r[Symbol.toPrimitive];if(a!==void 0){var c=a.call(r,i||"default");if(be(c)!=="object")return c;throw new TypeError("@@toPrimitive must return a primitive value.")}return(i==="string"?String:Number)(r)}function be(r){"@babel/helpers - typeof";return be=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},be(r)}var nn=!0,an=!0;function dt(r,i,a){var c=r.match(i);return c&&c.length>=a&&parseInt(c[a],10)}function _i(r,i,a){if(r.RTCPeerConnection){var c=r.RTCPeerConnection.prototype,f=c.addEventListener;c.addEventListener=function(v,C){if(v!==i)return f.apply(this,arguments);var h=function(w){var _=a(w);_&&(C.handleEvent?C.handleEvent(_):C(_))};return this._eventMap=this._eventMap||{},this._eventMap[i]||(this._eventMap[i]=new Map),this._eventMap[i].set(C,h),f.apply(this,[v,h])};var m=c.removeEventListener;c.removeEventListener=function(v,C){if(v!==i||!this._eventMap||!this._eventMap[i])return m.apply(this,arguments);if(!this._eventMap[i].has(C))return m.apply(this,arguments);var h=this._eventMap[i].get(C);return this._eventMap[i].delete(C),this._eventMap[i].size===0&&delete this._eventMap[i],Object.keys(this._eventMap).length===0&&delete this._eventMap,m.apply(this,[v,h])},Object.defineProperty(c,"on"+i,{get:function(){return this["_on"+i]},set:function(v){this["_on"+i]&&(this.removeEventListener(i,this["_on"+i]),delete this["_on"+i]),v&&this.addEventListener(i,this["_on"+i]=v)},enumerable:!0,configurable:!0})}}function Ti(r){return typeof r!="boolean"?new Error("Argument type: "+be(r)+". Please use a boolean."):(nn=r,r?"adapter.js logging disabled":"adapter.js logging enabled")}function $i(r){return typeof r!="boolean"?new Error("Argument type: "+be(r)+". Please use a boolean."):(an=!r,"adapter.js deprecation warnings "+(r?"disabled":"enabled"))}function Si(){if((typeof window>"u"?"undefined":be(window))==="object"){if(nn)return;typeof console<"u"&&typeof console.log=="function"&&console.log.apply(console,arguments)}}function Pi(r,i){an&&console.warn(r+" is deprecated, please use "+i+" instead.")}function Ei(r){var i={browser:null,version:null};if(typeof r>"u"||!r.navigator||!r.navigator.userAgent)return i.browser="Not a browser.",i;var a=r.navigator;if(a.mozGetUserMedia)i.browser="firefox",i.version=dt(a.userAgent,/Firefox\/(\d+)\./,1);else if(a.webkitGetUserMedia||r.isSecureContext===!1&&r.webkitRTCPeerConnection)i.browser="chrome",i.version=dt(a.userAgent,/Chrom(e|ium)\/(\d+)\./,2);else if(r.RTCPeerConnection&&a.userAgent.match(/AppleWebKit\/(\d+)\./))i.browser="safari",i.version=dt(a.userAgent,/AppleWebKit\/(\d+)\./,1),i.supportsUnifiedPlan=r.RTCRtpTransceiver&&"currentDirection"in r.RTCRtpTransceiver.prototype;else return i.browser="Not a supported browser.",i;return i}function Rr(r){return Object.prototype.toString.call(r)==="[object Object]"}function on(r){return Rr(r)?Object.keys(r).reduce(function(i,a){var c=Rr(r[a]),f=c?on(r[a]):r[a],m=c&&!Object.keys(f).length;return f===void 0||m?i:Object.assign(i,wi({},a,f))},{}):r}function ft(r,i,a){!i||a.has(i.id)||(a.set(i.id,i),Object.keys(i).forEach(function(c){c.endsWith("Id")?ft(r,r.get(i[c]),a):c.endsWith("Ids")&&i[c].forEach(function(f){ft(r,r.get(f),a)})}))}function Oi(r,i,a){var c=a?"outbound-rtp":"inbound-rtp",f=new Map;if(i===null)return f;var m=[];return r.forEach(function(v){v.type==="track"&&v.trackIdentifier===i.id&&m.push(v)}),m.forEach(function(v){r.forEach(function(C){C.type===c&&C.trackId===v.id&&ft(r,C,f)})}),f}Object.defineProperty(rn,"__esModule",{value:!0});var Ai=rn.shimGetUserMedia=ki,Mi=xi(ee);function sn(r){if(typeof WeakMap!="function")return null;var i=new WeakMap,a=new WeakMap;return(sn=function(c){return c?a:i})(r)}function xi(r,i){if(!i&&r&&r.__esModule)return r;if(r===null||we(r)!=="object"&&typeof r!="function")return{default:r};var a=sn(i);if(a&&a.has(r))return a.get(r);var c={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var m in r)if(m!=="default"&&Object.prototype.hasOwnProperty.call(r,m)){var v=f?Object.getOwnPropertyDescriptor(r,m):null;v&&(v.get||v.set)?Object.defineProperty(c,m,v):c[m]=r[m]}return c.default=r,a&&a.set(r,c),c}function we(r){"@babel/helpers - typeof";return we=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},we(r)}var Fr=Mi.log;function ki(r,i){var a=r&&r.navigator;if(a.mediaDevices){var c=function(h){if(we(h)!=="object"||h.mandatory||h.optional)return h;var w={};return Object.keys(h).forEach(function(_){if(!(_==="require"||_==="advanced"||_==="mediaSource")){var b=we(h[_])==="object"?h[_]:{ideal:h[_]};b.exact!==void 0&&typeof b.exact=="number"&&(b.min=b.max=b.exact);var D=function(k,W){return k?k+W.charAt(0).toUpperCase()+W.slice(1):W==="deviceId"?"sourceId":W};if(b.ideal!==void 0){w.optional=w.optional||[];var j={};typeof b.ideal=="number"?(j[D("min",_)]=b.ideal,w.optional.push(j),j={},j[D("max",_)]=b.ideal,w.optional.push(j)):(j[D("",_)]=b.ideal,w.optional.push(j))}b.exact!==void 0&&typeof b.exact!="number"?(w.mandatory=w.mandatory||{},w.mandatory[D("",_)]=b.exact):["min","max"].forEach(function(k){b[k]!==void 0&&(w.mandatory=w.mandatory||{},w.mandatory[D(k,_)]=b[k])})}}),h.advanced&&(w.optional=(w.optional||[]).concat(h.advanced)),w},f=function(h,w){if(i.version>=61)return w(h);if(h=JSON.parse(JSON.stringify(h)),h&&we(h.audio)==="object"){var _=function(k,W,L){W in k&&!(L in k)&&(k[L]=k[W],delete k[W])};h=JSON.parse(JSON.stringify(h)),_(h.audio,"autoGainControl","googAutoGainControl"),_(h.audio,"noiseSuppression","googNoiseSuppression"),h.audio=c(h.audio)}if(h&&we(h.video)==="object"){var b=h.video.facingMode;b=b&&(we(b)==="object"?b:{ideal:b});var D=i.version<66;if(b&&(b.exact==="user"||b.exact==="environment"||b.ideal==="user"||b.ideal==="environment")&&!(a.mediaDevices.getSupportedConstraints&&a.mediaDevices.getSupportedConstraints().facingMode&&!D)){delete h.video.facingMode;var j;if(b.exact==="environment"||b.ideal==="environment"?j=["back","rear"]:(b.exact==="user"||b.ideal==="user")&&(j=["front"]),j)return a.mediaDevices.enumerateDevices().then(function(k){k=k.filter(function(L){return L.kind==="videoinput"});var W=k.find(function(L){return j.some(function(P){return L.label.toLowerCase().includes(P)})});return!W&&k.length&&j.includes("back")&&(W=k[k.length-1]),W&&(h.video.deviceId=b.exact?{exact:W.deviceId}:{ideal:W.deviceId}),h.video=c(h.video),Fr("chrome: "+JSON.stringify(h)),w(h)})}h.video=c(h.video)}return Fr("chrome: "+JSON.stringify(h)),w(h)},m=function(h){return i.version>=64?h:{name:{PermissionDeniedError:"NotAllowedError",PermissionDismissedError:"NotAllowedError",InvalidStateError:"NotAllowedError",DevicesNotFoundError:"NotFoundError",ConstraintNotSatisfiedError:"OverconstrainedError",TrackStartError:"NotReadableError",MediaDeviceFailedDueToShutdown:"NotAllowedError",MediaDeviceKillSwitchOn:"NotAllowedError",TabCaptureError:"AbortError",ScreenCaptureError:"AbortError",DeviceCaptureError:"AbortError"}[h.name]||h.name,message:h.message,constraint:h.constraint||h.constraintName,toString:function(){return this.name+(this.message&&": ")+this.message}}},v=function(h,w,_){f(h,function(b){a.webkitGetUserMedia(b,w,function(D){_&&_(m(D))})})};if(a.getUserMedia=v.bind(a),a.mediaDevices.getUserMedia){var C=a.mediaDevices.getUserMedia.bind(a.mediaDevices);a.mediaDevices.getUserMedia=function(h){return f(h,function(w){return C(w).then(function(_){if(w.audio&&!_.getAudioTracks().length||w.video&&!_.getVideoTracks().length)throw _.getTracks().forEach(function(b){b.stop()}),new DOMException("","NotFoundError");return _},function(_){return Promise.reject(m(_))})})}}}}var cn={};Object.defineProperty(cn,"__esModule",{value:!0});var Di=cn.shimGetUserMedia=Fi,ji=Ri(ee);function un(r){if(typeof WeakMap!="function")return null;var i=new WeakMap,a=new WeakMap;return(un=function(c){return c?a:i})(r)}function Ri(r,i){if(!i&&r&&r.__esModule)return r;if(r===null||xe(r)!=="object"&&typeof r!="function")return{default:r};var a=un(i);if(a&&a.has(r))return a.get(r);var c={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var m in r)if(m!=="default"&&Object.prototype.hasOwnProperty.call(r,m)){var v=f?Object.getOwnPropertyDescriptor(r,m):null;v&&(v.get||v.set)?Object.defineProperty(c,m,v):c[m]=r[m]}return c.default=r,a&&a.set(r,c),c}function xe(r){"@babel/helpers - typeof";return xe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},xe(r)}function Fi(r,i){var a=r&&r.navigator,c=r&&r.MediaStreamTrack;if(a.getUserMedia=function(h,w,_){ji.deprecated("navigator.getUserMedia","navigator.mediaDevices.getUserMedia"),a.mediaDevices.getUserMedia(h).then(w,_)},!(i.version>55&&"autoGainControl"in a.mediaDevices.getSupportedConstraints())){var f=function(h,w,_){w in h&&!(_ in h)&&(h[_]=h[w],delete h[w])},m=a.mediaDevices.getUserMedia.bind(a.mediaDevices);if(a.mediaDevices.getUserMedia=function(h){return xe(h)==="object"&&xe(h.audio)==="object"&&(h=JSON.parse(JSON.stringify(h)),f(h.audio,"autoGainControl","mozAutoGainControl"),f(h.audio,"noiseSuppression","mozNoiseSuppression")),m(h)},c&&c.prototype.getSettings){var v=c.prototype.getSettings;c.prototype.getSettings=function(){var h=v.apply(this,arguments);return f(h,"mozAutoGainControl","autoGainControl"),f(h,"mozNoiseSuppression","noiseSuppression"),h}}if(c&&c.prototype.applyConstraints){var C=c.prototype.applyConstraints;c.prototype.applyConstraints=function(h){return this.kind==="audio"&&xe(h)==="object"&&(h=JSON.parse(JSON.stringify(h)),f(h,"autoGainControl","mozAutoGainControl"),f(h,"noiseSuppression","mozNoiseSuppression")),C.apply(this,[h])}}}}var le={};Object.defineProperty(le,"__esModule",{value:!0});le.shimAudioContext=Gi;le.shimCallbacksAPI=Ni;le.shimConstraints=fn;le.shimCreateOfferLegacy=zi;var Ii=le.shimGetUserMedia=Hi;le.shimLocalStreamsAPI=Ui;le.shimRTCIceServerUrls=Vi;le.shimRemoteStreamsAPI=Li;le.shimTrackEventTransceiver=Bi;var ln=Wi(ee);function dn(r){if(typeof WeakMap!="function")return null;var i=new WeakMap,a=new WeakMap;return(dn=function(c){return c?a:i})(r)}function Wi(r,i){if(!i&&r&&r.__esModule)return r;if(r===null||Ce(r)!=="object"&&typeof r!="function")return{default:r};var a=dn(i);if(a&&a.has(r))return a.get(r);var c={},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var m in r)if(m!=="default"&&Object.prototype.hasOwnProperty.call(r,m)){var v=f?Object.getOwnPropertyDescriptor(r,m):null;v&&(v.get||v.set)?Object.defineProperty(c,m,v):c[m]=r[m]}return c.default=r,a&&a.set(r,c),c}function Ce(r){"@babel/helpers - typeof";return Ce=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(i){return typeof i}:function(i){return i&&typeof Symbol=="function"&&i.constructor===Symbol&&i!==Symbol.prototype?"symbol":typeof i},Ce(r)}function Ui(r){if(!(Ce(r)!=="object"||!r.RTCPeerConnection)){if("getLocalStreams"in r.RTCPeerConnection.prototype||(r.RTCPeerConnection.prototype.getLocalStreams=function(){return this._localStreams||(this._localStreams=[]),this._localStreams}),!("addStream"in r.RTCPeerConnection.prototype)){var i=r.RTCPeerConnection.prototype.addTrack;r.RTCPeerConnection.prototype.addStream=function(a){var c=this;this._localStreams||(this._localStreams=[]),this._localStreams.includes(a)||this._localStreams.push(a),a.getAudioTracks().forEach(function(f){return i.call(c,f,a)}),a.getVideoTracks().forEach(function(f){return i.call(c,f,a)})},r.RTCPeerConnection.prototype.addTrack=function(a){for(var c=this,f=arguments.length,m=new Array(f>1?f-1:0),v=1;v=0)){a._remoteStreams.push(f);var m=new Event("addstream");m.stream=f,a.dispatchEvent(m)}})}),i.apply(a,arguments)}}}function Ni(r){if(!(Ce(r)!=="object"||!r.RTCPeerConnection)){var i=r.RTCPeerConnection.prototype,a=i.createOffer,c=i.createAnswer,f=i.setLocalDescription,m=i.setRemoteDescription,v=i.addIceCandidate;i.createOffer=function(h,w){var _=arguments.length>=2?arguments[2]:arguments[0],b=a.apply(this,[_]);return w?(b.then(h,w),Promise.resolve()):b},i.createAnswer=function(h,w){var _=arguments.length>=2?arguments[2]:arguments[0],b=c.apply(this,[_]);return w?(b.then(h,w),Promise.resolve()):b};var C=function(h,w,_){var b=f.apply(this,[h]);return _?(b.then(w,_),Promise.resolve()):b};i.setLocalDescription=C,C=function(h,w,_){var b=m.apply(this,[h]);return _?(b.then(w,_),Promise.resolve()):b},i.setRemoteDescription=C,C=function(h,w,_){var b=v.apply(this,[h]);return _?(b.then(w,_),Promise.resolve()):b},i.addIceCandidate=C}}function Hi(r){var i=r&&r.navigator;if(i.mediaDevices&&i.mediaDevices.getUserMedia){var a=i.mediaDevices,c=a.getUserMedia.bind(a);i.mediaDevices.getUserMedia=function(f){return c(fn(f))}}!i.getUserMedia&&i.mediaDevices&&i.mediaDevices.getUserMedia&&(i.getUserMedia=(function(f,m,v){i.mediaDevices.getUserMedia(f).then(m,v)}).bind(i))}function fn(r){return r&&r.video!==void 0?Object.assign({},r,{video:ln.compactObject(r.video)}):r}function Vi(r){if(r.RTCPeerConnection){var i=r.RTCPeerConnection;r.RTCPeerConnection=function(a,c){if(a&&a.iceServers){for(var f=[],m=0;m{let i=!1,a;return(...c)=>(i||(a=r(c),i=!0),a)};function me(r,i){if(r===!1)throw new Error(i??"assertion failure")}const Ji=qi(()=>{const r=gi(window);switch(r.browser){case"chrome":Ai(window,r);break;case"firefox":Di(window,r);break;case"safari":Ii(window,r);break;default:throw new tn}});let ke=Promise.resolve({type:"stop",data:{}});async function Ir(r,i,a){var c,f,m;if(window.isSecureContext!==!0)throw new pi;if(((c=navigator==null?void 0:navigator.mediaDevices)==null?void 0:c.getUserMedia)===void 0)throw new tn;Ji();const v=await navigator.mediaDevices.getUserMedia({audio:!1,video:i});r.srcObject!==void 0?r.srcObject=v:r.mozSrcObject!==void 0?r.mozSrcObject=v:window.URL.createObjectURL?r.src=window.URL.createObjectURL(v):window.webkitURL?r.src=window.webkitURL.createObjectURL(v):r.src=v.id,r.play(),await Promise.race([en(r,"loadeddata"),jr(3e3).then(()=>{throw new mi})]),await jr(500);const[C]=v.getVideoTracks(),h=(m=(f=C==null?void 0:C.getCapabilities)==null?void 0:f.call(C))!=null?m:{};let w=!1;return a&&h.torch&&(await C.applyConstraints({advanced:[{torch:!0}]}),w=!0),{type:"start",data:{videoEl:r,stream:v,capabilities:h,constraints:i,isTorchOn:w}}}async function Yi(r,{constraints:i,torch:a,restart:c=!1}){ke=ke.then(m=>{if(m.type==="start"){const{data:{videoEl:v,stream:C,constraints:h,isTorchOn:w}}=m;return!c&&r===v&&i===h&&a===w?m:hn(v,C,w).then(()=>Ir(r,i,a))}return Ir(r,i,a)});const f=await ke;if(f.type==="stop")throw new Error("Something went wrong with the camera task queue (start task).");return f.data.capabilities}async function hn(r,i,a){r.src="",r.srcObject=null,r.load(),await en(r,"error");for(const c of i.getTracks())a!=null||await c.applyConstraints({advanced:[{torch:!1}]}),i.removeTrack(c),c.stop();return{type:"stop",data:{}}}async function ut(){if(ke=ke.then(r=>{if(r.type==="stop")return r;const{data:{videoEl:i,stream:a,isTorchOn:c}}=r;return hn(i,a,c)}),(await ke).type==="start")throw new Error("Something went wrong with the camera task queue (stop task).")}const Qi=So({__name:"QrcodeStream",props:{constraints:{type:Object,default(){return{facingMode:"environment"}}},formats:{type:Array,default:()=>["qr_code"]},paused:{type:Boolean,default:!1},torch:{type:Boolean,default:!1},track:{type:Function}},emits:["detect","camera-on","camera-off","error"],setup(r,{emit:i}){const a=r,c=i,f=ne(a.constraints),m=ne(a.formats);Be(()=>a.constraints,(x,S)=>{JSON.stringify(x)!==JSON.stringify(S)&&(f.value=x)},{deep:!0}),Be(()=>a.formats,(x,S)=>{JSON.stringify(x)!==JSON.stringify(S)&&(m.value=x)},{deep:!0});const v=ne(),C=ne(),h=ne(),w=ne(!1),_=ne(!1);Wr(()=>{_.value=!0}),Po(()=>{ut()});const b=Ut(()=>({torch:a.torch,constraints:f.value,shouldStream:_.value&&!a.paused}));Be(b,async x=>{const S=h.value;me(S!==void 0,"cameraSettings watcher should never be triggered when component is not mounted. Thus video element should always be defined.");const A=v.value;me(A!==void 0,"cameraSettings watcher should never be triggered when component is not mounted. Thus canvas should always be defined.");const N=A.getContext("2d");if(me(N!==null,"if cavnas is defined, canvas 2d context should also be non-null"),x.shouldStream){ut(),w.value=!1;try{const ae=await Yi(S,x);_.value?(w.value=!0,c("camera-on",ae)):await ut()}catch(ae){c("error",ae)}}else A.width=S.videoWidth,A.height=S.videoHeight,N.drawImage(S,0,0,S.videoWidth,S.videoHeight),ut(),w.value=!1,c("camera-off")},{deep:!0}),Be(m,x=>{_.value&&vi(x)});const D=Ut(()=>b.value.shouldStream&&w.value);Be(D,x=>{if(x){me(v.value!==void 0,"shouldScan watcher should only be triggered when component is mounted. Thus pause frame canvas is defined"),j(v.value),me(C.value!==void 0,"shouldScan watcher should only be triggered when component is mounted. Thus tracking canvas is defined"),j(C.value);const S=()=>a.track===void 0?500:40;me(h.value!==void 0,"shouldScan watcher should only be triggered when component is mounted. Thus video element is defined"),yi(h.value,{detectHandler:A=>c("detect",A),formats:m.value,locateHandler:k,minDelay:S()})}});const j=x=>{const S=x.getContext("2d");me(S!==null,"canvas 2d context should always be non-null"),S.clearRect(0,0,x.width,x.height)},k=x=>{const S=C.value;me(S!==void 0,"onLocate handler should only be called when component is mounted. Thus tracking canvas is always defined.");const A=h.value;if(me(A!==void 0,"onLocate handler should only be called when component is mounted. Thus video element is always defined."),x.length===0||a.track===void 0)j(S);else{const N=A.offsetWidth,ae=A.offsetHeight,Pe=A.videoWidth,Ee=A.videoHeight,je=Math.max(N/Pe,ae/Ee),Re=Pe*je,Ge=Ee*je,ht=Re/Pe,pt=Ge/Ee,mt=(N-Re)/2,vt=(ae-Ge)/2,Fe=({x:ve,y:te})=>({x:Math.floor(ve*ht),y:Math.floor(te*pt)}),ie=({x:ve,y:te})=>({x:Math.floor(ve+mt),y:Math.floor(te+vt)}),_e=x.map(ve=>{const{boundingBox:te,cornerPoints:gt}=ve,{x:qe,y:ye}=ie(Fe({x:te.x,y:te.y})),{x:Je,y:wt}=Fe({x:te.width,y:te.height});return{...ve,cornerPoints:gt.map(Ye=>ie(Fe(Ye))),boundingBox:DOMRectReadOnly.fromRect({x:qe,y:ye,width:Je,height:wt})}});S.width=A.offsetWidth,S.height=A.offsetHeight;const yt=S.getContext("2d");a.track(_e,yt)}},W={width:"100%",height:"100%",position:"relative","z-index":"0"},L={width:"100%",height:"100%",position:"absolute",top:"0",left:"0"},P={width:"100%",height:"100%","object-fit":"cover"},F=Ut(()=>D.value?P:{...P,visibility:"hidden",position:"absolute"});return(x,S)=>(ue(),ge("div",{style:W},[I("video",{ref_key:"videoRef",ref:h,style:Eo(F.value),autoplay:"",muted:"",playsinline:""},null,4),Ht(I("canvas",{id:"qrcode-stream-pause-frame",ref_key:"pauseFrameRef",ref:v,style:P},null,512),[[Ur,!D.value]]),I("canvas",{id:"qrcode-stream-tracking-layer",ref_key:"trackingLayerRef",ref:C,style:L},null,512),I("div",{style:L},[Oo(x.$slots,"default")])]))}}),Xi={class:"modal is-active"},Ki=I("div",{class:"modal-background"},null,-1),Zi={class:"modal-content"},es={class:"section"},ts={class:"columns is-centered"},rs={class:"column is-three-quarters"},ns={class:"modal-slot has-text-centered is-shadowless"},as={key:0},os={class:"block is-size-5"},is={key:0},ss={class:"is-size-7 mb-3"},cs={class:"is-size-7 mb-3"},us={class:"addressbar columns is-mobile is-gapless"},ls={class:"column is-narrow has-text-left circled"},ds=I("div",{class:"column has-text-left ml-3"}," http://my.2fauth.app/... ",-1),fs={class:"column is-narrow has-text-right"},hs={key:1,class:"is-size-7"},ps={class:"fullscreen-streamer"},ms={key:1,class:"field has-addons has-addons-centered mt-3"},vs={class:"control has-icons-left"},ys={class:"select"},gs=["value"],ws={class:"icon is-small is-left"},bs={class:"fullscreen-footer"},Ps={__name:"Capture",setup(r){const i=Ao(),a=Wo(),c=Mo(),f=ne(!1),m=ne(null),v=ne([]),C=ne(""),h=xo(new Ro({qrcode:null,uri:""})),w=ne(!1);Wr(async()=>{var P;(P=navigator.mediaDevices)!=null&&P.enumerateDevices?await navigator.mediaDevices.enumerateDevices().then(F=>{v.value=F.filter(({kind:x})=>x==="videoinput"),v.value.length>0?m.value=v.value[0]:C.value="no_cam_on_device"}).catch(F=>{_(F)}):C.value="secured_context_required"});const _=P=>{P.name==="NotAllowedError"?C.value="need_grant_permission":P.name==="NotFoundError"?C.value="no_cam_on_device":P.name==="NotSupportedError"||P.name==="InsecureContextError"?C.value="secured_context_required":P.name==="NotReadableError"?C.value="not_readable":P.name==="OverconstrainedError"?C.value="camera_not_suitable":P.name==="StreamApiNotSupportedError"?C.value="stream_api_not_supported":c.error(P)},b=async P=>{const[F]=P;h.uri=F.rawValue,h.uri?h.uri.slice(0,33).toLowerCase()=="otpauth-migration://offline?data="?(a.migrationUri=h.uri,i.push({name:"importAccounts"})):h.uri.slice(0,15).toLowerCase()!=="otpauth://totp/"&&h.uri.slice(0,15).toLowerCase()!=="otpauth://hotp/"?(w.value=!0,c.warn({text:Or("errors.no_valid_otp")})):(a.decodedUri=h.uri,i.push({name:"createAccount"})):c.warn({text:Or("errors.qrcode_cannot_be_read")})};function D(P){f.value=!0}function j(P){f.value=!1}function k(){i.go(-1)}const W=(P,F)=>{for(const x of P){const[S,...A]=x.cornerPoints;F.strokeStyle="red",F.beginPath(),F.moveTo(S.x,S.y);for(const{x:N,y:ae}of A)F.lineTo(N,ae);F.lineTo(S.x,S.y),F.closePath(),F.stroke()}};function L(){location.reload()}return(P,F)=>{const x=Lt("FontAwesomeIcon"),S=Lt("ButtonBackCloseCancel"),A=Lt("modal");return ue(),ge(Sr,null,[I("div",Xi,[Ki,I("div",Zi,[I("section",es,[I("div",ts,[I("div",rs,[I("div",ns,[Z(C)?(ue(),ge("div",as,[I("p",os,Se(P.$t("twofaccounts.stream.live_scan_cant_start")),1),pe(Z(Er),null,{default:Nt(({mode:N})=>[I("p",{class:Pr(["block",{"has-text-light":N=="dark"}])},Se(P.$t("twofaccounts.stream."+Z(C)+".reason")),3)]),_:1}),Z(C)=="need_grant_permission"?(ue(),ge("div",is,[I("p",ss,Se(P.$t("twofaccounts.stream.need_grant_permission.solution")),1),I("p",cs,Se(P.$t("twofaccounts.stream.need_grant_permission.click_camera_icon")),1),I("div",us,[I("div",ls,[pe(x,{icon:["fas","lock"],class:"ml-1",size:"xs"}),pe(x,{icon:["fas","video-slash"],class:"ml-3",size:"xs"})]),ds,I("div",fs,[pe(x,{icon:["far","star"],class:"mr-1"})])]),I("p",null,[I("a",{onClick:ko(L,["stop"])},Se(P.$t("commons.refresh")),1)])])):(ue(),ge("p",hs,Se(P.$t("twofaccounts.stream."+Z(C)+".solution")),1))])):(ue(),_r(Z(Er),{key:1},{default:Nt(({mode:N})=>[I("span",{class:Pr(["is-size-4",N=="dark"?"has-text-light":"has-text-grey-dark"])},[pe(Fo,{isVisible:!0,type:"raw",class:"is-size-1"})],2)]),_:1}))])])])])]),Ht(I("div",ps,[Z(m)!==null?(ue(),_r(Z(Qi),{key:0,track:W,onDetect:b,onError:_,onCameraOn:D,onCameraOff:j})):Tr("",!0),Z(f)&&Z(v).length>1?(ue(),ge("div",ms,[I("p",vs,[I("span",ys,[Ht(I("select",{"onUpdate:modelValue":F[0]||(F[0]=N=>$r(m)?m.value=N:null)},[(ue(!0),ge(Sr,null,Do(Z(v),N=>(ue(),ge("option",{key:N.label,value:N},Se(N.label?N.label:P.$t("commons.default")),9,gs))),128))],512),[[jo,Z(m)]])]),I("span",ws,[pe(x,{icon:["fas","camera"]})])])])):Tr("",!0)],512),[[Ur,!Z(C)]]),I("div",bs,[pe(S,{action:"cancel",isCapture:!0,useLinkTag:!1,onCanceled:F[1]||(F[1]=N=>k())})])]),pe(A,{modelValue:Z(w),"onUpdate:modelValue":F[2]||(F[2]=N=>$r(w)?w.value=N:null)},{default:Nt(()=>[pe(Io,{qrContent:Z(h).uri},null,8,["qrContent"])]),_:1},8,["modelValue"])],64)}}};export{Ps as default}; diff --git a/public/build/assets/CopyButton-CDpmfULX.js b/public/build/assets/CopyButton-jPP7GkVs.js similarity index 90% rename from public/build/assets/CopyButton-CDpmfULX.js rename to public/build/assets/CopyButton-jPP7GkVs.js index b03ab32a..0651aca7 100644 --- a/public/build/assets/CopyButton-CDpmfULX.js +++ b/public/build/assets/CopyButton-jPP7GkVs.js @@ -1 +1 @@ -import{b as r,T as p,e as l,f as m,g as _,m as u,C as b,H as d}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const y=["aria-label","title"],C={__name:"CopyButton",props:{token:String},setup(e){const s=r(),{copy:n}=p({legacy:!0}),c=e;function a(){n(c.token),s.success({text:d("commons.copied_to_clipboard")})}return(o,t)=>{const i=l("FontAwesomeIcon");return m(),_("button",{"aria-label":o.$t("commons.copy_to_clipboard"),title:o.$t("commons.copy_to_clipboard"),class:"button is-like-text is-pulled-right is-small is-text",onClick:t[0]||(t[0]=b(f=>a(),["stop"]))},[u(i,{icon:["fas","copy"]})],8,y)}}};export{C as _}; +import{b as r,T as p,e as l,f as m,g as _,m as u,C as b,H as d}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const y=["aria-label","title"],C={__name:"CopyButton",props:{token:String},setup(e){const s=r(),{copy:n}=p({legacy:!0}),c=e;function a(){n(c.token),s.success({text:d("commons.copied_to_clipboard")})}return(o,t)=>{const i=l("FontAwesomeIcon");return m(),_("button",{"aria-label":o.$t("commons.copy_to_clipboard"),title:o.$t("commons.copy_to_clipboard"),class:"button is-like-text is-pulled-right is-small is-text",onClick:t[0]||(t[0]=b(f=>a(),["stop"]))},[u(i,{icon:["fas","copy"]})],8,y)}}};export{C as _}; diff --git a/public/build/assets/Create-ISEYWR5R.js b/public/build/assets/Create-Ppjik0Rc.js similarity index 93% rename from public/build/assets/Create-ISEYWR5R.js rename to public/build/assets/Create-Ppjik0Rc.js index 19ddcb9d..151d9207 100644 --- a/public/build/assets/Create-ISEYWR5R.js +++ b/public/build/assets/Create-Ppjik0Rc.js @@ -1 +1 @@ -import{b as _,u as F,d as V,e as n,f as b,g,m as r,p as y,h as x,i as o,C as B,H as C}from"./app-CYV6HkYG.js";import{F as h}from"./Form-DWTCaq3y.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const v={__name:"Create",setup(E){const m=_(),l=F(),e=V(new h({name:"",email:"",password:"",password_confirmation:"",is_admin:!1}));async function i(d){e.password_confirmation=e.password,e.post("/api/v1/users").then(a=>{const t=a.data;m.success({text:C("admin.user_created")}),l.push({name:"admin.manageUser",params:{userId:t.info.id}})})}return(d,a)=>{const t=n("FormField"),u=n("FormPasswordField"),p=n("FormCheckbox"),f=n("FormButtons"),c=n("FormWrapper"),w=n("VueFooter");return b(),g("div",null,[r(c,{title:"admin.new_user"},{default:y(()=>[x("form",{onSubmit:B(i,["prevent"]),onKeydown:a[4]||(a[4]=s=>o(e).onKeydown(s))},[r(t,{modelValue:o(e).name,"onUpdate:modelValue":a[0]||(a[0]=s=>o(e).name=s),fieldName:"name",fieldError:o(e).errors.get("name"),inputType:"text",label:"auth.forms.name",maxLength:255,autofocus:""},null,8,["modelValue","fieldError"]),r(t,{modelValue:o(e).email,"onUpdate:modelValue":a[1]||(a[1]=s=>o(e).email=s),fieldName:"email",fieldError:o(e).errors.get("email"),inputType:"email",label:"auth.forms.email",maxLength:255},null,8,["modelValue","fieldError"]),r(u,{modelValue:o(e).password,"onUpdate:modelValue":a[2]||(a[2]=s=>o(e).password=s),fieldName:"password",fieldError:o(e).errors.get("password"),showRules:!0,label:"auth.forms.password",autocomplete:"new-password"},null,8,["modelValue","fieldError"]),r(p,{modelValue:o(e).is_admin,"onUpdate:modelValue":a[3]||(a[3]=s=>o(e).is_admin=s),fieldName:"is_admin",label:"admin.forms.is_admin.label",help:"admin.forms.is_admin.help"},null,8,["modelValue"]),r(f,{isBusy:o(e).isBusy,isDisabled:o(e).isDisabled,showCancelButton:!0,cancelLandingView:"admin.users",caption:"commons.create",submitId:"btnCreateUser"},null,8,["isBusy","isDisabled","cancelLandingView"])],32)]),_:1}),r(w)])}}};export{v as default}; +import{b as _,u as F,d as V,e as n,f as b,g,m as r,p as y,h as x,i as o,C as B,H as C}from"./app-CeOdx_TG.js";import{F as h}from"./Form-BSfNB4q6.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const v={__name:"Create",setup(E){const m=_(),l=F(),e=V(new h({name:"",email:"",password:"",password_confirmation:"",is_admin:!1}));async function i(d){e.password_confirmation=e.password,e.post("/api/v1/users").then(a=>{const t=a.data;m.success({text:C("admin.user_created")}),l.push({name:"admin.manageUser",params:{userId:t.info.id}})})}return(d,a)=>{const t=n("FormField"),u=n("FormPasswordField"),p=n("FormCheckbox"),f=n("FormButtons"),c=n("FormWrapper"),w=n("VueFooter");return b(),g("div",null,[r(c,{title:"admin.new_user"},{default:y(()=>[x("form",{onSubmit:B(i,["prevent"]),onKeydown:a[4]||(a[4]=s=>o(e).onKeydown(s))},[r(t,{modelValue:o(e).name,"onUpdate:modelValue":a[0]||(a[0]=s=>o(e).name=s),fieldName:"name",fieldError:o(e).errors.get("name"),inputType:"text",label:"auth.forms.name",maxLength:255,autofocus:""},null,8,["modelValue","fieldError"]),r(t,{modelValue:o(e).email,"onUpdate:modelValue":a[1]||(a[1]=s=>o(e).email=s),fieldName:"email",fieldError:o(e).errors.get("email"),inputType:"email",label:"auth.forms.email",maxLength:255},null,8,["modelValue","fieldError"]),r(u,{modelValue:o(e).password,"onUpdate:modelValue":a[2]||(a[2]=s=>o(e).password=s),fieldName:"password",fieldError:o(e).errors.get("password"),showRules:!0,label:"auth.forms.password",autocomplete:"new-password"},null,8,["modelValue","fieldError"]),r(p,{modelValue:o(e).is_admin,"onUpdate:modelValue":a[3]||(a[3]=s=>o(e).is_admin=s),fieldName:"is_admin",label:"admin.forms.is_admin.label",help:"admin.forms.is_admin.help"},null,8,["modelValue"]),r(f,{isBusy:o(e).isBusy,isDisabled:o(e).isDisabled,showCancelButton:!0,cancelLandingView:"admin.users",caption:"commons.create",submitId:"btnCreateUser"},null,8,["isBusy","isDisabled","cancelLandingView"])],32)]),_:1}),r(w)])}}};export{v as default}; diff --git a/public/build/assets/CreateUpdate-D5u6vBmO.js b/public/build/assets/CreateUpdate-Bcq5-Ipn.js similarity index 87% rename from public/build/assets/CreateUpdate-D5u6vBmO.js rename to public/build/assets/CreateUpdate-Bcq5-Ipn.js index 85212ecf..02276416 100644 --- a/public/build/assets/CreateUpdate-D5u6vBmO.js +++ b/public/build/assets/CreateUpdate-Bcq5-Ipn.js @@ -1 +1 @@ -import{V as v,u as w,$ as h,x as y,d as N,a0 as V,K as _,e as m,f as C,k as E,p as I,i as t,h as S,m as i,C as $}from"./app-CYV6HkYG.js";import{F as k}from"./Form-DWTCaq3y.js";import{u as K}from"./bus-9R_lUvV0.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const U={__name:"CreateUpdate",props:{groupId:[Number,String]},setup(c){const p=v(),d=w(),l=h(),s=K(),a=c,r=y(()=>a.groupId!=null),o=N(new k({name:""}));V(()=>{l.name=="editGroup"&&(s.editedGroupName?(o.name=s.editedGroupName,s.editedGroupName=void 0):_.get(a.groupId).then(e=>{o.name=e.data.name}))});function f(){r.value?B():g()}async function g(){o.post("/api/v1/groups").then(e=>{p.addOrEdit(e.data),d.push({name:"groups"})})}async function B(){o.put("/api/v1/groups/"+a.groupId).then(e=>{p.addOrEdit(e.data),d.push({name:"groups"})})}return(e,n)=>{const F=m("FormField"),b=m("FormButtons"),G=m("FormWrapper");return C(),E(G,{title:t(r)?e.$t("groups.forms.rename_group"):e.$t("groups.forms.new_group")},{default:I(()=>[S("form",{onSubmit:$(f,["prevent"]),onKeydown:n[1]||(n[1]=u=>t(o).onKeydown(u))},[i(F,{modelValue:t(o).name,"onUpdate:modelValue":n[0]||(n[0]=u=>t(o).name=u),fieldName:"name",fieldError:t(o).errors.get("name"),label:"commons.name",autofocus:""},null,8,["modelValue","fieldError"]),i(b,{submitId:t(r)?"btnEditGroup":"btnCreateGroup",isBusy:t(o).isBusy,caption:t(r)?e.$t("commons.save"):e.$t("commons.create"),showCancelButton:!0,cancelLandingView:"groups"},null,8,["submitId","isBusy","caption"])],32)]),_:1},8,["title"])}}};export{U as default}; +import{V as v,u as w,$ as h,x as y,d as N,a0 as V,K as _,e as m,f as C,k as E,p as I,i as t,h as S,m as i,C as $}from"./app-CeOdx_TG.js";import{F as k}from"./Form-BSfNB4q6.js";import{u as K}from"./bus-Sx3kCjbz.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const U={__name:"CreateUpdate",props:{groupId:[Number,String]},setup(c){const p=v(),d=w(),l=h(),s=K(),a=c,r=y(()=>a.groupId!=null),o=N(new k({name:""}));V(()=>{l.name=="editGroup"&&(s.editedGroupName?(o.name=s.editedGroupName,s.editedGroupName=void 0):_.get(a.groupId).then(e=>{o.name=e.data.name}))});function f(){r.value?B():g()}async function g(){o.post("/api/v1/groups").then(e=>{p.addOrEdit(e.data),d.push({name:"groups"})})}async function B(){o.put("/api/v1/groups/"+a.groupId).then(e=>{p.addOrEdit(e.data),d.push({name:"groups"})})}return(e,n)=>{const F=m("FormField"),b=m("FormButtons"),G=m("FormWrapper");return C(),E(G,{title:t(r)?e.$t("groups.forms.rename_group"):e.$t("groups.forms.new_group")},{default:I(()=>[S("form",{onSubmit:$(f,["prevent"]),onKeydown:n[1]||(n[1]=u=>t(o).onKeydown(u))},[i(F,{modelValue:t(o).name,"onUpdate:modelValue":n[0]||(n[0]=u=>t(o).name=u),fieldName:"name",fieldError:t(o).errors.get("name"),label:"commons.name",autofocus:""},null,8,["modelValue","fieldError"]),i(b,{submitId:t(r)?"btnEditGroup":"btnCreateGroup",isBusy:t(o).isBusy,caption:t(r)?e.$t("commons.save"):e.$t("commons.create"),showCancelButton:!0,cancelLandingView:"groups"},null,8,["submitId","isBusy","caption"])],32)]),_:1},8,["title"])}}};export{U as default}; diff --git a/public/build/assets/CreateUpdate-qewMO0ZY.js b/public/build/assets/CreateUpdate-CPvMgltX.js similarity index 98% rename from public/build/assets/CreateUpdate-qewMO0ZY.js rename to public/build/assets/CreateUpdate-CPvMgltX.js index 0abcdadc..dcc8c024 100644 --- a/public/build/assets/CreateUpdate-qewMO0ZY.js +++ b/public/build/assets/CreateUpdate-CPvMgltX.js @@ -1 +1 @@ -import{_ as Ne,r as d,e as h,f as a,g as u,h as s,i as e,n as E,W as R,k as b,p as y,C as O,m as r,U as G,l as c,F as ce,R as qe,u as De,$ as Pe,a as He,c as Ke,b as Qe,d as se,x as Ve,o as Re,J as T,P as ne,s as Q,D as ae,E as $e,V as Ge,H as M,t as k,j as Ee,w as Fe}from"./app-CYV6HkYG.js";import{F as re}from"./Form-DWTCaq3y.js";import{_ as ie}from"./OtpDisplay-rOo0JVMb.js";import{_ as je}from"./QrContentDisplay-BGd7upKu.js";import{u as ze}from"./bus-9R_lUvV0.js";import"./Spinner-DAB1mDqh.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const We=["for","innerHTML"],Je=["disabled","id","type","value","placeholder","maxlength"],Xe={key:0,class:"control"},Ye=["title"],Ze={class:"icon"},eo={key:1,class:"control"},oo=["title"],to={class:"icon has-text-danger"},lo=["innerHTML"],Ie=Object.assign({inheritAttrs:!1},{__name:"FormLockField",props:{modelValue:String,modelModifiers:{default:()=>({})},isEditMode:{type:Boolean,default:!1},label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],inputType:{type:String,default:"text"},placeholder:{type:String,default:""},help:{type:String,default:""},hasOffset:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},isExpanded:{type:Boolean,default:!0},maxLength:{type:Number,default:null}},emits:["input:modelValue"],setup(p,{emit:j}){const g=p,{inputId:q}=Ne(g.inputType,g.fieldName),m=d(g.isDisabled||g.isEditMode),F=d(!1),x=d(0),w=j;function o(f){let v=f.target.value;g.modelModifiers.trimAll&&(v=v.replace(/\s+/g,"")),w("update:modelValue",v)}function S(f){let v=f.target.value;F.value=v.includes(" "),w("update:modelValue",v)}function $(f){F.value=f.target.value.includes(" "),x.value+=1}return(f,v)=>{const D=h("FontAwesomeIcon"),P=h("FieldError");return a(),u(ce,null,[s("label",{for:e(q),class:"label",innerHTML:f.$t(p.label)},null,8,We),s("div",{class:E(["field has-addons mb-0",{"pt-3":p.hasOffset}])},[s("div",{class:E(["control",{"is-expanded":p.isExpanded}])},[(a(),u("input",R({key:e(x),disabled:e(m),id:e(q),type:p.inputType,class:"input",value:p.modelValue,placeholder:p.placeholder},f.$attrs,{onInput:S,onChange:o,onBlur:$,maxlength:p.maxLength}),null,16,Je))],2),p.isEditMode?(a(),b(e(G),{key:0},{default:y(({mode:V})=>[e(m)?(a(),u("div",Xe,[s("button",{type:"button",class:E(["button field-lock",{"is-dark":V=="dark"}]),onClick:v[0]||(v[0]=O(i=>m.value=!1,["stop"])),title:f.$t("twofaccounts.forms.unlock.title")},[s("span",Ze,[r(D,{icon:["fas","lock"]})])],10,Ye)])):(a(),u("div",eo,[s("button",{type:"button",class:E(["button field-unlock",{"is-dark":V=="dark"}]),onClick:v[1]||(v[1]=O(i=>m.value=!0,["stop"])),title:f.$t("twofaccounts.forms.lock.title")},[s("span",to,[r(D,{icon:["fas","lock-open"]})])],10,oo)]))]),_:1})):c("",!0)],2),e(F)?(a(),b(P,{key:0,error:f.$t("twofaccounts.forms.spaces_are_ignored"),field:"spaces",alertType:"is-warning"},null,8,["error"])):c("",!0),p.fieldError!=null?(a(),b(P,{key:1,error:p.fieldError,field:p.fieldName},null,8,["error","field"])):c("",!0),p.help?(a(),u("p",{key:2,class:"help",innerHTML:f.$t(p.help)},null,8,lo)):c("",!0)],64)}}}),so={class:"container preview has-text-centered"},no={class:"columns is-mobile"},ao={class:"column"},ro={key:1,class:"add-icon-button"},io={class:"columns is-mobile",role:"alert"},co={key:0,class:"column"},uo={class:"columns is-mobile"},fo={class:"column quickform-footer"},po={class:"field is-grouped is-grouped-centered"},mo={class:"control"},vo={key:0,class:"field is-grouped"},ho={class:"control"},go=["title"],_o={class:"file-cta"},yo={class:"file-icon"},wo={class:"file-label"},bo={class:"label"},ko={class:"field is-grouped"},Vo={key:0,class:"control"},$o={class:"icon is-small"},Eo={class:"control is-flex"},Fo={class:"file-cta"},Io={class:"file-icon"},Co={class:"file-label"},To=["src","alt"],Mo=["aria-label"],xo={class:"field"},So=["innerHTML"],Ao={key:3},Lo={key:0},Oo={class:"title is-4 mt-5 mb-2"},Uo={class:"help mb-4"},Bo={class:"control"},No={key:0,class:"control"},Ro={__name:"CreateUpdate",props:{twofaccountId:[Number,String]},setup(p){const j=qe("2fauth"),g=De(),q=Pe(),m=He(),F=Ke(),x=ze(),w=Qe(),o=se(new re({service:"",account:"",otp_type:"",icon:"",group_id:m.preferences.defaultGroup==-1?m.preferences.activeGroup:m.preferences.defaultGroup,secret:"",algorithm:"",digits:null,counter:null,period:null,image:""})),S=se(new re({qrcode:null})),$=se(new re({icon:null})),f=d({otp_type:"",account:"",service:"",icon:""}),v=[{text:"TOTP",value:"totp"},{text:"HOTP",value:"hotp"},{text:"STEAM",value:"steamtotp"}],D=[{text:"6",value:6},{text:"7",value:7},{text:"8",value:8},{text:"9",value:9},{text:"10",value:10}],P=[{text:"sha1",value:"sha1"},{text:"sha256",value:"sha256"},{text:"sha512",value:"sha512"},{text:"md5",value:"md5"}],V=d(),i=d(""),U=d(!1),A=d(!1),B=d(!1),N=d(!1),I=d(!1),z=d(!1),W=d(null),J=d(null),H=d(null),X=d(null),ue=d(null),de=d(null),fe=d(null),Y=p,_=Ve(()=>Y.twofaccountId!=null),pe=Ve(()=>Ge().items.map(t=>({text:t.id>0?t.name:"- "+M("groups.no_group")+" -",value:t.id})));Re(()=>{q.name=="editAccount"?T.get(Y.twofaccountId).then(t=>{o.fill(t.data),o.group_id==null&&(o.group_id=0),o.setOriginal(),i.value=o.icon,N.value=!0}):x.decodedUri?(V.value=x.decodedUri,x.decodedUri=null,m.preferences.AutoSaveQrcodedAccount?T.storeFromUri(V.value).then(t=>{xe(t.data)}).catch(t=>{t.response.data.errors.uri&&(A.value=!0,N.value=!0)}):T.preview(V.value).then(t=>{o.fill(t.data),i.value=t.data.icon?t.data.icon:"",U.value=!0,ne().then(()=>{H.value.show()})}).catch(t=>{t.response.data.errors.uri&&(A.value=!0,N.value=!0)})):N.value=!0}),Q(i,t=>{U.value&&ne().then(()=>{H.value.icon=t})}),Q(I,t=>{var l,L;t==!1&&((l=X.value)==null||l.clearOTP(),(L=H.value)==null||L.clearOTP())}),Q(B,t=>{var l;t==!1&&((l=J.value)==null||l.clearOTP(),g.push({name:"accounts"}))}),Q(()=>o.otp_type,(t,l)=>{t==="steamtotp"?(o.service="Steam",ye()):l==="steamtotp"&&(o.service="",C())});function Ce(){_.value?Te():me()}async function me(){o.icon=i.value;const{data:t}=await o.post("/api/v1/twofaccounts");o.errors.any()===!1&&(F.items.push(t),w.success({text:M("twofaccounts.account_created")}),g.push({name:"accounts"}))}async function Te(){if(i.value!==o.icon){let l="";l=o.icon,o.icon=i.value,i.value=l,C()}const{data:t}=await o.put("/api/v1/twofaccounts/"+Y.twofaccountId);if(o.errors.any()===!1){const l=F.items.findIndex(L=>L.id===t.id);F.items.splice(l,1,t),w.success({text:M("twofaccounts.account_updated")}),g.push({name:"accounts"})}}function Me(){o.clear(),I.value=!0,X.value.show()}function xe(t){f.value.otp_type=t.otp_type,f.value.service=t.service,f.value.account=t.account,f.value.icon=t.icon,ne().then(()=>{B.value=!0,J.value.show(t.id)})}function ve(){o.hasChanged()||i.value!=o.icon?confirm(M("twofaccounts.confirm.cancel"))===!0&&((!_.value||i.value!=o.icon)&&C(),g.push({name:"accounts"})):g.push({name:"accounts"})}function he(){C(),$.icon=W.value.files[0],$.upload("/api/v1/icons",{returnError:!0}).then(t=>{i.value=t.data.filename,U.value&&(o.icon=i.value)}).catch(t=>{t.response.status!==422&&w.alert({text:t.response.data.message})})}function C(){_.value?i.value&&(i.value!==o.icon&&T.deleteIcon(i.value),i.value=""):i.value&&(T.deleteIcon(i.value),i.value="",U.value&&(o.icon=""))}function ge(t){o.counter=t.nextHotpCounter}function _e(t){o.errors.set(o.extractErrors(t))}function Se(){S.qrcode=de.value.files[0],S.upload("/api/v1/qrcode/decode",{returnError:!0}).then(t=>{V.value=t.data.data,T.preview(V.value,{returnError:!0}).then(l=>{o.fill(l.data),i.value=l.data.icon?l.data.icon:null}).catch(l=>{l.response.status===422?l.response.data.errors.uri?A.value=!0:w.alert({text:M(l.response.data.message)}):w.error(l)})}).catch(t=>{t.response.status!==422&&w.alert({text:t.response.data.message})})}function ye(){m.preferences.getOfficialIcons&&(z.value=!0,T.getLogo(o.service,{returnError:!0}).then(t=>{t.status===201?(C(),i.value=t.data.filename):w.warn({text:M("errors.no_logo_found_for_x",{service:we(o.service)})})}).catch(()=>{w.warn({text:M("errors.no_logo_found_for_x",{service:we(o.service)})})}).finally(()=>{z.value=!1}))}function we(t){return t.replace(/(<([^> ]+)>)/ig,"")}return(t,l)=>{const L=h("Modal"),Z=h("FieldError"),K=h("FontAwesomeIcon"),ee=h("VueButton"),be=h("ButtonBackCloseCancel"),oe=h("FormField"),Ae=h("FormSelect"),te=h("FormToggle"),Le=h("VueFooter"),ke=h("modal"),Oe=h("FormWrapper");return a(),u("div",null,[e(m).preferences.AutoSaveQrcodedAccount?(a(),b(L,{key:0,modelValue:e(B),"onUpdate:modelValue":l[1]||(l[1]=n=>ae(B)?B.value=n:null)},{default:y(()=>[r(ie,R({ref_key:"OtpDisplayForAutoSave",ref:J},e(f),{onPleaseCloseMe:l[0]||(l[0]=n=>e(g).push({name:"accounts"}))}),null,16)]),_:1},8,["modelValue"])):c("",!0),!e(_)&&e(U)?(a(),u("form",{key:1,onSubmit:O(me,["prevent"]),onKeydown:l[3]||(l[3]=n=>e(o).onKeydown(n))},[s("div",so,[s("div",no,[s("div",ao,[e($).errors.hasAny("icon")?(a(),b(Z,{key:0,error:e($).errors.get("icon"),field:"icon",class:"help-for-file"},null,8,["error"])):c("",!0),e(i)?c("",!0):(a(),u("label",ro,[s("input",{class:"file-input",type:"file",accept:"image/*",onChange:he,ref_key:"iconInput",ref:W},null,544),r(K,{icon:["fas","image"],size:"2x"})])),e(i)?(a(),u("button",{key:2,class:"delete delete-icon-button is-medium",onClick:O(C,["prevent"])})):c("",!0),r(ie,R({ref_key:"OtpDisplayForQuickForm",ref:H},e(o).data(),{onIncrementHotp:ge,onValidationError:_e,onPleaseCloseMe:l[2]||(l[2]=n=>I.value=!1)}),null,16)])]),s("div",io,[e(o).errors.any()?(a(),u("div",co,[(a(!0),u(ce,null,$e(e(o).errors.errors,(n,le)=>(a(),u("p",{key:le,class:"help is-danger"},[s("ul",null,[(a(!0),u(ce,null,$e(n,(Ue,Be)=>(a(),u("li",{key:Be},k(Ue),1))),128))])]))),128))])):c("",!0)]),s("div",uo,[s("div",fo,[s("div",po,[s("div",mo,[r(ee,{isLoading:e(o).isBusy},{default:y(()=>[Ee(k(t.$t("commons.save")),1)]),_:1},8,["isLoading"])]),r(be,{action:"cancel",isText:!0,isRounded:!1,useLinkTag:!1,onCanceled:ve})])])])])],32)):c("",!0),e(N)?(a(),b(Oe,{key:2,title:t.$t(e(_)?"twofaccounts.forms.edit_account":"twofaccounts.forms.new_account")},{default:y(()=>[s("form",{onSubmit:O(Ce,["prevent"]),onKeydown:l[15]||(l[15]=n=>e(o).onKeydown(n))},[e(_)?c("",!0):(a(),u("div",vo,[s("div",ho,[r(e(G),null,{default:y(({mode:n})=>[s("div",{role:"button",tabindex:"0",class:E(["file is-small",{"is-black":n=="dark"}]),onKeyup:l[4]||(l[4]=Fe(le=>e(ue).click(),["enter"]))},[s("label",{class:"file-label",title:t.$t("twofaccounts.forms.use_qrcode.title"),ref_key:"qrcodeInputLabel",ref:ue},[s("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:Se,ref_key:"qrcodeInput",ref:de},null,544),s("span",_o,[s("span",yo,[r(K,{icon:["fas","qrcode"],size:"lg"})]),s("span",wo,k(t.$t("twofaccounts.forms.prefill_using_qrcode")),1)])],8,go)],34)]),_:1})])])),e(S).errors.hasAny("qrcode")?(a(),b(Z,{key:1,error:e(S).errors.get("qrcode"),field:"qrcode",class:"help-for-file"},null,8,["error"])):c("",!0),r(oe,{modelValue:e(o).service,"onUpdate:modelValue":l[5]||(l[5]=n=>e(o).service=n),fieldName:"service",fieldError:e(o).errors.get("email"),isDisabled:e(o).otp_type==="steamtotp",label:"twofaccounts.service",placeholder:t.$t("twofaccounts.forms.service.placeholder"),autofocus:""},null,8,["modelValue","fieldError","isDisabled","placeholder"]),r(oe,{modelValue:e(o).account,"onUpdate:modelValue":l[6]||(l[6]=n=>e(o).account=n),fieldName:"account",fieldError:e(o).errors.get("account"),label:"twofaccounts.account",placeholder:t.$t("twofaccounts.forms.account.placeholder")},null,8,["modelValue","fieldError","placeholder"]),s("label",bo,k(t.$t("twofaccounts.icon")),1),s("div",ko,[e(m).preferences.getOfficialIcons?(a(),u("div",Vo,[r(e(G),null,{default:y(({mode:n})=>[r(ee,{onClick:ye,color:n=="dark"?"is-dark":"",nativeType:"button","is-loading":e(z),isDisabled:!e(o).service},{default:y(()=>[s("span",$o,[r(K,{icon:["fas","globe"]})]),s("span",null,k(t.$t("twofaccounts.forms.i_m_lucky")),1)]),_:2},1032,["color","is-loading","isDisabled"])]),_:1})])):c("",!0),s("div",Eo,[r(e(G),null,{default:y(({mode:n})=>[s("div",{role:"button",tabindex:"0",class:E(["file mr-3",n=="dark"?"is-dark":"is-white"]),onKeyup:l[7]||(l[7]=Fe(le=>e(fe).click(),["enter"]))},[s("label",{class:"file-label",ref_key:"iconInputLabel",ref:fe},[s("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:he,ref_key:"iconInput",ref:W},null,544),s("span",Fo,[s("span",Io,[r(K,{icon:["fas","upload"]})]),s("span",Co,k(t.$t("twofaccounts.forms.choose_image")),1)])],512)],34),e(i)?(a(),u("span",{key:0,class:E(["tag is-large",n=="dark"?"is-dark":"is-white"])},[s("img",{class:"icon-preview",src:e(j).config.subdirectory+"/storage/icons/"+e(i),alt:t.$t("twofaccounts.icon_to_illustrate_the_account")},null,8,To),s("button",{class:"clear-selection delete is-small",onClick:O(C,["prevent"]),"aria-label":t.$t("twofaccounts.remove_icon")},null,8,Mo)],2)):c("",!0)]),_:1})])]),s("div",xo,[e($).errors.hasAny("icon")?(a(),b(Z,{key:0,error:e($).errors.get("icon"),field:"icon",class:"help-for-file"},null,8,["error"])):c("",!0),e(m).preferences.getOfficialIcons?(a(),u("p",{key:1,class:"help",innerHTML:t.$t("twofaccounts.forms.i_m_lucky_legend")},null,8,So)):c("",!0)]),e(pe).length>0?(a(),b(Ae,{key:2,modelValue:e(o).group_id,"onUpdate:modelValue":l[8]||(l[8]=n=>e(o).group_id=n),options:e(pe),fieldName:"group_id",label:"twofaccounts.forms.group.label",help:"twofaccounts.forms.group.help"},null,8,["modelValue","options"])):c("",!0),r(te,{modelValue:e(o).otp_type,"onUpdate:modelValue":l[9]||(l[9]=n=>e(o).otp_type=n),isDisabled:e(_),choices:v,fieldName:"otp_type",fieldError:e(o).errors.get("otp_type"),label:"twofaccounts.forms.otp_type.label",help:"twofaccounts.forms.otp_type.help",hasOffset:!0},null,8,["modelValue","isDisabled","fieldError"]),e(o).otp_type!=""?(a(),u("div",Ao,[r(Ie,{isEditMode:e(_),modelValue:e(o).secret,"onUpdate:modelValue":l[10]||(l[10]=n=>e(o).secret=n),modelModifiers:{trimAll:!0},fieldName:"secret",fieldError:e(o).errors.get("secret"),label:"twofaccounts.forms.secret.label",help:"twofaccounts.forms.secret.help"},null,8,["isEditMode","modelValue","fieldError"]),e(o).otp_type!=="steamtotp"?(a(),u("div",Lo,[s("h2",Oo,k(t.$t("commons.options")),1),s("p",Uo,k(t.$t("twofaccounts.forms.options_help")),1),r(te,{modelValue:e(o).digits,"onUpdate:modelValue":l[11]||(l[11]=n=>e(o).digits=n),choices:D,fieldName:"digits",fieldError:e(o).errors.get("digits"),label:"twofaccounts.forms.digits.label",help:"twofaccounts.forms.digits.help"},null,8,["modelValue","fieldError"]),r(te,{modelValue:e(o).algorithm,"onUpdate:modelValue":l[12]||(l[12]=n=>e(o).algorithm=n),choices:P,fieldName:"algorithm",fieldError:e(o).errors.get("algorithm"),label:"twofaccounts.forms.algorithm.label",help:"twofaccounts.forms.algorithm.help"},null,8,["modelValue","fieldError"]),e(o).otp_type==="totp"?(a(),b(oe,{key:0,pattern:"[0-9]{1,4}",class:E("is-third-width-field"),modelValue:e(o).period,"onUpdate:modelValue":l[13]||(l[13]=n=>e(o).period=n),fieldName:"period",fieldError:e(o).errors.get("period"),label:"twofaccounts.forms.period.label",help:"twofaccounts.forms.period.help",placeholder:t.$t("twofaccounts.forms.period.placeholder")},null,8,["modelValue","fieldError","placeholder"])):c("",!0),e(o).otp_type==="hotp"?(a(),b(Ie,{key:1,pattern:"[0-9]{1,4}",isEditMode:e(_),isExpanded:!1,modelValue:e(o).counter,"onUpdate:modelValue":l[14]||(l[14]=n=>e(o).counter=n),fieldName:"counter",fieldError:e(o).errors.get("counter"),label:"twofaccounts.forms.counter.label",placeholder:t.$t("twofaccounts.forms.counter.placeholder"),help:e(_)?"twofaccounts.forms.counter.help_lock":"twofaccounts.forms.counter.help"},null,8,["isEditMode","modelValue","fieldError","placeholder","help"])):c("",!0)])):c("",!0)])):c("",!0),r(Le,{showButtons:!0},{default:y(()=>[s("p",Bo,[r(ee,{id:e(_)?"btnUpdate":"btnCreate",isLoading:e(o).isBusy,class:"is-rounded"},{default:y(()=>[Ee(k(e(_)?t.$t("commons.save"):t.$t("commons.create")),1)]),_:1},8,["id","isLoading"])]),e(o).otp_type&&e(o).secret?(a(),u("p",No,[s("button",{id:"btnPreview",type:"button",class:"button is-success is-rounded",onClick:Me},k(t.$t("twofaccounts.forms.test")),1)])):c("",!0),r(be,{action:"cancel",useLinkTag:!1,onCanceled:ve})]),_:1})],32),r(ke,{modelValue:e(I),"onUpdate:modelValue":l[17]||(l[17]=n=>ae(I)?I.value=n:null)},{default:y(()=>[r(ie,R({ref_key:"OtpDisplayForAdvancedForm",ref:X},e(o).data(),{onIncrementHotp:ge,onValidationError:_e,onPleaseCloseMe:l[16]||(l[16]=n=>I.value=!1)}),null,16)]),_:1},8,["modelValue"])]),_:1},8,["title"])):c("",!0),r(ke,{modelValue:e(A),"onUpdate:modelValue":l[18]||(l[18]=n=>ae(A)?A.value=n:null)},{default:y(()=>[r(je,{qrContent:e(V)},null,8,["qrContent"])]),_:1},8,["modelValue"])])}}};export{Ro as default}; +import{_ as Ne,r as d,e as h,f as a,g as u,h as s,i as e,n as E,W as R,k as b,p as y,C as O,m as r,U as G,l as c,F as ce,R as qe,u as De,$ as Pe,a as He,c as Ke,b as Qe,d as se,x as Ve,o as Re,J as T,P as ne,s as Q,D as ae,E as $e,V as Ge,H as M,t as k,j as Ee,w as Fe}from"./app-CeOdx_TG.js";import{F as re}from"./Form-BSfNB4q6.js";import{_ as ie}from"./OtpDisplay-CU1C9yFz.js";import{_ as je}from"./QrContentDisplay-CxQyxV0P.js";import{u as ze}from"./bus-Sx3kCjbz.js";import"./Spinner-BwxI0ALn.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const We=["for","innerHTML"],Je=["disabled","id","type","value","placeholder","maxlength"],Xe={key:0,class:"control"},Ye=["title"],Ze={class:"icon"},eo={key:1,class:"control"},oo=["title"],to={class:"icon has-text-danger"},lo=["innerHTML"],Ie=Object.assign({inheritAttrs:!1},{__name:"FormLockField",props:{modelValue:String,modelModifiers:{default:()=>({})},isEditMode:{type:Boolean,default:!1},label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],inputType:{type:String,default:"text"},placeholder:{type:String,default:""},help:{type:String,default:""},hasOffset:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},isExpanded:{type:Boolean,default:!0},maxLength:{type:Number,default:null}},emits:["input:modelValue"],setup(p,{emit:j}){const g=p,{inputId:q}=Ne(g.inputType,g.fieldName),m=d(g.isDisabled||g.isEditMode),F=d(!1),x=d(0),w=j;function o(f){let v=f.target.value;g.modelModifiers.trimAll&&(v=v.replace(/\s+/g,"")),w("update:modelValue",v)}function S(f){let v=f.target.value;F.value=v.includes(" "),w("update:modelValue",v)}function $(f){F.value=f.target.value.includes(" "),x.value+=1}return(f,v)=>{const D=h("FontAwesomeIcon"),P=h("FieldError");return a(),u(ce,null,[s("label",{for:e(q),class:"label",innerHTML:f.$t(p.label)},null,8,We),s("div",{class:E(["field has-addons mb-0",{"pt-3":p.hasOffset}])},[s("div",{class:E(["control",{"is-expanded":p.isExpanded}])},[(a(),u("input",R({key:e(x),disabled:e(m),id:e(q),type:p.inputType,class:"input",value:p.modelValue,placeholder:p.placeholder},f.$attrs,{onInput:S,onChange:o,onBlur:$,maxlength:p.maxLength}),null,16,Je))],2),p.isEditMode?(a(),b(e(G),{key:0},{default:y(({mode:V})=>[e(m)?(a(),u("div",Xe,[s("button",{type:"button",class:E(["button field-lock",{"is-dark":V=="dark"}]),onClick:v[0]||(v[0]=O(i=>m.value=!1,["stop"])),title:f.$t("twofaccounts.forms.unlock.title")},[s("span",Ze,[r(D,{icon:["fas","lock"]})])],10,Ye)])):(a(),u("div",eo,[s("button",{type:"button",class:E(["button field-unlock",{"is-dark":V=="dark"}]),onClick:v[1]||(v[1]=O(i=>m.value=!0,["stop"])),title:f.$t("twofaccounts.forms.lock.title")},[s("span",to,[r(D,{icon:["fas","lock-open"]})])],10,oo)]))]),_:1})):c("",!0)],2),e(F)?(a(),b(P,{key:0,error:f.$t("twofaccounts.forms.spaces_are_ignored"),field:"spaces",alertType:"is-warning"},null,8,["error"])):c("",!0),p.fieldError!=null?(a(),b(P,{key:1,error:p.fieldError,field:p.fieldName},null,8,["error","field"])):c("",!0),p.help?(a(),u("p",{key:2,class:"help",innerHTML:f.$t(p.help)},null,8,lo)):c("",!0)],64)}}}),so={class:"container preview has-text-centered"},no={class:"columns is-mobile"},ao={class:"column"},ro={key:1,class:"add-icon-button"},io={class:"columns is-mobile",role:"alert"},co={key:0,class:"column"},uo={class:"columns is-mobile"},fo={class:"column quickform-footer"},po={class:"field is-grouped is-grouped-centered"},mo={class:"control"},vo={key:0,class:"field is-grouped"},ho={class:"control"},go=["title"],_o={class:"file-cta"},yo={class:"file-icon"},wo={class:"file-label"},bo={class:"label"},ko={class:"field is-grouped"},Vo={key:0,class:"control"},$o={class:"icon is-small"},Eo={class:"control is-flex"},Fo={class:"file-cta"},Io={class:"file-icon"},Co={class:"file-label"},To=["src","alt"],Mo=["aria-label"],xo={class:"field"},So=["innerHTML"],Ao={key:3},Lo={key:0},Oo={class:"title is-4 mt-5 mb-2"},Uo={class:"help mb-4"},Bo={class:"control"},No={key:0,class:"control"},Ro={__name:"CreateUpdate",props:{twofaccountId:[Number,String]},setup(p){const j=qe("2fauth"),g=De(),q=Pe(),m=He(),F=Ke(),x=ze(),w=Qe(),o=se(new re({service:"",account:"",otp_type:"",icon:"",group_id:m.preferences.defaultGroup==-1?m.preferences.activeGroup:m.preferences.defaultGroup,secret:"",algorithm:"",digits:null,counter:null,period:null,image:""})),S=se(new re({qrcode:null})),$=se(new re({icon:null})),f=d({otp_type:"",account:"",service:"",icon:""}),v=[{text:"TOTP",value:"totp"},{text:"HOTP",value:"hotp"},{text:"STEAM",value:"steamtotp"}],D=[{text:"6",value:6},{text:"7",value:7},{text:"8",value:8},{text:"9",value:9},{text:"10",value:10}],P=[{text:"sha1",value:"sha1"},{text:"sha256",value:"sha256"},{text:"sha512",value:"sha512"},{text:"md5",value:"md5"}],V=d(),i=d(""),U=d(!1),A=d(!1),B=d(!1),N=d(!1),I=d(!1),z=d(!1),W=d(null),J=d(null),H=d(null),X=d(null),ue=d(null),de=d(null),fe=d(null),Y=p,_=Ve(()=>Y.twofaccountId!=null),pe=Ve(()=>Ge().items.map(t=>({text:t.id>0?t.name:"- "+M("groups.no_group")+" -",value:t.id})));Re(()=>{q.name=="editAccount"?T.get(Y.twofaccountId).then(t=>{o.fill(t.data),o.group_id==null&&(o.group_id=0),o.setOriginal(),i.value=o.icon,N.value=!0}):x.decodedUri?(V.value=x.decodedUri,x.decodedUri=null,m.preferences.AutoSaveQrcodedAccount?T.storeFromUri(V.value).then(t=>{xe(t.data)}).catch(t=>{t.response.data.errors.uri&&(A.value=!0,N.value=!0)}):T.preview(V.value).then(t=>{o.fill(t.data),i.value=t.data.icon?t.data.icon:"",U.value=!0,ne().then(()=>{H.value.show()})}).catch(t=>{t.response.data.errors.uri&&(A.value=!0,N.value=!0)})):N.value=!0}),Q(i,t=>{U.value&&ne().then(()=>{H.value.icon=t})}),Q(I,t=>{var l,L;t==!1&&((l=X.value)==null||l.clearOTP(),(L=H.value)==null||L.clearOTP())}),Q(B,t=>{var l;t==!1&&((l=J.value)==null||l.clearOTP(),g.push({name:"accounts"}))}),Q(()=>o.otp_type,(t,l)=>{t==="steamtotp"?(o.service="Steam",ye()):l==="steamtotp"&&(o.service="",C())});function Ce(){_.value?Te():me()}async function me(){o.icon=i.value;const{data:t}=await o.post("/api/v1/twofaccounts");o.errors.any()===!1&&(F.items.push(t),w.success({text:M("twofaccounts.account_created")}),g.push({name:"accounts"}))}async function Te(){if(i.value!==o.icon){let l="";l=o.icon,o.icon=i.value,i.value=l,C()}const{data:t}=await o.put("/api/v1/twofaccounts/"+Y.twofaccountId);if(o.errors.any()===!1){const l=F.items.findIndex(L=>L.id===t.id);F.items.splice(l,1,t),w.success({text:M("twofaccounts.account_updated")}),g.push({name:"accounts"})}}function Me(){o.clear(),I.value=!0,X.value.show()}function xe(t){f.value.otp_type=t.otp_type,f.value.service=t.service,f.value.account=t.account,f.value.icon=t.icon,ne().then(()=>{B.value=!0,J.value.show(t.id)})}function ve(){o.hasChanged()||i.value!=o.icon?confirm(M("twofaccounts.confirm.cancel"))===!0&&((!_.value||i.value!=o.icon)&&C(),g.push({name:"accounts"})):g.push({name:"accounts"})}function he(){C(),$.icon=W.value.files[0],$.upload("/api/v1/icons",{returnError:!0}).then(t=>{i.value=t.data.filename,U.value&&(o.icon=i.value)}).catch(t=>{t.response.status!==422&&w.alert({text:t.response.data.message})})}function C(){_.value?i.value&&(i.value!==o.icon&&T.deleteIcon(i.value),i.value=""):i.value&&(T.deleteIcon(i.value),i.value="",U.value&&(o.icon=""))}function ge(t){o.counter=t.nextHotpCounter}function _e(t){o.errors.set(o.extractErrors(t))}function Se(){S.qrcode=de.value.files[0],S.upload("/api/v1/qrcode/decode",{returnError:!0}).then(t=>{V.value=t.data.data,T.preview(V.value,{returnError:!0}).then(l=>{o.fill(l.data),i.value=l.data.icon?l.data.icon:null}).catch(l=>{l.response.status===422?l.response.data.errors.uri?A.value=!0:w.alert({text:M(l.response.data.message)}):w.error(l)})}).catch(t=>{t.response.status!==422&&w.alert({text:t.response.data.message})})}function ye(){m.preferences.getOfficialIcons&&(z.value=!0,T.getLogo(o.service,{returnError:!0}).then(t=>{t.status===201?(C(),i.value=t.data.filename):w.warn({text:M("errors.no_logo_found_for_x",{service:we(o.service)})})}).catch(()=>{w.warn({text:M("errors.no_logo_found_for_x",{service:we(o.service)})})}).finally(()=>{z.value=!1}))}function we(t){return t.replace(/(<([^> ]+)>)/ig,"")}return(t,l)=>{const L=h("Modal"),Z=h("FieldError"),K=h("FontAwesomeIcon"),ee=h("VueButton"),be=h("ButtonBackCloseCancel"),oe=h("FormField"),Ae=h("FormSelect"),te=h("FormToggle"),Le=h("VueFooter"),ke=h("modal"),Oe=h("FormWrapper");return a(),u("div",null,[e(m).preferences.AutoSaveQrcodedAccount?(a(),b(L,{key:0,modelValue:e(B),"onUpdate:modelValue":l[1]||(l[1]=n=>ae(B)?B.value=n:null)},{default:y(()=>[r(ie,R({ref_key:"OtpDisplayForAutoSave",ref:J},e(f),{onPleaseCloseMe:l[0]||(l[0]=n=>e(g).push({name:"accounts"}))}),null,16)]),_:1},8,["modelValue"])):c("",!0),!e(_)&&e(U)?(a(),u("form",{key:1,onSubmit:O(me,["prevent"]),onKeydown:l[3]||(l[3]=n=>e(o).onKeydown(n))},[s("div",so,[s("div",no,[s("div",ao,[e($).errors.hasAny("icon")?(a(),b(Z,{key:0,error:e($).errors.get("icon"),field:"icon",class:"help-for-file"},null,8,["error"])):c("",!0),e(i)?c("",!0):(a(),u("label",ro,[s("input",{class:"file-input",type:"file",accept:"image/*",onChange:he,ref_key:"iconInput",ref:W},null,544),r(K,{icon:["fas","image"],size:"2x"})])),e(i)?(a(),u("button",{key:2,class:"delete delete-icon-button is-medium",onClick:O(C,["prevent"])})):c("",!0),r(ie,R({ref_key:"OtpDisplayForQuickForm",ref:H},e(o).data(),{onIncrementHotp:ge,onValidationError:_e,onPleaseCloseMe:l[2]||(l[2]=n=>I.value=!1)}),null,16)])]),s("div",io,[e(o).errors.any()?(a(),u("div",co,[(a(!0),u(ce,null,$e(e(o).errors.errors,(n,le)=>(a(),u("p",{key:le,class:"help is-danger"},[s("ul",null,[(a(!0),u(ce,null,$e(n,(Ue,Be)=>(a(),u("li",{key:Be},k(Ue),1))),128))])]))),128))])):c("",!0)]),s("div",uo,[s("div",fo,[s("div",po,[s("div",mo,[r(ee,{isLoading:e(o).isBusy},{default:y(()=>[Ee(k(t.$t("commons.save")),1)]),_:1},8,["isLoading"])]),r(be,{action:"cancel",isText:!0,isRounded:!1,useLinkTag:!1,onCanceled:ve})])])])])],32)):c("",!0),e(N)?(a(),b(Oe,{key:2,title:t.$t(e(_)?"twofaccounts.forms.edit_account":"twofaccounts.forms.new_account")},{default:y(()=>[s("form",{onSubmit:O(Ce,["prevent"]),onKeydown:l[15]||(l[15]=n=>e(o).onKeydown(n))},[e(_)?c("",!0):(a(),u("div",vo,[s("div",ho,[r(e(G),null,{default:y(({mode:n})=>[s("div",{role:"button",tabindex:"0",class:E(["file is-small",{"is-black":n=="dark"}]),onKeyup:l[4]||(l[4]=Fe(le=>e(ue).click(),["enter"]))},[s("label",{class:"file-label",title:t.$t("twofaccounts.forms.use_qrcode.title"),ref_key:"qrcodeInputLabel",ref:ue},[s("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:Se,ref_key:"qrcodeInput",ref:de},null,544),s("span",_o,[s("span",yo,[r(K,{icon:["fas","qrcode"],size:"lg"})]),s("span",wo,k(t.$t("twofaccounts.forms.prefill_using_qrcode")),1)])],8,go)],34)]),_:1})])])),e(S).errors.hasAny("qrcode")?(a(),b(Z,{key:1,error:e(S).errors.get("qrcode"),field:"qrcode",class:"help-for-file"},null,8,["error"])):c("",!0),r(oe,{modelValue:e(o).service,"onUpdate:modelValue":l[5]||(l[5]=n=>e(o).service=n),fieldName:"service",fieldError:e(o).errors.get("email"),isDisabled:e(o).otp_type==="steamtotp",label:"twofaccounts.service",placeholder:t.$t("twofaccounts.forms.service.placeholder"),autofocus:""},null,8,["modelValue","fieldError","isDisabled","placeholder"]),r(oe,{modelValue:e(o).account,"onUpdate:modelValue":l[6]||(l[6]=n=>e(o).account=n),fieldName:"account",fieldError:e(o).errors.get("account"),label:"twofaccounts.account",placeholder:t.$t("twofaccounts.forms.account.placeholder")},null,8,["modelValue","fieldError","placeholder"]),s("label",bo,k(t.$t("twofaccounts.icon")),1),s("div",ko,[e(m).preferences.getOfficialIcons?(a(),u("div",Vo,[r(e(G),null,{default:y(({mode:n})=>[r(ee,{onClick:ye,color:n=="dark"?"is-dark":"",nativeType:"button","is-loading":e(z),isDisabled:!e(o).service},{default:y(()=>[s("span",$o,[r(K,{icon:["fas","globe"]})]),s("span",null,k(t.$t("twofaccounts.forms.i_m_lucky")),1)]),_:2},1032,["color","is-loading","isDisabled"])]),_:1})])):c("",!0),s("div",Eo,[r(e(G),null,{default:y(({mode:n})=>[s("div",{role:"button",tabindex:"0",class:E(["file mr-3",n=="dark"?"is-dark":"is-white"]),onKeyup:l[7]||(l[7]=Fe(le=>e(fe).click(),["enter"]))},[s("label",{class:"file-label",ref_key:"iconInputLabel",ref:fe},[s("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:he,ref_key:"iconInput",ref:W},null,544),s("span",Fo,[s("span",Io,[r(K,{icon:["fas","upload"]})]),s("span",Co,k(t.$t("twofaccounts.forms.choose_image")),1)])],512)],34),e(i)?(a(),u("span",{key:0,class:E(["tag is-large",n=="dark"?"is-dark":"is-white"])},[s("img",{class:"icon-preview",src:e(j).config.subdirectory+"/storage/icons/"+e(i),alt:t.$t("twofaccounts.icon_to_illustrate_the_account")},null,8,To),s("button",{class:"clear-selection delete is-small",onClick:O(C,["prevent"]),"aria-label":t.$t("twofaccounts.remove_icon")},null,8,Mo)],2)):c("",!0)]),_:1})])]),s("div",xo,[e($).errors.hasAny("icon")?(a(),b(Z,{key:0,error:e($).errors.get("icon"),field:"icon",class:"help-for-file"},null,8,["error"])):c("",!0),e(m).preferences.getOfficialIcons?(a(),u("p",{key:1,class:"help",innerHTML:t.$t("twofaccounts.forms.i_m_lucky_legend")},null,8,So)):c("",!0)]),e(pe).length>0?(a(),b(Ae,{key:2,modelValue:e(o).group_id,"onUpdate:modelValue":l[8]||(l[8]=n=>e(o).group_id=n),options:e(pe),fieldName:"group_id",label:"twofaccounts.forms.group.label",help:"twofaccounts.forms.group.help"},null,8,["modelValue","options"])):c("",!0),r(te,{modelValue:e(o).otp_type,"onUpdate:modelValue":l[9]||(l[9]=n=>e(o).otp_type=n),isDisabled:e(_),choices:v,fieldName:"otp_type",fieldError:e(o).errors.get("otp_type"),label:"twofaccounts.forms.otp_type.label",help:"twofaccounts.forms.otp_type.help",hasOffset:!0},null,8,["modelValue","isDisabled","fieldError"]),e(o).otp_type!=""?(a(),u("div",Ao,[r(Ie,{isEditMode:e(_),modelValue:e(o).secret,"onUpdate:modelValue":l[10]||(l[10]=n=>e(o).secret=n),modelModifiers:{trimAll:!0},fieldName:"secret",fieldError:e(o).errors.get("secret"),label:"twofaccounts.forms.secret.label",help:"twofaccounts.forms.secret.help"},null,8,["isEditMode","modelValue","fieldError"]),e(o).otp_type!=="steamtotp"?(a(),u("div",Lo,[s("h2",Oo,k(t.$t("commons.options")),1),s("p",Uo,k(t.$t("twofaccounts.forms.options_help")),1),r(te,{modelValue:e(o).digits,"onUpdate:modelValue":l[11]||(l[11]=n=>e(o).digits=n),choices:D,fieldName:"digits",fieldError:e(o).errors.get("digits"),label:"twofaccounts.forms.digits.label",help:"twofaccounts.forms.digits.help"},null,8,["modelValue","fieldError"]),r(te,{modelValue:e(o).algorithm,"onUpdate:modelValue":l[12]||(l[12]=n=>e(o).algorithm=n),choices:P,fieldName:"algorithm",fieldError:e(o).errors.get("algorithm"),label:"twofaccounts.forms.algorithm.label",help:"twofaccounts.forms.algorithm.help"},null,8,["modelValue","fieldError"]),e(o).otp_type==="totp"?(a(),b(oe,{key:0,pattern:"[0-9]{1,4}",class:E("is-third-width-field"),modelValue:e(o).period,"onUpdate:modelValue":l[13]||(l[13]=n=>e(o).period=n),fieldName:"period",fieldError:e(o).errors.get("period"),label:"twofaccounts.forms.period.label",help:"twofaccounts.forms.period.help",placeholder:t.$t("twofaccounts.forms.period.placeholder")},null,8,["modelValue","fieldError","placeholder"])):c("",!0),e(o).otp_type==="hotp"?(a(),b(Ie,{key:1,pattern:"[0-9]{1,4}",isEditMode:e(_),isExpanded:!1,modelValue:e(o).counter,"onUpdate:modelValue":l[14]||(l[14]=n=>e(o).counter=n),fieldName:"counter",fieldError:e(o).errors.get("counter"),label:"twofaccounts.forms.counter.label",placeholder:t.$t("twofaccounts.forms.counter.placeholder"),help:e(_)?"twofaccounts.forms.counter.help_lock":"twofaccounts.forms.counter.help"},null,8,["isEditMode","modelValue","fieldError","placeholder","help"])):c("",!0)])):c("",!0)])):c("",!0),r(Le,{showButtons:!0},{default:y(()=>[s("p",Bo,[r(ee,{id:e(_)?"btnUpdate":"btnCreate",isLoading:e(o).isBusy,class:"is-rounded"},{default:y(()=>[Ee(k(e(_)?t.$t("commons.save"):t.$t("commons.create")),1)]),_:1},8,["id","isLoading"])]),e(o).otp_type&&e(o).secret?(a(),u("p",No,[s("button",{id:"btnPreview",type:"button",class:"button is-success is-rounded",onClick:Me},k(t.$t("twofaccounts.forms.test")),1)])):c("",!0),r(be,{action:"cancel",useLinkTag:!1,onCanceled:ve})]),_:1})],32),r(ke,{modelValue:e(I),"onUpdate:modelValue":l[17]||(l[17]=n=>ae(I)?I.value=n:null)},{default:y(()=>[r(ie,R({ref_key:"OtpDisplayForAdvancedForm",ref:X},e(o).data(),{onIncrementHotp:ge,onValidationError:_e,onPleaseCloseMe:l[16]||(l[16]=n=>I.value=!1)}),null,16)]),_:1},8,["modelValue"])]),_:1},8,["title"])):c("",!0),r(ke,{modelValue:e(A),"onUpdate:modelValue":l[18]||(l[18]=n=>ae(A)?A.value=n:null)},{default:y(()=>[r(je,{qrContent:e(V)},null,8,["qrContent"])]),_:1},8,["modelValue"])])}}};export{Ro as default}; diff --git a/public/build/assets/Edit-7XxRGrC1.js b/public/build/assets/Edit-C69CLEW0.js similarity index 89% rename from public/build/assets/Edit-7XxRGrC1.js rename to public/build/assets/Edit-C69CLEW0.js index 02c62448..e4d08f67 100644 --- a/public/build/assets/Edit-7XxRGrC1.js +++ b/public/build/assets/Edit-C69CLEW0.js @@ -1 +1 @@ -import{u as h,b as _,d as b,H as s,e as a,f as y,k as F,p as v,h as B,m as r,i as t,C as g}from"./app-CYV6HkYG.js";import{F as C}from"./Form-DWTCaq3y.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const E={__name:"Edit",props:{credentialId:{type:String,default:""}},setup(i){const u=h(),m=_(),e=b(new C({name:s("auth.webauthn.my_device")})),d=i;function c(){e.patch("/webauthn/credentials/"+d.credentialId+"/name").then(()=>{m.success({text:s("auth.webauthn.device_successfully_registered")}),u.push({name:"settings.webauthn.devices"})})}return(l,n)=>{const p=a("FormField"),f=a("FormButtons"),w=a("FormWrapper");return y(),F(w,{title:"auth.webauthn.rename_device"},{default:v(()=>[B("form",{onSubmit:g(c,["prevent"]),onKeydown:n[1]||(n[1]=o=>t(e).onKeydown(o))},[r(p,{modelValue:t(e).name,"onUpdate:modelValue":n[0]||(n[0]=o=>t(e).name=o),fieldName:"name",fieldError:t(e).errors.get("name"),inputType:"text",label:"commons.new_name",autofocus:""},null,8,["modelValue","fieldError"]),r(f,{submitId:"btnEditCredential",isBusy:t(e).isBusy,caption:l.$t("commons.save"),showCancelButton:!0,cancelLandingView:"settings.webauthn.devices"},null,8,["isBusy","caption"])],32)]),_:1})}}};export{E as default}; +import{u as h,b as _,d as b,H as s,e as a,f as y,k as F,p as v,h as B,m as r,i as t,C as g}from"./app-CeOdx_TG.js";import{F as C}from"./Form-BSfNB4q6.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const E={__name:"Edit",props:{credentialId:{type:String,default:""}},setup(i){const u=h(),m=_(),e=b(new C({name:s("auth.webauthn.my_device")})),d=i;function c(){e.patch("/webauthn/credentials/"+d.credentialId+"/name").then(()=>{m.success({text:s("auth.webauthn.device_successfully_registered")}),u.push({name:"settings.webauthn.devices"})})}return(l,n)=>{const p=a("FormField"),f=a("FormButtons"),w=a("FormWrapper");return y(),F(w,{title:"auth.webauthn.rename_device"},{default:v(()=>[B("form",{onSubmit:g(c,["prevent"]),onKeydown:n[1]||(n[1]=o=>t(e).onKeydown(o))},[r(p,{modelValue:t(e).name,"onUpdate:modelValue":n[0]||(n[0]=o=>t(e).name=o),fieldName:"name",fieldError:t(e).errors.get("name"),inputType:"text",label:"commons.new_name",autofocus:""},null,8,["modelValue","fieldError"]),r(f,{submitId:"btnEditCredential",isBusy:t(e).isBusy,caption:l.$t("commons.save"),showCancelButton:!0,cancelLandingView:"settings.webauthn.devices"},null,8,["isBusy","caption"])],32)]),_:1})}}};export{E as default}; diff --git a/public/build/assets/Error-B64Etrkn.js b/public/build/assets/Error-D63gl45e.js similarity index 95% rename from public/build/assets/Error-B64Etrkn.js rename to public/build/assets/Error-D63gl45e.js index 5961a84c..c33141a1 100644 --- a/public/build/assets/Error-B64Etrkn.js +++ b/public/build/assets/Error-D63gl45e.js @@ -1 +1 @@ -import{b as y,u as b,$ as k,r as V,x as w,s as v,o as N,H as $,e as x,f as r,g as t,m as B,p as M,i as e,D as q,h as l,t as n,l as c,j as C}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const D={key:0,class:"error-message"},R=l("p",{class:"error-404"},null,-1),E={key:1,class:"error-message"},F=l("p",{class:"error-generic"},null,-1),H={key:0,class:"has-text-grey-lighter"},S={key:1,class:"has-text-grey-lighter"},j={key:2,class:"is-size-7 is-family-code"},z=l("br",null,null,-1),U={__name:"Error",props:{closable:{type:Boolean,default:!0}},setup(m){const s=y(),d=b(),a=k(),u=V(!0),p=w(()=>!1),_=m;v(u,o=>{o==!1&&g()}),N(()=>{a.query.err&&(s.message=$("errors."+a.query.err))});function g(){window.history.length>1&&a.name!=="404"&&a.name!=="notFound"&&!a.query.err?d.go(-1):d.push({name:"accounts"})}return(o,i)=>{const h=x("modal");return r(),t("div",null,[B(h,{modelValue:e(u),"onUpdate:modelValue":i[0]||(i[0]=f=>q(u)?u.value=f:null),closable:_.closable},{default:M(()=>[o.$route.name=="404"||o.$route.name=="notFound"?(r(),t("div",D,[R,l("p",null,n(o.$t("errors.resource_not_found")),1)])):(r(),t("div",E,[F,l("p",null,n(o.$t("errors.error_occured")),1),e(s).message?(r(),t("p",H,n(e(s).message),1)):c("",!0),e(s).originalMessage?(r(),t("p",S,n(e(s).originalMessage),1)):c("",!0),e(p)&&e(s).debug?(r(),t("p",j,[z,C(n(e(s).debug),1)])):c("",!0)]))]),_:1},8,["modelValue","closable"])])}}};export{U as default}; +import{b as y,u as b,$ as k,r as V,x as w,s as v,o as N,H as $,e as x,f as r,g as t,m as B,p as M,i as e,D as q,h as l,t as n,l as c,j as C}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const D={key:0,class:"error-message"},R=l("p",{class:"error-404"},null,-1),E={key:1,class:"error-message"},F=l("p",{class:"error-generic"},null,-1),H={key:0,class:"has-text-grey-lighter"},S={key:1,class:"has-text-grey-lighter"},j={key:2,class:"is-size-7 is-family-code"},z=l("br",null,null,-1),U={__name:"Error",props:{closable:{type:Boolean,default:!0}},setup(m){const s=y(),d=b(),a=k(),u=V(!0),p=w(()=>!1),_=m;v(u,o=>{o==!1&&g()}),N(()=>{a.query.err&&(s.message=$("errors."+a.query.err))});function g(){window.history.length>1&&a.name!=="404"&&a.name!=="notFound"&&!a.query.err?d.go(-1):d.push({name:"accounts"})}return(o,i)=>{const h=x("modal");return r(),t("div",null,[B(h,{modelValue:e(u),"onUpdate:modelValue":i[0]||(i[0]=f=>q(u)?u.value=f:null),closable:_.closable},{default:M(()=>[o.$route.name=="404"||o.$route.name=="notFound"?(r(),t("div",D,[R,l("p",null,n(o.$t("errors.resource_not_found")),1)])):(r(),t("div",E,[F,l("p",null,n(o.$t("errors.error_occured")),1),e(s).message?(r(),t("p",H,n(e(s).message),1)):c("",!0),e(s).originalMessage?(r(),t("p",S,n(e(s).originalMessage),1)):c("",!0),e(p)&&e(s).debug?(r(),t("p",j,[z,C(n(e(s).debug),1)])):c("",!0)]))]),_:1},8,["modelValue","closable"])])}}};export{U as default}; diff --git a/public/build/assets/Form-DWTCaq3y.js b/public/build/assets/Form-BSfNB4q6.js similarity index 98% rename from public/build/assets/Form-DWTCaq3y.js rename to public/build/assets/Form-BSfNB4q6.js index 040f398b..1a883331 100644 --- a/public/build/assets/Form-DWTCaq3y.js +++ b/public/build/assets/Form-BSfNB4q6.js @@ -1 +1 @@ -import{a4 as l}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */class f{constructor(){this.errors={}}set(t,s){typeof t=="object"?this.errors=t:this.set({...this.errors,[t]:c(s)})}all(){return this.errors}has(t){return this.errors.hasOwnProperty(t)}hasAny(...t){return t.some(s=>this.has(s))}any(){return Object.keys(this.errors).length>0}get(t){if(this.has(t))return this.getAll(t)[0]}getAll(t){return c(this.errors[t]||[])}only(...t){const s=[];return t.forEach(r=>{const e=this.get(r);e&&s.push(e)}),s}flatten(){return Object.values(this.errors).reduce((t,s)=>t.concat(s),[])}clear(t){const s={};t&&Object.keys(this.errors).forEach(r=>{r!==t&&(s[r]=this.errors[r])}),this.set(s)}}function c(o){return Array.isArray(o)?o:[o]}class i{constructor(t={}){this.axios=l("web"),this.isBusy=!1,this.isDisabled=!1,this.errors=new f,this.originalData=this.deepCopy(t),Object.assign(this,t)}fill(t){this.keys().forEach(s=>{this[s]=t[s]})}setOriginal(){Object.keys(this).filter(t=>!i.ignore.includes(t)).forEach(t=>{this.originalData[t]=this.deepCopy(this[t])})}hasChanged(){return this.keys().some(t=>this[t]!==this.originalData[t])}fillWithKeyValueObject(t){this.keys().forEach(s=>{const r=t.find(e=>e.key===s.toString());r!=null&&(this[s]=r.value)})}data(){return this.keys().reduce((t,s)=>({...t,[s]:this[s]}),{})}keys(){return Object.keys(this).filter(t=>!i.ignore.includes(t))}startProcessing(){this.errors.clear(),this.isBusy=!0}finishProcessing(){this.isBusy=!1}clear(){this.errors.clear()}reset(){Object.keys(this).filter(t=>!i.ignore.includes(t)).forEach(t=>{this[t]=this.deepCopy(this.originalData[t])})}get(t,s={}){return this.submit("get",t,s)}post(t,s={}){return this.submit("post",t,s)}patch(t,s={}){return this.submit("patch",t,s)}put(t,s={}){return this.submit("put",t,s)}delete(t,s={}){return this.submit("delete",t,s)}submit(t,s,r={}){this.startProcessing();const e=t==="get"?{params:this.data()}:this.data();return new Promise((a,u)=>{this.axios.request({url:this.route(s),method:t,data:e,...r}).then(h=>{this.finishProcessing(),a(h)}).catch(h=>{var n;this.isBusy=!1,h.response&&this.errors.set(this.extractErrors(h.response)),((n=h.response)==null?void 0:n.status)!=422&&u(h)})})}upload(t,s={}){return this.startProcessing(),new Promise((r,e)=>{this.axios.post(this.route(t),this.data(),{headers:{"Content-Type":"multipart/form-data"},...s}).then(a=>{this.finishProcessing(),r(a)}).catch(a=>{this.isBusy=!1,a.response&&this.errors.set(this.extractErrors(a.response)),e(a)})})}extractErrors(t){return!t.data||typeof t.data!="object"?{error:i.errorMessage}:t.data.errors?{...t.data.errors}:t.data.message?{error:t.data.message}:{...t.data}}route(t,s={}){let r=t;return i.routes.hasOwnProperty(t)&&(r=decodeURI(i.routes[t])),typeof s!="object"&&(s={id:s}),Object.keys(s).forEach(e=>{r=r.replace(`{${e}}`,s[e])}),r}onKeydown(t){t.target.name&&this.errors.clear(t.target.name)}deepCopy(t){if(t===null||typeof t!="object")return t;const s=Array.isArray(t)?[]:{};return Object.keys(t).forEach(r=>{s[r]=this.deepCopy(t[r])}),s}}i.routes={};i.errorMessage="Something went wrong. Please try again.";i.ignore=["isBusy","isDisabled","errors","originalData","axios"];export{i as F}; +import{a4 as l}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */class f{constructor(){this.errors={}}set(t,s){typeof t=="object"?this.errors=t:this.set({...this.errors,[t]:c(s)})}all(){return this.errors}has(t){return this.errors.hasOwnProperty(t)}hasAny(...t){return t.some(s=>this.has(s))}any(){return Object.keys(this.errors).length>0}get(t){if(this.has(t))return this.getAll(t)[0]}getAll(t){return c(this.errors[t]||[])}only(...t){const s=[];return t.forEach(r=>{const e=this.get(r);e&&s.push(e)}),s}flatten(){return Object.values(this.errors).reduce((t,s)=>t.concat(s),[])}clear(t){const s={};t&&Object.keys(this.errors).forEach(r=>{r!==t&&(s[r]=this.errors[r])}),this.set(s)}}function c(o){return Array.isArray(o)?o:[o]}class i{constructor(t={}){this.axios=l("web"),this.isBusy=!1,this.isDisabled=!1,this.errors=new f,this.originalData=this.deepCopy(t),Object.assign(this,t)}fill(t){this.keys().forEach(s=>{this[s]=t[s]})}setOriginal(){Object.keys(this).filter(t=>!i.ignore.includes(t)).forEach(t=>{this.originalData[t]=this.deepCopy(this[t])})}hasChanged(){return this.keys().some(t=>this[t]!==this.originalData[t])}fillWithKeyValueObject(t){this.keys().forEach(s=>{const r=t.find(e=>e.key===s.toString());r!=null&&(this[s]=r.value)})}data(){return this.keys().reduce((t,s)=>({...t,[s]:this[s]}),{})}keys(){return Object.keys(this).filter(t=>!i.ignore.includes(t))}startProcessing(){this.errors.clear(),this.isBusy=!0}finishProcessing(){this.isBusy=!1}clear(){this.errors.clear()}reset(){Object.keys(this).filter(t=>!i.ignore.includes(t)).forEach(t=>{this[t]=this.deepCopy(this.originalData[t])})}get(t,s={}){return this.submit("get",t,s)}post(t,s={}){return this.submit("post",t,s)}patch(t,s={}){return this.submit("patch",t,s)}put(t,s={}){return this.submit("put",t,s)}delete(t,s={}){return this.submit("delete",t,s)}submit(t,s,r={}){this.startProcessing();const e=t==="get"?{params:this.data()}:this.data();return new Promise((a,u)=>{this.axios.request({url:this.route(s),method:t,data:e,...r}).then(h=>{this.finishProcessing(),a(h)}).catch(h=>{var n;this.isBusy=!1,h.response&&this.errors.set(this.extractErrors(h.response)),((n=h.response)==null?void 0:n.status)!=422&&u(h)})})}upload(t,s={}){return this.startProcessing(),new Promise((r,e)=>{this.axios.post(this.route(t),this.data(),{headers:{"Content-Type":"multipart/form-data"},...s}).then(a=>{this.finishProcessing(),r(a)}).catch(a=>{this.isBusy=!1,a.response&&this.errors.set(this.extractErrors(a.response)),e(a)})})}extractErrors(t){return!t.data||typeof t.data!="object"?{error:i.errorMessage}:t.data.errors?{...t.data.errors}:t.data.message?{error:t.data.message}:{...t.data}}route(t,s={}){let r=t;return i.routes.hasOwnProperty(t)&&(r=decodeURI(i.routes[t])),typeof s!="object"&&(s={id:s}),Object.keys(s).forEach(e=>{r=r.replace(`{${e}}`,s[e])}),r}onKeydown(t){t.target.name&&this.errors.clear(t.target.name)}deepCopy(t){if(t===null||typeof t!="object")return t;const s=Array.isArray(t)?[]:{};return Object.keys(t).forEach(r=>{s[r]=this.deepCopy(t[r])}),s}}i.routes={};i.errorMessage="Something went wrong. Please try again.";i.ignore=["isBusy","isDisabled","errors","originalData","axios"];export{i as F}; diff --git a/public/build/assets/Groups-D5oaRkip.js b/public/build/assets/Groups-CB6BkpLO.js similarity index 94% rename from public/build/assets/Groups-D5oaRkip.js rename to public/build/assets/Groups-CB6BkpLO.js index 74f7ee7c..cc4a8409 100644 --- a/public/build/assets/Groups-D5oaRkip.js +++ b/public/build/assets/Groups-CB6BkpLO.js @@ -1 +1 @@ -import{u as C,V as $,r as w,o as z,a1 as b,e as c,f as l,k as F,p as u,h as o,t as a,m as s,j as _,i,g as m,F as G,E as V,n as R,U as E,l as h}from"./app-CYV6HkYG.js";import{u as N}from"./bus-9R_lUvV0.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const I={class:"title has-text-grey-dark"},L={class:"is-size-7-mobile"},W={class:"mt-3 mb-6"},A={key:0},T=["onClick","title"],x={class:"is-family-primary is-size-6 is-size-7-mobile has-text-grey"},M={class:"mt-2 is-size-7 is-pulled-right"},S={key:1,class:"has-text-centered"},U={class:"is-size-4"},J={__name:"Groups",setup(j){C();const t=$(),f=N(),p=w(!1);return z(async()=>{p.value=t.isEmpty,await t.fetch().finally(()=>{p.value=!1})}),b((e,g)=>{var n;e.name=="editGroup"&&(f.editedGroupName=(n=t.items.find(d=>d.id==e.params.groupId))==null?void 0:n.name)}),(e,g)=>{const n=c("FontAwesomeIcon"),d=c("RouterLink"),k=c("ButtonBackCloseCancel"),y=c("VueFooter"),v=c("ResponsiveWidthWrapper");return l(),F(v,null,{default:u(()=>[o("h1",I,a(e.$t("groups.groups")),1),o("div",L,a(e.$t("groups.manage_groups_legend")),1),o("div",W,[s(d,{class:"is-link mt-5",to:{name:"createGroup"}},{default:u(()=>[s(n,{icon:["fas","plus-circle"]}),_(" "+a(e.$t("groups.create_group")),1)]),_:1})]),i(t).isEmpty?h("",!0):(l(),m("div",A,[(l(!0),m(G,null,V(i(t).withoutTheAllGroup,r=>(l(),m("div",{key:r.id,class:"group-item is-size-5 is-size-6-mobile"},[_(a(r.name)+" ",1),s(i(E),null,{default:u(({mode:B})=>[o("button",{class:R(["button tag is-pulled-right",B=="dark"?"is-dark":"is-white"]),onClick:q=>i(t).delete(r.id),title:e.$t("commons.delete")},a(e.$t("commons.delete")),11,T)]),_:2},1024),s(d,{to:{name:"editGroup",params:{groupId:r.id}},class:"has-text-grey px-1",title:e.$t("commons.rename")},{default:u(()=>[s(n,{icon:["fas","pen-square"]})]),_:2},1032,["to","title"]),o("span",x,a(e.$t("groups.x_accounts",{count:r.twofaccounts_count})),1)]))),128)),o("div",M,a(e.$t("groups.deleting_group_does_not_delete_accounts")),1)])),i(p)&&i(t).isEmpty?(l(),m("div",S,[o("span",U,[s(n,{icon:["fas","spinner"],spin:""})])])):h("",!0),s(y,{showButtons:!0},{default:u(()=>[s(k,{returnTo:{name:"accounts"},action:"close"})]),_:1})]),_:1})}}};export{J as default}; +import{u as C,V as $,r as w,o as z,a1 as b,e as c,f as l,k as F,p as u,h as o,t as a,m as s,j as _,i,g as m,F as G,E as V,n as R,U as E,l as h}from"./app-CeOdx_TG.js";import{u as N}from"./bus-Sx3kCjbz.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const I={class:"title has-text-grey-dark"},L={class:"is-size-7-mobile"},W={class:"mt-3 mb-6"},A={key:0},T=["onClick","title"],x={class:"is-family-primary is-size-6 is-size-7-mobile has-text-grey"},M={class:"mt-2 is-size-7 is-pulled-right"},S={key:1,class:"has-text-centered"},U={class:"is-size-4"},J={__name:"Groups",setup(j){C();const t=$(),f=N(),p=w(!1);return z(async()=>{p.value=t.isEmpty,await t.fetch().finally(()=>{p.value=!1})}),b((e,g)=>{var n;e.name=="editGroup"&&(f.editedGroupName=(n=t.items.find(d=>d.id==e.params.groupId))==null?void 0:n.name)}),(e,g)=>{const n=c("FontAwesomeIcon"),d=c("RouterLink"),k=c("ButtonBackCloseCancel"),y=c("VueFooter"),v=c("ResponsiveWidthWrapper");return l(),F(v,null,{default:u(()=>[o("h1",I,a(e.$t("groups.groups")),1),o("div",L,a(e.$t("groups.manage_groups_legend")),1),o("div",W,[s(d,{class:"is-link mt-5",to:{name:"createGroup"}},{default:u(()=>[s(n,{icon:["fas","plus-circle"]}),_(" "+a(e.$t("groups.create_group")),1)]),_:1})]),i(t).isEmpty?h("",!0):(l(),m("div",A,[(l(!0),m(G,null,V(i(t).withoutTheAllGroup,r=>(l(),m("div",{key:r.id,class:"group-item is-size-5 is-size-6-mobile"},[_(a(r.name)+" ",1),s(i(E),null,{default:u(({mode:B})=>[o("button",{class:R(["button tag is-pulled-right",B=="dark"?"is-dark":"is-white"]),onClick:q=>i(t).delete(r.id),title:e.$t("commons.delete")},a(e.$t("commons.delete")),11,T)]),_:2},1024),s(d,{to:{name:"editGroup",params:{groupId:r.id}},class:"has-text-grey px-1",title:e.$t("commons.rename")},{default:u(()=>[s(n,{icon:["fas","pen-square"]})]),_:2},1032,["to","title"]),o("span",x,a(e.$t("groups.x_accounts",{count:r.twofaccounts_count})),1)]))),128)),o("div",M,a(e.$t("groups.deleting_group_does_not_delete_accounts")),1)])),i(p)&&i(t).isEmpty?(l(),m("div",S,[o("span",U,[s(n,{icon:["fas","spinner"],spin:""})])])):h("",!0),s(y,{showButtons:!0},{default:u(()=>[s(k,{returnTo:{name:"accounts"},action:"close"})]),_:1})]),_:1})}}};export{J as default}; diff --git a/public/build/assets/Import-CZR4vcnj.js b/public/build/assets/Import-DzQrPeG3.js similarity index 98% rename from public/build/assets/Import-CZR4vcnj.js rename to public/build/assets/Import-DzQrPeG3.js index c574430c..ebf6c65e 100644 --- a/public/build/assets/Import-CZR4vcnj.js +++ b/public/build/assets/Import-DzQrPeG3.js @@ -1 +1 @@ -import{_ as ft,e as v,f as n,g as r,y as mt,m as a,l as f,h as t,i as l,n as C,W as X,k as P,R as pt,b as ht,a as _t,c as vt,r as k,d as O,H as p,x as D,s as gt,o as yt,J as kt,p as w,D as W,t as i,U as q,j as _,w as G,C as wt,F as K,E as Q,P as bt}from"./app-CYV6HkYG.js";import{F as H}from"./Form-DWTCaq3y.js";import{_ as $t}from"./OtpDisplay-rOo0JVMb.js";import{S as Ct}from"./Spinner-DAB1mDqh.js";import{u as xt}from"./bus-9R_lUvV0.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const At=["for","innerHTML"],Ft=["disabled","id","value","placeholder","maxlength"],St=["innerHTML"],zt=Object.assign({inheritAttrs:!1},{__name:"FormTextarea",props:{modelValue:[String,Number,Boolean],label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],placeholder:{type:String,default:""},help:{type:String,default:""},size:{type:String,default:""},hasOffset:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},maxLength:{type:Number,default:null},isIndented:Boolean},setup(d){const T=d,{inputId:m}=ft(T.inputType,T.fieldName);return(h,g)=>{const N=v("FontAwesomeIcon"),b=v("FieldError");return n(),r("div",{class:C(["mb-3",{"pt-3":d.hasOffset,"is-flex":d.isIndented}])},[d.isIndented?(n(),r("div",{key:0,class:"mx-2 pr-1",style:mt({opacity:d.isDisabled?"0.5":"1"})},[a(N,{class:"has-text-grey",icon:["fas","chevron-right"],transform:"rotate-135"})],4)):f("",!0),t("div",{class:C(["field",{"is-flex-grow-5":d.isIndented}])},[t("label",{for:l(m),class:"label",innerHTML:h.$t(d.label)},null,8,At),t("div",{class:C(["control",{"has-icons-left":h.leftIcon,"has-icons-right":h.rightIcon}])},[t("textarea",X({disabled:d.isDisabled,id:l(m),class:["textarea",d.size],value:d.modelValue,placeholder:d.placeholder},h.$attrs,{onInput:g[0]||(g[0]=$=>h.$emit("update:modelValue",$.target.value)),onChange:g[1]||(g[1]=$=>h.$emit("change:modelValue",$.target.value)),maxlength:d.maxLength}),null,16,Ft)],2),d.fieldError!=null?(n(),P(b,{key:0,error:d.fieldError,field:d.fieldName},null,8,["error","field"])):f("",!0),d.help?(n(),r("p",{key:1,class:"help",innerHTML:h.$t(d.help)},null,8,St)):f("",!0)],2)],2)}}}),Et={class:"title has-text-grey-dark"},It={key:0},Tt={class:"block is-size-7-mobile"},Vt={class:"mb-2"},qt={class:"columns"},Nt={class:"column"},Bt={class:"block"},Lt={class:"card"},Mt={class:"card-content"},Ot={class:"media"},Dt={class:"media-left"},Ht={class:"image is-32x32"},Pt={class:"media-content"},Ut=["innerHTML"],Rt={class:"subtitle is-6 is-size-7-mobile"},jt={class:"card-footer"},Jt={class:"block"},Wt={class:"card"},Gt={class:"card-content"},Kt={class:"media"},Qt={class:"media-left"},Xt={class:"image is-32x32"},Yt={class:"media-content"},Zt={class:"title is-5 has-text-grey"},te={class:"subtitle is-6 is-size-7-mobile"},ee={class:"card-footer"},se={class:"block"},oe={class:"card"},ie={class:"card-content"},le={class:"media"},ne={class:"media-left"},ae={class:"image is-32x32"},re={class:"media-content"},ce=["innerHTML"],de={class:"subtitle is-6 is-size-7-mobile"},ue={class:"content"},fe={class:"card-footer"},me={class:"title is-5 has-text-grey-dark"},pe={class:"block is-size-7-mobile"},he={class:"table is-size-7-mobile is-fullwidth"},_e=t("thead",null,[t("tr",null,[t("th"),t("th",null,"Plain text"),t("th",null,"QR code"),t("th",null,"JSON")])],-1),ve=t("th",null,"Google Authenticator",-1),ge=t("td",null,null,-1),ye=t("td",null,null,-1),ke=t("th",null,"Aegis Auth",-1),we=t("td",null,null,-1),be=t("th",null,"2FAS auth",-1),$e=t("td",null,null,-1),Ce=t("td",null,null,-1),xe=t("th",null,"FreeOTP+",-1),Ae=t("td",null,null,-1),Fe=t("td",null,null,-1),Se=t("th",null,"2FAuth",-1),ze=t("td",null,null,-1),Ee=t("td",null,null,-1),Ie={key:1},Te={key:2},Ve={class:"block is-size-7-mobile"},qe={class:"mb-2"},Ne={class:"is-flex is-justify-content-space-between"},Be=["onClick","title"],Le=["src"],Me={key:1,class:"is-flex-grow-1 has-ellipsis"},Oe={key:2,class:"tags is-flex-wrap-nowrap"},De=["onClick","title"],He=["onClick","title"],Pe={key:3,class:"has-nowrap"},Ue={key:0,class:"has-text-success"},Re={key:1,class:"has-text-danger"},je={class:"is-size-6 is-size-7-mobile"},Je={class:"is-family-primary has-text-grey"},We={key:0,class:"has-text-danger"},Ge={key:1,class:"has-text-warning"},Ke={key:2},Qe={key:0,class:"mt-2 is-size-7 is-pulled-right"},Xe={key:1,class:"mt-2 is-size-7 is-pulled-right"},Ye={key:0,class:"control"},ls={__name:"Import",setup(d){const T=pt("2fauth"),m=ht(),h=_t(),g=xt(),N=vt(),b=k(null),$=k(null),B=k(null),x=k(null),V=k(null),S=O(new H({service:"",account:"",otp_type:"",icon:"",secret:"",algorithm:"",digits:null,counter:null,period:null})),z=O(new H({file:null,withSecret:!0})),E=O(new H({qrcode:null,withSecret:!0})),A=k(!1);p("twofaccounts.import.qr_code"),p("twofaccounts.import.plain_text");const c=k([]),y=k(!1),I=D(()=>c.value.filter(e=>e.imported==-1&&e.id>-2).length),U=D(()=>c.value.filter(e=>e.id===-1&&e.imported===-1).length),Y=D(()=>c.value.filter(e=>e.imported===1).length);gt(A,e=>{var s;e==!1&&((s=b.value)==null||s.clearOTP())}),yt(()=>{g.migrationUri&&(L(g.migrationUri),g.migrationUri=null)});async function L(e){y.value=!0,await kt.migrate(e,{returnError:!0}).then(s=>{s.data.forEach(u=>{u.imported=-1,c.value.push(u)}),j(),x.value=V.value=null}).catch(s=>{m.alert({text:p(s.response.data.message)})}),y.value=!1}function Z(){var e;confirm(p("twofaccounts.confirm.discard_duplicates"))&&(m.clear(),(e=b.value)==null||e.clearOTP(),c.value=c.value.filter(s=>s.id!==-1))}function tt(){var e;confirm(p("twofaccounts.confirm.discard_all"))&&(m.clear(),(e=b.value)==null||e.clearOTP(),c.value=[])}function et(e){confirm(p("twofaccounts.confirm.discard"))&&c.value.splice(e,1)}async function st(){for(let e=0;e{c.value[e].imported=1,c.value[e].id=s.data.id,delete s.data.secret,N.items.push(s.data)}).catch(s=>{c.value[e].imported=0,c.value[e].id=0,c.value[e].errors=S.errors.flatten()})}function ot(e){S.fill(c.value[e]),A.value=!0,bt().then(()=>{b.value.show()})}function it(){z.clear(),y.value=!0,z.file=$.value.files[0],z.upload("/api/v1/twofaccounts/migration",{returnError:!0}).then(e=>{e.data.forEach(s=>{s.imported=-1,c.value.push(s)}),j()}).catch(e=>{e.response.status===422?e.response.data.errors.file==null&&m.alert({text:p("errors.invalid_2fa_data")}):m.alert({text:e.response.data.message})}),y.value=!1}function lt(){E.clear(),y.value=!0,E.qrcode=B.value.files[0],E.upload("/api/v1/qrcode/decode",{returnError:!0}).then(e=>{L(e.data.data)}).catch(e=>{e.response.status===422?e.response.data.errors.qrcode==null&&m.alert({text:p("errors.invalid_2fa_data")}):m.alert({text:e.response.data.message})}),y.value=!1}function j(){m.success({text:p("twofaccounts.import.x_valid_accounts_found",{count:I.value})})}function nt(){V.value=null,x.value?L(x.value):V.value=p("validation.required",{attribute:"Direct input"})}return(e,s)=>{const u=v("FontAwesomeIcon"),J=v("FieldError"),at=v("RouterLink"),rt=v("ButtonBackCloseCancel"),ct=v("VueFooter"),dt=v("ResponsiveWidthWrapper"),ut=v("modal");return n(),r("div",null,[a(dt,null,{default:w(()=>[t("h1",Et,i(e.$t("twofaccounts.import.import")),1),!l(y)&&l(c).length==0?(n(),r("div",It,[t("div",Tt,[t("p",Vt,i(e.$t("twofaccounts.import.import_legend")),1),t("p",null,i(e.$t("twofaccounts.import.import_legend_afterpart")),1)]),t("div",qt,[t("div",Nt,[t("div",Bt,[t("div",Lt,[t("div",Mt,[t("div",Ot,[t("div",Dt,[t("figure",Ht,[a(l(q),null,{default:w(({mode:o})=>[a(u,{icon:["fas","qrcode"],size:"2x",class:C(o=="dark"?"has-text-grey-darker":"has-text-grey-lighter")},null,8,["class"])]),_:1})])]),t("div",Pt,[t("p",{class:"title is-5 has-text-grey",innerHTML:e.$t("twofaccounts.import.qr_code")},null,8,Ut),t("p",Rt,i(e.$t("twofaccounts.import.supported_formats_for_qrcode_upload")),1)])]),l(E).errors.hasAny("qrcode")?(n(),P(J,{key:0,error:l(E).errors.get("qrcode"),field:"qrcode"},null,8,["error"])):f("",!0)]),t("footer",jt,[a(at,{id:"btnCapture",to:{name:"capture"},class:"card-footer-item"},{default:w(()=>[_(i(e.$t("twofaccounts.import.scan")),1)]),_:1}),t("a",{role:"button",tabindex:"0",class:"card-footer-item is-relative",onKeyup:s[0]||(s[0]=G(o=>l(B).click(),["enter"]))},[t("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:lt,ref_key:"qrcodeInput",ref:B},null,544),_(" "+i(e.$t("twofaccounts.import.upload")),1)],32)])])]),t("div",Jt,[t("div",Wt,[t("div",Gt,[t("div",Kt,[t("div",Qt,[t("figure",Xt,[a(l(q),null,{default:w(({mode:o})=>[a(u,{icon:["fas","file-lines"],size:"2x",class:C(o=="dark"?"has-text-grey-darker":"has-text-grey-lighter")},null,8,["class"])]),_:1})])]),t("div",Yt,[t("p",Zt,i(e.$t("twofaccounts.import.text_file")),1),t("p",te,i(e.$t("twofaccounts.import.supported_formats_for_file_upload")),1)])]),l(z).errors.hasAny("file")?(n(),P(J,{key:0,error:l(z).errors.get("file"),field:"file"},null,8,["error"])):f("",!0)]),t("footer",ee,[t("a",{role:"button",tabindex:"0",class:"card-footer-item is-relative",onKeyup:s[1]||(s[1]=G(o=>l($).click(),["enter"]))},[t("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"text/plain,application/json,text/csv,.2fas",onChange:it,ref_key:"fileInput",ref:$},null,544),_(" "+i(e.$t("twofaccounts.import.upload")),1)],32)])])]),t("div",se,[t("div",oe,[t("div",ie,[t("div",le,[t("div",ne,[t("figure",ae,[a(l(q),null,{default:w(({mode:o})=>[a(u,{icon:["fas","align-left"],size:"2x",class:C(o=="dark"?"has-text-grey-darker":"has-text-grey-lighter")},null,8,["class"])]),_:1})])]),t("div",re,[t("p",{class:"title is-5 has-text-grey",innerHTML:e.$t("twofaccounts.import.direct_input")},null,8,ce),t("p",de,i(e.$t("twofaccounts.import.expected_format_for_direct_input")),1)])]),t("div",ue,[a(zt,{modelValue:l(x),"onUpdate:modelValue":s[2]||(s[2]=o=>W(x)?x.value=o:null),fieldError:l(V),fieldName:"payload",rows:"5",size:"is-small"},null,8,["modelValue","fieldError"])])]),t("footer",fe,[t("a",{role:"button",tabindex:"0",class:"card-footer-item is-relative",onClick:wt(nt,["stop"])},i(e.$t("commons.submit")),1)])])])])]),t("h2",me,i(e.$t("twofaccounts.import.supported_migration_formats")),1),t("div",pe,[a(u,{icon:["fas","fa-triangle-exclamation"],class:"has-text-warning-dark"}),_(" "+i(e.$t("twofaccounts.import.do_not_set_password_or_encryption")),1)]),t("table",he,[_e,t("tbody",null,[t("tr",null,[ve,ge,t("td",null,[a(u,{icon:["fas","circle-check"]})]),ye]),t("tr",null,[ke,t("td",null,[a(u,{icon:["fas","circle-check"]})]),we,t("td",null,[a(u,{icon:["fas","circle-check"]})])]),t("tr",null,[be,$e,Ce,t("td",null,[a(u,{icon:["fas","circle-check"]})])]),t("tr",null,[xe,t("td",null,[a(u,{icon:["fas","circle-check"]})]),Ae,Fe]),t("tr",null,[Se,ze,Ee,t("td",null,[a(u,{icon:["fas","circle-check"]})])])])])])):l(y)&&l(c).length===0?(n(),r("div",Ie,[a(Ct,{type:"fullscreen-overlay",isVisible:!0,message:"twofaccounts.import.parsing_data"},null,8,["message"])])):(n(),r("div",Te,[t("div",Ve,[t("p",qe,i(e.$t("twofaccounts.import.submitted_data_parsed_now_accounts_are_awaiting_import")),1),t("p",null,i(e.$t("twofaccounts.import.use_buttons_to_save_or_discard")),1)]),(n(!0),r(K,null,Q(l(c),(o,M)=>(n(),r("div",{key:o.name,class:"group-item is-size-5 is-size-6-mobile"},[t("div",Ne,[o.id>-2&&o.imported!==0?(n(),r("div",{key:0,class:"is-flex-grow-1 has-ellipsis is-clickable",onClick:F=>ot(M),title:e.$t("twofaccounts.import.generate_a_test_password")},[o.icon&&l(h).preferences.showAccountsIcons?(n(),r("img",{key:0,role:"presentation",class:"import-icon",src:l(T).config.subdirectory+"/storage/icons/"+o.icon,alt:""},null,8,Le)):f("",!0),_(" "+i(o.account),1)],8,Be)):(n(),r("div",Me,i(o.account),1)),o.imported===-1?(n(),r("div",Oe,[a(l(q),null,{default:w(({mode:F})=>[t("button",{class:C(["button tag",{"is-dark has-text-grey-light":F=="dark"}]),onClick:Ze=>et(M),title:e.$t("twofaccounts.import.discard_this_account")},[a(u,{icon:["fas","trash"]})],10,De)]),_:2},1024),o.id>-2?(n(),r("button",{key:0,class:"button tag is-link",onClick:F=>R(M),title:e.$t("twofaccounts.import.import_this_account")},i(e.$t("twofaccounts.import.to_import")),9,He)):f("",!0)])):(n(),r("div",Pe,[o.imported===1?(n(),r("span",Ue,[_(i(e.$t("twofaccounts.import.imported"))+" ",1),a(u,{icon:["fas","check"]})])):(n(),r("span",Re,[_(i(e.$t("twofaccounts.import.failure"))+" ",1),a(u,{icon:["fas","times"]})]))]))]),t("div",je,[t("div",Je,i(e.$t("twofaccounts.import.issuer"))+": "+i(o.service),1),o.id===-2?(n(),r("div",We,[a(u,{class:"mr-1",icon:["fas","times-circle"]}),_(i(o.secret),1)])):f("",!0),o.id===-1&&o.imported!==1&&!o.errors?(n(),r("div",Ge,[a(u,{class:"mr-1",icon:["fas","exclamation-circle"]}),_(i(e.$t("twofaccounts.import.possible_duplicate")),1)])):f("",!0),o.errors?(n(),r("ul",Ke,[(n(!0),r(K,null,Q(o.errors,F=>(n(),r("li",{key:F,class:"has-text-danger"},i(F),1))),128))])):f("",!0)])]))),128)),l(I)>0?(n(),r("div",Qe,[l(U)?(n(),r("button",{key:0,onClick:s[3]||(s[3]=o=>Z()),class:"has-text-grey button is-small is-ghost"},i(e.$t("twofaccounts.import.discard_duplicates"))+" ("+i(l(U))+")",1)):f("",!0),t("button",{onClick:s[4]||(s[4]=o=>tt()),class:"has-text-grey button is-small is-ghost"},i(e.$t("twofaccounts.import.discard_all")),1)])):f("",!0),l(Y)==l(c).length?(n(),r("div",Xe,[t("button",{onClick:s[5]||(s[5]=o=>c.value=[]),class:"has-text-grey button is-small is-ghost"},i(e.$t("commons.clear")),1)])):f("",!0)])),a(ct,{showButtons:!0},{default:w(()=>[l(I)>0?(n(),r("p",Ye,[t("button",{class:"button is-link is-rounded is-focus",onClick:st},[t("span",null,i(e.$t("twofaccounts.import.import_all"))+" ("+i(l(I))+")",1)])])):f("",!0),a(rt,{returnTo:{name:"accounts"},action:l(I)>0?"cancel":"close"},null,8,["action"])]),_:1})]),_:1}),a(ut,{modelValue:l(A),"onUpdate:modelValue":s[9]||(s[9]=o=>W(A)?A.value=o:null)},{default:w(()=>[a($t,X({ref_key:"otpDisplay",ref:b},l(S).data(),{onIncrementHotp:s[6]||(s[6]=()=>{}),onValidationError:s[7]||(s[7]=()=>{}),onPleaseCloseMe:s[8]||(s[8]=o=>A.value=!1)}),null,16)]),_:1},8,["modelValue"])])}}};export{ls as default}; +import{_ as ft,e as v,f as n,g as r,y as mt,m as a,l as f,h as t,i as l,n as C,W as X,k as P,R as pt,b as ht,a as _t,c as vt,r as k,d as O,H as p,x as D,s as gt,o as yt,J as kt,p as w,D as W,t as i,U as q,j as _,w as G,C as wt,F as K,E as Q,P as bt}from"./app-CeOdx_TG.js";import{F as H}from"./Form-BSfNB4q6.js";import{_ as $t}from"./OtpDisplay-CU1C9yFz.js";import{S as Ct}from"./Spinner-BwxI0ALn.js";import{u as xt}from"./bus-Sx3kCjbz.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const At=["for","innerHTML"],Ft=["disabled","id","value","placeholder","maxlength"],St=["innerHTML"],zt=Object.assign({inheritAttrs:!1},{__name:"FormTextarea",props:{modelValue:[String,Number,Boolean],label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],placeholder:{type:String,default:""},help:{type:String,default:""},size:{type:String,default:""},hasOffset:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},maxLength:{type:Number,default:null},isIndented:Boolean},setup(d){const T=d,{inputId:m}=ft(T.inputType,T.fieldName);return(h,g)=>{const N=v("FontAwesomeIcon"),b=v("FieldError");return n(),r("div",{class:C(["mb-3",{"pt-3":d.hasOffset,"is-flex":d.isIndented}])},[d.isIndented?(n(),r("div",{key:0,class:"mx-2 pr-1",style:mt({opacity:d.isDisabled?"0.5":"1"})},[a(N,{class:"has-text-grey",icon:["fas","chevron-right"],transform:"rotate-135"})],4)):f("",!0),t("div",{class:C(["field",{"is-flex-grow-5":d.isIndented}])},[t("label",{for:l(m),class:"label",innerHTML:h.$t(d.label)},null,8,At),t("div",{class:C(["control",{"has-icons-left":h.leftIcon,"has-icons-right":h.rightIcon}])},[t("textarea",X({disabled:d.isDisabled,id:l(m),class:["textarea",d.size],value:d.modelValue,placeholder:d.placeholder},h.$attrs,{onInput:g[0]||(g[0]=$=>h.$emit("update:modelValue",$.target.value)),onChange:g[1]||(g[1]=$=>h.$emit("change:modelValue",$.target.value)),maxlength:d.maxLength}),null,16,Ft)],2),d.fieldError!=null?(n(),P(b,{key:0,error:d.fieldError,field:d.fieldName},null,8,["error","field"])):f("",!0),d.help?(n(),r("p",{key:1,class:"help",innerHTML:h.$t(d.help)},null,8,St)):f("",!0)],2)],2)}}}),Et={class:"title has-text-grey-dark"},It={key:0},Tt={class:"block is-size-7-mobile"},Vt={class:"mb-2"},qt={class:"columns"},Nt={class:"column"},Bt={class:"block"},Lt={class:"card"},Mt={class:"card-content"},Ot={class:"media"},Dt={class:"media-left"},Ht={class:"image is-32x32"},Pt={class:"media-content"},Ut=["innerHTML"],Rt={class:"subtitle is-6 is-size-7-mobile"},jt={class:"card-footer"},Jt={class:"block"},Wt={class:"card"},Gt={class:"card-content"},Kt={class:"media"},Qt={class:"media-left"},Xt={class:"image is-32x32"},Yt={class:"media-content"},Zt={class:"title is-5 has-text-grey"},te={class:"subtitle is-6 is-size-7-mobile"},ee={class:"card-footer"},se={class:"block"},oe={class:"card"},ie={class:"card-content"},le={class:"media"},ne={class:"media-left"},ae={class:"image is-32x32"},re={class:"media-content"},ce=["innerHTML"],de={class:"subtitle is-6 is-size-7-mobile"},ue={class:"content"},fe={class:"card-footer"},me={class:"title is-5 has-text-grey-dark"},pe={class:"block is-size-7-mobile"},he={class:"table is-size-7-mobile is-fullwidth"},_e=t("thead",null,[t("tr",null,[t("th"),t("th",null,"Plain text"),t("th",null,"QR code"),t("th",null,"JSON")])],-1),ve=t("th",null,"Google Authenticator",-1),ge=t("td",null,null,-1),ye=t("td",null,null,-1),ke=t("th",null,"Aegis Auth",-1),we=t("td",null,null,-1),be=t("th",null,"2FAS auth",-1),$e=t("td",null,null,-1),Ce=t("td",null,null,-1),xe=t("th",null,"FreeOTP+",-1),Ae=t("td",null,null,-1),Fe=t("td",null,null,-1),Se=t("th",null,"2FAuth",-1),ze=t("td",null,null,-1),Ee=t("td",null,null,-1),Ie={key:1},Te={key:2},Ve={class:"block is-size-7-mobile"},qe={class:"mb-2"},Ne={class:"is-flex is-justify-content-space-between"},Be=["onClick","title"],Le=["src"],Me={key:1,class:"is-flex-grow-1 has-ellipsis"},Oe={key:2,class:"tags is-flex-wrap-nowrap"},De=["onClick","title"],He=["onClick","title"],Pe={key:3,class:"has-nowrap"},Ue={key:0,class:"has-text-success"},Re={key:1,class:"has-text-danger"},je={class:"is-size-6 is-size-7-mobile"},Je={class:"is-family-primary has-text-grey"},We={key:0,class:"has-text-danger"},Ge={key:1,class:"has-text-warning"},Ke={key:2},Qe={key:0,class:"mt-2 is-size-7 is-pulled-right"},Xe={key:1,class:"mt-2 is-size-7 is-pulled-right"},Ye={key:0,class:"control"},ls={__name:"Import",setup(d){const T=pt("2fauth"),m=ht(),h=_t(),g=xt(),N=vt(),b=k(null),$=k(null),B=k(null),x=k(null),V=k(null),S=O(new H({service:"",account:"",otp_type:"",icon:"",secret:"",algorithm:"",digits:null,counter:null,period:null})),z=O(new H({file:null,withSecret:!0})),E=O(new H({qrcode:null,withSecret:!0})),A=k(!1);p("twofaccounts.import.qr_code"),p("twofaccounts.import.plain_text");const c=k([]),y=k(!1),I=D(()=>c.value.filter(e=>e.imported==-1&&e.id>-2).length),U=D(()=>c.value.filter(e=>e.id===-1&&e.imported===-1).length),Y=D(()=>c.value.filter(e=>e.imported===1).length);gt(A,e=>{var s;e==!1&&((s=b.value)==null||s.clearOTP())}),yt(()=>{g.migrationUri&&(L(g.migrationUri),g.migrationUri=null)});async function L(e){y.value=!0,await kt.migrate(e,{returnError:!0}).then(s=>{s.data.forEach(u=>{u.imported=-1,c.value.push(u)}),j(),x.value=V.value=null}).catch(s=>{m.alert({text:p(s.response.data.message)})}),y.value=!1}function Z(){var e;confirm(p("twofaccounts.confirm.discard_duplicates"))&&(m.clear(),(e=b.value)==null||e.clearOTP(),c.value=c.value.filter(s=>s.id!==-1))}function tt(){var e;confirm(p("twofaccounts.confirm.discard_all"))&&(m.clear(),(e=b.value)==null||e.clearOTP(),c.value=[])}function et(e){confirm(p("twofaccounts.confirm.discard"))&&c.value.splice(e,1)}async function st(){for(let e=0;e{c.value[e].imported=1,c.value[e].id=s.data.id,delete s.data.secret,N.items.push(s.data)}).catch(s=>{c.value[e].imported=0,c.value[e].id=0,c.value[e].errors=S.errors.flatten()})}function ot(e){S.fill(c.value[e]),A.value=!0,bt().then(()=>{b.value.show()})}function it(){z.clear(),y.value=!0,z.file=$.value.files[0],z.upload("/api/v1/twofaccounts/migration",{returnError:!0}).then(e=>{e.data.forEach(s=>{s.imported=-1,c.value.push(s)}),j()}).catch(e=>{e.response.status===422?e.response.data.errors.file==null&&m.alert({text:p("errors.invalid_2fa_data")}):m.alert({text:e.response.data.message})}),y.value=!1}function lt(){E.clear(),y.value=!0,E.qrcode=B.value.files[0],E.upload("/api/v1/qrcode/decode",{returnError:!0}).then(e=>{L(e.data.data)}).catch(e=>{e.response.status===422?e.response.data.errors.qrcode==null&&m.alert({text:p("errors.invalid_2fa_data")}):m.alert({text:e.response.data.message})}),y.value=!1}function j(){m.success({text:p("twofaccounts.import.x_valid_accounts_found",{count:I.value})})}function nt(){V.value=null,x.value?L(x.value):V.value=p("validation.required",{attribute:"Direct input"})}return(e,s)=>{const u=v("FontAwesomeIcon"),J=v("FieldError"),at=v("RouterLink"),rt=v("ButtonBackCloseCancel"),ct=v("VueFooter"),dt=v("ResponsiveWidthWrapper"),ut=v("modal");return n(),r("div",null,[a(dt,null,{default:w(()=>[t("h1",Et,i(e.$t("twofaccounts.import.import")),1),!l(y)&&l(c).length==0?(n(),r("div",It,[t("div",Tt,[t("p",Vt,i(e.$t("twofaccounts.import.import_legend")),1),t("p",null,i(e.$t("twofaccounts.import.import_legend_afterpart")),1)]),t("div",qt,[t("div",Nt,[t("div",Bt,[t("div",Lt,[t("div",Mt,[t("div",Ot,[t("div",Dt,[t("figure",Ht,[a(l(q),null,{default:w(({mode:o})=>[a(u,{icon:["fas","qrcode"],size:"2x",class:C(o=="dark"?"has-text-grey-darker":"has-text-grey-lighter")},null,8,["class"])]),_:1})])]),t("div",Pt,[t("p",{class:"title is-5 has-text-grey",innerHTML:e.$t("twofaccounts.import.qr_code")},null,8,Ut),t("p",Rt,i(e.$t("twofaccounts.import.supported_formats_for_qrcode_upload")),1)])]),l(E).errors.hasAny("qrcode")?(n(),P(J,{key:0,error:l(E).errors.get("qrcode"),field:"qrcode"},null,8,["error"])):f("",!0)]),t("footer",jt,[a(at,{id:"btnCapture",to:{name:"capture"},class:"card-footer-item"},{default:w(()=>[_(i(e.$t("twofaccounts.import.scan")),1)]),_:1}),t("a",{role:"button",tabindex:"0",class:"card-footer-item is-relative",onKeyup:s[0]||(s[0]=G(o=>l(B).click(),["enter"]))},[t("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:lt,ref_key:"qrcodeInput",ref:B},null,544),_(" "+i(e.$t("twofaccounts.import.upload")),1)],32)])])]),t("div",Jt,[t("div",Wt,[t("div",Gt,[t("div",Kt,[t("div",Qt,[t("figure",Xt,[a(l(q),null,{default:w(({mode:o})=>[a(u,{icon:["fas","file-lines"],size:"2x",class:C(o=="dark"?"has-text-grey-darker":"has-text-grey-lighter")},null,8,["class"])]),_:1})])]),t("div",Yt,[t("p",Zt,i(e.$t("twofaccounts.import.text_file")),1),t("p",te,i(e.$t("twofaccounts.import.supported_formats_for_file_upload")),1)])]),l(z).errors.hasAny("file")?(n(),P(J,{key:0,error:l(z).errors.get("file"),field:"file"},null,8,["error"])):f("",!0)]),t("footer",ee,[t("a",{role:"button",tabindex:"0",class:"card-footer-item is-relative",onKeyup:s[1]||(s[1]=G(o=>l($).click(),["enter"]))},[t("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"text/plain,application/json,text/csv,.2fas",onChange:it,ref_key:"fileInput",ref:$},null,544),_(" "+i(e.$t("twofaccounts.import.upload")),1)],32)])])]),t("div",se,[t("div",oe,[t("div",ie,[t("div",le,[t("div",ne,[t("figure",ae,[a(l(q),null,{default:w(({mode:o})=>[a(u,{icon:["fas","align-left"],size:"2x",class:C(o=="dark"?"has-text-grey-darker":"has-text-grey-lighter")},null,8,["class"])]),_:1})])]),t("div",re,[t("p",{class:"title is-5 has-text-grey",innerHTML:e.$t("twofaccounts.import.direct_input")},null,8,ce),t("p",de,i(e.$t("twofaccounts.import.expected_format_for_direct_input")),1)])]),t("div",ue,[a(zt,{modelValue:l(x),"onUpdate:modelValue":s[2]||(s[2]=o=>W(x)?x.value=o:null),fieldError:l(V),fieldName:"payload",rows:"5",size:"is-small"},null,8,["modelValue","fieldError"])])]),t("footer",fe,[t("a",{role:"button",tabindex:"0",class:"card-footer-item is-relative",onClick:wt(nt,["stop"])},i(e.$t("commons.submit")),1)])])])])]),t("h2",me,i(e.$t("twofaccounts.import.supported_migration_formats")),1),t("div",pe,[a(u,{icon:["fas","fa-triangle-exclamation"],class:"has-text-warning-dark"}),_(" "+i(e.$t("twofaccounts.import.do_not_set_password_or_encryption")),1)]),t("table",he,[_e,t("tbody",null,[t("tr",null,[ve,ge,t("td",null,[a(u,{icon:["fas","circle-check"]})]),ye]),t("tr",null,[ke,t("td",null,[a(u,{icon:["fas","circle-check"]})]),we,t("td",null,[a(u,{icon:["fas","circle-check"]})])]),t("tr",null,[be,$e,Ce,t("td",null,[a(u,{icon:["fas","circle-check"]})])]),t("tr",null,[xe,t("td",null,[a(u,{icon:["fas","circle-check"]})]),Ae,Fe]),t("tr",null,[Se,ze,Ee,t("td",null,[a(u,{icon:["fas","circle-check"]})])])])])])):l(y)&&l(c).length===0?(n(),r("div",Ie,[a(Ct,{type:"fullscreen-overlay",isVisible:!0,message:"twofaccounts.import.parsing_data"},null,8,["message"])])):(n(),r("div",Te,[t("div",Ve,[t("p",qe,i(e.$t("twofaccounts.import.submitted_data_parsed_now_accounts_are_awaiting_import")),1),t("p",null,i(e.$t("twofaccounts.import.use_buttons_to_save_or_discard")),1)]),(n(!0),r(K,null,Q(l(c),(o,M)=>(n(),r("div",{key:o.name,class:"group-item is-size-5 is-size-6-mobile"},[t("div",Ne,[o.id>-2&&o.imported!==0?(n(),r("div",{key:0,class:"is-flex-grow-1 has-ellipsis is-clickable",onClick:F=>ot(M),title:e.$t("twofaccounts.import.generate_a_test_password")},[o.icon&&l(h).preferences.showAccountsIcons?(n(),r("img",{key:0,role:"presentation",class:"import-icon",src:l(T).config.subdirectory+"/storage/icons/"+o.icon,alt:""},null,8,Le)):f("",!0),_(" "+i(o.account),1)],8,Be)):(n(),r("div",Me,i(o.account),1)),o.imported===-1?(n(),r("div",Oe,[a(l(q),null,{default:w(({mode:F})=>[t("button",{class:C(["button tag",{"is-dark has-text-grey-light":F=="dark"}]),onClick:Ze=>et(M),title:e.$t("twofaccounts.import.discard_this_account")},[a(u,{icon:["fas","trash"]})],10,De)]),_:2},1024),o.id>-2?(n(),r("button",{key:0,class:"button tag is-link",onClick:F=>R(M),title:e.$t("twofaccounts.import.import_this_account")},i(e.$t("twofaccounts.import.to_import")),9,He)):f("",!0)])):(n(),r("div",Pe,[o.imported===1?(n(),r("span",Ue,[_(i(e.$t("twofaccounts.import.imported"))+" ",1),a(u,{icon:["fas","check"]})])):(n(),r("span",Re,[_(i(e.$t("twofaccounts.import.failure"))+" ",1),a(u,{icon:["fas","times"]})]))]))]),t("div",je,[t("div",Je,i(e.$t("twofaccounts.import.issuer"))+": "+i(o.service),1),o.id===-2?(n(),r("div",We,[a(u,{class:"mr-1",icon:["fas","times-circle"]}),_(i(o.secret),1)])):f("",!0),o.id===-1&&o.imported!==1&&!o.errors?(n(),r("div",Ge,[a(u,{class:"mr-1",icon:["fas","exclamation-circle"]}),_(i(e.$t("twofaccounts.import.possible_duplicate")),1)])):f("",!0),o.errors?(n(),r("ul",Ke,[(n(!0),r(K,null,Q(o.errors,F=>(n(),r("li",{key:F,class:"has-text-danger"},i(F),1))),128))])):f("",!0)])]))),128)),l(I)>0?(n(),r("div",Qe,[l(U)?(n(),r("button",{key:0,onClick:s[3]||(s[3]=o=>Z()),class:"has-text-grey button is-small is-ghost"},i(e.$t("twofaccounts.import.discard_duplicates"))+" ("+i(l(U))+")",1)):f("",!0),t("button",{onClick:s[4]||(s[4]=o=>tt()),class:"has-text-grey button is-small is-ghost"},i(e.$t("twofaccounts.import.discard_all")),1)])):f("",!0),l(Y)==l(c).length?(n(),r("div",Xe,[t("button",{onClick:s[5]||(s[5]=o=>c.value=[]),class:"has-text-grey button is-small is-ghost"},i(e.$t("commons.clear")),1)])):f("",!0)])),a(ct,{showButtons:!0},{default:w(()=>[l(I)>0?(n(),r("p",Ye,[t("button",{class:"button is-link is-rounded is-focus",onClick:st},[t("span",null,i(e.$t("twofaccounts.import.import_all"))+" ("+i(l(I))+")",1)])])):f("",!0),a(rt,{returnTo:{name:"accounts"},action:l(I)>0?"cancel":"close"},null,8,["action"])]),_:1})]),_:1}),a(ut,{modelValue:l(A),"onUpdate:modelValue":s[9]||(s[9]=o=>W(A)?A.value=o:null)},{default:w(()=>[a($t,X({ref_key:"otpDisplay",ref:b},l(S).data(),{onIncrementHotp:s[6]||(s[6]=()=>{}),onValidationError:s[7]||(s[7]=()=>{}),onPleaseCloseMe:s[8]||(s[8]=o=>A.value=!1)}),null,16)]),_:1},8,["modelValue"])])}}};export{ls as default}; diff --git a/public/build/assets/Login-Dvi0IpzI.js b/public/build/assets/Login-BBynD8CC.js similarity index 98% rename from public/build/assets/Login-Dvi0IpzI.js rename to public/build/assets/Login-BBynD8CC.js index 3bf200ff..4e799568 100644 --- a/public/build/assets/Login-Dvi0IpzI.js +++ b/public/build/assets/Login-BBynD8CC.js @@ -1 +1 @@ -import{e as v,f as n,g as l,j as _,t as i,m,R as D,u as U,a as P,b as q,S as z,a2 as G,d as J,r as E,o as Q,i as t,k as b,p as f,l as c,F as g,h as o,C as R,w as V,E as M,n as O,H as F}from"./app-CYV6HkYG.js";import{F as X}from"./Form-DWTCaq3y.js";import{w as Y}from"./webauthnService-CtkX6mue.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const Z=["id","href"],H={__name:"SsoConnectLink",props:{provider:{type:String,default:"unknown"}},setup(A){const r=A,w={unknown:{collection:"fa",icon:"globe"},github:{collection:"fab",icon:"github-alt"},openid:{collection:"fab",icon:"openid"}};return(k,h)=>{const d=v("FontAwesomeIcon");return n(),l("a",{id:"lnkSignWith"+r.provider,class:"button is-link",href:"socialite/redirect/"+r.provider},[_(i(k.$t("auth.sso_providers."+r.provider))+" ",1),m(d,{class:"ml-2",icon:[w[r.provider].collection,w[r.provider].icon]},null,8,["icon"])],8,Z)}}},x=["innerHTML"],ee={class:"field"},te={class:"nav-links"},se={key:0,class:"mt-4"},ne={key:1,class:"columns mt-4 is-variable is-1"},oe={class:"column is-narrow py-1"},ie={class:"column py-1"},ae={class:"buttons"},le=["innerHTML"],re=["innerHTML"],ue={class:"nav-links"},de={class:""},ce={class:""},_e={key:2,class:"buttons mt-4"},me={key:3,class:"is-italic"},he={class:"nav-links"},pe=["href"],fe=["innerHTML"],ge=["innerHTML"],ve=["innerHTML"],ye={class:"nav-links"},be=["aria-label"],we={key:0,class:"mt-4"},ke={key:1,class:"columns mt-4 is-variable is-1"},$e={class:"column is-narrow py-1"},Se={class:"column py-1"},Fe={class:"buttons"},Me={__name:"Login",setup(A){const r=D("2fauth"),w=U(),k=P(),h=q(),d=z(),B=k.preferences.useWebauthnOnly?!0:G(r.prefix+"showWebauthnForm",!1),u=J(new X({email:"",password:""})),L=E(!1),p=E();Q(()=>{d.enableSso==!0&&d.useSsoOnly==!0?p.value="sso":B.value==!0?p.value="webauthn":p.value="legacy"});function y(e){u.clear(),p.value=e,B.value=p.value=="webauthn"}function K(e){h.clear(),u.post("/user/login",{returnError:!0}).then(async s=>{await k.loginAs({id:s.data.id,name:s.data.name,email:s.data.email,oauth_provider:s.data.oauth_provider,authenticated_by_proxy:!1,preferences:s.data.preferences,isAdmin:s.data.is_admin}),w.push({name:"accounts"})}).catch(s=>{s.response.status===401?h.alert({text:F("auth.forms.authentication_failed"),duration:1e4}):s.response.status!==422&&h.error(s)})}function N(){h.clear(),u.clear(),L.value=!0,Y.authenticate(u.email).then(async e=>{await k.loginAs({id:e.data.id,name:e.data.name,email:e.data.email,oauth_provider:e.data.oauth_provider,authenticated_by_proxy:!1,preferences:e.data.preferences,isAdmin:e.data.is_admin}),w.push({name:"accounts"})}).catch(e=>{"webauthn"in e?e.name=="is-warning"?h.warn({text:F(e.message)}):h.alert({text:F(e.message)}):e.response.status===401?h.alert({text:F("auth.forms.authentication_failed"),duration:1e4}):e.response.status==422?u.errors.set(u.extractErrors(e.response)):h.error(e)}).finally(()=>{L.value=!1})}return(e,s)=>{const W=v("FormField"),C=v("FormButtons"),S=v("RouterLink"),T=v("FormWrapper"),I=v("FormPasswordField"),j=v("VueFooter");return n(),l(g,null,[t(p)=="webauthn"?(n(),b(T,{key:0,title:"auth.forms.webauthn_login",punchline:"auth.welcome_to_2fauth"},{default:f(()=>[t(d).enableSso==!0&&t(d).useSsoOnly==!0?(n(),l("div",{key:0,class:"notification is-warning has-text-centered",innerHTML:e.$t("auth.forms.sso_only_form_restricted_to_admin")},null,8,x)):c("",!0),o("div",ee,i(e.$t("auth.webauthn.use_security_device_to_sign_in")),1),o("form",{id:"frmWebauthnLogin",onSubmit:R(N,["prevent"]),onKeydown:s[1]||(s[1]=a=>t(u).onKeydown(a))},[m(W,{modelValue:t(u).email,"onUpdate:modelValue":s[0]||(s[0]=a=>t(u).email=a),fieldName:"email",fieldError:t(u).errors.get("email"),inputType:"email",label:"auth.forms.email",autofocus:""},null,8,["modelValue","fieldError"]),m(C,{isBusy:t(L),caption:"commons.continue",submitId:"btnContinue"},null,8,["isBusy"])],32),o("div",te,[o("p",null,[_(i(e.$t("auth.webauthn.lost_your_device"))+"  ",1),m(S,{id:"lnkRecoverAccount",to:{name:"webauthn.lost"},class:"is-link"},{default:f(()=>[_(i(e.$t("auth.webauthn.recover_your_account")),1)]),_:1},8,["to"])]),o("p",null,[_(i(e.$t("auth.sign_in_using"))+"  ",1),o("a",{id:"lnkSignWithLegacy",role:"button",class:"is-link",onKeyup:s[2]||(s[2]=V(a=>y("legacy"),["enter"])),onClick:s[3]||(s[3]=a=>y("legacy")),tabindex:"0"},i(e.$t("auth.login_and_password")),33)]),t(d).disableRegistration==!1&&t(d).useSsoOnly==!1?(n(),l("p",se,[_(i(e.$t("auth.forms.dont_have_account_yet"))+"  ",1),m(S,{id:"lnkRegister",to:{name:"register"},class:"is-link"},{default:f(()=>[_(i(e.$t("auth.register")),1)]),_:1})])):c("",!0),t(d).enableSso==!0&&Object.values(t(r).config.sso).includes(!0)?(n(),l("div",ne,[o("div",oe,i(e.$t("auth.or_continue_with")),1),o("div",ie,[o("div",ae,[(n(!0),l(g,null,M(t(r).config.sso,(a,$)=>(n(),l(g,null,[a?(n(),b(H,{key:0,class:O("is-outlined is-small"),provider:$},null,8,["provider"])):c("",!0)],64))),256))])])])):c("",!0)])]),_:1})):t(p)=="sso"?(n(),b(T,{key:1,title:"auth.forms.sso_login",punchline:"auth.welcome_to_2fauth"},{default:f(()=>[t(r).isDemoApp?(n(),l("div",{key:0,class:"notification is-info has-text-centered is-radiusless",innerHTML:e.$t("auth.forms.welcome_to_demo_app_use_those_credentials")},null,8,le)):c("",!0),t(r).isTestingApp?(n(),l("div",{key:1,class:"notification is-warning has-text-centered is-radiusless",innerHTML:e.$t("auth.forms.welcome_to_testing_app_use_those_credentials")},null,8,re)):c("",!0),o("div",ue,[o("p",de,i(e.$t("auth.password_login_and_webauthn_are_disabled")),1),o("p",ce,i(e.$t("auth.sign_in_using_sso")),1)]),Object.values(t(r).config.sso).includes(!0)?(n(),l("div",_e,[(n(!0),l(g,null,M(t(r).config.sso,(a,$)=>(n(),l(g,null,[a?(n(),b(H,{key:0,provider:$},null,8,["provider"])):c("",!0)],64))),256))])):(n(),l("p",me,"- "+i(e.$t("auth.no_provider"))+" -",1)),o("div",he,[o("p",null,[_(i(e.$t("auth.no_sso_provider_or_provider_is_missing"))+"  ",1),o("a",{id:"lnkSsoDocs",class:"is-link",tabindex:"0",href:t(r).urls.ssoDocUrl,target:"_blank"},i(e.$t("auth.see_how_to_enable_sso")),9,pe)]),o("p",null,[_(i(e.$t("auth.if_administrator"))+"  ",1),o("a",{id:"lnkSignWithLegacy",role:"button",class:"is-link",onKeyup:s[4]||(s[4]=V(a=>y("legacy"),["enter"])),onClick:s[5]||(s[5]=a=>y("legacy")),tabindex:"0"},i(e.$t("auth.sign_in_here")),33)])])]),_:1})):t(p)=="legacy"?(n(),b(T,{key:2,title:"auth.forms.login",punchline:"auth.welcome_to_2fauth"},{default:f(()=>[t(r).isDemoApp?(n(),l("div",{key:0,class:"notification is-info has-text-centered is-radiusless",innerHTML:e.$t("auth.forms.welcome_to_demo_app_use_those_credentials")},null,8,fe)):c("",!0),t(r).isTestingApp?(n(),l("div",{key:1,class:"notification is-warning has-text-centered is-radiusless",innerHTML:e.$t("auth.forms.welcome_to_testing_app_use_those_credentials")},null,8,ge)):c("",!0),t(d).enableSso==!0&&t(d).useSsoOnly==!0?(n(),l("div",{key:2,class:"notification is-warning has-text-centered",innerHTML:e.$t("auth.forms.sso_only_form_restricted_to_admin")},null,8,ve)):c("",!0),o("form",{id:"frmLegacyLogin",onSubmit:R(K,["prevent"]),onKeydown:s[8]||(s[8]=a=>t(u).onKeydown(a))},[m(W,{modelValue:t(u).email,"onUpdate:modelValue":s[6]||(s[6]=a=>t(u).email=a),fieldName:"email",fieldError:t(u).errors.get("email"),inputType:"email",label:"auth.forms.email",autofocus:""},null,8,["modelValue","fieldError"]),m(I,{modelValue:t(u).password,"onUpdate:modelValue":s[7]||(s[7]=a=>t(u).password=a),fieldName:"password",fieldError:t(u).errors.get("password"),label:"auth.forms.password"},null,8,["modelValue","fieldError"]),m(C,{isBusy:t(u).isBusy,caption:"auth.sign_in",submitId:"btnSignIn"},null,8,["isBusy"])],32),o("div",ye,[o("p",null,[_(i(e.$t("auth.forms.forgot_your_password"))+"  ",1),m(S,{id:"lnkResetPwd",to:{name:"password.request"},class:"is-link","aria-label":e.$t("auth.forms.reset_your_password")},{default:f(()=>[_(i(e.$t("auth.forms.request_password_reset")),1)]),_:1},8,["to","aria-label"])]),o("p",null,[_(i(e.$t("auth.sign_in_using"))+"  ",1),o("a",{id:"lnkSignWithWebauthn",role:"button",class:"is-link",onKeyup:s[9]||(s[9]=V(a=>y("webauthn"),["enter"])),onClick:s[10]||(s[10]=a=>y("webauthn")),tabindex:"0","aria-label":e.$t("auth.sign_in_using_security_device")},i(e.$t("auth.webauthn.security_device")),41,be)]),t(d).disableRegistration==!1&&t(d).useSsoOnly==!1?(n(),l("p",we,[_(i(e.$t("auth.forms.dont_have_account_yet"))+"  ",1),m(S,{id:"lnkRegister",to:{name:"register"},class:"is-link"},{default:f(()=>[_(i(e.$t("auth.register")),1)]),_:1})])):c("",!0),t(d).enableSso&&Object.values(t(r).config.sso).includes(!0)?(n(),l("div",ke,[o("div",$e,i(e.$t("auth.or_continue_with")),1),o("div",Se,[o("div",Fe,[(n(!0),l(g,null,M(t(r).config.sso,(a,$)=>(n(),l(g,null,[a?(n(),b(H,{key:0,class:O("is-outlined is-small"),provider:$},null,8,["provider"])):c("",!0)],64))),256))])])])):c("",!0)])]),_:1})):c("",!0),m(j)],64)}}};export{Me as default}; +import{e as v,f as n,g as l,j as _,t as i,m,R as D,u as U,a as P,b as q,S as z,a2 as G,d as J,r as E,o as Q,i as t,k as b,p as f,l as c,F as g,h as o,C as R,w as V,E as M,n as O,H as F}from"./app-CeOdx_TG.js";import{F as X}from"./Form-BSfNB4q6.js";import{w as Y}from"./webauthnService-3N-iRQ3u.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const Z=["id","href"],H={__name:"SsoConnectLink",props:{provider:{type:String,default:"unknown"}},setup(A){const r=A,w={unknown:{collection:"fa",icon:"globe"},github:{collection:"fab",icon:"github-alt"},openid:{collection:"fab",icon:"openid"}};return(k,h)=>{const d=v("FontAwesomeIcon");return n(),l("a",{id:"lnkSignWith"+r.provider,class:"button is-link",href:"socialite/redirect/"+r.provider},[_(i(k.$t("auth.sso_providers."+r.provider))+" ",1),m(d,{class:"ml-2",icon:[w[r.provider].collection,w[r.provider].icon]},null,8,["icon"])],8,Z)}}},x=["innerHTML"],ee={class:"field"},te={class:"nav-links"},se={key:0,class:"mt-4"},ne={key:1,class:"columns mt-4 is-variable is-1"},oe={class:"column is-narrow py-1"},ie={class:"column py-1"},ae={class:"buttons"},le=["innerHTML"],re=["innerHTML"],ue={class:"nav-links"},de={class:""},ce={class:""},_e={key:2,class:"buttons mt-4"},me={key:3,class:"is-italic"},he={class:"nav-links"},pe=["href"],fe=["innerHTML"],ge=["innerHTML"],ve=["innerHTML"],ye={class:"nav-links"},be=["aria-label"],we={key:0,class:"mt-4"},ke={key:1,class:"columns mt-4 is-variable is-1"},$e={class:"column is-narrow py-1"},Se={class:"column py-1"},Fe={class:"buttons"},Me={__name:"Login",setup(A){const r=D("2fauth"),w=U(),k=P(),h=q(),d=z(),B=k.preferences.useWebauthnOnly?!0:G(r.prefix+"showWebauthnForm",!1),u=J(new X({email:"",password:""})),L=E(!1),p=E();Q(()=>{d.enableSso==!0&&d.useSsoOnly==!0?p.value="sso":B.value==!0?p.value="webauthn":p.value="legacy"});function y(e){u.clear(),p.value=e,B.value=p.value=="webauthn"}function K(e){h.clear(),u.post("/user/login",{returnError:!0}).then(async s=>{await k.loginAs({id:s.data.id,name:s.data.name,email:s.data.email,oauth_provider:s.data.oauth_provider,authenticated_by_proxy:!1,preferences:s.data.preferences,isAdmin:s.data.is_admin}),w.push({name:"accounts"})}).catch(s=>{s.response.status===401?h.alert({text:F("auth.forms.authentication_failed"),duration:1e4}):s.response.status!==422&&h.error(s)})}function N(){h.clear(),u.clear(),L.value=!0,Y.authenticate(u.email).then(async e=>{await k.loginAs({id:e.data.id,name:e.data.name,email:e.data.email,oauth_provider:e.data.oauth_provider,authenticated_by_proxy:!1,preferences:e.data.preferences,isAdmin:e.data.is_admin}),w.push({name:"accounts"})}).catch(e=>{"webauthn"in e?e.name=="is-warning"?h.warn({text:F(e.message)}):h.alert({text:F(e.message)}):e.response.status===401?h.alert({text:F("auth.forms.authentication_failed"),duration:1e4}):e.response.status==422?u.errors.set(u.extractErrors(e.response)):h.error(e)}).finally(()=>{L.value=!1})}return(e,s)=>{const W=v("FormField"),C=v("FormButtons"),S=v("RouterLink"),T=v("FormWrapper"),I=v("FormPasswordField"),j=v("VueFooter");return n(),l(g,null,[t(p)=="webauthn"?(n(),b(T,{key:0,title:"auth.forms.webauthn_login",punchline:"auth.welcome_to_2fauth"},{default:f(()=>[t(d).enableSso==!0&&t(d).useSsoOnly==!0?(n(),l("div",{key:0,class:"notification is-warning has-text-centered",innerHTML:e.$t("auth.forms.sso_only_form_restricted_to_admin")},null,8,x)):c("",!0),o("div",ee,i(e.$t("auth.webauthn.use_security_device_to_sign_in")),1),o("form",{id:"frmWebauthnLogin",onSubmit:R(N,["prevent"]),onKeydown:s[1]||(s[1]=a=>t(u).onKeydown(a))},[m(W,{modelValue:t(u).email,"onUpdate:modelValue":s[0]||(s[0]=a=>t(u).email=a),fieldName:"email",fieldError:t(u).errors.get("email"),inputType:"email",label:"auth.forms.email",autofocus:""},null,8,["modelValue","fieldError"]),m(C,{isBusy:t(L),caption:"commons.continue",submitId:"btnContinue"},null,8,["isBusy"])],32),o("div",te,[o("p",null,[_(i(e.$t("auth.webauthn.lost_your_device"))+"  ",1),m(S,{id:"lnkRecoverAccount",to:{name:"webauthn.lost"},class:"is-link"},{default:f(()=>[_(i(e.$t("auth.webauthn.recover_your_account")),1)]),_:1},8,["to"])]),o("p",null,[_(i(e.$t("auth.sign_in_using"))+"  ",1),o("a",{id:"lnkSignWithLegacy",role:"button",class:"is-link",onKeyup:s[2]||(s[2]=V(a=>y("legacy"),["enter"])),onClick:s[3]||(s[3]=a=>y("legacy")),tabindex:"0"},i(e.$t("auth.login_and_password")),33)]),t(d).disableRegistration==!1&&t(d).useSsoOnly==!1?(n(),l("p",se,[_(i(e.$t("auth.forms.dont_have_account_yet"))+"  ",1),m(S,{id:"lnkRegister",to:{name:"register"},class:"is-link"},{default:f(()=>[_(i(e.$t("auth.register")),1)]),_:1})])):c("",!0),t(d).enableSso==!0&&Object.values(t(r).config.sso).includes(!0)?(n(),l("div",ne,[o("div",oe,i(e.$t("auth.or_continue_with")),1),o("div",ie,[o("div",ae,[(n(!0),l(g,null,M(t(r).config.sso,(a,$)=>(n(),l(g,null,[a?(n(),b(H,{key:0,class:O("is-outlined is-small"),provider:$},null,8,["provider"])):c("",!0)],64))),256))])])])):c("",!0)])]),_:1})):t(p)=="sso"?(n(),b(T,{key:1,title:"auth.forms.sso_login",punchline:"auth.welcome_to_2fauth"},{default:f(()=>[t(r).isDemoApp?(n(),l("div",{key:0,class:"notification is-info has-text-centered is-radiusless",innerHTML:e.$t("auth.forms.welcome_to_demo_app_use_those_credentials")},null,8,le)):c("",!0),t(r).isTestingApp?(n(),l("div",{key:1,class:"notification is-warning has-text-centered is-radiusless",innerHTML:e.$t("auth.forms.welcome_to_testing_app_use_those_credentials")},null,8,re)):c("",!0),o("div",ue,[o("p",de,i(e.$t("auth.password_login_and_webauthn_are_disabled")),1),o("p",ce,i(e.$t("auth.sign_in_using_sso")),1)]),Object.values(t(r).config.sso).includes(!0)?(n(),l("div",_e,[(n(!0),l(g,null,M(t(r).config.sso,(a,$)=>(n(),l(g,null,[a?(n(),b(H,{key:0,provider:$},null,8,["provider"])):c("",!0)],64))),256))])):(n(),l("p",me,"- "+i(e.$t("auth.no_provider"))+" -",1)),o("div",he,[o("p",null,[_(i(e.$t("auth.no_sso_provider_or_provider_is_missing"))+"  ",1),o("a",{id:"lnkSsoDocs",class:"is-link",tabindex:"0",href:t(r).urls.ssoDocUrl,target:"_blank"},i(e.$t("auth.see_how_to_enable_sso")),9,pe)]),o("p",null,[_(i(e.$t("auth.if_administrator"))+"  ",1),o("a",{id:"lnkSignWithLegacy",role:"button",class:"is-link",onKeyup:s[4]||(s[4]=V(a=>y("legacy"),["enter"])),onClick:s[5]||(s[5]=a=>y("legacy")),tabindex:"0"},i(e.$t("auth.sign_in_here")),33)])])]),_:1})):t(p)=="legacy"?(n(),b(T,{key:2,title:"auth.forms.login",punchline:"auth.welcome_to_2fauth"},{default:f(()=>[t(r).isDemoApp?(n(),l("div",{key:0,class:"notification is-info has-text-centered is-radiusless",innerHTML:e.$t("auth.forms.welcome_to_demo_app_use_those_credentials")},null,8,fe)):c("",!0),t(r).isTestingApp?(n(),l("div",{key:1,class:"notification is-warning has-text-centered is-radiusless",innerHTML:e.$t("auth.forms.welcome_to_testing_app_use_those_credentials")},null,8,ge)):c("",!0),t(d).enableSso==!0&&t(d).useSsoOnly==!0?(n(),l("div",{key:2,class:"notification is-warning has-text-centered",innerHTML:e.$t("auth.forms.sso_only_form_restricted_to_admin")},null,8,ve)):c("",!0),o("form",{id:"frmLegacyLogin",onSubmit:R(K,["prevent"]),onKeydown:s[8]||(s[8]=a=>t(u).onKeydown(a))},[m(W,{modelValue:t(u).email,"onUpdate:modelValue":s[6]||(s[6]=a=>t(u).email=a),fieldName:"email",fieldError:t(u).errors.get("email"),inputType:"email",label:"auth.forms.email",autofocus:""},null,8,["modelValue","fieldError"]),m(I,{modelValue:t(u).password,"onUpdate:modelValue":s[7]||(s[7]=a=>t(u).password=a),fieldName:"password",fieldError:t(u).errors.get("password"),label:"auth.forms.password"},null,8,["modelValue","fieldError"]),m(C,{isBusy:t(u).isBusy,caption:"auth.sign_in",submitId:"btnSignIn"},null,8,["isBusy"])],32),o("div",ye,[o("p",null,[_(i(e.$t("auth.forms.forgot_your_password"))+"  ",1),m(S,{id:"lnkResetPwd",to:{name:"password.request"},class:"is-link","aria-label":e.$t("auth.forms.reset_your_password")},{default:f(()=>[_(i(e.$t("auth.forms.request_password_reset")),1)]),_:1},8,["to","aria-label"])]),o("p",null,[_(i(e.$t("auth.sign_in_using"))+"  ",1),o("a",{id:"lnkSignWithWebauthn",role:"button",class:"is-link",onKeyup:s[9]||(s[9]=V(a=>y("webauthn"),["enter"])),onClick:s[10]||(s[10]=a=>y("webauthn")),tabindex:"0","aria-label":e.$t("auth.sign_in_using_security_device")},i(e.$t("auth.webauthn.security_device")),41,be)]),t(d).disableRegistration==!1&&t(d).useSsoOnly==!1?(n(),l("p",we,[_(i(e.$t("auth.forms.dont_have_account_yet"))+"  ",1),m(S,{id:"lnkRegister",to:{name:"register"},class:"is-link"},{default:f(()=>[_(i(e.$t("auth.register")),1)]),_:1})])):c("",!0),t(d).enableSso&&Object.values(t(r).config.sso).includes(!0)?(n(),l("div",ke,[o("div",$e,i(e.$t("auth.or_continue_with")),1),o("div",Se,[o("div",Fe,[(n(!0),l(g,null,M(t(r).config.sso,(a,$)=>(n(),l(g,null,[a?(n(),b(H,{key:0,class:O("is-outlined is-small"),provider:$},null,8,["provider"])):c("",!0)],64))),256))])])])):c("",!0)])]),_:1})):c("",!0),m(j)],64)}}};export{Me as default}; diff --git a/public/build/assets/Manage-D6-VL252.js b/public/build/assets/Manage-C0NOcaRv.js similarity index 96% rename from public/build/assets/Manage-D6-VL252.js rename to public/build/assets/Manage-C0NOcaRv.js index c727b68b..62c3a6c9 100644 --- a/public/build/assets/Manage-D6-VL252.js +++ b/public/build/assets/Manage-C0NOcaRv.js @@ -1 +1 @@ -import{_ as D}from"./CopyButton-CDpmfULX.js";import{_ as O}from"./AccessLogViewer-QcCOFAQ5.js";import{b as Y,u as G,a as J,R as K,r as b,o as Q,I as h,e as f,f as o,k as X,p as m,h as s,t as n,i,g as r,m as d,n as p,j as k,U as v,l as _,F as Z,E as ee,H as u,P as M}from"./app-CYV6HkYG.js";import{u as se}from"./bus-9R_lUvV0.js";import"./SearchBox-BN15Yvrb.js";import"./Spinner-DAB1mDqh.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const te={class:"title has-text-grey-dark mb-6"},ie={key:0,class:"has-text-centered"},ne={class:"is-size-4"},ae={key:1},oe={class:"has-text-weight-light has-text-grey-dark is-pulled-right"},re={class:"subtitle is-6 block"},le={key:0,class:"notification is-dark is-size-7-mobile has-text-centered"},de={class:"block is-size-6 is-size-7-mobile has-text-grey"},ce={class:"block"},ue={key:1,class:"title is-4 has-text-grey-light"},_e={key:2,class:"block"},me={class:"list-item is-size-6 is-size-6-mobile has-text-grey"},he={class:"mb-3 is-flex is-justify-content-space-between"},fe={class:"has-text-weight-bold"},pe={class:"tags ml-3 is-right"},ke=["title"],ge=["title"],be={class:"is-size-7 is-size-7-mobile has-text-grey-dark"},ve=["innerHTML"],ye=["innerHTML"],we=["innerHTML"],$e=["innerHTML"],xe={class:"list-item is-size-6 is-size-6-mobile has-text-grey is-flex is-justify-content-space-between"},ze={class:"has-text-weight-bold"},Ce={class:"is-block is-family-primary has-text-grey-dark"},Te={key:0},Fe={class:"tags ml-3 is-right"},Le=["title"],Me={class:"list-item is-size-6 is-size-6-mobile has-text-grey is-flex is-justify-content-space-between"},Be={class:"has-text-weight-bold"},Ie={class:"is-block has-text-grey-dark"},Ee={key:0},He={class:"tags ml-3 is-right"},Pe=["title"],Ue={class:"block"},Ve={class:"title is-5 has-text-grey-light mb-2"},Ne={key:3,class:"block is-size-6 is-size-7-mobile has-text-grey"},Se={class:"title is-4 has-text-grey-light"},je={class:"about-debug box is-family-monospace is-size-7"},Ae=["value"],Re={class:"has-text-grey"},qe={class:"title is-4 has-text-danger"},We={class:"is-left-bordered-danger"},De={class:"block is-size-6 is-size-7-mobile"},Oe={class:"is-block has-text-grey has-text-weight-bold"},Ze={__name:"Manage",props:{userId:[Number,String]},setup(B){const c=Y(),I=G(),$=J(),E=se(),x=K("2fauth"),y=b(!1),t=b(null),z=b(null),C=b(!1),w=B;Q(async()=>{await H()});async function H(){y.value=!0,h.getById(w.userId,{returnError:!0}).then(e=>{t.value=e.data,E.username=t.value.info.name}).catch(e=>{c.error(e)}).finally(()=>{y.value=!1})}async function P(){if(!g())return!1;confirm(u("admin.confirm.purge_password_reset_request"))===!0&&(await h.resendPasswordEmail(t.value.info.id),t.value.password_reset=null)}async function U(){if(!g())return!1;confirm(u("admin.confirm.request_password_reset"))===!0&&h.resetPassword(t.value.info.id,{returnError:!0}).then(e=>{t.value=e.data,c.success({text:u("admin.password_successfully_reset")})}).catch(e=>{e.response.status===400?c.alert({text:e.response.data.reason}):c.error(e)})}function V(e){if(!confirm(u("admin.confirm.change_admin_role"))){M().then(()=>{t.value.info.is_admin=!e});return}if(e===!1&&t.value.info.id===$.id&&!confirm(u("admin.confirm.demote_own_account"))){M().then(()=>{t.value.info.is_admin=!0});return}h.promote(t.value.info.id,{is_admin:e},{returnError:!0}).then(l=>{t.value.info.is_admin=l.data.info.is_admin,c.success({text:u("admin.user_role_updated")})}).catch(l=>{l.response.status===403?(c.alert({text:l.response.data.message}),t.value.info.is_admin=!0):c.error(l.response)})}function N(){if(!g())return!1;confirm(u("admin.confirm.delete_account"))&&h.delete(t.value.info.id,{returnError:!0}).then(e=>{c.success({text:u("auth.forms.user_account_successfully_deleted")}),I.push({name:"admin.users"})}).catch(e=>{e.response.status===403?c.alert({text:e.response.data.message}):c.error(e.response)})}function S(){if(!g())return!1;h.revokePATs(t.value.info.id).then(e=>{t.value.valid_personal_access_tokens=0,c.success({text:u("admin.pats_succesfully_revoked")})})}function g(){return!(t.value.info.id===$.id&&!confirm(u("admin.confirm.edit_own_account")))}return(e,l)=>{const j=f("FontAwesomeIcon"),A=f("FormCheckbox"),R=f("router-link"),T=f("ButtonBackCloseCancel"),q=f("VueFooter"),W=f("ResponsiveWidthWrapper");return o(),X(W,null,{default:m(()=>{var F;return[s("h1",te,n(e.$t("admin.user_management")),1),i(y)||!i(t)?(o(),r("div",ie,[s("span",ne,[d(j,{icon:["fas","spinner"],spin:""})])])):(o(),r("div",ae,[s("div",{class:p(["mb-6",i(t).info.is_admin?"is-left-bordered-warning":"is-left-bordered-link"])},[d(i(v),null,{default:m(({mode:a})=>[s("p",{class:p(["title is-4",{"has-text-grey-lighter":a=="dark"}])},[s("span",oe,"#"+n(i(t).info.id),1),k(n(i(t).info.name),1)],2)]),_:1}),s("p",re,n(i(t).info.email),1)],2),i(t).info.oauth_provider?(o(),r("div",le,n(e.$t("admin.account_bound_to_x_via_oauth",{provider:i(t).info.oauth_provider})),1)):_("",!0),s("div",de,n(e.$t("admin.registered_on_date",{date:i(t).info.created_at}))+" - "+n(e.$t("admin.last_seen_on_date",{date:i(t).info.last_seen_at})),1),s("div",ce,[d(A,{modelValue:i(t).info.is_admin,"onUpdate:modelValue":[l[0]||(l[0]=a=>i(t).info.is_admin=a),l[1]||(l[1]=a=>V(a===!0))],fieldName:"is_admin",label:"admin.forms.is_admin.label",help:"admin.forms.is_admin.help"},null,8,["modelValue"])]),i(x).config.proxyAuth?_("",!0):(o(),r("h2",ue,n(e.$t("admin.access")),1)),i(x).config.proxyAuth?_("",!0):(o(),r("div",_e,[s("div",me,[s("div",he,[s("div",null,[s("span",fe,n(e.$t("auth.forms.password")),1)]),s("div",null,[s("div",pe,[d(i(v),null,{default:m(({mode:a})=>[i(t).password_reset?(o(),r("button",{key:0,class:p(["button tag is-pulled-right",a=="dark"?"is-dark has-background-link":"is-white"]),onClick:P,title:e.$t("admin.resend_email_title")},n(e.$t("admin.resend_email")),11,ke)):_("",!0),s("button",{class:p(["button tag is-pulled-right",a=="dark"?"is-dark has-background-link":"is-white"]),onClick:U,title:e.$t("admin.reset_password_title")},n(e.$t("admin.reset_password")),11,ge)]),_:1})])])]),s("div",be,[i(t).password_reset===0?(o(),r("span",{key:0,innerHTML:e.$t("admin.password_request_expired"),class:"is-block block"},null,8,ve)):i(t).password_reset?(o(),r("span",{key:1,innerHTML:e.$t("admin.password_requested_on_t",{datetime:i(t).password_reset}),class:"is-block block"},null,8,ye)):_("",!0),i(t).password_reset?(o(),r("span",{key:2,innerHTML:e.$t("admin.resend_email_help"),class:"is-block block"},null,8,we)):_("",!0),s("span",{innerHTML:e.$t("admin.reset_password_help"),class:"is-block block"},null,8,$e)])]),s("div",xe,[s("div",null,[s("span",ze,n(e.$t("settings.personal_access_tokens")),1),s("span",Ce,n(e.$t("admin.user_has_x_active_pat",{count:i(t).valid_personal_access_tokens})),1)]),i(t).valid_personal_access_tokens>0?(o(),r("div",Te,[s("div",Fe,[d(i(v),null,{default:m(({mode:a})=>[s("button",{class:p(["button tag is-pulled-right",a=="dark"?"is-dark has-background-link":"is-white"]),onClick:S,title:e.$t("admin.revoke_all_pat_for_user")},n(e.$t("settings.revoke")),11,Le)]),_:1})])])):_("",!0)]),s("div",Me,[s("div",null,[s("span",Be,n(e.$t("auth.webauthn.security_devices")),1),s("span",Ie,n(e.$t("admin.user_has_x_security_devices",{count:i(t).webauthn_credentials})),1)]),i(t).webauthn_credentials>0?(o(),r("div",Ee,[s("div",He,[d(i(v),null,{default:m(({mode:a})=>[s("button",{class:p(["button tag is-pulled-right",a=="dark"?"is-dark has-background-link":"is-white"]),title:e.$t("admin.revoke_all_devices_for_user")},n(e.$t("settings.revoke")),11,Pe)]),_:1})])])):_("",!0)])])),s("div",Ue,[s("h3",Ve,n(e.$t("admin.last_accesses")),1),d(O,{userId:w.userId,lastOnly:!0,onHasMoreEntries:l[2]||(l[2]=a=>C.value=!0)},null,8,["userId"])]),i(C)?(o(),r("div",Ne,[k(n(e.$t("admin.access_log_has_more_entries"))+" ",1),d(R,{id:"lnkFullLogs",to:{name:"admin.logs.access",params:{userId:w.userId}}},{default:m(()=>[k(n(e.$t("admin.see_full_log"))+". ",1)]),_:1},8,["to"])])):_("",!0),s("h2",Se,n(e.$t("settings.preferences")),1),s("div",je,[d(D,{id:"btnCopyEnvVars",token:(F=i(z))==null?void 0:F.innerText},null,8,["token"]),s("ul",{ref_key:"listUserPreferences",ref:z,id:"listUserPreferences"},[(o(!0),r(Z,null,ee(i(t).info.preferences,(a,L)=>(o(),r("li",{value:a,key:L},[s("b",null,n(L),1),k(": "),s("span",Re,n(a),1)],8,Ae))),128))],512)]),s("h2",qe,n(e.$t("admin.danger_zone")),1),s("div",We,[s("div",De,[k(n(e.$t("admin.delete_this_user_legend"))+" ",1),s("span",Oe,n(e.$t("admin.this_is_not_soft_delete")),1)]),s("button",{class:"button is-danger",onClick:N,title:"delete"},n(e.$t("admin.delete_this_user")),1)])])),d(q,{showButtons:!0},{default:m(()=>[d(T,{returnTo:{name:"admin.users"},action:"back"},null,8,["returnTo"]),d(T,{returnTo:{name:"accounts"},action:"close"})]),_:1})]}),_:1})}}};export{Ze as default}; +import{_ as D}from"./CopyButton-jPP7GkVs.js";import{_ as O}from"./AccessLogViewer-D5ku7YyO.js";import{b as Y,u as G,a as J,R as K,r as b,o as Q,I as h,e as f,f as o,k as X,p as m,h as s,t as n,i,g as r,m as d,n as p,j as k,U as v,l as _,F as Z,E as ee,H as u,P as M}from"./app-CeOdx_TG.js";import{u as se}from"./bus-Sx3kCjbz.js";import"./SearchBox-DXIAZhpY.js";import"./Spinner-BwxI0ALn.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const te={class:"title has-text-grey-dark mb-6"},ie={key:0,class:"has-text-centered"},ne={class:"is-size-4"},ae={key:1},oe={class:"has-text-weight-light has-text-grey-dark is-pulled-right"},re={class:"subtitle is-6 block"},le={key:0,class:"notification is-dark is-size-7-mobile has-text-centered"},de={class:"block is-size-6 is-size-7-mobile has-text-grey"},ce={class:"block"},ue={key:1,class:"title is-4 has-text-grey-light"},_e={key:2,class:"block"},me={class:"list-item is-size-6 is-size-6-mobile has-text-grey"},he={class:"mb-3 is-flex is-justify-content-space-between"},fe={class:"has-text-weight-bold"},pe={class:"tags ml-3 is-right"},ke=["title"],ge=["title"],be={class:"is-size-7 is-size-7-mobile has-text-grey-dark"},ve=["innerHTML"],ye=["innerHTML"],we=["innerHTML"],$e=["innerHTML"],xe={class:"list-item is-size-6 is-size-6-mobile has-text-grey is-flex is-justify-content-space-between"},ze={class:"has-text-weight-bold"},Ce={class:"is-block is-family-primary has-text-grey-dark"},Te={key:0},Fe={class:"tags ml-3 is-right"},Le=["title"],Me={class:"list-item is-size-6 is-size-6-mobile has-text-grey is-flex is-justify-content-space-between"},Be={class:"has-text-weight-bold"},Ie={class:"is-block has-text-grey-dark"},Ee={key:0},He={class:"tags ml-3 is-right"},Pe=["title"],Ue={class:"block"},Ve={class:"title is-5 has-text-grey-light mb-2"},Ne={key:3,class:"block is-size-6 is-size-7-mobile has-text-grey"},Se={class:"title is-4 has-text-grey-light"},je={class:"about-debug box is-family-monospace is-size-7"},Ae=["value"],Re={class:"has-text-grey"},qe={class:"title is-4 has-text-danger"},We={class:"is-left-bordered-danger"},De={class:"block is-size-6 is-size-7-mobile"},Oe={class:"is-block has-text-grey has-text-weight-bold"},Ze={__name:"Manage",props:{userId:[Number,String]},setup(B){const c=Y(),I=G(),$=J(),E=se(),x=K("2fauth"),y=b(!1),t=b(null),z=b(null),C=b(!1),w=B;Q(async()=>{await H()});async function H(){y.value=!0,h.getById(w.userId,{returnError:!0}).then(e=>{t.value=e.data,E.username=t.value.info.name}).catch(e=>{c.error(e)}).finally(()=>{y.value=!1})}async function P(){if(!g())return!1;confirm(u("admin.confirm.purge_password_reset_request"))===!0&&(await h.resendPasswordEmail(t.value.info.id),t.value.password_reset=null)}async function U(){if(!g())return!1;confirm(u("admin.confirm.request_password_reset"))===!0&&h.resetPassword(t.value.info.id,{returnError:!0}).then(e=>{t.value=e.data,c.success({text:u("admin.password_successfully_reset")})}).catch(e=>{e.response.status===400?c.alert({text:e.response.data.reason}):c.error(e)})}function V(e){if(!confirm(u("admin.confirm.change_admin_role"))){M().then(()=>{t.value.info.is_admin=!e});return}if(e===!1&&t.value.info.id===$.id&&!confirm(u("admin.confirm.demote_own_account"))){M().then(()=>{t.value.info.is_admin=!0});return}h.promote(t.value.info.id,{is_admin:e},{returnError:!0}).then(l=>{t.value.info.is_admin=l.data.info.is_admin,c.success({text:u("admin.user_role_updated")})}).catch(l=>{l.response.status===403?(c.alert({text:l.response.data.message}),t.value.info.is_admin=!0):c.error(l.response)})}function N(){if(!g())return!1;confirm(u("admin.confirm.delete_account"))&&h.delete(t.value.info.id,{returnError:!0}).then(e=>{c.success({text:u("auth.forms.user_account_successfully_deleted")}),I.push({name:"admin.users"})}).catch(e=>{e.response.status===403?c.alert({text:e.response.data.message}):c.error(e.response)})}function S(){if(!g())return!1;h.revokePATs(t.value.info.id).then(e=>{t.value.valid_personal_access_tokens=0,c.success({text:u("admin.pats_succesfully_revoked")})})}function g(){return!(t.value.info.id===$.id&&!confirm(u("admin.confirm.edit_own_account")))}return(e,l)=>{const j=f("FontAwesomeIcon"),A=f("FormCheckbox"),R=f("router-link"),T=f("ButtonBackCloseCancel"),q=f("VueFooter"),W=f("ResponsiveWidthWrapper");return o(),X(W,null,{default:m(()=>{var F;return[s("h1",te,n(e.$t("admin.user_management")),1),i(y)||!i(t)?(o(),r("div",ie,[s("span",ne,[d(j,{icon:["fas","spinner"],spin:""})])])):(o(),r("div",ae,[s("div",{class:p(["mb-6",i(t).info.is_admin?"is-left-bordered-warning":"is-left-bordered-link"])},[d(i(v),null,{default:m(({mode:a})=>[s("p",{class:p(["title is-4",{"has-text-grey-lighter":a=="dark"}])},[s("span",oe,"#"+n(i(t).info.id),1),k(n(i(t).info.name),1)],2)]),_:1}),s("p",re,n(i(t).info.email),1)],2),i(t).info.oauth_provider?(o(),r("div",le,n(e.$t("admin.account_bound_to_x_via_oauth",{provider:i(t).info.oauth_provider})),1)):_("",!0),s("div",de,n(e.$t("admin.registered_on_date",{date:i(t).info.created_at}))+" - "+n(e.$t("admin.last_seen_on_date",{date:i(t).info.last_seen_at})),1),s("div",ce,[d(A,{modelValue:i(t).info.is_admin,"onUpdate:modelValue":[l[0]||(l[0]=a=>i(t).info.is_admin=a),l[1]||(l[1]=a=>V(a===!0))],fieldName:"is_admin",label:"admin.forms.is_admin.label",help:"admin.forms.is_admin.help"},null,8,["modelValue"])]),i(x).config.proxyAuth?_("",!0):(o(),r("h2",ue,n(e.$t("admin.access")),1)),i(x).config.proxyAuth?_("",!0):(o(),r("div",_e,[s("div",me,[s("div",he,[s("div",null,[s("span",fe,n(e.$t("auth.forms.password")),1)]),s("div",null,[s("div",pe,[d(i(v),null,{default:m(({mode:a})=>[i(t).password_reset?(o(),r("button",{key:0,class:p(["button tag is-pulled-right",a=="dark"?"is-dark has-background-link":"is-white"]),onClick:P,title:e.$t("admin.resend_email_title")},n(e.$t("admin.resend_email")),11,ke)):_("",!0),s("button",{class:p(["button tag is-pulled-right",a=="dark"?"is-dark has-background-link":"is-white"]),onClick:U,title:e.$t("admin.reset_password_title")},n(e.$t("admin.reset_password")),11,ge)]),_:1})])])]),s("div",be,[i(t).password_reset===0?(o(),r("span",{key:0,innerHTML:e.$t("admin.password_request_expired"),class:"is-block block"},null,8,ve)):i(t).password_reset?(o(),r("span",{key:1,innerHTML:e.$t("admin.password_requested_on_t",{datetime:i(t).password_reset}),class:"is-block block"},null,8,ye)):_("",!0),i(t).password_reset?(o(),r("span",{key:2,innerHTML:e.$t("admin.resend_email_help"),class:"is-block block"},null,8,we)):_("",!0),s("span",{innerHTML:e.$t("admin.reset_password_help"),class:"is-block block"},null,8,$e)])]),s("div",xe,[s("div",null,[s("span",ze,n(e.$t("settings.personal_access_tokens")),1),s("span",Ce,n(e.$t("admin.user_has_x_active_pat",{count:i(t).valid_personal_access_tokens})),1)]),i(t).valid_personal_access_tokens>0?(o(),r("div",Te,[s("div",Fe,[d(i(v),null,{default:m(({mode:a})=>[s("button",{class:p(["button tag is-pulled-right",a=="dark"?"is-dark has-background-link":"is-white"]),onClick:S,title:e.$t("admin.revoke_all_pat_for_user")},n(e.$t("settings.revoke")),11,Le)]),_:1})])])):_("",!0)]),s("div",Me,[s("div",null,[s("span",Be,n(e.$t("auth.webauthn.security_devices")),1),s("span",Ie,n(e.$t("admin.user_has_x_security_devices",{count:i(t).webauthn_credentials})),1)]),i(t).webauthn_credentials>0?(o(),r("div",Ee,[s("div",He,[d(i(v),null,{default:m(({mode:a})=>[s("button",{class:p(["button tag is-pulled-right",a=="dark"?"is-dark has-background-link":"is-white"]),title:e.$t("admin.revoke_all_devices_for_user")},n(e.$t("settings.revoke")),11,Pe)]),_:1})])])):_("",!0)])])),s("div",Ue,[s("h3",Ve,n(e.$t("admin.last_accesses")),1),d(O,{userId:w.userId,lastOnly:!0,onHasMoreEntries:l[2]||(l[2]=a=>C.value=!0)},null,8,["userId"])]),i(C)?(o(),r("div",Ne,[k(n(e.$t("admin.access_log_has_more_entries"))+" ",1),d(R,{id:"lnkFullLogs",to:{name:"admin.logs.access",params:{userId:w.userId}}},{default:m(()=>[k(n(e.$t("admin.see_full_log"))+". ",1)]),_:1},8,["to"])])):_("",!0),s("h2",Se,n(e.$t("settings.preferences")),1),s("div",je,[d(D,{id:"btnCopyEnvVars",token:(F=i(z))==null?void 0:F.innerText},null,8,["token"]),s("ul",{ref_key:"listUserPreferences",ref:z,id:"listUserPreferences"},[(o(!0),r(Z,null,ee(i(t).info.preferences,(a,L)=>(o(),r("li",{value:a,key:L},[s("b",null,n(L),1),k(": "),s("span",Re,n(a),1)],8,Ae))),128))],512)]),s("h2",qe,n(e.$t("admin.danger_zone")),1),s("div",We,[s("div",De,[k(n(e.$t("admin.delete_this_user_legend"))+" ",1),s("span",Oe,n(e.$t("admin.this_is_not_soft_delete")),1)]),s("button",{class:"button is-danger",onClick:N,title:"delete"},n(e.$t("admin.delete_this_user")),1)])])),d(q,{showButtons:!0},{default:m(()=>[d(T,{returnTo:{name:"admin.users"},action:"back"},null,8,["returnTo"]),d(T,{returnTo:{name:"accounts"},action:"close"})]),_:1})]}),_:1})}}};export{Ze as default}; diff --git a/public/build/assets/OAuth-BS_ppCvb.js b/public/build/assets/OAuth-dgZCcWlL.js similarity index 96% rename from public/build/assets/OAuth-BS_ppCvb.js rename to public/build/assets/OAuth-dgZCcWlL.js index 0e51400a..77d7e3da 100644 --- a/public/build/assets/OAuth-BS_ppCvb.js +++ b/public/build/assets/OAuth-dgZCcWlL.js @@ -1 +1 @@ -import{R as D,b as R,a as G,a2 as q,T as J,r as v,x as Q,o as X,d as Y,I as x,a1 as Z,e as _,f as a,g as r,m as i,h as o,p as m,i as s,l as d,t as n,w as ee,j as g,F as se,E as te,k as oe,U as ne,n as A,C as z,H as y}from"./app-CYV6HkYG.js";import{F as ae}from"./Form-DWTCaq3y.js";import{_ as ie}from"./SettingTabs-QG_9mr1s.js";import{S as le}from"./Spinner-DAB1mDqh.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const re={class:"options-tabs"},ce={key:0,class:"notification is-warning has-text-centered"},ue=["innerHTML"],de={class:"title is-4 has-text-grey-light"},_e={class:"is-size-7-mobile"},me={class:"mt-3"},pe={key:2},ve={class:"tags is-pulled-right"},fe=["onClick"],he=["onClick","title"],ke={key:1,class:"is-size-7-mobile is-size-6 my-3"},ge={key:2,class:"pat is-family-monospace is-size-6 is-size-7-mobile has-text-success"},ye={class:"mt-2 is-size-7 is-pulled-right"},be={key:0,class:"is-overlay modal-otp modal-background"},Te={class:"main-section"},Ce={class:"field is-grouped"},we={class:"control"},Fe={class:"control"},Ae={__name:"OAuth",setup($e){const E=D("2fauth"),p=R(),b=G(),L=q(E.prefix+"returnTo","accounts"),{copy:M}=J({legacy:!0}),c=v([]),T=v(!1),f=v(!1),h=v(null),C=v(null),w=Q(()=>appSettings.enableSso&&appSettings.useSsoOnly||b.authenticated_by_proxy);X(()=>{F()});const u=Y(new ae({name:""}));function F(){T.value=!0,x.getPersonalAccessTokens({returnError:!0}).then(e=>{c.value=[],e.data.forEach(l=>{l.id===C.value?(l.value=h.value,c.value.unshift(l)):c.value.push(l)})}).catch(e=>{e.response.status===405||p.error(e)}).finally(()=>{T.value=!1,C.value=null,h.value=null})}function $(){I(),w.value?p.warn({text:y("errors.unsupported_with_reverseproxy")}):f.value=!0}function N(){u.post("/oauth/personal-access-tokens").then(e=>{h.value=e.data.accessToken,C.value=e.data.token.id,F(),f.value=!1,u.reset()})}function P(e){confirm(y("settings.confirm.revoke"))&&x.deletePersonalAccessToken(e).then(l=>{c.value=c.value.filter(k=>k.id!==e),p.success({text:y("settings.token_revoked")})})}function I(){c.value.forEach(e=>{e.value=null}),h.value=null}function K(e){M(e),p.success({text:y("commons.copied_to_clipboard")})}function U(){f.value=!1,u.reset()}return Z(e=>{e.name.startsWith("settings.")||p.clear()}),(e,l)=>{const k=_("FontAwesomeIcon"),H=_("ButtonBackCloseCancel"),O=_("VueFooter"),V=_("FormWrapper"),W=_("FormField"),B=_("VueButton");return a(),r("div",null,[i(ie,{activeTab:"settings.oauth.tokens"},null,8,["activeTab"]),o("div",re,[i(V,null,{default:m(()=>[s(w)&&s(b).oauth_provider?(a(),r("div",ce,n(e.$t("auth.sso_only_x_settings_are_disabled",{auth_method:"OAuth"})),1)):d("",!0),s(w)&&s(b).authenticated_by_proxy?(a(),r("div",{key:1,class:"notification is-warning has-text-centered",innerHTML:e.$t("auth.auth_handled_by_proxy")},null,8,ue)):d("",!0),o("h4",de,n(e.$t("settings.personal_access_tokens")),1),o("div",_e,n(e.$t("settings.token_legend")),1),o("div",me,[o("a",{tabindex:"0",class:"is-link",onClick:$,onKeyup:ee($,["enter"])},[i(k,{icon:["fas","plus-circle"]}),g(" "+n(e.$t("settings.generate_new_token")),1)],32)]),s(c).length>0?(a(),r("div",pe,[(a(!0),r(se,null,te(s(c),t=>(a(),r("div",{key:t.id,class:"group-item is-size-5 is-size-6-mobile"},[t.value?(a(),oe(k,{key:0,class:"has-text-success",icon:["fas","check"]})):d("",!0),g(" "+n(t.name)+" ",1),o("div",ve,[i(s(ne),null,{default:m(({mode:S})=>[t.value?(a(),r("button",{key:0,class:A(["button tag",{"is-link":S!="dark"}]),onClick:z(j=>K(t.value),["stop"])},n(e.$t("commons.copy")),11,fe)):d("",!0),o("button",{class:A(["button tag",S==="dark"?"is-dark":"is-white"]),onClick:j=>P(t.id),title:e.$t("settings.revoke")},n(e.$t("settings.revoke")),11,he)]),_:2},1024)]),t.value?(a(),r("span",ke,n(e.$t("settings.make_sure_copy_token")),1)):d("",!0),t.value?(a(),r("span",ge,n(t.value),1)):d("",!0)]))),128)),o("div",ye,n(e.$t("settings.revoking_a_token_is_permanent")),1)])):d("",!0),i(le,{isVisible:s(T)&&s(c).length===0},null,8,["isVisible"]),i(O,{showButtons:!0},{default:m(()=>[i(H,{returnTo:{name:s(L)},action:"close"},null,8,["returnTo"])]),_:1})]),_:1})]),s(f)?(a(),r("div",be,[o("main",Te,[i(V,{title:"settings.forms.new_token"},{default:m(()=>[o("form",{onSubmit:z(N,["prevent"]),onKeydown:l[1]||(l[1]=t=>s(u).onKeydown(t))},[i(W,{modelValue:s(u).name,"onUpdate:modelValue":l[0]||(l[0]=t=>s(u).name=t),fieldName:"name",fieldError:s(u).errors.get("name"),inputType:"text",label:"commons.name",autofocus:""},null,8,["modelValue","fieldError"]),o("div",Ce,[o("div",we,[i(B,{id:"btnGenerateToken",isLoading:s(u).isBusy},{default:m(()=>[g(n(e.$t("commons.generate")),1)]),_:1},8,["isLoading"])]),o("div",Fe,[i(B,{onClick:U,nativeType:"button",id:"btnCancel",color:"is-text"},{default:m(()=>[g(n(e.$t("commons.cancel")),1)]),_:1})])])],32)]),_:1})])])):d("",!0)])}}};export{Ae as default}; +import{R as D,b as R,a as G,a2 as q,T as J,r as v,x as Q,o as X,d as Y,I as x,a1 as Z,e as _,f as a,g as r,m as i,h as o,p as m,i as s,l as d,t as n,w as ee,j as g,F as se,E as te,k as oe,U as ne,n as A,C as z,H as y}from"./app-CeOdx_TG.js";import{F as ae}from"./Form-BSfNB4q6.js";import{_ as ie}from"./SettingTabs-CH0cOPVM.js";import{S as le}from"./Spinner-BwxI0ALn.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const re={class:"options-tabs"},ce={key:0,class:"notification is-warning has-text-centered"},ue=["innerHTML"],de={class:"title is-4 has-text-grey-light"},_e={class:"is-size-7-mobile"},me={class:"mt-3"},pe={key:2},ve={class:"tags is-pulled-right"},fe=["onClick"],he=["onClick","title"],ke={key:1,class:"is-size-7-mobile is-size-6 my-3"},ge={key:2,class:"pat is-family-monospace is-size-6 is-size-7-mobile has-text-success"},ye={class:"mt-2 is-size-7 is-pulled-right"},be={key:0,class:"is-overlay modal-otp modal-background"},Te={class:"main-section"},Ce={class:"field is-grouped"},we={class:"control"},Fe={class:"control"},Ae={__name:"OAuth",setup($e){const E=D("2fauth"),p=R(),b=G(),L=q(E.prefix+"returnTo","accounts"),{copy:M}=J({legacy:!0}),c=v([]),T=v(!1),f=v(!1),h=v(null),C=v(null),w=Q(()=>appSettings.enableSso&&appSettings.useSsoOnly||b.authenticated_by_proxy);X(()=>{F()});const u=Y(new ae({name:""}));function F(){T.value=!0,x.getPersonalAccessTokens({returnError:!0}).then(e=>{c.value=[],e.data.forEach(l=>{l.id===C.value?(l.value=h.value,c.value.unshift(l)):c.value.push(l)})}).catch(e=>{e.response.status===405||p.error(e)}).finally(()=>{T.value=!1,C.value=null,h.value=null})}function $(){I(),w.value?p.warn({text:y("errors.unsupported_with_reverseproxy")}):f.value=!0}function N(){u.post("/oauth/personal-access-tokens").then(e=>{h.value=e.data.accessToken,C.value=e.data.token.id,F(),f.value=!1,u.reset()})}function P(e){confirm(y("settings.confirm.revoke"))&&x.deletePersonalAccessToken(e).then(l=>{c.value=c.value.filter(k=>k.id!==e),p.success({text:y("settings.token_revoked")})})}function I(){c.value.forEach(e=>{e.value=null}),h.value=null}function K(e){M(e),p.success({text:y("commons.copied_to_clipboard")})}function U(){f.value=!1,u.reset()}return Z(e=>{e.name.startsWith("settings.")||p.clear()}),(e,l)=>{const k=_("FontAwesomeIcon"),H=_("ButtonBackCloseCancel"),O=_("VueFooter"),V=_("FormWrapper"),W=_("FormField"),B=_("VueButton");return a(),r("div",null,[i(ie,{activeTab:"settings.oauth.tokens"},null,8,["activeTab"]),o("div",re,[i(V,null,{default:m(()=>[s(w)&&s(b).oauth_provider?(a(),r("div",ce,n(e.$t("auth.sso_only_x_settings_are_disabled",{auth_method:"OAuth"})),1)):d("",!0),s(w)&&s(b).authenticated_by_proxy?(a(),r("div",{key:1,class:"notification is-warning has-text-centered",innerHTML:e.$t("auth.auth_handled_by_proxy")},null,8,ue)):d("",!0),o("h4",de,n(e.$t("settings.personal_access_tokens")),1),o("div",_e,n(e.$t("settings.token_legend")),1),o("div",me,[o("a",{tabindex:"0",class:"is-link",onClick:$,onKeyup:ee($,["enter"])},[i(k,{icon:["fas","plus-circle"]}),g(" "+n(e.$t("settings.generate_new_token")),1)],32)]),s(c).length>0?(a(),r("div",pe,[(a(!0),r(se,null,te(s(c),t=>(a(),r("div",{key:t.id,class:"group-item is-size-5 is-size-6-mobile"},[t.value?(a(),oe(k,{key:0,class:"has-text-success",icon:["fas","check"]})):d("",!0),g(" "+n(t.name)+" ",1),o("div",ve,[i(s(ne),null,{default:m(({mode:S})=>[t.value?(a(),r("button",{key:0,class:A(["button tag",{"is-link":S!="dark"}]),onClick:z(j=>K(t.value),["stop"])},n(e.$t("commons.copy")),11,fe)):d("",!0),o("button",{class:A(["button tag",S==="dark"?"is-dark":"is-white"]),onClick:j=>P(t.id),title:e.$t("settings.revoke")},n(e.$t("settings.revoke")),11,he)]),_:2},1024)]),t.value?(a(),r("span",ke,n(e.$t("settings.make_sure_copy_token")),1)):d("",!0),t.value?(a(),r("span",ge,n(t.value),1)):d("",!0)]))),128)),o("div",ye,n(e.$t("settings.revoking_a_token_is_permanent")),1)])):d("",!0),i(le,{isVisible:s(T)&&s(c).length===0},null,8,["isVisible"]),i(O,{showButtons:!0},{default:m(()=>[i(H,{returnTo:{name:s(L)},action:"close"},null,8,["returnTo"])]),_:1})]),_:1})]),s(f)?(a(),r("div",be,[o("main",Te,[i(V,{title:"settings.forms.new_token"},{default:m(()=>[o("form",{onSubmit:z(N,["prevent"]),onKeydown:l[1]||(l[1]=t=>s(u).onKeydown(t))},[i(W,{modelValue:s(u).name,"onUpdate:modelValue":l[0]||(l[0]=t=>s(u).name=t),fieldName:"name",fieldError:s(u).errors.get("name"),inputType:"text",label:"commons.name",autofocus:""},null,8,["modelValue","fieldError"]),o("div",Ce,[o("div",we,[i(B,{id:"btnGenerateToken",isLoading:s(u).isBusy},{default:m(()=>[g(n(e.$t("commons.generate")),1)]),_:1},8,["isLoading"])]),o("div",Fe,[i(B,{onClick:U,nativeType:"button",id:"btnCancel",color:"is-text"},{default:m(()=>[g(n(e.$t("commons.cancel")),1)]),_:1})])])],32)]),_:1})])])):d("",!0)])}}};export{Ae as default}; diff --git a/public/build/assets/Options-OR5uIyQb.js b/public/build/assets/Options-D3fDNCvX.js similarity index 99% rename from public/build/assets/Options-OR5uIyQb.js rename to public/build/assets/Options-D3fDNCvX.js index 2fa996bc..02c1e4c8 100644 --- a/public/build/assets/Options-OR5uIyQb.js +++ b/public/build/assets/Options-D3fDNCvX.js @@ -1 +1 @@ -import{_ as w}from"./SettingTabs-QG_9mr1s.js";import{R as I,a as T,V as U,b as d,a2 as O,r as K,x as L,o as G,a1 as R,e as c,f as j,g as z,m as r,h as n,p,t as A,i as t,j as f,I as H,H as F,a3 as q}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */let J=[{text:"Africa/Abidjan",value:"Africa/Abidjan"},{text:"Africa/Accra",value:"Africa/Accra"},{text:"Africa/Addis_Ababa",value:"Africa/Addis_Ababa"},{text:"Africa/Algiers",value:"Africa/Algiers"},{text:"Africa/Asmara",value:"Africa/Asmara"},{text:"Africa/Asmera",value:"Africa/Asmera"},{text:"Africa/Bamako",value:"Africa/Bamako"},{text:"Africa/Bangui",value:"Africa/Bangui"},{text:"Africa/Banjul",value:"Africa/Banjul"},{text:"Africa/Bissau",value:"Africa/Bissau"},{text:"Africa/Blantyre",value:"Africa/Blantyre"},{text:"Africa/Brazzaville",value:"Africa/Brazzaville"},{text:"Africa/Bujumbura",value:"Africa/Bujumbura"},{text:"Africa/Cairo",value:"Africa/Cairo"},{text:"Africa/Casablanca",value:"Africa/Casablanca"},{text:"Africa/Ceuta",value:"Africa/Ceuta"},{text:"Africa/Conakry",value:"Africa/Conakry"},{text:"Africa/Dakar",value:"Africa/Dakar"},{text:"Africa/Dar_es_Salaam",value:"Africa/Dar_es_Salaam"},{text:"Africa/Djibouti",value:"Africa/Djibouti"},{text:"Africa/Douala",value:"Africa/Douala"},{text:"Africa/El_Aaiun",value:"Africa/El_Aaiun"},{text:"Africa/Freetown",value:"Africa/Freetown"},{text:"Africa/Gaborone",value:"Africa/Gaborone"},{text:"Africa/Harare",value:"Africa/Harare"},{text:"Africa/Johannesburg",value:"Africa/Johannesburg"},{text:"Africa/Juba",value:"Africa/Juba"},{text:"Africa/Kampala",value:"Africa/Kampala"},{text:"Africa/Khartoum",value:"Africa/Khartoum"},{text:"Africa/Kigali",value:"Africa/Kigali"},{text:"Africa/Kinshasa",value:"Africa/Kinshasa"},{text:"Africa/Lagos",value:"Africa/Lagos"},{text:"Africa/Libreville",value:"Africa/Libreville"},{text:"Africa/Lome",value:"Africa/Lome"},{text:"Africa/Luanda",value:"Africa/Luanda"},{text:"Africa/Lubumbashi",value:"Africa/Lubumbashi"},{text:"Africa/Lusaka",value:"Africa/Lusaka"},{text:"Africa/Malabo",value:"Africa/Malabo"},{text:"Africa/Maputo",value:"Africa/Maputo"},{text:"Africa/Maseru",value:"Africa/Maseru"},{text:"Africa/Mbabane",value:"Africa/Mbabane"},{text:"Africa/Mogadishu",value:"Africa/Mogadishu"},{text:"Africa/Monrovia",value:"Africa/Monrovia"},{text:"Africa/Nairobi",value:"Africa/Nairobi"},{text:"Africa/Ndjamena",value:"Africa/Ndjamena"},{text:"Africa/Niamey",value:"Africa/Niamey"},{text:"Africa/Nouakchott",value:"Africa/Nouakchott"},{text:"Africa/Ouagadougou",value:"Africa/Ouagadougou"},{text:"Africa/Porto-Novo",value:"Africa/Porto-Novo"},{text:"Africa/Sao_Tome",value:"Africa/Sao_Tome"},{text:"Africa/Timbuktu",value:"Africa/Timbuktu"},{text:"Africa/Tripoli",value:"Africa/Tripoli"},{text:"Africa/Tunis",value:"Africa/Tunis"},{text:"Africa/Windhoek",value:"Africa/Windhoek"},{text:"America/Adak",value:"America/Adak"},{text:"America/Anchorage",value:"America/Anchorage"},{text:"America/Anguilla",value:"America/Anguilla"},{text:"America/Antigua",value:"America/Antigua"},{text:"America/Araguaina",value:"America/Araguaina"},{text:"America/Argentina/Buenos_Aires",value:"America/Argentina/Buenos_Aires"},{text:"America/Argentina/Catamarca",value:"America/Argentina/Catamarca"},{text:"America/Argentina/ComodRivadavia",value:"America/Argentina/ComodRivadavia"},{text:"America/Argentina/Cordoba",value:"America/Argentina/Cordoba"},{text:"America/Argentina/Jujuy",value:"America/Argentina/Jujuy"},{text:"America/Argentina/La_Rioja",value:"America/Argentina/La_Rioja"},{text:"America/Argentina/Mendoza",value:"America/Argentina/Mendoza"},{text:"America/Argentina/Rio_Gallegos",value:"America/Argentina/Rio_Gallegos"},{text:"America/Argentina/Salta",value:"America/Argentina/Salta"},{text:"America/Argentina/San_Juan",value:"America/Argentina/San_Juan"},{text:"America/Argentina/San_Luis",value:"America/Argentina/San_Luis"},{text:"America/Argentina/Tucuman",value:"America/Argentina/Tucuman"},{text:"America/Argentina/Ushuaia",value:"America/Argentina/Ushuaia"},{text:"America/Aruba",value:"America/Aruba"},{text:"America/Asuncion",value:"America/Asuncion"},{text:"America/Atikokan",value:"America/Atikokan"},{text:"America/Atka",value:"America/Atka"},{text:"America/Bahia",value:"America/Bahia"},{text:"America/Bahia_Banderas",value:"America/Bahia_Banderas"},{text:"America/Barbados",value:"America/Barbados"},{text:"America/Belem",value:"America/Belem"},{text:"America/Belize",value:"America/Belize"},{text:"America/Blanc-Sablon",value:"America/Blanc-Sablon"},{text:"America/Boa_Vista",value:"America/Boa_Vista"},{text:"America/Bogota",value:"America/Bogota"},{text:"America/Boise",value:"America/Boise"},{text:"America/Buenos_Aires",value:"America/Buenos_Aires"},{text:"America/Cambridge_Bay",value:"America/Cambridge_Bay"},{text:"America/Campo_Grande",value:"America/Campo_Grande"},{text:"America/Cancun",value:"America/Cancun"},{text:"America/Caracas",value:"America/Caracas"},{text:"America/Catamarca",value:"America/Catamarca"},{text:"America/Cayenne",value:"America/Cayenne"},{text:"America/Cayman",value:"America/Cayman"},{text:"America/Chicago",value:"America/Chicago"},{text:"America/Chihuahua",value:"America/Chihuahua"},{text:"America/Ciudad_Juarez",value:"America/Ciudad_Juarez"},{text:"America/Coral_Harbour",value:"America/Coral_Harbour"},{text:"America/Cordoba",value:"America/Cordoba"},{text:"America/Costa_Rica",value:"America/Costa_Rica"},{text:"America/Creston",value:"America/Creston"},{text:"America/Cuiaba",value:"America/Cuiaba"},{text:"America/Curacao",value:"America/Curacao"},{text:"America/Danmarkshavn",value:"America/Danmarkshavn"},{text:"America/Dawson",value:"America/Dawson"},{text:"America/Dawson_Creek",value:"America/Dawson_Creek"},{text:"America/Denver",value:"America/Denver"},{text:"America/Detroit",value:"America/Detroit"},{text:"America/Dominica",value:"America/Dominica"},{text:"America/Edmonton",value:"America/Edmonton"},{text:"America/Eirunepe",value:"America/Eirunepe"},{text:"America/El_Salvador",value:"America/El_Salvador"},{text:"America/Ensenada",value:"America/Ensenada"},{text:"America/Fort_Nelson",value:"America/Fort_Nelson"},{text:"America/Fort_Wayne",value:"America/Fort_Wayne"},{text:"America/Fortaleza",value:"America/Fortaleza"},{text:"America/Glace_Bay",value:"America/Glace_Bay"},{text:"America/Godthab",value:"America/Godthab"},{text:"America/Goose_Bay",value:"America/Goose_Bay"},{text:"America/Grand_Turk",value:"America/Grand_Turk"},{text:"America/Grenada",value:"America/Grenada"},{text:"America/Guadeloupe",value:"America/Guadeloupe"},{text:"America/Guatemala",value:"America/Guatemala"},{text:"America/Guayaquil",value:"America/Guayaquil"},{text:"America/Guyana",value:"America/Guyana"},{text:"America/Halifax",value:"America/Halifax"},{text:"America/Havana",value:"America/Havana"},{text:"America/Hermosillo",value:"America/Hermosillo"},{text:"America/Indiana/Indianapolis",value:"America/Indiana/Indianapolis"},{text:"America/Indiana/Knox",value:"America/Indiana/Knox"},{text:"America/Indiana/Marengo",value:"America/Indiana/Marengo"},{text:"America/Indiana/Petersburg",value:"America/Indiana/Petersburg"},{text:"America/Indiana/Tell_City",value:"America/Indiana/Tell_City"},{text:"America/Indiana/Vevay",value:"America/Indiana/Vevay"},{text:"America/Indiana/Vincennes",value:"America/Indiana/Vincennes"},{text:"America/Indiana/Winamac",value:"America/Indiana/Winamac"},{text:"America/Indianapolis",value:"America/Indianapolis"},{text:"America/Inuvik",value:"America/Inuvik"},{text:"America/Iqaluit",value:"America/Iqaluit"},{text:"America/Jamaica",value:"America/Jamaica"},{text:"America/Jujuy",value:"America/Jujuy"},{text:"America/Juneau",value:"America/Juneau"},{text:"America/Kentucky/Louisville",value:"America/Kentucky/Louisville"},{text:"America/Kentucky/Monticello",value:"America/Kentucky/Monticello"},{text:"America/Knox_IN",value:"America/Knox_IN"},{text:"America/Kralendijk",value:"America/Kralendijk"},{text:"America/La_Paz",value:"America/La_Paz"},{text:"America/Lima",value:"America/Lima"},{text:"America/Los_Angeles",value:"America/Los_Angeles"},{text:"America/Louisville",value:"America/Louisville"},{text:"America/Lower_Princes",value:"America/Lower_Princes"},{text:"America/Maceio",value:"America/Maceio"},{text:"America/Managua",value:"America/Managua"},{text:"America/Manaus",value:"America/Manaus"},{text:"America/Marigot",value:"America/Marigot"},{text:"America/Martinique",value:"America/Martinique"},{text:"America/Matamoros",value:"America/Matamoros"},{text:"America/Mazatlan",value:"America/Mazatlan"},{text:"America/Mendoza",value:"America/Mendoza"},{text:"America/Menominee",value:"America/Menominee"},{text:"America/Merida",value:"America/Merida"},{text:"America/Metlakatla",value:"America/Metlakatla"},{text:"America/Mexico_City",value:"America/Mexico_City"},{text:"America/Miquelon",value:"America/Miquelon"},{text:"America/Moncton",value:"America/Moncton"},{text:"America/Monterrey",value:"America/Monterrey"},{text:"America/Montevideo",value:"America/Montevideo"},{text:"America/Montreal",value:"America/Montreal"},{text:"America/Montserrat",value:"America/Montserrat"},{text:"America/Nassau",value:"America/Nassau"},{text:"America/New_York",value:"America/New_York"},{text:"America/Nipigon",value:"America/Nipigon"},{text:"America/Nome",value:"America/Nome"},{text:"America/Noronha",value:"America/Noronha"},{text:"America/North_Dakota/Beulah",value:"America/North_Dakota/Beulah"},{text:"America/North_Dakota/Center",value:"America/North_Dakota/Center"},{text:"America/North_Dakota/New_Salem",value:"America/North_Dakota/New_Salem"},{text:"America/Nuuk",value:"America/Nuuk"},{text:"America/Ojinaga",value:"America/Ojinaga"},{text:"America/Panama",value:"America/Panama"},{text:"America/Pangnirtung",value:"America/Pangnirtung"},{text:"America/Paramaribo",value:"America/Paramaribo"},{text:"America/Phoenix",value:"America/Phoenix"},{text:"America/Port-au-Prince",value:"America/Port-au-Prince"},{text:"America/Port_of_Spain",value:"America/Port_of_Spain"},{text:"America/Porto_Acre",value:"America/Porto_Acre"},{text:"America/Porto_Velho",value:"America/Porto_Velho"},{text:"America/Puerto_Rico",value:"America/Puerto_Rico"},{text:"America/Punta_Arenas",value:"America/Punta_Arenas"},{text:"America/Rainy_River",value:"America/Rainy_River"},{text:"America/Rankin_Inlet",value:"America/Rankin_Inlet"},{text:"America/Recife",value:"America/Recife"},{text:"America/Regina",value:"America/Regina"},{text:"America/Resolute",value:"America/Resolute"},{text:"America/Rio_Branco",value:"America/Rio_Branco"},{text:"America/Rosario",value:"America/Rosario"},{text:"America/Santa_Isabel",value:"America/Santa_Isabel"},{text:"America/Santarem",value:"America/Santarem"},{text:"America/Santiago",value:"America/Santiago"},{text:"America/Santo_Domingo",value:"America/Santo_Domingo"},{text:"America/Sao_Paulo",value:"America/Sao_Paulo"},{text:"America/Scoresbysund",value:"America/Scoresbysund"},{text:"America/Shiprock",value:"America/Shiprock"},{text:"America/Sitka",value:"America/Sitka"},{text:"America/St_Barthelemy",value:"America/St_Barthelemy"},{text:"America/St_Johns",value:"America/St_Johns"},{text:"America/St_Kitts",value:"America/St_Kitts"},{text:"America/St_Lucia",value:"America/St_Lucia"},{text:"America/St_Thomas",value:"America/St_Thomas"},{text:"America/St_Vincent",value:"America/St_Vincent"},{text:"America/Swift_Current",value:"America/Swift_Current"},{text:"America/Tegucigalpa",value:"America/Tegucigalpa"},{text:"America/Thule",value:"America/Thule"},{text:"America/Thunder_Bay",value:"America/Thunder_Bay"},{text:"America/Tijuana",value:"America/Tijuana"},{text:"America/Toronto",value:"America/Toronto"},{text:"America/Tortola",value:"America/Tortola"},{text:"America/Vancouver",value:"America/Vancouver"},{text:"America/Virgin",value:"America/Virgin"},{text:"America/Whitehorse",value:"America/Whitehorse"},{text:"America/Winnipeg",value:"America/Winnipeg"},{text:"America/Yakutat",value:"America/Yakutat"},{text:"America/Yellowknife",value:"America/Yellowknife"},{text:"Antarctica/Casey",value:"Antarctica/Casey"},{text:"Antarctica/Davis",value:"Antarctica/Davis"},{text:"Antarctica/DumontDUrville",value:"Antarctica/DumontDUrville"},{text:"Antarctica/Macquarie",value:"Antarctica/Macquarie"},{text:"Antarctica/Mawson",value:"Antarctica/Mawson"},{text:"Antarctica/McMurdo",value:"Antarctica/McMurdo"},{text:"Antarctica/Palmer",value:"Antarctica/Palmer"},{text:"Antarctica/Rothera",value:"Antarctica/Rothera"},{text:"Antarctica/South_Pole",value:"Antarctica/South_Pole"},{text:"Antarctica/Syowa",value:"Antarctica/Syowa"},{text:"Antarctica/Troll",value:"Antarctica/Troll"},{text:"Antarctica/Vostok",value:"Antarctica/Vostok"},{text:"Arctic/Longyearbyen",value:"Arctic/Longyearbyen"},{text:"Asia/Aden",value:"Asia/Aden"},{text:"Asia/Almaty",value:"Asia/Almaty"},{text:"Asia/Amman",value:"Asia/Amman"},{text:"Asia/Anadyr",value:"Asia/Anadyr"},{text:"Asia/Aqtau",value:"Asia/Aqtau"},{text:"Asia/Aqtobe",value:"Asia/Aqtobe"},{text:"Asia/Ashgabat",value:"Asia/Ashgabat"},{text:"Asia/Ashkhabad",value:"Asia/Ashkhabad"},{text:"Asia/Atyrau",value:"Asia/Atyrau"},{text:"Asia/Baghdad",value:"Asia/Baghdad"},{text:"Asia/Bahrain",value:"Asia/Bahrain"},{text:"Asia/Baku",value:"Asia/Baku"},{text:"Asia/Bangkok",value:"Asia/Bangkok"},{text:"Asia/Barnaul",value:"Asia/Barnaul"},{text:"Asia/Beirut",value:"Asia/Beirut"},{text:"Asia/Bishkek",value:"Asia/Bishkek"},{text:"Asia/Brunei",value:"Asia/Brunei"},{text:"Asia/Calcutta",value:"Asia/Calcutta"},{text:"Asia/Chita",value:"Asia/Chita"},{text:"Asia/Choibalsan",value:"Asia/Choibalsan"},{text:"Asia/Chongqing",value:"Asia/Chongqing"},{text:"Asia/Chungking",value:"Asia/Chungking"},{text:"Asia/Colombo",value:"Asia/Colombo"},{text:"Asia/Dacca",value:"Asia/Dacca"},{text:"Asia/Damascus",value:"Asia/Damascus"},{text:"Asia/Dhaka",value:"Asia/Dhaka"},{text:"Asia/Dili",value:"Asia/Dili"},{text:"Asia/Dubai",value:"Asia/Dubai"},{text:"Asia/Dushanbe",value:"Asia/Dushanbe"},{text:"Asia/Famagusta",value:"Asia/Famagusta"},{text:"Asia/Gaza",value:"Asia/Gaza"},{text:"Asia/Harbin",value:"Asia/Harbin"},{text:"Asia/Hebron",value:"Asia/Hebron"},{text:"Asia/Ho_Chi_Minh",value:"Asia/Ho_Chi_Minh"},{text:"Asia/Hong_Kong",value:"Asia/Hong_Kong"},{text:"Asia/Hovd",value:"Asia/Hovd"},{text:"Asia/Irkutsk",value:"Asia/Irkutsk"},{text:"Asia/Istanbul",value:"Asia/Istanbul"},{text:"Asia/Jakarta",value:"Asia/Jakarta"},{text:"Asia/Jayapura",value:"Asia/Jayapura"},{text:"Asia/Jerusalem",value:"Asia/Jerusalem"},{text:"Asia/Kabul",value:"Asia/Kabul"},{text:"Asia/Kamchatka",value:"Asia/Kamchatka"},{text:"Asia/Karachi",value:"Asia/Karachi"},{text:"Asia/Kashgar",value:"Asia/Kashgar"},{text:"Asia/Kathmandu",value:"Asia/Kathmandu"},{text:"Asia/Katmandu",value:"Asia/Katmandu"},{text:"Asia/Khandyga",value:"Asia/Khandyga"},{text:"Asia/Kolkata",value:"Asia/Kolkata"},{text:"Asia/Krasnoyarsk",value:"Asia/Krasnoyarsk"},{text:"Asia/Kuala_Lumpur",value:"Asia/Kuala_Lumpur"},{text:"Asia/Kuching",value:"Asia/Kuching"},{text:"Asia/Kuwait",value:"Asia/Kuwait"},{text:"Asia/Macao",value:"Asia/Macao"},{text:"Asia/Macau",value:"Asia/Macau"},{text:"Asia/Magadan",value:"Asia/Magadan"},{text:"Asia/Makassar",value:"Asia/Makassar"},{text:"Asia/Manila",value:"Asia/Manila"},{text:"Asia/Muscat",value:"Asia/Muscat"},{text:"Asia/Nicosia",value:"Asia/Nicosia"},{text:"Asia/Novokuznetsk",value:"Asia/Novokuznetsk"},{text:"Asia/Novosibirsk",value:"Asia/Novosibirsk"},{text:"Asia/Omsk",value:"Asia/Omsk"},{text:"Asia/Oral",value:"Asia/Oral"},{text:"Asia/Phnom_Penh",value:"Asia/Phnom_Penh"},{text:"Asia/Pontianak",value:"Asia/Pontianak"},{text:"Asia/Pyongyang",value:"Asia/Pyongyang"},{text:"Asia/Qatar",value:"Asia/Qatar"},{text:"Asia/Qostanay",value:"Asia/Qostanay"},{text:"Asia/Qyzylorda",value:"Asia/Qyzylorda"},{text:"Asia/Rangoon",value:"Asia/Rangoon"},{text:"Asia/Riyadh",value:"Asia/Riyadh"},{text:"Asia/Saigon",value:"Asia/Saigon"},{text:"Asia/Sakhalin",value:"Asia/Sakhalin"},{text:"Asia/Samarkand",value:"Asia/Samarkand"},{text:"Asia/Seoul",value:"Asia/Seoul"},{text:"Asia/Shanghai",value:"Asia/Shanghai"},{text:"Asia/Singapore",value:"Asia/Singapore"},{text:"Asia/Srednekolymsk",value:"Asia/Srednekolymsk"},{text:"Asia/Taipei",value:"Asia/Taipei"},{text:"Asia/Tashkent",value:"Asia/Tashkent"},{text:"Asia/Tbilisi",value:"Asia/Tbilisi"},{text:"Asia/Tehran",value:"Asia/Tehran"},{text:"Asia/Tel_Aviv",value:"Asia/Tel_Aviv"},{text:"Asia/Thimbu",value:"Asia/Thimbu"},{text:"Asia/Thimphu",value:"Asia/Thimphu"},{text:"Asia/Tokyo",value:"Asia/Tokyo"},{text:"Asia/Tomsk",value:"Asia/Tomsk"},{text:"Asia/Ujung_Pandang",value:"Asia/Ujung_Pandang"},{text:"Asia/Ulaanbaatar",value:"Asia/Ulaanbaatar"},{text:"Asia/Ulan_Bator",value:"Asia/Ulan_Bator"},{text:"Asia/Urumqi",value:"Asia/Urumqi"},{text:"Asia/Ust-Nera",value:"Asia/Ust-Nera"},{text:"Asia/Vientiane",value:"Asia/Vientiane"},{text:"Asia/Vladivostok",value:"Asia/Vladivostok"},{text:"Asia/Yakutsk",value:"Asia/Yakutsk"},{text:"Asia/Yangon",value:"Asia/Yangon"},{text:"Asia/Yekaterinburg",value:"Asia/Yekaterinburg"},{text:"Asia/Yerevan",value:"Asia/Yerevan"},{text:"Atlantic/Azores",value:"Atlantic/Azores"},{text:"Atlantic/Bermuda",value:"Atlantic/Bermuda"},{text:"Atlantic/Canary",value:"Atlantic/Canary"},{text:"Atlantic/Cape_Verde",value:"Atlantic/Cape_Verde"},{text:"Atlantic/Faeroe",value:"Atlantic/Faeroe"},{text:"Atlantic/Faroe",value:"Atlantic/Faroe"},{text:"Atlantic/Jan_Mayen",value:"Atlantic/Jan_Mayen"},{text:"Atlantic/Madeira",value:"Atlantic/Madeira"},{text:"Atlantic/Reykjavik",value:"Atlantic/Reykjavik"},{text:"Atlantic/South_Georgia",value:"Atlantic/South_Georgia"},{text:"Atlantic/St_Helena",value:"Atlantic/St_Helena"},{text:"Atlantic/Stanley",value:"Atlantic/Stanley"},{text:"Australia/ACT",value:"Australia/ACT"},{text:"Australia/Adelaide",value:"Australia/Adelaide"},{text:"Australia/Brisbane",value:"Australia/Brisbane"},{text:"Australia/Broken_Hill",value:"Australia/Broken_Hill"},{text:"Australia/Canberra",value:"Australia/Canberra"},{text:"Australia/Currie",value:"Australia/Currie"},{text:"Australia/Darwin",value:"Australia/Darwin"},{text:"Australia/Eucla",value:"Australia/Eucla"},{text:"Australia/Hobart",value:"Australia/Hobart"},{text:"Australia/LHI",value:"Australia/LHI"},{text:"Australia/Lindeman",value:"Australia/Lindeman"},{text:"Australia/Lord_Howe",value:"Australia/Lord_Howe"},{text:"Australia/Melbourne",value:"Australia/Melbourne"},{text:"Australia/NSW",value:"Australia/NSW"},{text:"Australia/North",value:"Australia/North"},{text:"Australia/Perth",value:"Australia/Perth"},{text:"Australia/Queensland",value:"Australia/Queensland"},{text:"Australia/South",value:"Australia/South"},{text:"Australia/Sydney",value:"Australia/Sydney"},{text:"Australia/Tasmania",value:"Australia/Tasmania"},{text:"Australia/Victoria",value:"Australia/Victoria"},{text:"Australia/West",value:"Australia/West"},{text:"Australia/Yancowinna",value:"Australia/Yancowinna"},{text:"Brazil/Acre",value:"Brazil/Acre"},{text:"Brazil/DeNoronha",value:"Brazil/DeNoronha"},{text:"Brazil/East",value:"Brazil/East"},{text:"Brazil/West",value:"Brazil/West"},{text:"Canada/Atlantic",value:"Canada/Atlantic"},{text:"Canada/Central",value:"Canada/Central"},{text:"Canada/Eastern",value:"Canada/Eastern"},{text:"Canada/Mountain",value:"Canada/Mountain"},{text:"Canada/Newfoundland",value:"Canada/Newfoundland"},{text:"Canada/Pacific",value:"Canada/Pacific"},{text:"Canada/Saskatchewan",value:"Canada/Saskatchewan"},{text:"Canada/Yukon",value:"Canada/Yukon"},{text:"Chile/Continental",value:"Chile/Continental"},{text:"Chile/EasterIsland",value:"Chile/EasterIsland"},{text:"Cuba",value:"Cuba"},{text:"Egypt",value:"Egypt"},{text:"Eire",value:"Eire"},{text:"Europe/Amsterdam",value:"Europe/Amsterdam"},{text:"Europe/Andorra",value:"Europe/Andorra"},{text:"Europe/Astrakhan",value:"Europe/Astrakhan"},{text:"Europe/Athens",value:"Europe/Athens"},{text:"Europe/Belfast",value:"Europe/Belfast"},{text:"Europe/Belgrade",value:"Europe/Belgrade"},{text:"Europe/Berlin",value:"Europe/Berlin"},{text:"Europe/Bratislava",value:"Europe/Bratislava"},{text:"Europe/Brussels",value:"Europe/Brussels"},{text:"Europe/Bucharest",value:"Europe/Bucharest"},{text:"Europe/Budapest",value:"Europe/Budapest"},{text:"Europe/Busingen",value:"Europe/Busingen"},{text:"Europe/Chisinau",value:"Europe/Chisinau"},{text:"Europe/Copenhagen",value:"Europe/Copenhagen"},{text:"Europe/Dublin",value:"Europe/Dublin"},{text:"Europe/Gibraltar",value:"Europe/Gibraltar"},{text:"Europe/Guernsey",value:"Europe/Guernsey"},{text:"Europe/Helsinki",value:"Europe/Helsinki"},{text:"Europe/Isle_of_Man",value:"Europe/Isle_of_Man"},{text:"Europe/Istanbul",value:"Europe/Istanbul"},{text:"Europe/Jersey",value:"Europe/Jersey"},{text:"Europe/Kaliningrad",value:"Europe/Kaliningrad"},{text:"Europe/Kiev",value:"Europe/Kiev"},{text:"Europe/Kirov",value:"Europe/Kirov"},{text:"Europe/Kyiv",value:"Europe/Kyiv"},{text:"Europe/Lisbon",value:"Europe/Lisbon"},{text:"Europe/Ljubljana",value:"Europe/Ljubljana"},{text:"Europe/London",value:"Europe/London"},{text:"Europe/Luxembourg",value:"Europe/Luxembourg"},{text:"Europe/Madrid",value:"Europe/Madrid"},{text:"Europe/Malta",value:"Europe/Malta"},{text:"Europe/Mariehamn",value:"Europe/Mariehamn"},{text:"Europe/Minsk",value:"Europe/Minsk"},{text:"Europe/Monaco",value:"Europe/Monaco"},{text:"Europe/Moscow",value:"Europe/Moscow"},{text:"Europe/Nicosia",value:"Europe/Nicosia"},{text:"Europe/Oslo",value:"Europe/Oslo"},{text:"Europe/Paris",value:"Europe/Paris"},{text:"Europe/Podgorica",value:"Europe/Podgorica"},{text:"Europe/Prague",value:"Europe/Prague"},{text:"Europe/Riga",value:"Europe/Riga"},{text:"Europe/Rome",value:"Europe/Rome"},{text:"Europe/Samara",value:"Europe/Samara"},{text:"Europe/San_Marino",value:"Europe/San_Marino"},{text:"Europe/Sarajevo",value:"Europe/Sarajevo"},{text:"Europe/Saratov",value:"Europe/Saratov"},{text:"Europe/Simferopol",value:"Europe/Simferopol"},{text:"Europe/Skopje",value:"Europe/Skopje"},{text:"Europe/Sofia",value:"Europe/Sofia"},{text:"Europe/Stockholm",value:"Europe/Stockholm"},{text:"Europe/Tallinn",value:"Europe/Tallinn"},{text:"Europe/Tirane",value:"Europe/Tirane"},{text:"Europe/Tiraspol",value:"Europe/Tiraspol"},{text:"Europe/Ulyanovsk",value:"Europe/Ulyanovsk"},{text:"Europe/Uzhgorod",value:"Europe/Uzhgorod"},{text:"Europe/Vaduz",value:"Europe/Vaduz"},{text:"Europe/Vatican",value:"Europe/Vatican"},{text:"Europe/Vienna",value:"Europe/Vienna"},{text:"Europe/Vilnius",value:"Europe/Vilnius"},{text:"Europe/Volgograd",value:"Europe/Volgograd"},{text:"Europe/Warsaw",value:"Europe/Warsaw"},{text:"Europe/Zagreb",value:"Europe/Zagreb"},{text:"Europe/Zaporozhye",value:"Europe/Zaporozhye"},{text:"Europe/Zurich",value:"Europe/Zurich"},{text:"Hongkong",value:"Hongkong"},{text:"Iceland",value:"Iceland"},{text:"Indian/Antananarivo",value:"Indian/Antananarivo"},{text:"Indian/Chagos",value:"Indian/Chagos"},{text:"Indian/Christmas",value:"Indian/Christmas"},{text:"Indian/Cocos",value:"Indian/Cocos"},{text:"Indian/Comoro",value:"Indian/Comoro"},{text:"Indian/Kerguelen",value:"Indian/Kerguelen"},{text:"Indian/Mahe",value:"Indian/Mahe"},{text:"Indian/Maldives",value:"Indian/Maldives"},{text:"Indian/Mauritius",value:"Indian/Mauritius"},{text:"Indian/Mayotte",value:"Indian/Mayotte"},{text:"Indian/Reunion",value:"Indian/Reunion"},{text:"Iran",value:"Iran"},{text:"Israel",value:"Israel"},{text:"Jamaica",value:"Jamaica"},{text:"Japan",value:"Japan"},{text:"Kwajalein",value:"Kwajalein"},{text:"Libya",value:"Libya"},{text:"Mexico/BajaNorte",value:"Mexico/BajaNorte"},{text:"Mexico/BajaSur",value:"Mexico/BajaSur"},{text:"Mexico/General",value:"Mexico/General"},{text:"Navajo",value:"Navajo"},{text:"Pacific/Apia",value:"Pacific/Apia"},{text:"Pacific/Auckland",value:"Pacific/Auckland"},{text:"Pacific/Bougainville",value:"Pacific/Bougainville"},{text:"Pacific/Chatham",value:"Pacific/Chatham"},{text:"Pacific/Chuuk",value:"Pacific/Chuuk"},{text:"Pacific/Easter",value:"Pacific/Easter"},{text:"Pacific/Efate",value:"Pacific/Efate"},{text:"Pacific/Enderbury",value:"Pacific/Enderbury"},{text:"Pacific/Fakaofo",value:"Pacific/Fakaofo"},{text:"Pacific/Fiji",value:"Pacific/Fiji"},{text:"Pacific/Funafuti",value:"Pacific/Funafuti"},{text:"Pacific/Galapagos",value:"Pacific/Galapagos"},{text:"Pacific/Gambier",value:"Pacific/Gambier"},{text:"Pacific/Guadalcanal",value:"Pacific/Guadalcanal"},{text:"Pacific/Guam",value:"Pacific/Guam"},{text:"Pacific/Honolulu",value:"Pacific/Honolulu"},{text:"Pacific/Johnston",value:"Pacific/Johnston"},{text:"Pacific/Kanton",value:"Pacific/Kanton"},{text:"Pacific/Kiritimati",value:"Pacific/Kiritimati"},{text:"Pacific/Kosrae",value:"Pacific/Kosrae"},{text:"Pacific/Kwajalein",value:"Pacific/Kwajalein"},{text:"Pacific/Majuro",value:"Pacific/Majuro"},{text:"Pacific/Marquesas",value:"Pacific/Marquesas"},{text:"Pacific/Midway",value:"Pacific/Midway"},{text:"Pacific/Nauru",value:"Pacific/Nauru"},{text:"Pacific/Niue",value:"Pacific/Niue"},{text:"Pacific/Norfolk",value:"Pacific/Norfolk"},{text:"Pacific/Noumea",value:"Pacific/Noumea"},{text:"Pacific/Pago_Pago",value:"Pacific/Pago_Pago"},{text:"Pacific/Palau",value:"Pacific/Palau"},{text:"Pacific/Pitcairn",value:"Pacific/Pitcairn"},{text:"Pacific/Pohnpei",value:"Pacific/Pohnpei"},{text:"Pacific/Ponape",value:"Pacific/Ponape"},{text:"Pacific/Port_Moresby",value:"Pacific/Port_Moresby"},{text:"Pacific/Rarotonga",value:"Pacific/Rarotonga"},{text:"Pacific/Saipan",value:"Pacific/Saipan"},{text:"Pacific/Samoa",value:"Pacific/Samoa"},{text:"Pacific/Tahiti",value:"Pacific/Tahiti"},{text:"Pacific/Tarawa",value:"Pacific/Tarawa"},{text:"Pacific/Tongatapu",value:"Pacific/Tongatapu"},{text:"Pacific/Truk",value:"Pacific/Truk"},{text:"Pacific/Wake",value:"Pacific/Wake"},{text:"Pacific/Wallis",value:"Pacific/Wallis"},{text:"Pacific/Yap",value:"Pacific/Yap"},{text:"Poland",value:"Poland"},{text:"Portugal",value:"Portugal"},{text:"Singapore",value:"Singapore"},{text:"Turkey",value:"Turkey"},{text:"US/Alaska",value:"US/Alaska"},{text:"US/Aleutian",value:"US/Aleutian"},{text:"US/Arizona",value:"US/Arizona"},{text:"US/Central",value:"US/Central"},{text:"US/East-Indiana",value:"US/East-Indiana"},{text:"US/Eastern",value:"US/Eastern"},{text:"US/Hawaii",value:"US/Hawaii"},{text:"US/Indiana-Starke",value:"US/Indiana-Starke"},{text:"US/Michigan",value:"US/Michigan"},{text:"US/Mountain",value:"US/Mountain"},{text:"US/Pacific",value:"US/Pacific"},{text:"US/Samoa",value:"US/Samoa"},{text:"UTC",value:"UTC"},{text:"Zulu",value:"Zulu"}];const W={class:"options-tabs"},Y={class:"block"},Q={class:"title is-4 has-text-grey-light"},$={class:"field help"},Z={class:"ml-2",href:"https://crowdin.com/project/2fauth"},X={class:"title is-4 pt-4 has-text-grey-light"},ee={class:"title is-4 pt-4 has-text-grey-light"},ae={class:"title is-4 pt-4 has-text-grey-light"},te={class:"title is-4 pt-4 has-text-grey-light"},ue={__name:"Options",setup(ie){const v=I("2fauth"),i=T(),g=U(),_=d(),h=O(v.prefix+"returnTo","accounts"),b=[{text:"settings.forms.grid",value:"grid",icon:"th"},{text:"settings.forms.list",value:"list",icon:"list"}],k=[{text:"settings.forms.light",value:"light",icon:"sun"},{text:"settings.forms.dark",value:"dark",icon:"moon"},{text:"settings.forms.automatic",value:"system",icon:"desktop"}],y=[{text:"12 34 56",value:2,legend:"settings.forms.pair",title:"settings.forms.pair_legend"},{text:"123 456",value:3,legend:"settings.forms.trio",title:"settings.forms.trio_legend"},{text:"1234 5678",value:.5,legend:"settings.forms.half",title:"settings.forms.half_legend"}],P=[{text:"settings.forms.never",value:0},{text:"settings.forms.on_otp_copy",value:-1},{text:"settings.forms.1_minutes",value:1},{text:"settings.forms.5_minutes",value:5},{text:"settings.forms.10_minutes",value:10},{text:"settings.forms.15_minutes",value:15},{text:"settings.forms.30_minutes",value:30},{text:"settings.forms.1_hour",value:60},{text:"settings.forms.1_day",value:1440}],C=[{text:"settings.forms.never",value:0},{text:"settings.forms.1_minutes",value:1},{text:"settings.forms.2_minutes",value:2},{text:"settings.forms.5_minutes",value:5}],x=K([{text:"groups.no_group",value:0},{text:"groups.active_group",value:-1}]),E=[{text:"settings.forms.livescan",value:"livescan"},{text:"settings.forms.upload",value:"upload"},{text:"settings.forms.advanced_form",value:"advancedForm"}],S=[{text:"settings.forms.otp_generation_on_request",value:!0,legend:"settings.forms.otp_generation_on_request_legend",title:"settings.forms.otp_generation_on_request_title"},{text:"settings.forms.otp_generation_on_home",value:!1,legend:"settings.forms.otp_generation_on_home_legend",title:"settings.forms.otp_generation_on_home_title"}],M=L(()=>{let u=[{text:"languages.browser_preference",value:"browser"}];for(const e of v.langs)u.push({text:"languages."+e,value:e});return u});G(()=>{g.items.forEach(u=>{u.id>0&&x.value.push({text:u.name,value:u.id})}),i.refreshPreferences()});function l(u,e){H.updatePreference(u,e).then(s=>{d().success({type:"is-success",text:F("settings.forms.setting_saved")}),u==="lang"&&q()!==e?i.applyLanguage():u==="theme"&&i.applyTheme()})}return R(u=>{u.name.startsWith("settings.")||_.clear()}),(u,e)=>{const s=c("FormSelect"),B=c("FontAwesomeIcon"),m=c("FormToggle"),o=c("FormCheckbox"),V=c("FormWrapper"),N=c("ButtonBackCloseCancel"),D=c("VueFooter");return j(),z("div",null,[r(w,{activeTab:"settings.options"}),n("div",W,[r(V,null,{default:p(()=>[n("form",null,[n("div",Y,[n("h4",Q,A(u.$t("settings.general")),1),r(s,{modelValue:t(i).preferences.lang,"onUpdate:modelValue":[e[0]||(e[0]=a=>t(i).preferences.lang=a),e[1]||(e[1]=a=>l("lang",a))],options:t(M),fieldName:"lang",label:"settings.forms.language.label",help:"settings.forms.language.help"},null,8,["modelValue","options"]),n("div",$,[f(A(u.$t("settings.forms.some_translation_are_missing"))+" ",1),n("a",Z,[f(A(u.$t("settings.forms.help_translate_2fauth"))+" ",1),r(B,{icon:["fas","external-link-alt"]})])]),r(s,{modelValue:t(i).preferences.timezone,"onUpdate:modelValue":[e[2]||(e[2]=a=>t(i).preferences.timezone=a),e[3]||(e[3]=a=>l("timezone",a))],options:t(J),fieldName:"timezone",label:"settings.forms.timezone.label",help:"settings.forms.timezone.help"},null,8,["modelValue","options"]),r(m,{modelValue:t(i).preferences.displayMode,"onUpdate:modelValue":[e[4]||(e[4]=a=>t(i).preferences.displayMode=a),e[5]||(e[5]=a=>l("displayMode",a))],choices:b,fieldName:"displayMode",label:"settings.forms.display_mode.label",help:"settings.forms.display_mode.help"},null,8,["modelValue"]),r(m,{modelValue:t(i).preferences.theme,"onUpdate:modelValue":[e[6]||(e[6]=a=>t(i).preferences.theme=a),e[7]||(e[7]=a=>l("theme",a))],choices:k,fieldName:"theme",label:"settings.forms.theme.label",help:"settings.forms.theme.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.showAccountsIcons,"onUpdate:modelValue":[e[8]||(e[8]=a=>t(i).preferences.showAccountsIcons=a),e[9]||(e[9]=a=>l("showAccountsIcons",a))],fieldName:"showAccountsIcons",label:"settings.forms.show_accounts_icons.label",help:"settings.forms.show_accounts_icons.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.getOfficialIcons,"onUpdate:modelValue":[e[10]||(e[10]=a=>t(i).preferences.getOfficialIcons=a),e[11]||(e[11]=a=>l("getOfficialIcons",a))],fieldName:"getOfficialIcons",label:"settings.forms.get_official_icons.label",help:"settings.forms.get_official_icons.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.formatPassword,"onUpdate:modelValue":[e[12]||(e[12]=a=>t(i).preferences.formatPassword=a),e[13]||(e[13]=a=>l("formatPassword",a))],fieldName:"formatPassword",label:"settings.forms.password_format.label",help:"settings.forms.password_format.help"},null,8,["modelValue"]),r(m,{modelValue:t(i).preferences.formatPasswordBy,"onUpdate:modelValue":[e[14]||(e[14]=a=>t(i).preferences.formatPasswordBy=a),e[15]||(e[15]=a=>l("formatPasswordBy",a))],choices:y,fieldName:"formatPasswordBy",isDisabled:!t(i).preferences.formatPassword},null,8,["modelValue","isDisabled"]),r(o,{modelValue:t(i).preferences.clearSearchOnCopy,"onUpdate:modelValue":[e[16]||(e[16]=a=>t(i).preferences.clearSearchOnCopy=a),e[17]||(e[17]=a=>l("clearSearchOnCopy",a))],fieldName:"clearSearchOnCopy",label:"settings.forms.clear_search_on_copy.label",help:"settings.forms.clear_search_on_copy.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.sortCaseSensitive,"onUpdate:modelValue":[e[18]||(e[18]=a=>t(i).preferences.sortCaseSensitive=a),e[19]||(e[19]=a=>l("sortCaseSensitive",a))],fieldName:"sortCaseSensitive",label:"settings.forms.sort_case_sensitive.label",help:"settings.forms.sort_case_sensitive.help"},null,8,["modelValue"]),n("h4",X,A(u.$t("groups.groups")),1),r(s,{modelValue:t(i).preferences.defaultGroup,"onUpdate:modelValue":[e[20]||(e[20]=a=>t(i).preferences.defaultGroup=a),e[21]||(e[21]=a=>l("defaultGroup",a))],options:t(x),fieldName:"defaultGroup",label:"settings.forms.default_group.label",help:"settings.forms.default_group.help"},null,8,["modelValue","options"]),r(o,{modelValue:t(i).preferences.rememberActiveGroup,"onUpdate:modelValue":[e[22]||(e[22]=a=>t(i).preferences.rememberActiveGroup=a),e[23]||(e[23]=a=>l("rememberActiveGroup",a))],fieldName:"rememberActiveGroup",label:"settings.forms.remember_active_group.label",help:"settings.forms.remember_active_group.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.viewDefaultGroupOnCopy,"onUpdate:modelValue":[e[24]||(e[24]=a=>t(i).preferences.viewDefaultGroupOnCopy=a),e[25]||(e[25]=a=>l("viewDefaultGroupOnCopy",a))],fieldName:"viewDefaultGroupOnCopy",label:"settings.forms.view_default_group_on_copy.label",help:"settings.forms.view_default_group_on_copy.help"},null,8,["modelValue"]),n("h4",ee,A(u.$t("settings.security")),1),r(s,{modelValue:t(i).preferences.kickUserAfter,"onUpdate:modelValue":[e[26]||(e[26]=a=>t(i).preferences.kickUserAfter=a),e[27]||(e[27]=a=>l("kickUserAfter",a))],options:P,fieldName:"kickUserAfter",label:"settings.forms.auto_lock.label",help:"settings.forms.auto_lock.help"},null,8,["modelValue"]),r(m,{modelValue:t(i).preferences.getOtpOnRequest,"onUpdate:modelValue":[e[28]||(e[28]=a=>t(i).preferences.getOtpOnRequest=a),e[29]||(e[29]=a=>l("getOtpOnRequest",a))],choices:S,fieldName:"getOtpOnRequest",label:"settings.forms.otp_generation.label",help:"settings.forms.otp_generation.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.closeOtpOnCopy,"onUpdate:modelValue":[e[30]||(e[30]=a=>t(i).preferences.closeOtpOnCopy=a),e[31]||(e[31]=a=>l("closeOtpOnCopy",a))],fieldName:"closeOtpOnCopy",label:"settings.forms.close_otp_on_copy.label",help:"settings.forms.close_otp_on_copy.help",isDisabled:!t(i).preferences.getOtpOnRequest,isIndented:!0},null,8,["modelValue","isDisabled"]),r(s,{modelValue:t(i).preferences.autoCloseTimeout,"onUpdate:modelValue":[e[32]||(e[32]=a=>t(i).preferences.autoCloseTimeout=a),e[33]||(e[33]=a=>l("autoCloseTimeout",a))],options:C,fieldName:"autoCloseTimeout",label:"settings.forms.auto_close_timeout.label",help:"settings.forms.auto_close_timeout.help",isDisabled:!t(i).preferences.getOtpOnRequest,isIndented:!0},null,8,["modelValue","isDisabled"]),r(o,{modelValue:t(i).preferences.copyOtpOnDisplay,"onUpdate:modelValue":[e[34]||(e[34]=a=>t(i).preferences.copyOtpOnDisplay=a),e[35]||(e[35]=a=>l("copyOtpOnDisplay",a))],fieldName:"copyOtpOnDisplay",label:"settings.forms.copy_otp_on_display.label",help:"settings.forms.copy_otp_on_display.help",isDisabled:!t(i).preferences.getOtpOnRequest,isIndented:!0},null,8,["modelValue","isDisabled"]),r(o,{modelValue:t(i).preferences.showOtpAsDot,"onUpdate:modelValue":[e[36]||(e[36]=a=>t(i).preferences.showOtpAsDot=a),e[37]||(e[37]=a=>l("showOtpAsDot",a))],fieldName:"showOtpAsDot",label:"settings.forms.show_otp_as_dot.label",help:"settings.forms.show_otp_as_dot.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.revealDottedOTP,"onUpdate:modelValue":[e[38]||(e[38]=a=>t(i).preferences.revealDottedOTP=a),e[39]||(e[39]=a=>l("revealDottedOTP",a))],fieldName:"revealDottedOTP",label:"settings.forms.reveal_dotted_otp.label",help:"settings.forms.reveal_dotted_otp.help",isDisabled:!t(i).preferences.showOtpAsDot,isIndented:!0},null,8,["modelValue","isDisabled"]),n("h4",ae,A(u.$t("settings.notifications")),1),r(o,{modelValue:t(i).preferences.notifyOnNewAuthDevice,"onUpdate:modelValue":[e[40]||(e[40]=a=>t(i).preferences.notifyOnNewAuthDevice=a),e[41]||(e[41]=a=>l("notifyOnNewAuthDevice",a))],fieldName:"notifyOnNewAuthDevice",label:"settings.forms.notify_on_new_auth_device.label",help:"settings.forms.notify_on_new_auth_device.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.notifyOnFailedLogin,"onUpdate:modelValue":[e[42]||(e[42]=a=>t(i).preferences.notifyOnFailedLogin=a),e[43]||(e[43]=a=>l("notifyOnFailedLogin",a))],fieldName:"notifyOnFailedLogin",label:"settings.forms.notify_on_failed_login.label",help:"settings.forms.notify_on_failed_login.help"},null,8,["modelValue"]),n("h4",te,A(u.$t("settings.data_input")),1),r(o,{modelValue:t(i).preferences.AutoSaveQrcodedAccount,"onUpdate:modelValue":[e[44]||(e[44]=a=>t(i).preferences.AutoSaveQrcodedAccount=a),e[45]||(e[45]=a=>l("AutoSaveQrcodedAccount",a))],fieldName:"AutoSaveQrcodedAccount",label:"settings.forms.auto_save_qrcoded_account.label",help:"settings.forms.auto_save_qrcoded_account.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.useBasicQrcodeReader,"onUpdate:modelValue":[e[46]||(e[46]=a=>t(i).preferences.useBasicQrcodeReader=a),e[47]||(e[47]=a=>l("useBasicQrcodeReader",a))],fieldName:"useBasicQrcodeReader",label:"settings.forms.use_basic_qrcode_reader.label",help:"settings.forms.use_basic_qrcode_reader.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.useDirectCapture,"onUpdate:modelValue":[e[48]||(e[48]=a=>t(i).preferences.useDirectCapture=a),e[49]||(e[49]=a=>l("useDirectCapture",a))],fieldName:"useDirectCapture",label:"settings.forms.useDirectCapture.label",help:"settings.forms.useDirectCapture.help"},null,8,["modelValue"]),r(s,{modelValue:t(i).preferences.defaultCaptureMode,"onUpdate:modelValue":[e[50]||(e[50]=a=>t(i).preferences.defaultCaptureMode=a),e[51]||(e[51]=a=>l("defaultCaptureMode",a))],options:E,fieldName:"defaultCaptureMode",label:"settings.forms.defaultCaptureMode.label",help:"settings.forms.defaultCaptureMode.help",isDisabled:!t(i).preferences.useDirectCapture,isIndented:!0},null,8,["modelValue","isDisabled"])])])]),_:1})]),r(D,{showButtons:!0},{default:p(()=>[r(N,{returnTo:{name:t(h)},action:"close"},null,8,["returnTo"])]),_:1})])}}};export{ue as default}; +import{_ as w}from"./SettingTabs-CH0cOPVM.js";import{R as I,a as T,V as U,b as d,a2 as O,r as K,x as L,o as G,a1 as R,e as c,f as j,g as z,m as r,h as n,p,t as A,i as t,j as f,I as H,H as F,a3 as q}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */let J=[{text:"Africa/Abidjan",value:"Africa/Abidjan"},{text:"Africa/Accra",value:"Africa/Accra"},{text:"Africa/Addis_Ababa",value:"Africa/Addis_Ababa"},{text:"Africa/Algiers",value:"Africa/Algiers"},{text:"Africa/Asmara",value:"Africa/Asmara"},{text:"Africa/Asmera",value:"Africa/Asmera"},{text:"Africa/Bamako",value:"Africa/Bamako"},{text:"Africa/Bangui",value:"Africa/Bangui"},{text:"Africa/Banjul",value:"Africa/Banjul"},{text:"Africa/Bissau",value:"Africa/Bissau"},{text:"Africa/Blantyre",value:"Africa/Blantyre"},{text:"Africa/Brazzaville",value:"Africa/Brazzaville"},{text:"Africa/Bujumbura",value:"Africa/Bujumbura"},{text:"Africa/Cairo",value:"Africa/Cairo"},{text:"Africa/Casablanca",value:"Africa/Casablanca"},{text:"Africa/Ceuta",value:"Africa/Ceuta"},{text:"Africa/Conakry",value:"Africa/Conakry"},{text:"Africa/Dakar",value:"Africa/Dakar"},{text:"Africa/Dar_es_Salaam",value:"Africa/Dar_es_Salaam"},{text:"Africa/Djibouti",value:"Africa/Djibouti"},{text:"Africa/Douala",value:"Africa/Douala"},{text:"Africa/El_Aaiun",value:"Africa/El_Aaiun"},{text:"Africa/Freetown",value:"Africa/Freetown"},{text:"Africa/Gaborone",value:"Africa/Gaborone"},{text:"Africa/Harare",value:"Africa/Harare"},{text:"Africa/Johannesburg",value:"Africa/Johannesburg"},{text:"Africa/Juba",value:"Africa/Juba"},{text:"Africa/Kampala",value:"Africa/Kampala"},{text:"Africa/Khartoum",value:"Africa/Khartoum"},{text:"Africa/Kigali",value:"Africa/Kigali"},{text:"Africa/Kinshasa",value:"Africa/Kinshasa"},{text:"Africa/Lagos",value:"Africa/Lagos"},{text:"Africa/Libreville",value:"Africa/Libreville"},{text:"Africa/Lome",value:"Africa/Lome"},{text:"Africa/Luanda",value:"Africa/Luanda"},{text:"Africa/Lubumbashi",value:"Africa/Lubumbashi"},{text:"Africa/Lusaka",value:"Africa/Lusaka"},{text:"Africa/Malabo",value:"Africa/Malabo"},{text:"Africa/Maputo",value:"Africa/Maputo"},{text:"Africa/Maseru",value:"Africa/Maseru"},{text:"Africa/Mbabane",value:"Africa/Mbabane"},{text:"Africa/Mogadishu",value:"Africa/Mogadishu"},{text:"Africa/Monrovia",value:"Africa/Monrovia"},{text:"Africa/Nairobi",value:"Africa/Nairobi"},{text:"Africa/Ndjamena",value:"Africa/Ndjamena"},{text:"Africa/Niamey",value:"Africa/Niamey"},{text:"Africa/Nouakchott",value:"Africa/Nouakchott"},{text:"Africa/Ouagadougou",value:"Africa/Ouagadougou"},{text:"Africa/Porto-Novo",value:"Africa/Porto-Novo"},{text:"Africa/Sao_Tome",value:"Africa/Sao_Tome"},{text:"Africa/Timbuktu",value:"Africa/Timbuktu"},{text:"Africa/Tripoli",value:"Africa/Tripoli"},{text:"Africa/Tunis",value:"Africa/Tunis"},{text:"Africa/Windhoek",value:"Africa/Windhoek"},{text:"America/Adak",value:"America/Adak"},{text:"America/Anchorage",value:"America/Anchorage"},{text:"America/Anguilla",value:"America/Anguilla"},{text:"America/Antigua",value:"America/Antigua"},{text:"America/Araguaina",value:"America/Araguaina"},{text:"America/Argentina/Buenos_Aires",value:"America/Argentina/Buenos_Aires"},{text:"America/Argentina/Catamarca",value:"America/Argentina/Catamarca"},{text:"America/Argentina/ComodRivadavia",value:"America/Argentina/ComodRivadavia"},{text:"America/Argentina/Cordoba",value:"America/Argentina/Cordoba"},{text:"America/Argentina/Jujuy",value:"America/Argentina/Jujuy"},{text:"America/Argentina/La_Rioja",value:"America/Argentina/La_Rioja"},{text:"America/Argentina/Mendoza",value:"America/Argentina/Mendoza"},{text:"America/Argentina/Rio_Gallegos",value:"America/Argentina/Rio_Gallegos"},{text:"America/Argentina/Salta",value:"America/Argentina/Salta"},{text:"America/Argentina/San_Juan",value:"America/Argentina/San_Juan"},{text:"America/Argentina/San_Luis",value:"America/Argentina/San_Luis"},{text:"America/Argentina/Tucuman",value:"America/Argentina/Tucuman"},{text:"America/Argentina/Ushuaia",value:"America/Argentina/Ushuaia"},{text:"America/Aruba",value:"America/Aruba"},{text:"America/Asuncion",value:"America/Asuncion"},{text:"America/Atikokan",value:"America/Atikokan"},{text:"America/Atka",value:"America/Atka"},{text:"America/Bahia",value:"America/Bahia"},{text:"America/Bahia_Banderas",value:"America/Bahia_Banderas"},{text:"America/Barbados",value:"America/Barbados"},{text:"America/Belem",value:"America/Belem"},{text:"America/Belize",value:"America/Belize"},{text:"America/Blanc-Sablon",value:"America/Blanc-Sablon"},{text:"America/Boa_Vista",value:"America/Boa_Vista"},{text:"America/Bogota",value:"America/Bogota"},{text:"America/Boise",value:"America/Boise"},{text:"America/Buenos_Aires",value:"America/Buenos_Aires"},{text:"America/Cambridge_Bay",value:"America/Cambridge_Bay"},{text:"America/Campo_Grande",value:"America/Campo_Grande"},{text:"America/Cancun",value:"America/Cancun"},{text:"America/Caracas",value:"America/Caracas"},{text:"America/Catamarca",value:"America/Catamarca"},{text:"America/Cayenne",value:"America/Cayenne"},{text:"America/Cayman",value:"America/Cayman"},{text:"America/Chicago",value:"America/Chicago"},{text:"America/Chihuahua",value:"America/Chihuahua"},{text:"America/Ciudad_Juarez",value:"America/Ciudad_Juarez"},{text:"America/Coral_Harbour",value:"America/Coral_Harbour"},{text:"America/Cordoba",value:"America/Cordoba"},{text:"America/Costa_Rica",value:"America/Costa_Rica"},{text:"America/Creston",value:"America/Creston"},{text:"America/Cuiaba",value:"America/Cuiaba"},{text:"America/Curacao",value:"America/Curacao"},{text:"America/Danmarkshavn",value:"America/Danmarkshavn"},{text:"America/Dawson",value:"America/Dawson"},{text:"America/Dawson_Creek",value:"America/Dawson_Creek"},{text:"America/Denver",value:"America/Denver"},{text:"America/Detroit",value:"America/Detroit"},{text:"America/Dominica",value:"America/Dominica"},{text:"America/Edmonton",value:"America/Edmonton"},{text:"America/Eirunepe",value:"America/Eirunepe"},{text:"America/El_Salvador",value:"America/El_Salvador"},{text:"America/Ensenada",value:"America/Ensenada"},{text:"America/Fort_Nelson",value:"America/Fort_Nelson"},{text:"America/Fort_Wayne",value:"America/Fort_Wayne"},{text:"America/Fortaleza",value:"America/Fortaleza"},{text:"America/Glace_Bay",value:"America/Glace_Bay"},{text:"America/Godthab",value:"America/Godthab"},{text:"America/Goose_Bay",value:"America/Goose_Bay"},{text:"America/Grand_Turk",value:"America/Grand_Turk"},{text:"America/Grenada",value:"America/Grenada"},{text:"America/Guadeloupe",value:"America/Guadeloupe"},{text:"America/Guatemala",value:"America/Guatemala"},{text:"America/Guayaquil",value:"America/Guayaquil"},{text:"America/Guyana",value:"America/Guyana"},{text:"America/Halifax",value:"America/Halifax"},{text:"America/Havana",value:"America/Havana"},{text:"America/Hermosillo",value:"America/Hermosillo"},{text:"America/Indiana/Indianapolis",value:"America/Indiana/Indianapolis"},{text:"America/Indiana/Knox",value:"America/Indiana/Knox"},{text:"America/Indiana/Marengo",value:"America/Indiana/Marengo"},{text:"America/Indiana/Petersburg",value:"America/Indiana/Petersburg"},{text:"America/Indiana/Tell_City",value:"America/Indiana/Tell_City"},{text:"America/Indiana/Vevay",value:"America/Indiana/Vevay"},{text:"America/Indiana/Vincennes",value:"America/Indiana/Vincennes"},{text:"America/Indiana/Winamac",value:"America/Indiana/Winamac"},{text:"America/Indianapolis",value:"America/Indianapolis"},{text:"America/Inuvik",value:"America/Inuvik"},{text:"America/Iqaluit",value:"America/Iqaluit"},{text:"America/Jamaica",value:"America/Jamaica"},{text:"America/Jujuy",value:"America/Jujuy"},{text:"America/Juneau",value:"America/Juneau"},{text:"America/Kentucky/Louisville",value:"America/Kentucky/Louisville"},{text:"America/Kentucky/Monticello",value:"America/Kentucky/Monticello"},{text:"America/Knox_IN",value:"America/Knox_IN"},{text:"America/Kralendijk",value:"America/Kralendijk"},{text:"America/La_Paz",value:"America/La_Paz"},{text:"America/Lima",value:"America/Lima"},{text:"America/Los_Angeles",value:"America/Los_Angeles"},{text:"America/Louisville",value:"America/Louisville"},{text:"America/Lower_Princes",value:"America/Lower_Princes"},{text:"America/Maceio",value:"America/Maceio"},{text:"America/Managua",value:"America/Managua"},{text:"America/Manaus",value:"America/Manaus"},{text:"America/Marigot",value:"America/Marigot"},{text:"America/Martinique",value:"America/Martinique"},{text:"America/Matamoros",value:"America/Matamoros"},{text:"America/Mazatlan",value:"America/Mazatlan"},{text:"America/Mendoza",value:"America/Mendoza"},{text:"America/Menominee",value:"America/Menominee"},{text:"America/Merida",value:"America/Merida"},{text:"America/Metlakatla",value:"America/Metlakatla"},{text:"America/Mexico_City",value:"America/Mexico_City"},{text:"America/Miquelon",value:"America/Miquelon"},{text:"America/Moncton",value:"America/Moncton"},{text:"America/Monterrey",value:"America/Monterrey"},{text:"America/Montevideo",value:"America/Montevideo"},{text:"America/Montreal",value:"America/Montreal"},{text:"America/Montserrat",value:"America/Montserrat"},{text:"America/Nassau",value:"America/Nassau"},{text:"America/New_York",value:"America/New_York"},{text:"America/Nipigon",value:"America/Nipigon"},{text:"America/Nome",value:"America/Nome"},{text:"America/Noronha",value:"America/Noronha"},{text:"America/North_Dakota/Beulah",value:"America/North_Dakota/Beulah"},{text:"America/North_Dakota/Center",value:"America/North_Dakota/Center"},{text:"America/North_Dakota/New_Salem",value:"America/North_Dakota/New_Salem"},{text:"America/Nuuk",value:"America/Nuuk"},{text:"America/Ojinaga",value:"America/Ojinaga"},{text:"America/Panama",value:"America/Panama"},{text:"America/Pangnirtung",value:"America/Pangnirtung"},{text:"America/Paramaribo",value:"America/Paramaribo"},{text:"America/Phoenix",value:"America/Phoenix"},{text:"America/Port-au-Prince",value:"America/Port-au-Prince"},{text:"America/Port_of_Spain",value:"America/Port_of_Spain"},{text:"America/Porto_Acre",value:"America/Porto_Acre"},{text:"America/Porto_Velho",value:"America/Porto_Velho"},{text:"America/Puerto_Rico",value:"America/Puerto_Rico"},{text:"America/Punta_Arenas",value:"America/Punta_Arenas"},{text:"America/Rainy_River",value:"America/Rainy_River"},{text:"America/Rankin_Inlet",value:"America/Rankin_Inlet"},{text:"America/Recife",value:"America/Recife"},{text:"America/Regina",value:"America/Regina"},{text:"America/Resolute",value:"America/Resolute"},{text:"America/Rio_Branco",value:"America/Rio_Branco"},{text:"America/Rosario",value:"America/Rosario"},{text:"America/Santa_Isabel",value:"America/Santa_Isabel"},{text:"America/Santarem",value:"America/Santarem"},{text:"America/Santiago",value:"America/Santiago"},{text:"America/Santo_Domingo",value:"America/Santo_Domingo"},{text:"America/Sao_Paulo",value:"America/Sao_Paulo"},{text:"America/Scoresbysund",value:"America/Scoresbysund"},{text:"America/Shiprock",value:"America/Shiprock"},{text:"America/Sitka",value:"America/Sitka"},{text:"America/St_Barthelemy",value:"America/St_Barthelemy"},{text:"America/St_Johns",value:"America/St_Johns"},{text:"America/St_Kitts",value:"America/St_Kitts"},{text:"America/St_Lucia",value:"America/St_Lucia"},{text:"America/St_Thomas",value:"America/St_Thomas"},{text:"America/St_Vincent",value:"America/St_Vincent"},{text:"America/Swift_Current",value:"America/Swift_Current"},{text:"America/Tegucigalpa",value:"America/Tegucigalpa"},{text:"America/Thule",value:"America/Thule"},{text:"America/Thunder_Bay",value:"America/Thunder_Bay"},{text:"America/Tijuana",value:"America/Tijuana"},{text:"America/Toronto",value:"America/Toronto"},{text:"America/Tortola",value:"America/Tortola"},{text:"America/Vancouver",value:"America/Vancouver"},{text:"America/Virgin",value:"America/Virgin"},{text:"America/Whitehorse",value:"America/Whitehorse"},{text:"America/Winnipeg",value:"America/Winnipeg"},{text:"America/Yakutat",value:"America/Yakutat"},{text:"America/Yellowknife",value:"America/Yellowknife"},{text:"Antarctica/Casey",value:"Antarctica/Casey"},{text:"Antarctica/Davis",value:"Antarctica/Davis"},{text:"Antarctica/DumontDUrville",value:"Antarctica/DumontDUrville"},{text:"Antarctica/Macquarie",value:"Antarctica/Macquarie"},{text:"Antarctica/Mawson",value:"Antarctica/Mawson"},{text:"Antarctica/McMurdo",value:"Antarctica/McMurdo"},{text:"Antarctica/Palmer",value:"Antarctica/Palmer"},{text:"Antarctica/Rothera",value:"Antarctica/Rothera"},{text:"Antarctica/South_Pole",value:"Antarctica/South_Pole"},{text:"Antarctica/Syowa",value:"Antarctica/Syowa"},{text:"Antarctica/Troll",value:"Antarctica/Troll"},{text:"Antarctica/Vostok",value:"Antarctica/Vostok"},{text:"Arctic/Longyearbyen",value:"Arctic/Longyearbyen"},{text:"Asia/Aden",value:"Asia/Aden"},{text:"Asia/Almaty",value:"Asia/Almaty"},{text:"Asia/Amman",value:"Asia/Amman"},{text:"Asia/Anadyr",value:"Asia/Anadyr"},{text:"Asia/Aqtau",value:"Asia/Aqtau"},{text:"Asia/Aqtobe",value:"Asia/Aqtobe"},{text:"Asia/Ashgabat",value:"Asia/Ashgabat"},{text:"Asia/Ashkhabad",value:"Asia/Ashkhabad"},{text:"Asia/Atyrau",value:"Asia/Atyrau"},{text:"Asia/Baghdad",value:"Asia/Baghdad"},{text:"Asia/Bahrain",value:"Asia/Bahrain"},{text:"Asia/Baku",value:"Asia/Baku"},{text:"Asia/Bangkok",value:"Asia/Bangkok"},{text:"Asia/Barnaul",value:"Asia/Barnaul"},{text:"Asia/Beirut",value:"Asia/Beirut"},{text:"Asia/Bishkek",value:"Asia/Bishkek"},{text:"Asia/Brunei",value:"Asia/Brunei"},{text:"Asia/Calcutta",value:"Asia/Calcutta"},{text:"Asia/Chita",value:"Asia/Chita"},{text:"Asia/Choibalsan",value:"Asia/Choibalsan"},{text:"Asia/Chongqing",value:"Asia/Chongqing"},{text:"Asia/Chungking",value:"Asia/Chungking"},{text:"Asia/Colombo",value:"Asia/Colombo"},{text:"Asia/Dacca",value:"Asia/Dacca"},{text:"Asia/Damascus",value:"Asia/Damascus"},{text:"Asia/Dhaka",value:"Asia/Dhaka"},{text:"Asia/Dili",value:"Asia/Dili"},{text:"Asia/Dubai",value:"Asia/Dubai"},{text:"Asia/Dushanbe",value:"Asia/Dushanbe"},{text:"Asia/Famagusta",value:"Asia/Famagusta"},{text:"Asia/Gaza",value:"Asia/Gaza"},{text:"Asia/Harbin",value:"Asia/Harbin"},{text:"Asia/Hebron",value:"Asia/Hebron"},{text:"Asia/Ho_Chi_Minh",value:"Asia/Ho_Chi_Minh"},{text:"Asia/Hong_Kong",value:"Asia/Hong_Kong"},{text:"Asia/Hovd",value:"Asia/Hovd"},{text:"Asia/Irkutsk",value:"Asia/Irkutsk"},{text:"Asia/Istanbul",value:"Asia/Istanbul"},{text:"Asia/Jakarta",value:"Asia/Jakarta"},{text:"Asia/Jayapura",value:"Asia/Jayapura"},{text:"Asia/Jerusalem",value:"Asia/Jerusalem"},{text:"Asia/Kabul",value:"Asia/Kabul"},{text:"Asia/Kamchatka",value:"Asia/Kamchatka"},{text:"Asia/Karachi",value:"Asia/Karachi"},{text:"Asia/Kashgar",value:"Asia/Kashgar"},{text:"Asia/Kathmandu",value:"Asia/Kathmandu"},{text:"Asia/Katmandu",value:"Asia/Katmandu"},{text:"Asia/Khandyga",value:"Asia/Khandyga"},{text:"Asia/Kolkata",value:"Asia/Kolkata"},{text:"Asia/Krasnoyarsk",value:"Asia/Krasnoyarsk"},{text:"Asia/Kuala_Lumpur",value:"Asia/Kuala_Lumpur"},{text:"Asia/Kuching",value:"Asia/Kuching"},{text:"Asia/Kuwait",value:"Asia/Kuwait"},{text:"Asia/Macao",value:"Asia/Macao"},{text:"Asia/Macau",value:"Asia/Macau"},{text:"Asia/Magadan",value:"Asia/Magadan"},{text:"Asia/Makassar",value:"Asia/Makassar"},{text:"Asia/Manila",value:"Asia/Manila"},{text:"Asia/Muscat",value:"Asia/Muscat"},{text:"Asia/Nicosia",value:"Asia/Nicosia"},{text:"Asia/Novokuznetsk",value:"Asia/Novokuznetsk"},{text:"Asia/Novosibirsk",value:"Asia/Novosibirsk"},{text:"Asia/Omsk",value:"Asia/Omsk"},{text:"Asia/Oral",value:"Asia/Oral"},{text:"Asia/Phnom_Penh",value:"Asia/Phnom_Penh"},{text:"Asia/Pontianak",value:"Asia/Pontianak"},{text:"Asia/Pyongyang",value:"Asia/Pyongyang"},{text:"Asia/Qatar",value:"Asia/Qatar"},{text:"Asia/Qostanay",value:"Asia/Qostanay"},{text:"Asia/Qyzylorda",value:"Asia/Qyzylorda"},{text:"Asia/Rangoon",value:"Asia/Rangoon"},{text:"Asia/Riyadh",value:"Asia/Riyadh"},{text:"Asia/Saigon",value:"Asia/Saigon"},{text:"Asia/Sakhalin",value:"Asia/Sakhalin"},{text:"Asia/Samarkand",value:"Asia/Samarkand"},{text:"Asia/Seoul",value:"Asia/Seoul"},{text:"Asia/Shanghai",value:"Asia/Shanghai"},{text:"Asia/Singapore",value:"Asia/Singapore"},{text:"Asia/Srednekolymsk",value:"Asia/Srednekolymsk"},{text:"Asia/Taipei",value:"Asia/Taipei"},{text:"Asia/Tashkent",value:"Asia/Tashkent"},{text:"Asia/Tbilisi",value:"Asia/Tbilisi"},{text:"Asia/Tehran",value:"Asia/Tehran"},{text:"Asia/Tel_Aviv",value:"Asia/Tel_Aviv"},{text:"Asia/Thimbu",value:"Asia/Thimbu"},{text:"Asia/Thimphu",value:"Asia/Thimphu"},{text:"Asia/Tokyo",value:"Asia/Tokyo"},{text:"Asia/Tomsk",value:"Asia/Tomsk"},{text:"Asia/Ujung_Pandang",value:"Asia/Ujung_Pandang"},{text:"Asia/Ulaanbaatar",value:"Asia/Ulaanbaatar"},{text:"Asia/Ulan_Bator",value:"Asia/Ulan_Bator"},{text:"Asia/Urumqi",value:"Asia/Urumqi"},{text:"Asia/Ust-Nera",value:"Asia/Ust-Nera"},{text:"Asia/Vientiane",value:"Asia/Vientiane"},{text:"Asia/Vladivostok",value:"Asia/Vladivostok"},{text:"Asia/Yakutsk",value:"Asia/Yakutsk"},{text:"Asia/Yangon",value:"Asia/Yangon"},{text:"Asia/Yekaterinburg",value:"Asia/Yekaterinburg"},{text:"Asia/Yerevan",value:"Asia/Yerevan"},{text:"Atlantic/Azores",value:"Atlantic/Azores"},{text:"Atlantic/Bermuda",value:"Atlantic/Bermuda"},{text:"Atlantic/Canary",value:"Atlantic/Canary"},{text:"Atlantic/Cape_Verde",value:"Atlantic/Cape_Verde"},{text:"Atlantic/Faeroe",value:"Atlantic/Faeroe"},{text:"Atlantic/Faroe",value:"Atlantic/Faroe"},{text:"Atlantic/Jan_Mayen",value:"Atlantic/Jan_Mayen"},{text:"Atlantic/Madeira",value:"Atlantic/Madeira"},{text:"Atlantic/Reykjavik",value:"Atlantic/Reykjavik"},{text:"Atlantic/South_Georgia",value:"Atlantic/South_Georgia"},{text:"Atlantic/St_Helena",value:"Atlantic/St_Helena"},{text:"Atlantic/Stanley",value:"Atlantic/Stanley"},{text:"Australia/ACT",value:"Australia/ACT"},{text:"Australia/Adelaide",value:"Australia/Adelaide"},{text:"Australia/Brisbane",value:"Australia/Brisbane"},{text:"Australia/Broken_Hill",value:"Australia/Broken_Hill"},{text:"Australia/Canberra",value:"Australia/Canberra"},{text:"Australia/Currie",value:"Australia/Currie"},{text:"Australia/Darwin",value:"Australia/Darwin"},{text:"Australia/Eucla",value:"Australia/Eucla"},{text:"Australia/Hobart",value:"Australia/Hobart"},{text:"Australia/LHI",value:"Australia/LHI"},{text:"Australia/Lindeman",value:"Australia/Lindeman"},{text:"Australia/Lord_Howe",value:"Australia/Lord_Howe"},{text:"Australia/Melbourne",value:"Australia/Melbourne"},{text:"Australia/NSW",value:"Australia/NSW"},{text:"Australia/North",value:"Australia/North"},{text:"Australia/Perth",value:"Australia/Perth"},{text:"Australia/Queensland",value:"Australia/Queensland"},{text:"Australia/South",value:"Australia/South"},{text:"Australia/Sydney",value:"Australia/Sydney"},{text:"Australia/Tasmania",value:"Australia/Tasmania"},{text:"Australia/Victoria",value:"Australia/Victoria"},{text:"Australia/West",value:"Australia/West"},{text:"Australia/Yancowinna",value:"Australia/Yancowinna"},{text:"Brazil/Acre",value:"Brazil/Acre"},{text:"Brazil/DeNoronha",value:"Brazil/DeNoronha"},{text:"Brazil/East",value:"Brazil/East"},{text:"Brazil/West",value:"Brazil/West"},{text:"Canada/Atlantic",value:"Canada/Atlantic"},{text:"Canada/Central",value:"Canada/Central"},{text:"Canada/Eastern",value:"Canada/Eastern"},{text:"Canada/Mountain",value:"Canada/Mountain"},{text:"Canada/Newfoundland",value:"Canada/Newfoundland"},{text:"Canada/Pacific",value:"Canada/Pacific"},{text:"Canada/Saskatchewan",value:"Canada/Saskatchewan"},{text:"Canada/Yukon",value:"Canada/Yukon"},{text:"Chile/Continental",value:"Chile/Continental"},{text:"Chile/EasterIsland",value:"Chile/EasterIsland"},{text:"Cuba",value:"Cuba"},{text:"Egypt",value:"Egypt"},{text:"Eire",value:"Eire"},{text:"Europe/Amsterdam",value:"Europe/Amsterdam"},{text:"Europe/Andorra",value:"Europe/Andorra"},{text:"Europe/Astrakhan",value:"Europe/Astrakhan"},{text:"Europe/Athens",value:"Europe/Athens"},{text:"Europe/Belfast",value:"Europe/Belfast"},{text:"Europe/Belgrade",value:"Europe/Belgrade"},{text:"Europe/Berlin",value:"Europe/Berlin"},{text:"Europe/Bratislava",value:"Europe/Bratislava"},{text:"Europe/Brussels",value:"Europe/Brussels"},{text:"Europe/Bucharest",value:"Europe/Bucharest"},{text:"Europe/Budapest",value:"Europe/Budapest"},{text:"Europe/Busingen",value:"Europe/Busingen"},{text:"Europe/Chisinau",value:"Europe/Chisinau"},{text:"Europe/Copenhagen",value:"Europe/Copenhagen"},{text:"Europe/Dublin",value:"Europe/Dublin"},{text:"Europe/Gibraltar",value:"Europe/Gibraltar"},{text:"Europe/Guernsey",value:"Europe/Guernsey"},{text:"Europe/Helsinki",value:"Europe/Helsinki"},{text:"Europe/Isle_of_Man",value:"Europe/Isle_of_Man"},{text:"Europe/Istanbul",value:"Europe/Istanbul"},{text:"Europe/Jersey",value:"Europe/Jersey"},{text:"Europe/Kaliningrad",value:"Europe/Kaliningrad"},{text:"Europe/Kiev",value:"Europe/Kiev"},{text:"Europe/Kirov",value:"Europe/Kirov"},{text:"Europe/Kyiv",value:"Europe/Kyiv"},{text:"Europe/Lisbon",value:"Europe/Lisbon"},{text:"Europe/Ljubljana",value:"Europe/Ljubljana"},{text:"Europe/London",value:"Europe/London"},{text:"Europe/Luxembourg",value:"Europe/Luxembourg"},{text:"Europe/Madrid",value:"Europe/Madrid"},{text:"Europe/Malta",value:"Europe/Malta"},{text:"Europe/Mariehamn",value:"Europe/Mariehamn"},{text:"Europe/Minsk",value:"Europe/Minsk"},{text:"Europe/Monaco",value:"Europe/Monaco"},{text:"Europe/Moscow",value:"Europe/Moscow"},{text:"Europe/Nicosia",value:"Europe/Nicosia"},{text:"Europe/Oslo",value:"Europe/Oslo"},{text:"Europe/Paris",value:"Europe/Paris"},{text:"Europe/Podgorica",value:"Europe/Podgorica"},{text:"Europe/Prague",value:"Europe/Prague"},{text:"Europe/Riga",value:"Europe/Riga"},{text:"Europe/Rome",value:"Europe/Rome"},{text:"Europe/Samara",value:"Europe/Samara"},{text:"Europe/San_Marino",value:"Europe/San_Marino"},{text:"Europe/Sarajevo",value:"Europe/Sarajevo"},{text:"Europe/Saratov",value:"Europe/Saratov"},{text:"Europe/Simferopol",value:"Europe/Simferopol"},{text:"Europe/Skopje",value:"Europe/Skopje"},{text:"Europe/Sofia",value:"Europe/Sofia"},{text:"Europe/Stockholm",value:"Europe/Stockholm"},{text:"Europe/Tallinn",value:"Europe/Tallinn"},{text:"Europe/Tirane",value:"Europe/Tirane"},{text:"Europe/Tiraspol",value:"Europe/Tiraspol"},{text:"Europe/Ulyanovsk",value:"Europe/Ulyanovsk"},{text:"Europe/Uzhgorod",value:"Europe/Uzhgorod"},{text:"Europe/Vaduz",value:"Europe/Vaduz"},{text:"Europe/Vatican",value:"Europe/Vatican"},{text:"Europe/Vienna",value:"Europe/Vienna"},{text:"Europe/Vilnius",value:"Europe/Vilnius"},{text:"Europe/Volgograd",value:"Europe/Volgograd"},{text:"Europe/Warsaw",value:"Europe/Warsaw"},{text:"Europe/Zagreb",value:"Europe/Zagreb"},{text:"Europe/Zaporozhye",value:"Europe/Zaporozhye"},{text:"Europe/Zurich",value:"Europe/Zurich"},{text:"Hongkong",value:"Hongkong"},{text:"Iceland",value:"Iceland"},{text:"Indian/Antananarivo",value:"Indian/Antananarivo"},{text:"Indian/Chagos",value:"Indian/Chagos"},{text:"Indian/Christmas",value:"Indian/Christmas"},{text:"Indian/Cocos",value:"Indian/Cocos"},{text:"Indian/Comoro",value:"Indian/Comoro"},{text:"Indian/Kerguelen",value:"Indian/Kerguelen"},{text:"Indian/Mahe",value:"Indian/Mahe"},{text:"Indian/Maldives",value:"Indian/Maldives"},{text:"Indian/Mauritius",value:"Indian/Mauritius"},{text:"Indian/Mayotte",value:"Indian/Mayotte"},{text:"Indian/Reunion",value:"Indian/Reunion"},{text:"Iran",value:"Iran"},{text:"Israel",value:"Israel"},{text:"Jamaica",value:"Jamaica"},{text:"Japan",value:"Japan"},{text:"Kwajalein",value:"Kwajalein"},{text:"Libya",value:"Libya"},{text:"Mexico/BajaNorte",value:"Mexico/BajaNorte"},{text:"Mexico/BajaSur",value:"Mexico/BajaSur"},{text:"Mexico/General",value:"Mexico/General"},{text:"Navajo",value:"Navajo"},{text:"Pacific/Apia",value:"Pacific/Apia"},{text:"Pacific/Auckland",value:"Pacific/Auckland"},{text:"Pacific/Bougainville",value:"Pacific/Bougainville"},{text:"Pacific/Chatham",value:"Pacific/Chatham"},{text:"Pacific/Chuuk",value:"Pacific/Chuuk"},{text:"Pacific/Easter",value:"Pacific/Easter"},{text:"Pacific/Efate",value:"Pacific/Efate"},{text:"Pacific/Enderbury",value:"Pacific/Enderbury"},{text:"Pacific/Fakaofo",value:"Pacific/Fakaofo"},{text:"Pacific/Fiji",value:"Pacific/Fiji"},{text:"Pacific/Funafuti",value:"Pacific/Funafuti"},{text:"Pacific/Galapagos",value:"Pacific/Galapagos"},{text:"Pacific/Gambier",value:"Pacific/Gambier"},{text:"Pacific/Guadalcanal",value:"Pacific/Guadalcanal"},{text:"Pacific/Guam",value:"Pacific/Guam"},{text:"Pacific/Honolulu",value:"Pacific/Honolulu"},{text:"Pacific/Johnston",value:"Pacific/Johnston"},{text:"Pacific/Kanton",value:"Pacific/Kanton"},{text:"Pacific/Kiritimati",value:"Pacific/Kiritimati"},{text:"Pacific/Kosrae",value:"Pacific/Kosrae"},{text:"Pacific/Kwajalein",value:"Pacific/Kwajalein"},{text:"Pacific/Majuro",value:"Pacific/Majuro"},{text:"Pacific/Marquesas",value:"Pacific/Marquesas"},{text:"Pacific/Midway",value:"Pacific/Midway"},{text:"Pacific/Nauru",value:"Pacific/Nauru"},{text:"Pacific/Niue",value:"Pacific/Niue"},{text:"Pacific/Norfolk",value:"Pacific/Norfolk"},{text:"Pacific/Noumea",value:"Pacific/Noumea"},{text:"Pacific/Pago_Pago",value:"Pacific/Pago_Pago"},{text:"Pacific/Palau",value:"Pacific/Palau"},{text:"Pacific/Pitcairn",value:"Pacific/Pitcairn"},{text:"Pacific/Pohnpei",value:"Pacific/Pohnpei"},{text:"Pacific/Ponape",value:"Pacific/Ponape"},{text:"Pacific/Port_Moresby",value:"Pacific/Port_Moresby"},{text:"Pacific/Rarotonga",value:"Pacific/Rarotonga"},{text:"Pacific/Saipan",value:"Pacific/Saipan"},{text:"Pacific/Samoa",value:"Pacific/Samoa"},{text:"Pacific/Tahiti",value:"Pacific/Tahiti"},{text:"Pacific/Tarawa",value:"Pacific/Tarawa"},{text:"Pacific/Tongatapu",value:"Pacific/Tongatapu"},{text:"Pacific/Truk",value:"Pacific/Truk"},{text:"Pacific/Wake",value:"Pacific/Wake"},{text:"Pacific/Wallis",value:"Pacific/Wallis"},{text:"Pacific/Yap",value:"Pacific/Yap"},{text:"Poland",value:"Poland"},{text:"Portugal",value:"Portugal"},{text:"Singapore",value:"Singapore"},{text:"Turkey",value:"Turkey"},{text:"US/Alaska",value:"US/Alaska"},{text:"US/Aleutian",value:"US/Aleutian"},{text:"US/Arizona",value:"US/Arizona"},{text:"US/Central",value:"US/Central"},{text:"US/East-Indiana",value:"US/East-Indiana"},{text:"US/Eastern",value:"US/Eastern"},{text:"US/Hawaii",value:"US/Hawaii"},{text:"US/Indiana-Starke",value:"US/Indiana-Starke"},{text:"US/Michigan",value:"US/Michigan"},{text:"US/Mountain",value:"US/Mountain"},{text:"US/Pacific",value:"US/Pacific"},{text:"US/Samoa",value:"US/Samoa"},{text:"UTC",value:"UTC"},{text:"Zulu",value:"Zulu"}];const W={class:"options-tabs"},Y={class:"block"},Q={class:"title is-4 has-text-grey-light"},$={class:"field help"},Z={class:"ml-2",href:"https://crowdin.com/project/2fauth"},X={class:"title is-4 pt-4 has-text-grey-light"},ee={class:"title is-4 pt-4 has-text-grey-light"},ae={class:"title is-4 pt-4 has-text-grey-light"},te={class:"title is-4 pt-4 has-text-grey-light"},ue={__name:"Options",setup(ie){const v=I("2fauth"),i=T(),g=U(),_=d(),h=O(v.prefix+"returnTo","accounts"),b=[{text:"settings.forms.grid",value:"grid",icon:"th"},{text:"settings.forms.list",value:"list",icon:"list"}],k=[{text:"settings.forms.light",value:"light",icon:"sun"},{text:"settings.forms.dark",value:"dark",icon:"moon"},{text:"settings.forms.automatic",value:"system",icon:"desktop"}],y=[{text:"12 34 56",value:2,legend:"settings.forms.pair",title:"settings.forms.pair_legend"},{text:"123 456",value:3,legend:"settings.forms.trio",title:"settings.forms.trio_legend"},{text:"1234 5678",value:.5,legend:"settings.forms.half",title:"settings.forms.half_legend"}],P=[{text:"settings.forms.never",value:0},{text:"settings.forms.on_otp_copy",value:-1},{text:"settings.forms.1_minutes",value:1},{text:"settings.forms.5_minutes",value:5},{text:"settings.forms.10_minutes",value:10},{text:"settings.forms.15_minutes",value:15},{text:"settings.forms.30_minutes",value:30},{text:"settings.forms.1_hour",value:60},{text:"settings.forms.1_day",value:1440}],C=[{text:"settings.forms.never",value:0},{text:"settings.forms.1_minutes",value:1},{text:"settings.forms.2_minutes",value:2},{text:"settings.forms.5_minutes",value:5}],x=K([{text:"groups.no_group",value:0},{text:"groups.active_group",value:-1}]),E=[{text:"settings.forms.livescan",value:"livescan"},{text:"settings.forms.upload",value:"upload"},{text:"settings.forms.advanced_form",value:"advancedForm"}],S=[{text:"settings.forms.otp_generation_on_request",value:!0,legend:"settings.forms.otp_generation_on_request_legend",title:"settings.forms.otp_generation_on_request_title"},{text:"settings.forms.otp_generation_on_home",value:!1,legend:"settings.forms.otp_generation_on_home_legend",title:"settings.forms.otp_generation_on_home_title"}],M=L(()=>{let u=[{text:"languages.browser_preference",value:"browser"}];for(const e of v.langs)u.push({text:"languages."+e,value:e});return u});G(()=>{g.items.forEach(u=>{u.id>0&&x.value.push({text:u.name,value:u.id})}),i.refreshPreferences()});function l(u,e){H.updatePreference(u,e).then(s=>{d().success({type:"is-success",text:F("settings.forms.setting_saved")}),u==="lang"&&q()!==e?i.applyLanguage():u==="theme"&&i.applyTheme()})}return R(u=>{u.name.startsWith("settings.")||_.clear()}),(u,e)=>{const s=c("FormSelect"),B=c("FontAwesomeIcon"),m=c("FormToggle"),o=c("FormCheckbox"),V=c("FormWrapper"),N=c("ButtonBackCloseCancel"),D=c("VueFooter");return j(),z("div",null,[r(w,{activeTab:"settings.options"}),n("div",W,[r(V,null,{default:p(()=>[n("form",null,[n("div",Y,[n("h4",Q,A(u.$t("settings.general")),1),r(s,{modelValue:t(i).preferences.lang,"onUpdate:modelValue":[e[0]||(e[0]=a=>t(i).preferences.lang=a),e[1]||(e[1]=a=>l("lang",a))],options:t(M),fieldName:"lang",label:"settings.forms.language.label",help:"settings.forms.language.help"},null,8,["modelValue","options"]),n("div",$,[f(A(u.$t("settings.forms.some_translation_are_missing"))+" ",1),n("a",Z,[f(A(u.$t("settings.forms.help_translate_2fauth"))+" ",1),r(B,{icon:["fas","external-link-alt"]})])]),r(s,{modelValue:t(i).preferences.timezone,"onUpdate:modelValue":[e[2]||(e[2]=a=>t(i).preferences.timezone=a),e[3]||(e[3]=a=>l("timezone",a))],options:t(J),fieldName:"timezone",label:"settings.forms.timezone.label",help:"settings.forms.timezone.help"},null,8,["modelValue","options"]),r(m,{modelValue:t(i).preferences.displayMode,"onUpdate:modelValue":[e[4]||(e[4]=a=>t(i).preferences.displayMode=a),e[5]||(e[5]=a=>l("displayMode",a))],choices:b,fieldName:"displayMode",label:"settings.forms.display_mode.label",help:"settings.forms.display_mode.help"},null,8,["modelValue"]),r(m,{modelValue:t(i).preferences.theme,"onUpdate:modelValue":[e[6]||(e[6]=a=>t(i).preferences.theme=a),e[7]||(e[7]=a=>l("theme",a))],choices:k,fieldName:"theme",label:"settings.forms.theme.label",help:"settings.forms.theme.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.showAccountsIcons,"onUpdate:modelValue":[e[8]||(e[8]=a=>t(i).preferences.showAccountsIcons=a),e[9]||(e[9]=a=>l("showAccountsIcons",a))],fieldName:"showAccountsIcons",label:"settings.forms.show_accounts_icons.label",help:"settings.forms.show_accounts_icons.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.getOfficialIcons,"onUpdate:modelValue":[e[10]||(e[10]=a=>t(i).preferences.getOfficialIcons=a),e[11]||(e[11]=a=>l("getOfficialIcons",a))],fieldName:"getOfficialIcons",label:"settings.forms.get_official_icons.label",help:"settings.forms.get_official_icons.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.formatPassword,"onUpdate:modelValue":[e[12]||(e[12]=a=>t(i).preferences.formatPassword=a),e[13]||(e[13]=a=>l("formatPassword",a))],fieldName:"formatPassword",label:"settings.forms.password_format.label",help:"settings.forms.password_format.help"},null,8,["modelValue"]),r(m,{modelValue:t(i).preferences.formatPasswordBy,"onUpdate:modelValue":[e[14]||(e[14]=a=>t(i).preferences.formatPasswordBy=a),e[15]||(e[15]=a=>l("formatPasswordBy",a))],choices:y,fieldName:"formatPasswordBy",isDisabled:!t(i).preferences.formatPassword},null,8,["modelValue","isDisabled"]),r(o,{modelValue:t(i).preferences.clearSearchOnCopy,"onUpdate:modelValue":[e[16]||(e[16]=a=>t(i).preferences.clearSearchOnCopy=a),e[17]||(e[17]=a=>l("clearSearchOnCopy",a))],fieldName:"clearSearchOnCopy",label:"settings.forms.clear_search_on_copy.label",help:"settings.forms.clear_search_on_copy.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.sortCaseSensitive,"onUpdate:modelValue":[e[18]||(e[18]=a=>t(i).preferences.sortCaseSensitive=a),e[19]||(e[19]=a=>l("sortCaseSensitive",a))],fieldName:"sortCaseSensitive",label:"settings.forms.sort_case_sensitive.label",help:"settings.forms.sort_case_sensitive.help"},null,8,["modelValue"]),n("h4",X,A(u.$t("groups.groups")),1),r(s,{modelValue:t(i).preferences.defaultGroup,"onUpdate:modelValue":[e[20]||(e[20]=a=>t(i).preferences.defaultGroup=a),e[21]||(e[21]=a=>l("defaultGroup",a))],options:t(x),fieldName:"defaultGroup",label:"settings.forms.default_group.label",help:"settings.forms.default_group.help"},null,8,["modelValue","options"]),r(o,{modelValue:t(i).preferences.rememberActiveGroup,"onUpdate:modelValue":[e[22]||(e[22]=a=>t(i).preferences.rememberActiveGroup=a),e[23]||(e[23]=a=>l("rememberActiveGroup",a))],fieldName:"rememberActiveGroup",label:"settings.forms.remember_active_group.label",help:"settings.forms.remember_active_group.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.viewDefaultGroupOnCopy,"onUpdate:modelValue":[e[24]||(e[24]=a=>t(i).preferences.viewDefaultGroupOnCopy=a),e[25]||(e[25]=a=>l("viewDefaultGroupOnCopy",a))],fieldName:"viewDefaultGroupOnCopy",label:"settings.forms.view_default_group_on_copy.label",help:"settings.forms.view_default_group_on_copy.help"},null,8,["modelValue"]),n("h4",ee,A(u.$t("settings.security")),1),r(s,{modelValue:t(i).preferences.kickUserAfter,"onUpdate:modelValue":[e[26]||(e[26]=a=>t(i).preferences.kickUserAfter=a),e[27]||(e[27]=a=>l("kickUserAfter",a))],options:P,fieldName:"kickUserAfter",label:"settings.forms.auto_lock.label",help:"settings.forms.auto_lock.help"},null,8,["modelValue"]),r(m,{modelValue:t(i).preferences.getOtpOnRequest,"onUpdate:modelValue":[e[28]||(e[28]=a=>t(i).preferences.getOtpOnRequest=a),e[29]||(e[29]=a=>l("getOtpOnRequest",a))],choices:S,fieldName:"getOtpOnRequest",label:"settings.forms.otp_generation.label",help:"settings.forms.otp_generation.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.closeOtpOnCopy,"onUpdate:modelValue":[e[30]||(e[30]=a=>t(i).preferences.closeOtpOnCopy=a),e[31]||(e[31]=a=>l("closeOtpOnCopy",a))],fieldName:"closeOtpOnCopy",label:"settings.forms.close_otp_on_copy.label",help:"settings.forms.close_otp_on_copy.help",isDisabled:!t(i).preferences.getOtpOnRequest,isIndented:!0},null,8,["modelValue","isDisabled"]),r(s,{modelValue:t(i).preferences.autoCloseTimeout,"onUpdate:modelValue":[e[32]||(e[32]=a=>t(i).preferences.autoCloseTimeout=a),e[33]||(e[33]=a=>l("autoCloseTimeout",a))],options:C,fieldName:"autoCloseTimeout",label:"settings.forms.auto_close_timeout.label",help:"settings.forms.auto_close_timeout.help",isDisabled:!t(i).preferences.getOtpOnRequest,isIndented:!0},null,8,["modelValue","isDisabled"]),r(o,{modelValue:t(i).preferences.copyOtpOnDisplay,"onUpdate:modelValue":[e[34]||(e[34]=a=>t(i).preferences.copyOtpOnDisplay=a),e[35]||(e[35]=a=>l("copyOtpOnDisplay",a))],fieldName:"copyOtpOnDisplay",label:"settings.forms.copy_otp_on_display.label",help:"settings.forms.copy_otp_on_display.help",isDisabled:!t(i).preferences.getOtpOnRequest,isIndented:!0},null,8,["modelValue","isDisabled"]),r(o,{modelValue:t(i).preferences.showOtpAsDot,"onUpdate:modelValue":[e[36]||(e[36]=a=>t(i).preferences.showOtpAsDot=a),e[37]||(e[37]=a=>l("showOtpAsDot",a))],fieldName:"showOtpAsDot",label:"settings.forms.show_otp_as_dot.label",help:"settings.forms.show_otp_as_dot.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.revealDottedOTP,"onUpdate:modelValue":[e[38]||(e[38]=a=>t(i).preferences.revealDottedOTP=a),e[39]||(e[39]=a=>l("revealDottedOTP",a))],fieldName:"revealDottedOTP",label:"settings.forms.reveal_dotted_otp.label",help:"settings.forms.reveal_dotted_otp.help",isDisabled:!t(i).preferences.showOtpAsDot,isIndented:!0},null,8,["modelValue","isDisabled"]),n("h4",ae,A(u.$t("settings.notifications")),1),r(o,{modelValue:t(i).preferences.notifyOnNewAuthDevice,"onUpdate:modelValue":[e[40]||(e[40]=a=>t(i).preferences.notifyOnNewAuthDevice=a),e[41]||(e[41]=a=>l("notifyOnNewAuthDevice",a))],fieldName:"notifyOnNewAuthDevice",label:"settings.forms.notify_on_new_auth_device.label",help:"settings.forms.notify_on_new_auth_device.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.notifyOnFailedLogin,"onUpdate:modelValue":[e[42]||(e[42]=a=>t(i).preferences.notifyOnFailedLogin=a),e[43]||(e[43]=a=>l("notifyOnFailedLogin",a))],fieldName:"notifyOnFailedLogin",label:"settings.forms.notify_on_failed_login.label",help:"settings.forms.notify_on_failed_login.help"},null,8,["modelValue"]),n("h4",te,A(u.$t("settings.data_input")),1),r(o,{modelValue:t(i).preferences.AutoSaveQrcodedAccount,"onUpdate:modelValue":[e[44]||(e[44]=a=>t(i).preferences.AutoSaveQrcodedAccount=a),e[45]||(e[45]=a=>l("AutoSaveQrcodedAccount",a))],fieldName:"AutoSaveQrcodedAccount",label:"settings.forms.auto_save_qrcoded_account.label",help:"settings.forms.auto_save_qrcoded_account.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.useBasicQrcodeReader,"onUpdate:modelValue":[e[46]||(e[46]=a=>t(i).preferences.useBasicQrcodeReader=a),e[47]||(e[47]=a=>l("useBasicQrcodeReader",a))],fieldName:"useBasicQrcodeReader",label:"settings.forms.use_basic_qrcode_reader.label",help:"settings.forms.use_basic_qrcode_reader.help"},null,8,["modelValue"]),r(o,{modelValue:t(i).preferences.useDirectCapture,"onUpdate:modelValue":[e[48]||(e[48]=a=>t(i).preferences.useDirectCapture=a),e[49]||(e[49]=a=>l("useDirectCapture",a))],fieldName:"useDirectCapture",label:"settings.forms.useDirectCapture.label",help:"settings.forms.useDirectCapture.help"},null,8,["modelValue"]),r(s,{modelValue:t(i).preferences.defaultCaptureMode,"onUpdate:modelValue":[e[50]||(e[50]=a=>t(i).preferences.defaultCaptureMode=a),e[51]||(e[51]=a=>l("defaultCaptureMode",a))],options:E,fieldName:"defaultCaptureMode",label:"settings.forms.defaultCaptureMode.label",help:"settings.forms.defaultCaptureMode.help",isDisabled:!t(i).preferences.useDirectCapture,isIndented:!0},null,8,["modelValue","isDisabled"])])])]),_:1})]),r(D,{showButtons:!0},{default:p(()=>[r(N,{returnTo:{name:t(h)},action:"close"},null,8,["returnTo"])]),_:1})])}}};export{ue as default}; diff --git a/public/build/assets/OtpDisplay-rOo0JVMb.js b/public/build/assets/OtpDisplay-CU1C9yFz.js similarity index 99% rename from public/build/assets/OtpDisplay-rOo0JVMb.js rename to public/build/assets/OtpDisplay-CU1C9yFz.js index f0a9fa41..46dbab27 100644 --- a/public/build/assets/OtpDisplay-rOo0JVMb.js +++ b/public/build/assets/OtpDisplay-CU1C9yFz.js @@ -1 +1 @@ -import{r as a,x as N,o as W,v as ne,f as l,g as d,F as se,E as ae,i as s,n as P,a as re,b as ue,R as le,T as ie,$ as ce,s as pe,e as fe,h as x,l as M,m as z,p as ve,t as C,w as de,Z as me,U as ye,z as J,A as Z,k as E,C as _e,J as I,H as G,P as Q}from"./app-CYV6HkYG.js";import{S as ge}from"./Spinner-DAB1mDqh.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const he={__name:"TotpLooper",props:{step_count:{type:Number,default:10},period:Number,generated_at:Number,autostart:{type:Boolean,default:!0}},emits:["loop-started","loop-ended","stepped-up"],setup(T,{expose:b,emit:m}){const o=T,i=a(null),w=a(null),O=a(null),y=a(null),c=a(null),u=N(()=>i.value%o.period),r=N(()=>o.period-u.value),p=N(()=>o.period/o.step_count),k=N(()=>{let f=u.value*o.step_count/o.period;return Math.floor(f)+0}),e=m,_=(f=null)=>{g(),i.value=f??o.generated_at,e("loop-started",k.value),c.value=k.value,w.value=setTimeout(function(){g(),e("loop-ended")},r.value*1e3);let h=Math.ceil(u.value/p.value)*p.value-u.value;O.value=setTimeout(function(){h>0&&(c.value+=1,e("stepped-up",c.value)),y.value=setInterval(function(){c.value+=1,e("stepped-up",c.value)},p.value*1e3)},h*1e3)},g=()=>{clearTimeout(w.value),clearTimeout(O.value),clearInterval(y.value),c.value=i.value=null};return W(()=>{o.autostart==!0&&_()}),ne(()=>{g()}),b({startLoop:_,clearLooper:g,props:o}),(f,h)=>(l(),d("div"))}},we=["data-is-active"],Te={__name:"Dots",props:{stepCount:{type:Number,default:10},initialIndex:{type:Number,default:null},period:{type:Number,default:null}},setup(T,{expose:b}){const m=T,o=a(0),i=N(()=>o.value==-1);function w(y){o.value=y{isNaN(m.initialIndex)||w(m.initialIndex)}),b({turnOn:w,turnOff:O,props:m}),(y,c)=>(l(),d("ul",{class:P(["dots",{off:s(i)}])},[(l(!0),d(se,null,ae(T.stepCount,u=>(l(),d("li",{key:u,"data-is-active":u==s(o)?!0:null},null,8,we))),128))],2))}},Oe=["src","alt"],ke=["title"],Se={key:1,tabindex:"0",class:"otp is-size-1"},xe={key:0,class:"mt-3"},Ne={__name:"OtpDisplay",props:{otp_type:String,account:String,service:String,icon:String,secret:String,digits:Number,algorithm:String,period:null,counter:null,image:String,qrcode:null,uri:String},emits:["please-close-me","increment-hotp","validation-error"],setup(T,{expose:b,emit:m}){const o=re(),i=ue(),w=le("2fauth"),{copy:O,copied:y}=ie({legacy:!0}),c=ce(),u=m,r=T,p=a(null),k=a(null),e=a({otp_type:"",account:"",service:"",icon:"",secret:"",digits:null,algorithm:"",period:null,counter:null,image:""}),_=a(""),g=a(null),f=a(!1),h=a(!1),S=a(!1),B=a(),L=a(),V=a(),F=a(null);pe(()=>r.icon,n=>{n!=null&&(e.value.icon=n)});const X=async n=>{if(S.value=!1,e.value.otp_type=r.otp_type,e.value.account=r.account,e.value.service=r.service,e.value.icon=r.icon,e.value.secret=r.secret,e.value.digits=r.digits,e.value.algorithm=r.algorithm,e.value.period=r.period,e.value.counter=r.counter,R(),n){p.value=n;const{data:t}=await I.get(p.value);e.value.service=t.service,e.value.account=t.account,e.value.icon=t.icon,e.value.otp_type=t.otp_type,D(t.otp_type)&&t.counter&&(e.value.counter=t.counter)}else r.uri?(k.value=r.uri,e.value.otp_type=r.uri.slice(0,15).toLowerCase()==="otpauth://totp/"?"totp":"hotp"):r.secret?!A(e.value.otp_type)&&!D(e.value.otp_type)&&i.error(new Error(G("errors.not_a_supported_otp_type"))):i.error(new Error(G("errors.cannot_create_otp_without_secret")));try{await H(),ee(),o.preferences.getOtpOnRequest&&parseInt(o.preferences.autoCloseTimeout)>0&&te()}catch{$()}};async function H(){R(),await Y().then(n=>{let t=n.data;_.value=t.password,o.preferences.copyOtpOnDisplay&&U(t.password),A(t.otp_type)?(g.value=t.generated_at,e.value.period=t.period,f.value=!0,Q().then(()=>{L.value.startLoop()})):D(t.otp_type)&&(e.value.counter=t.counter,u("increment-hotp",{nextHotpCounter:t.counter,nextUri:t.uri}))}).catch(n=>{n.response.status===422&&u("validation-error",n.response)}).finally(()=>{h.value=!1})}function R(){h.value=!0,B.value.turnOff()}function Y(){return p.value?I.getOtpById(p.value):k.value?I.getOtpByUri(k.value):I.getOtpByParams(e.value)}function q(){u("please-close-me"),S.value=!1,$()}function $(){var n;p.value=e.value.counter=g.value=null,e.value.service=e.value.account=e.value.icon=e.value.otp_type=e.value.secret="",_.value="... ...",f.value=!1,clearTimeout(F.value),(n=L.value)==null||n.clearLooper()}function ee(){Q().then(()=>{var n;(n=V.value)==null||n.focus()})}function U(n,t){O(n.replace(/ /g,"")),y&&(o.preferences.kickUserAfter==-1&&(t||!1)===!0&&c.name!="importAccounts"?o.logout({kicked:!0}):o.preferences.closeOtpOnCopy&&(t||!1)===!0&&q(),o.preferences.clearSearchOnCopy&&u("please-clear-search"),o.preferences.viewDefaultGroupOnCopy&&(o.preferences.activeGroup=o.preferences.defaultGroup==-1?o.preferences.activeGroup:o.preferences.defaultGroup),i.success({text:G("commons.copied_to_clipboard")}))}function A(n){return n==="totp"||n==="steamtotp"}function D(n){return n==="hotp"}function K(n){B.value.turnOn(n)}b({show:X,clearOTP:$});function te(){let n=parseInt(o.preferences.autoCloseTimeout);F.value=setTimeout(function(){q()},n*60*1e3)}return(n,t)=>{const j=fe("font-awesome-icon");return l(),d("div",null,[x("figure",{class:P(["image is-64x64",{"no-icon":!s(e).icon}]),style:{display:"inline-block"}},[s(e).icon?(l(),d("img",{key:0,src:s(w).config.subdirectory+"/storage/icons/"+s(e).icon,alt:n.$t("twofaccounts.icon_to_illustrate_the_account")},null,8,Oe)):M("",!0)],2),z(s(ye),null,{default:ve(({mode:v})=>[x("p",{class:P(["is-size-4 has-ellipsis",v=="dark"?"has-text-grey-light":"has-text-grey"])},C(s(e).service),3),x("p",{class:P(["is-size-6 has-ellipsis",v=="dark"?"has-text-grey":"has-text-grey-light"])},C(s(e).account),3),x("p",null,[s(h)?(l(),d("span",Se,[z(ge,{isVisible:s(h),type:"raw"},null,8,["isVisible"])])):(l(),d("span",{key:0,id:"otp",role:"log",ref_key:"otpSpanTag",ref:V,tabindex:"0",class:P(["otp is-size-1 is-clickable px-3",v=="dark"?"has-text-white":"has-text-grey-dark"]),onClick:t[0]||(t[0]=oe=>U(s(_),!0)),onKeyup:t[1]||(t[1]=de(oe=>U(s(_),!0),["enter"])),title:n.$t("commons.copy_to_clipboard")},C(s(me)(s(_),s(o).preferences.showOtpAsDot&&s(o).preferences.revealDottedOTP&&s(S))),43,ke))])]),_:1}),J(z(Te,{ref_key:"dots",ref:B},null,512),[[Z,A(s(e).otp_type)]]),J(x("p",null,C(n.$t("twofaccounts.forms.counter.label"))+": "+C(s(e).counter),513),[[Z,D(s(e).otp_type)]]),s(o).preferences.showOtpAsDot&&s(o).preferences.revealDottedOTP?(l(),d("p",xe,[x("button",{class:"button is-ghost has-text-grey-dark",onClick:t[2]||(t[2]=_e(v=>S.value=!s(S),["stop"]))},[s(S)?(l(),E(j,{key:0,icon:["fas","eye"]})):(l(),E(j,{key:1,icon:["fas","eye-slash"]}))])])):M("",!0),s(f)?(l(),E(he,{key:1,period:s(e).period,generated_at:s(g),autostart:!1,onLoopEnded:t[3]||(t[3]=v=>H()),onLoopStarted:t[4]||(t[4]=v=>K(v)),onSteppedUp:t[5]||(t[5]=v=>K(v)),ref_key:"totpLooper",ref:L},null,8,["period","generated_at"])):M("",!0)])}}};export{Ne as _,he as a,Te as b}; +import{r as a,x as N,o as W,v as ne,f as l,g as d,F as se,E as ae,i as s,n as P,a as re,b as ue,R as le,T as ie,$ as ce,s as pe,e as fe,h as x,l as M,m as z,p as ve,t as C,w as de,Z as me,U as ye,z as J,A as Z,k as E,C as _e,J as I,H as G,P as Q}from"./app-CeOdx_TG.js";import{S as ge}from"./Spinner-BwxI0ALn.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const he={__name:"TotpLooper",props:{step_count:{type:Number,default:10},period:Number,generated_at:Number,autostart:{type:Boolean,default:!0}},emits:["loop-started","loop-ended","stepped-up"],setup(T,{expose:b,emit:m}){const o=T,i=a(null),w=a(null),O=a(null),y=a(null),c=a(null),u=N(()=>i.value%o.period),r=N(()=>o.period-u.value),p=N(()=>o.period/o.step_count),k=N(()=>{let f=u.value*o.step_count/o.period;return Math.floor(f)+0}),e=m,_=(f=null)=>{g(),i.value=f??o.generated_at,e("loop-started",k.value),c.value=k.value,w.value=setTimeout(function(){g(),e("loop-ended")},r.value*1e3);let h=Math.ceil(u.value/p.value)*p.value-u.value;O.value=setTimeout(function(){h>0&&(c.value+=1,e("stepped-up",c.value)),y.value=setInterval(function(){c.value+=1,e("stepped-up",c.value)},p.value*1e3)},h*1e3)},g=()=>{clearTimeout(w.value),clearTimeout(O.value),clearInterval(y.value),c.value=i.value=null};return W(()=>{o.autostart==!0&&_()}),ne(()=>{g()}),b({startLoop:_,clearLooper:g,props:o}),(f,h)=>(l(),d("div"))}},we=["data-is-active"],Te={__name:"Dots",props:{stepCount:{type:Number,default:10},initialIndex:{type:Number,default:null},period:{type:Number,default:null}},setup(T,{expose:b}){const m=T,o=a(0),i=N(()=>o.value==-1);function w(y){o.value=y{isNaN(m.initialIndex)||w(m.initialIndex)}),b({turnOn:w,turnOff:O,props:m}),(y,c)=>(l(),d("ul",{class:P(["dots",{off:s(i)}])},[(l(!0),d(se,null,ae(T.stepCount,u=>(l(),d("li",{key:u,"data-is-active":u==s(o)?!0:null},null,8,we))),128))],2))}},Oe=["src","alt"],ke=["title"],Se={key:1,tabindex:"0",class:"otp is-size-1"},xe={key:0,class:"mt-3"},Ne={__name:"OtpDisplay",props:{otp_type:String,account:String,service:String,icon:String,secret:String,digits:Number,algorithm:String,period:null,counter:null,image:String,qrcode:null,uri:String},emits:["please-close-me","increment-hotp","validation-error"],setup(T,{expose:b,emit:m}){const o=re(),i=ue(),w=le("2fauth"),{copy:O,copied:y}=ie({legacy:!0}),c=ce(),u=m,r=T,p=a(null),k=a(null),e=a({otp_type:"",account:"",service:"",icon:"",secret:"",digits:null,algorithm:"",period:null,counter:null,image:""}),_=a(""),g=a(null),f=a(!1),h=a(!1),S=a(!1),B=a(),L=a(),V=a(),F=a(null);pe(()=>r.icon,n=>{n!=null&&(e.value.icon=n)});const X=async n=>{if(S.value=!1,e.value.otp_type=r.otp_type,e.value.account=r.account,e.value.service=r.service,e.value.icon=r.icon,e.value.secret=r.secret,e.value.digits=r.digits,e.value.algorithm=r.algorithm,e.value.period=r.period,e.value.counter=r.counter,R(),n){p.value=n;const{data:t}=await I.get(p.value);e.value.service=t.service,e.value.account=t.account,e.value.icon=t.icon,e.value.otp_type=t.otp_type,D(t.otp_type)&&t.counter&&(e.value.counter=t.counter)}else r.uri?(k.value=r.uri,e.value.otp_type=r.uri.slice(0,15).toLowerCase()==="otpauth://totp/"?"totp":"hotp"):r.secret?!A(e.value.otp_type)&&!D(e.value.otp_type)&&i.error(new Error(G("errors.not_a_supported_otp_type"))):i.error(new Error(G("errors.cannot_create_otp_without_secret")));try{await H(),ee(),o.preferences.getOtpOnRequest&&parseInt(o.preferences.autoCloseTimeout)>0&&te()}catch{$()}};async function H(){R(),await Y().then(n=>{let t=n.data;_.value=t.password,o.preferences.copyOtpOnDisplay&&U(t.password),A(t.otp_type)?(g.value=t.generated_at,e.value.period=t.period,f.value=!0,Q().then(()=>{L.value.startLoop()})):D(t.otp_type)&&(e.value.counter=t.counter,u("increment-hotp",{nextHotpCounter:t.counter,nextUri:t.uri}))}).catch(n=>{n.response.status===422&&u("validation-error",n.response)}).finally(()=>{h.value=!1})}function R(){h.value=!0,B.value.turnOff()}function Y(){return p.value?I.getOtpById(p.value):k.value?I.getOtpByUri(k.value):I.getOtpByParams(e.value)}function q(){u("please-close-me"),S.value=!1,$()}function $(){var n;p.value=e.value.counter=g.value=null,e.value.service=e.value.account=e.value.icon=e.value.otp_type=e.value.secret="",_.value="... ...",f.value=!1,clearTimeout(F.value),(n=L.value)==null||n.clearLooper()}function ee(){Q().then(()=>{var n;(n=V.value)==null||n.focus()})}function U(n,t){O(n.replace(/ /g,"")),y&&(o.preferences.kickUserAfter==-1&&(t||!1)===!0&&c.name!="importAccounts"?o.logout({kicked:!0}):o.preferences.closeOtpOnCopy&&(t||!1)===!0&&q(),o.preferences.clearSearchOnCopy&&u("please-clear-search"),o.preferences.viewDefaultGroupOnCopy&&(o.preferences.activeGroup=o.preferences.defaultGroup==-1?o.preferences.activeGroup:o.preferences.defaultGroup),i.success({text:G("commons.copied_to_clipboard")}))}function A(n){return n==="totp"||n==="steamtotp"}function D(n){return n==="hotp"}function K(n){B.value.turnOn(n)}b({show:X,clearOTP:$});function te(){let n=parseInt(o.preferences.autoCloseTimeout);F.value=setTimeout(function(){q()},n*60*1e3)}return(n,t)=>{const j=fe("font-awesome-icon");return l(),d("div",null,[x("figure",{class:P(["image is-64x64",{"no-icon":!s(e).icon}]),style:{display:"inline-block"}},[s(e).icon?(l(),d("img",{key:0,src:s(w).config.subdirectory+"/storage/icons/"+s(e).icon,alt:n.$t("twofaccounts.icon_to_illustrate_the_account")},null,8,Oe)):M("",!0)],2),z(s(ye),null,{default:ve(({mode:v})=>[x("p",{class:P(["is-size-4 has-ellipsis",v=="dark"?"has-text-grey-light":"has-text-grey"])},C(s(e).service),3),x("p",{class:P(["is-size-6 has-ellipsis",v=="dark"?"has-text-grey":"has-text-grey-light"])},C(s(e).account),3),x("p",null,[s(h)?(l(),d("span",Se,[z(ge,{isVisible:s(h),type:"raw"},null,8,["isVisible"])])):(l(),d("span",{key:0,id:"otp",role:"log",ref_key:"otpSpanTag",ref:V,tabindex:"0",class:P(["otp is-size-1 is-clickable px-3",v=="dark"?"has-text-white":"has-text-grey-dark"]),onClick:t[0]||(t[0]=oe=>U(s(_),!0)),onKeyup:t[1]||(t[1]=de(oe=>U(s(_),!0),["enter"])),title:n.$t("commons.copy_to_clipboard")},C(s(me)(s(_),s(o).preferences.showOtpAsDot&&s(o).preferences.revealDottedOTP&&s(S))),43,ke))])]),_:1}),J(z(Te,{ref_key:"dots",ref:B},null,512),[[Z,A(s(e).otp_type)]]),J(x("p",null,C(n.$t("twofaccounts.forms.counter.label"))+": "+C(s(e).counter),513),[[Z,D(s(e).otp_type)]]),s(o).preferences.showOtpAsDot&&s(o).preferences.revealDottedOTP?(l(),d("p",xe,[x("button",{class:"button is-ghost has-text-grey-dark",onClick:t[2]||(t[2]=_e(v=>S.value=!s(S),["stop"]))},[s(S)?(l(),E(j,{key:0,icon:["fas","eye"]})):(l(),E(j,{key:1,icon:["fas","eye-slash"]}))])])):M("",!0),s(f)?(l(),E(he,{key:1,period:s(e).period,generated_at:s(g),autostart:!1,onLoopEnded:t[3]||(t[3]=v=>H()),onLoopStarted:t[4]||(t[4]=v=>K(v)),onSteppedUp:t[5]||(t[5]=v=>K(v)),ref_key:"totpLooper",ref:L},null,8,["period","generated_at"])):M("",!0)])}}};export{Ne as _,he as a,Te as b}; diff --git a/public/build/assets/QRcode-0D9Ppru-.js b/public/build/assets/QRcode-BY72oBwO.js similarity index 87% rename from public/build/assets/QRcode-0D9Ppru-.js rename to public/build/assets/QRcode-BY72oBwO.js index cb7189ef..984a1fdd 100644 --- a/public/build/assets/QRcode-0D9Ppru-.js +++ b/public/build/assets/QRcode-BY72oBwO.js @@ -1 +1 @@ -import{u as _,$ as m,r as p,a0 as f,J as h,e as c,f as n,g as r,h as a,i as t,l as B,m as s,p as g}from"./app-CYV6HkYG.js";import{S as k}from"./Spinner-DAB1mDqh.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const v={class:"modal modal-otp is-active"},C=a("div",{class:"modal-background"},null,-1),V={class:"modal-content"},w={class:"has-text-centered m-5"},b=["src","alt"],F={__name:"QRcode",setup(y){_();const l=m(),e=p();f(()=>{i()});async function i(){const{data:o}=await h.getQrcode(l.params.twofaccountId);e.value=o.qrcode}return(o,R)=>{const u=c("ButtonBackCloseCancel"),d=c("VueFooter");return n(),r("div",v,[C,a("div",V,[a("p",w,[t(e)?(n(),r("img",{key:0,src:t(e),class:"has-background-light",alt:o.$t("commons.image_of_qrcode_to_scan")},null,8,b)):B("",!0),s(k,{isVisible:!t(e),type:"raw",class:"is-size-1"},null,8,["isVisible"])])]),s(d,{showButtons:!0,internalFooterType:"modal"},{default:g(()=>[s(u,{returnTo:{name:"accounts"},action:"close"})]),_:1})])}}};export{F as default}; +import{u as _,$ as m,r as p,a0 as f,J as h,e as c,f as n,g as r,h as a,i as t,l as B,m as s,p as g}from"./app-CeOdx_TG.js";import{S as k}from"./Spinner-BwxI0ALn.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const v={class:"modal modal-otp is-active"},C=a("div",{class:"modal-background"},null,-1),V={class:"modal-content"},w={class:"has-text-centered m-5"},b=["src","alt"],F={__name:"QRcode",setup(y){_();const l=m(),e=p();f(()=>{i()});async function i(){const{data:o}=await h.getQrcode(l.params.twofaccountId);e.value=o.qrcode}return(o,R)=>{const u=c("ButtonBackCloseCancel"),d=c("VueFooter");return n(),r("div",v,[C,a("div",V,[a("p",w,[t(e)?(n(),r("img",{key:0,src:t(e),class:"has-background-light",alt:o.$t("commons.image_of_qrcode_to_scan")},null,8,b)):B("",!0),s(k,{isVisible:!t(e),type:"raw",class:"is-size-1"},null,8,["isVisible"])])]),s(d,{showButtons:!0,internalFooterType:"modal"},{default:g(()=>[s(u,{returnTo:{name:"accounts"},action:"close"})]),_:1})])}}};export{F as default}; diff --git a/public/build/assets/QrContentDisplay-BGd7upKu.js b/public/build/assets/QrContentDisplay-CxQyxV0P.js similarity index 95% rename from public/build/assets/QrContentDisplay-BGd7upKu.js rename to public/build/assets/QrContentDisplay-CxQyxV0P.js index 326daf13..2e86d413 100644 --- a/public/build/assets/QrContentDisplay-BGd7upKu.js +++ b/public/build/assets/QrContentDisplay-CxQyxV0P.js @@ -1 +1 @@ -import{T as C,b as _,e as v,f as a,g as r,h as o,t as s,i as f,H as c,C as w,l,m as h,F as y}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const g=o("div",{class:"too-bad"},null,-1),q={class:"block"},$={class:"block mb-6 light-or-darker"},E={key:0,class:"block has-text-link"},B={class:"button is-link is-outlined is-rounded"},F={class:"icon is-small"},N={__name:"QrContentDisplay",props:{qrContent:String},setup(e){const{copy:d}=C({legacy:!0}),u=_();function m(t){var n=/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/,i=new RegExp(n);return i.test(t)}function b(t){const n=document.createElement("a");n.setAttribute("href",t),n.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))}function k(t){d(t),u.success({text:c("commons.copied_to_clipboard")})}return(t,n)=>{const i=v("FontAwesomeIcon");return a(),r(y,null,[g,o("div",q,s(t.$t("errors.data_of_qrcode_is_not_valid_URI")),1),o("div",$,s(e.qrContent?e.qrContent:"["+("trans"in t?t.trans:f(c))("commons.nothing")+"]"),1),e.qrContent?(a(),r("div",E,[o("button",{class:"button is-link is-outlined is-rounded",onClick:n[0]||(n[0]=w(p=>k(e.qrContent),["stop"]))},s(t.$t("commons.copy_to_clipboard")),1)])):l("",!0),m(e.qrContent)?(a(),r("div",{key:1,class:"block has-text-link",onClick:n[1]||(n[1]=p=>b(e.qrContent))},[o("button",B,[o("span",null,s(t.$t("commons.open_in_browser")),1),o("span",F,[h(i,{icon:["fas","external-link-alt"]})])])])):l("",!0)],64)}}};export{N as _}; +import{T as C,b as _,e as v,f as a,g as r,h as o,t as s,i as f,H as c,C as w,l,m as h,F as y}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const g=o("div",{class:"too-bad"},null,-1),q={class:"block"},$={class:"block mb-6 light-or-darker"},E={key:0,class:"block has-text-link"},B={class:"button is-link is-outlined is-rounded"},F={class:"icon is-small"},N={__name:"QrContentDisplay",props:{qrContent:String},setup(e){const{copy:d}=C({legacy:!0}),u=_();function m(t){var n=/^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/,i=new RegExp(n);return i.test(t)}function b(t){const n=document.createElement("a");n.setAttribute("href",t),n.dispatchEvent(new MouseEvent("click",{view:window,bubbles:!0,cancelable:!0}))}function k(t){d(t),u.success({text:c("commons.copied_to_clipboard")})}return(t,n)=>{const i=v("FontAwesomeIcon");return a(),r(y,null,[g,o("div",q,s(t.$t("errors.data_of_qrcode_is_not_valid_URI")),1),o("div",$,s(e.qrContent?e.qrContent:"["+("trans"in t?t.trans:f(c))("commons.nothing")+"]"),1),e.qrContent?(a(),r("div",E,[o("button",{class:"button is-link is-outlined is-rounded",onClick:n[0]||(n[0]=w(p=>k(e.qrContent),["stop"]))},s(t.$t("commons.copy_to_clipboard")),1)])):l("",!0),m(e.qrContent)?(a(),r("div",{key:1,class:"block has-text-link",onClick:n[1]||(n[1]=p=>b(e.qrContent))},[o("button",B,[o("span",null,s(t.$t("commons.open_in_browser")),1),o("span",F,[h(i,{icon:["fas","external-link-alt"]})])])])):l("",!0)],64)}}};export{N as _}; diff --git a/public/build/assets/Recover-CE1NgbrS.js b/public/build/assets/Recover-ClJ3s80u.js similarity index 94% rename from public/build/assets/Recover-CE1NgbrS.js rename to public/build/assets/Recover-ClJ3s80u.js index 0547281f..34502cfc 100644 --- a/public/build/assets/Recover-CE1NgbrS.js +++ b/public/build/assets/Recover-ClJ3s80u.js @@ -1 +1 @@ -import{R as V,b as B,u as R,$ as g,a2 as $,d as C,a1 as N,e as a,f as q,k as A,p as d,h as u,C as D,i as s,m as l,j as c,t as p,H as L}from"./app-CYV6HkYG.js";import{F as S}from"./Form-DWTCaq3y.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const W={class:"field"},j={__name:"Recover",setup(x){const m=V("2fauth"),r=B(),f=R(),i=g(),h=$(m.prefix+"showWebauthnForm",!1),o=C(new S({email:i.query.email,password:"",token:i.query.token,revokeAll:!1}));function _(t){r.clear(),o.post("/webauthn/recover",{returnError:!0}).then(e=>{h.value=!1,f.push({name:"login"})}).catch(e=>{e.response.status===401?r.alert({text:L("auth.forms.authentication_failed"),duration:-1}):e.response.status===422?r.alert({text:e.response.data.message,duration:-1}):r.error(e)})}return N(()=>{r.clear()}),(t,e)=>{const w=a("FormCheckbox"),b=a("FormPasswordField"),v=a("RouterLink"),F=a("FormButtons"),k=a("VueFooter"),y=a("FormWrapper");return q(),A(y,{title:t.$t("auth.webauthn.account_recovery"),punchline:t.$t("auth.webauthn.recover_account_instructions")},{default:d(()=>[u("div",null,[u("form",{onSubmit:D(_,["prevent"]),onKeydown:e[2]||(e[2]=n=>s(o).onKeydown(n))},[l(w,{modelValue:s(o).revokeAll,"onUpdate:modelValue":e[0]||(e[0]=n=>s(o).revokeAll=n),fieldName:"revokeAll",label:"auth.webauthn.disable_all_security_devices",help:"auth.webauthn.disable_all_security_devices_help"},null,8,["modelValue"]),l(b,{modelValue:s(o).password,"onUpdate:modelValue":e[1]||(e[1]=n=>s(o).password=n),fieldName:"password",fieldError:s(o).errors.get("password"),autocomplete:"current-password",showRules:!1,label:"auth.forms.current_password.label",help:"auth.forms.current_password.help"},null,8,["modelValue","fieldError"]),u("div",W,[u("p",null,[c(p(t.$t("auth.forms.forgot_your_password"))+"  ",1),l(v,{id:"lnkResetPwd",to:{name:"password.request"},class:"is-link","aria-label":t.$t("auth.forms.reset_your_password")},{default:d(()=>[c(p(t.$t("auth.forms.request_password_reset")),1)]),_:1},8,["to","aria-label"])])]),l(F,{submitId:"btnRecover",isBusy:s(o).isBusy,isDisabled:s(o).isDisabled,caption:t.$t("commons.continue"),showCancelButton:!0,cancelLandingView:"login"},null,8,["isBusy","isDisabled","caption"])],32)]),l(k)]),_:1},8,["title","punchline"])}}};export{j as default}; +import{R as V,b as B,u as R,$ as g,a2 as $,d as C,a1 as N,e as a,f as q,k as A,p as d,h as u,C as D,i as s,m as l,j as c,t as p,H as L}from"./app-CeOdx_TG.js";import{F as S}from"./Form-BSfNB4q6.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const W={class:"field"},j={__name:"Recover",setup(x){const m=V("2fauth"),r=B(),f=R(),i=g(),h=$(m.prefix+"showWebauthnForm",!1),o=C(new S({email:i.query.email,password:"",token:i.query.token,revokeAll:!1}));function _(t){r.clear(),o.post("/webauthn/recover",{returnError:!0}).then(e=>{h.value=!1,f.push({name:"login"})}).catch(e=>{e.response.status===401?r.alert({text:L("auth.forms.authentication_failed"),duration:-1}):e.response.status===422?r.alert({text:e.response.data.message,duration:-1}):r.error(e)})}return N(()=>{r.clear()}),(t,e)=>{const w=a("FormCheckbox"),b=a("FormPasswordField"),v=a("RouterLink"),F=a("FormButtons"),k=a("VueFooter"),y=a("FormWrapper");return q(),A(y,{title:t.$t("auth.webauthn.account_recovery"),punchline:t.$t("auth.webauthn.recover_account_instructions")},{default:d(()=>[u("div",null,[u("form",{onSubmit:D(_,["prevent"]),onKeydown:e[2]||(e[2]=n=>s(o).onKeydown(n))},[l(w,{modelValue:s(o).revokeAll,"onUpdate:modelValue":e[0]||(e[0]=n=>s(o).revokeAll=n),fieldName:"revokeAll",label:"auth.webauthn.disable_all_security_devices",help:"auth.webauthn.disable_all_security_devices_help"},null,8,["modelValue"]),l(b,{modelValue:s(o).password,"onUpdate:modelValue":e[1]||(e[1]=n=>s(o).password=n),fieldName:"password",fieldError:s(o).errors.get("password"),autocomplete:"current-password",showRules:!1,label:"auth.forms.current_password.label",help:"auth.forms.current_password.help"},null,8,["modelValue","fieldError"]),u("div",W,[u("p",null,[c(p(t.$t("auth.forms.forgot_your_password"))+"  ",1),l(v,{id:"lnkResetPwd",to:{name:"password.request"},class:"is-link","aria-label":t.$t("auth.forms.reset_your_password")},{default:d(()=>[c(p(t.$t("auth.forms.request_password_reset")),1)]),_:1},8,["to","aria-label"])])]),l(F,{submitId:"btnRecover",isBusy:s(o).isBusy,isDisabled:s(o).isDisabled,caption:t.$t("commons.continue"),showCancelButton:!0,cancelLandingView:"login"},null,8,["isBusy","isDisabled","caption"])],32)]),l(k)]),_:1},8,["title","punchline"])}}};export{j as default}; diff --git a/public/build/assets/Register-BU18ipdH.js b/public/build/assets/Register-BeDlGULg.js similarity index 96% rename from public/build/assets/Register-BU18ipdH.js rename to public/build/assets/Register-BeDlGULg.js index b935ca00..a9ccaae3 100644 --- a/public/build/assets/Register-BU18ipdH.js +++ b/public/build/assets/Register-BeDlGULg.js @@ -1 +1 @@ -import{a as L,b as T,u as K,r as F,d as k,a1 as U,e as l,f as u,g as _,i as t,k as V,p as c,m as n,h as i,j as p,t as d,C as B,H as I}from"./app-CYV6HkYG.js";import{F as D}from"./Form-DWTCaq3y.js";import{w as W}from"./webauthnService-CtkX6mue.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const P={key:0,class:"field"},M={id:"lblDeviceRegistrationSuccess",class:"label mb-5"},j={key:1,class:"field is-grouped"},A={class:"control"},H={class:"control"},J={class:"nav-links"},G={__name:"Register",setup(O){const b=L(),m=T(),R=K(),w=F(!1),f=F(null),s=k(new D({name:"",email:"",password:"",password_confirmation:""})),r=k(new D({name:""}));async function N(o){s.password_confirmation=s.password,s.post("/user").then(e=>{b.$patch({name:e.data.name,email:e.data.email,preferences:e.data.preferences,isAdmin:e.data.is_admin??!1}),b.applyTheme(),w.value=!0})}function E(){W.register().then(o=>{const e=JSON.parse(o.config.data);f.value=e.id}).catch(o=>{o.response.status===422?m.alert({text:o.response.data.message}):m.error(o)})}function S(o){r.patch("/webauthn/credentials/"+f.value+"/name").then(()=>{m.success({text:I("auth.webauthn.device_successfully_registered")}),R.push({name:"accounts"})})}return U(()=>{m.clear()}),(o,e)=>{const $=l("font-awesome-icon"),h=l("FormField"),g=l("FormButtons"),y=l("RouterLink"),v=l("FormWrapper"),x=l("FormPasswordField"),C=l("VueFooter");return u(),_("div",null,[t(w)?(u(),V(v,{key:0,title:"auth.authentication",punchline:"auth.webauthn.enhance_security_using_webauthn"},{default:c(()=>[t(f)?(u(),_("div",P,[i("label",M,[p(d(o.$t("auth.webauthn.device_successfully_registered"))+" ",1),n($,{icon:["fas","check"]})]),i("form",{onSubmit:B(S,["prevent"]),onKeydown:e[1]||(e[1]=a=>t(r).onKeydown(a))},[n(h,{modelValue:t(r).name,"onUpdate:modelValue":e[0]||(e[0]=a=>t(r).name=a),fieldName:"name",fieldError:t(r).errors.get("name"),inputType:"text",placeholder:"iPhone 12, TouchID, Yubikey 5C",label:"auth.forms.name_this_device"},null,8,["modelValue","fieldError"]),n(g,{isBusy:t(r).isBusy,isDisabled:t(r).isDisabled,caption:"commons.continue"},null,8,["isBusy","isDisabled"])],32)])):(u(),_("div",j,[i("div",A,[i("button",{type:"button",id:"btnRegisterNewDevice",onClick:e[2]||(e[2]=a=>E()),class:"button is-link"},d(o.$t("auth.webauthn.register_a_device")),1)]),i("div",H,[n(y,{id:"btnMaybeLater",to:{name:"accounts"},class:"button is-text"},{default:c(()=>[p(d(o.$t("auth.maybe_later")),1)]),_:1})])]))]),_:1})):(u(),V(v,{key:1,title:"auth.register",punchline:"auth.forms.register_punchline"},{default:c(()=>[i("form",{onSubmit:B(N,["prevent"]),onKeydown:e[6]||(e[6]=a=>t(s).onKeydown(a))},[n(h,{modelValue:t(s).name,"onUpdate:modelValue":e[3]||(e[3]=a=>t(s).name=a),fieldName:"name",fieldError:t(s).errors.get("name"),inputType:"text",label:"auth.forms.name",maxLength:255,autofocus:""},null,8,["modelValue","fieldError"]),n(h,{modelValue:t(s).email,"onUpdate:modelValue":e[4]||(e[4]=a=>t(s).email=a),fieldName:"email",fieldError:t(s).errors.get("email"),inputType:"email",label:"auth.forms.email",maxLength:255},null,8,["modelValue","fieldError"]),n(x,{modelValue:t(s).password,"onUpdate:modelValue":e[5]||(e[5]=a=>t(s).password=a),fieldName:"password",fieldError:t(s).errors.get("password"),showRules:!0,label:"auth.forms.password"},null,8,["modelValue","fieldError"]),n(g,{isBusy:t(s).isBusy,isDisabled:t(s).isDisabled,caption:"auth.register",submitId:"btnRegister"},null,8,["isBusy","isDisabled"])],32),i("div",J,[i("p",null,[p(d(o.$t("auth.forms.already_register"))+" ",1),n(y,{id:"lnkSignIn",to:{name:"login"},class:"is-link"},{default:c(()=>[p(d(o.$t("auth.sign_in")),1)]),_:1})])])]),_:1})),n(C)])}}};export{G as default}; +import{a as L,b as T,u as K,r as F,d as k,a1 as U,e as l,f as u,g as _,i as t,k as V,p as c,m as n,h as i,j as p,t as d,C as B,H as I}from"./app-CeOdx_TG.js";import{F as D}from"./Form-BSfNB4q6.js";import{w as W}from"./webauthnService-3N-iRQ3u.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const P={key:0,class:"field"},M={id:"lblDeviceRegistrationSuccess",class:"label mb-5"},j={key:1,class:"field is-grouped"},A={class:"control"},H={class:"control"},J={class:"nav-links"},G={__name:"Register",setup(O){const b=L(),m=T(),R=K(),w=F(!1),f=F(null),s=k(new D({name:"",email:"",password:"",password_confirmation:""})),r=k(new D({name:""}));async function N(o){s.password_confirmation=s.password,s.post("/user").then(e=>{b.$patch({name:e.data.name,email:e.data.email,preferences:e.data.preferences,isAdmin:e.data.is_admin??!1}),b.applyTheme(),w.value=!0})}function E(){W.register().then(o=>{const e=JSON.parse(o.config.data);f.value=e.id}).catch(o=>{o.response.status===422?m.alert({text:o.response.data.message}):m.error(o)})}function S(o){r.patch("/webauthn/credentials/"+f.value+"/name").then(()=>{m.success({text:I("auth.webauthn.device_successfully_registered")}),R.push({name:"accounts"})})}return U(()=>{m.clear()}),(o,e)=>{const $=l("font-awesome-icon"),h=l("FormField"),g=l("FormButtons"),y=l("RouterLink"),v=l("FormWrapper"),x=l("FormPasswordField"),C=l("VueFooter");return u(),_("div",null,[t(w)?(u(),V(v,{key:0,title:"auth.authentication",punchline:"auth.webauthn.enhance_security_using_webauthn"},{default:c(()=>[t(f)?(u(),_("div",P,[i("label",M,[p(d(o.$t("auth.webauthn.device_successfully_registered"))+" ",1),n($,{icon:["fas","check"]})]),i("form",{onSubmit:B(S,["prevent"]),onKeydown:e[1]||(e[1]=a=>t(r).onKeydown(a))},[n(h,{modelValue:t(r).name,"onUpdate:modelValue":e[0]||(e[0]=a=>t(r).name=a),fieldName:"name",fieldError:t(r).errors.get("name"),inputType:"text",placeholder:"iPhone 12, TouchID, Yubikey 5C",label:"auth.forms.name_this_device"},null,8,["modelValue","fieldError"]),n(g,{isBusy:t(r).isBusy,isDisabled:t(r).isDisabled,caption:"commons.continue"},null,8,["isBusy","isDisabled"])],32)])):(u(),_("div",j,[i("div",A,[i("button",{type:"button",id:"btnRegisterNewDevice",onClick:e[2]||(e[2]=a=>E()),class:"button is-link"},d(o.$t("auth.webauthn.register_a_device")),1)]),i("div",H,[n(y,{id:"btnMaybeLater",to:{name:"accounts"},class:"button is-text"},{default:c(()=>[p(d(o.$t("auth.maybe_later")),1)]),_:1})])]))]),_:1})):(u(),V(v,{key:1,title:"auth.register",punchline:"auth.forms.register_punchline"},{default:c(()=>[i("form",{onSubmit:B(N,["prevent"]),onKeydown:e[6]||(e[6]=a=>t(s).onKeydown(a))},[n(h,{modelValue:t(s).name,"onUpdate:modelValue":e[3]||(e[3]=a=>t(s).name=a),fieldName:"name",fieldError:t(s).errors.get("name"),inputType:"text",label:"auth.forms.name",maxLength:255,autofocus:""},null,8,["modelValue","fieldError"]),n(h,{modelValue:t(s).email,"onUpdate:modelValue":e[4]||(e[4]=a=>t(s).email=a),fieldName:"email",fieldError:t(s).errors.get("email"),inputType:"email",label:"auth.forms.email",maxLength:255},null,8,["modelValue","fieldError"]),n(x,{modelValue:t(s).password,"onUpdate:modelValue":e[5]||(e[5]=a=>t(s).password=a),fieldName:"password",fieldError:t(s).errors.get("password"),showRules:!0,label:"auth.forms.password"},null,8,["modelValue","fieldError"]),n(g,{isBusy:t(s).isBusy,isDisabled:t(s).isDisabled,caption:"auth.register",submitId:"btnRegister"},null,8,["isBusy","isDisabled"])],32),i("div",J,[i("p",null,[p(d(o.$t("auth.forms.already_register"))+" ",1),n(y,{id:"lnkSignIn",to:{name:"login"},class:"is-link"},{default:c(()=>[p(d(o.$t("auth.sign_in")),1)]),_:1})])])]),_:1})),n(C)])}}};export{G as default}; diff --git a/public/build/assets/RequestReset-Cwf_djX8.js b/public/build/assets/RequestReset-63WcW87C.js similarity index 91% rename from public/build/assets/RequestReset-Cwf_djX8.js rename to public/build/assets/RequestReset-63WcW87C.js index b9221224..76366ebf 100644 --- a/public/build/assets/RequestReset-Cwf_djX8.js +++ b/public/build/assets/RequestReset-63WcW87C.js @@ -1 +1 @@ -import{b as f,$ as h,d as _,a1 as w,e as r,f as F,k as b,p as y,h as B,m as i,i as s,C as V}from"./app-CYV6HkYG.js";import{F as v}from"./Form-DWTCaq3y.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const C={__name:"RequestReset",setup(R){const o=f(),n=h().name=="webauthn.lost",t=_(new v({email:""}));function l(a){o.clear(),t.post(n?"/webauthn/lost":"/user/password/lost",{returnError:!0}).then(e=>{o.success({text:e.data.message,duration:-1})}).catch(e=>{e.response.data.requestFailed?o.alert({text:e.response.data.requestFailed,duration:-1}):e.response.status!==422&&o.error(e)})}return w(()=>{o.clear()}),(a,e)=>{const m=r("FormField"),c=r("FormButtons"),d=r("VueFooter"),p=r("FormWrapper");return F(),b(p,{title:a.$t(n?"auth.webauthn.account_recovery":"auth.forms.reset_password"),punchline:a.$t(n?"auth.webauthn.recovery_punchline":"auth.forms.reset_punchline")},{default:y(()=>[B("form",{onSubmit:V(l,["prevent"]),onKeydown:e[1]||(e[1]=u=>s(t).onKeydown(u))},[i(m,{modelValue:s(t).email,"onUpdate:modelValue":e[0]||(e[0]=u=>s(t).email=u),fieldName:"email",fieldError:s(t).errors.get("email"),label:"auth.forms.email",autofocus:""},null,8,["modelValue","fieldError"]),i(c,{submitId:"btnSendResetPwd",isBusy:s(t).isBusy,caption:a.$t(n?"auth.webauthn.send_recovery_link":"auth.forms.send_password_reset_link"),showCancelButton:!0,cancelLandingView:"login"},null,8,["isBusy","caption"])],32),i(d)]),_:1},8,["title","punchline"])}}};export{C as default}; +import{b as f,$ as h,d as _,a1 as w,e as r,f as F,k as b,p as y,h as B,m as i,i as s,C as V}from"./app-CeOdx_TG.js";import{F as v}from"./Form-BSfNB4q6.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const C={__name:"RequestReset",setup(R){const o=f(),n=h().name=="webauthn.lost",t=_(new v({email:""}));function l(a){o.clear(),t.post(n?"/webauthn/lost":"/user/password/lost",{returnError:!0}).then(e=>{o.success({text:e.data.message,duration:-1})}).catch(e=>{e.response.data.requestFailed?o.alert({text:e.response.data.requestFailed,duration:-1}):e.response.status!==422&&o.error(e)})}return w(()=>{o.clear()}),(a,e)=>{const m=r("FormField"),c=r("FormButtons"),d=r("VueFooter"),p=r("FormWrapper");return F(),b(p,{title:a.$t(n?"auth.webauthn.account_recovery":"auth.forms.reset_password"),punchline:a.$t(n?"auth.webauthn.recovery_punchline":"auth.forms.reset_punchline")},{default:y(()=>[B("form",{onSubmit:V(l,["prevent"]),onKeydown:e[1]||(e[1]=u=>s(t).onKeydown(u))},[i(m,{modelValue:s(t).email,"onUpdate:modelValue":e[0]||(e[0]=u=>s(t).email=u),fieldName:"email",fieldError:s(t).errors.get("email"),label:"auth.forms.email",autofocus:""},null,8,["modelValue","fieldError"]),i(c,{submitId:"btnSendResetPwd",isBusy:s(t).isBusy,caption:a.$t(n?"auth.webauthn.send_recovery_link":"auth.forms.send_password_reset_link"),showCancelButton:!0,cancelLandingView:"login"},null,8,["isBusy","caption"])],32),i(d)]),_:1},8,["title","punchline"])}}};export{C as default}; diff --git a/public/build/assets/Reset-C9UQ-9Xw.js b/public/build/assets/Reset-BCtRvP_c.js similarity index 96% rename from public/build/assets/Reset-C9UQ-9Xw.js rename to public/build/assets/Reset-BCtRvP_c.js index 264388d8..bfaa1977 100644 --- a/public/build/assets/Reset-C9UQ-9Xw.js +++ b/public/build/assets/Reset-BCtRvP_c.js @@ -1 +1 @@ -import{b as B,u as b,$ as R,r as h,d as E,a1 as N,e as s,f as i,k as l,p as c,h as C,m as d,i as t,l as m,j as v,t as P,C as L}from"./app-CYV6HkYG.js";import{F as $}from"./Form-DWTCaq3y.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const D={__name:"Reset",setup(x){const a=B();b();const p=R(),u=h(!0),e=E(new $({email:p.query.email,password:"",password_confirmation:"",token:p.query.token}));function f(n){e.password_confirmation=e.password,e.post("/user/password/reset",{returnError:!0}).then(o=>{e.password="",e.password_confirmation="",u.value=!1,a.success({text:o.data.message,duration:-1})}).catch(o=>{o.response.data.resetFailed?a.alert({text:o.response.data.resetFailed,duration:-1}):o.response.status!==422&&a.error(o)})}return N(()=>{a.clear()}),(n,o)=>{const w=s("FormField"),_=s("FormPasswordField"),F=s("FieldError"),k=s("FormButtons"),y=s("RouterLink"),V=s("VueFooter"),g=s("FormWrapper");return i(),l(g,{title:n.$t("auth.forms.new_password")},{default:c(()=>[C("form",{onSubmit:L(f,["prevent"]),onKeydown:o[2]||(o[2]=r=>t(e).onKeydown(r))},[d(w,{modelValue:t(e).email,"onUpdate:modelValue":o[0]||(o[0]=r=>t(e).email=r),isDisabled:!0,fieldName:"email",fieldError:t(e).errors.get("email"),label:"auth.forms.email",autofocus:""},null,8,["modelValue","fieldError"]),d(_,{modelValue:t(e).password,"onUpdate:modelValue":o[1]||(o[1]=r=>t(e).password=r),fieldName:"password",fieldError:t(e).errors.get("password"),autocomplete:"new-password",showRules:!0,label:"auth.forms.new_password"},null,8,["modelValue","fieldError"]),t(e).errors.get("token")!=null?(i(),l(F,{key:0,error:t(e).errors.get("token"),field:t(e).token},null,8,["error","field"])):m("",!0),t(u)?(i(),l(k,{key:1,submitId:"btnResetPwd",isBusy:t(e).isBusy,caption:n.$t("auth.forms.change_password"),showCancelButton:!0,cancelLandingView:"login"},null,8,["isBusy","caption"])):m("",!0),t(u)?m("",!0):(i(),l(y,{key:2,id:"btnContinue",to:{name:"accounts"},class:"button is-link"},{default:c(()=>[v(P(n.$t("commons.continue")),1)]),_:1}))],32),d(V)]),_:1},8,["title"])}}};export{D as default}; +import{b as B,u as b,$ as R,r as h,d as E,a1 as N,e as s,f as i,k as l,p as c,h as C,m as d,i as t,l as m,j as v,t as P,C as L}from"./app-CeOdx_TG.js";import{F as $}from"./Form-BSfNB4q6.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const D={__name:"Reset",setup(x){const a=B();b();const p=R(),u=h(!0),e=E(new $({email:p.query.email,password:"",password_confirmation:"",token:p.query.token}));function f(n){e.password_confirmation=e.password,e.post("/user/password/reset",{returnError:!0}).then(o=>{e.password="",e.password_confirmation="",u.value=!1,a.success({text:o.data.message,duration:-1})}).catch(o=>{o.response.data.resetFailed?a.alert({text:o.response.data.resetFailed,duration:-1}):o.response.status!==422&&a.error(o)})}return N(()=>{a.clear()}),(n,o)=>{const w=s("FormField"),_=s("FormPasswordField"),F=s("FieldError"),k=s("FormButtons"),y=s("RouterLink"),V=s("VueFooter"),g=s("FormWrapper");return i(),l(g,{title:n.$t("auth.forms.new_password")},{default:c(()=>[C("form",{onSubmit:L(f,["prevent"]),onKeydown:o[2]||(o[2]=r=>t(e).onKeydown(r))},[d(w,{modelValue:t(e).email,"onUpdate:modelValue":o[0]||(o[0]=r=>t(e).email=r),isDisabled:!0,fieldName:"email",fieldError:t(e).errors.get("email"),label:"auth.forms.email",autofocus:""},null,8,["modelValue","fieldError"]),d(_,{modelValue:t(e).password,"onUpdate:modelValue":o[1]||(o[1]=r=>t(e).password=r),fieldName:"password",fieldError:t(e).errors.get("password"),autocomplete:"new-password",showRules:!0,label:"auth.forms.new_password"},null,8,["modelValue","fieldError"]),t(e).errors.get("token")!=null?(i(),l(F,{key:0,error:t(e).errors.get("token"),field:t(e).token},null,8,["error","field"])):m("",!0),t(u)?(i(),l(k,{key:1,submitId:"btnResetPwd",isBusy:t(e).isBusy,caption:n.$t("auth.forms.change_password"),showCancelButton:!0,cancelLandingView:"login"},null,8,["isBusy","caption"])):m("",!0),t(u)?m("",!0):(i(),l(y,{key:2,id:"btnContinue",to:{name:"accounts"},class:"button is-link"},{default:c(()=>[v(P(n.$t("commons.continue")),1)]),_:1}))],32),d(V)]),_:1},8,["title"])}}};export{D as default}; diff --git a/public/build/assets/SearchBox-BN15Yvrb.js b/public/build/assets/SearchBox-DXIAZhpY.js similarity index 95% rename from public/build/assets/SearchBox-BN15Yvrb.js rename to public/build/assets/SearchBox-DXIAZhpY.js index 58696d5f..82244b51 100644 --- a/public/build/assets/SearchBox-BN15Yvrb.js +++ b/public/build/assets/SearchBox-DXIAZhpY.js @@ -1 +1 @@ -import{r as d,o as u,v as h,e as m,f as n,g as c,h as a,n as k,k as p}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const y={role:"search",class:"field"},f={class:"control has-icons-right"},v=["aria-label","title","placeholder","value"],g={class:"icon is-small is-right"},w=["title"],b={__name:"SearchBox",props:{keyword:String,hasNoBackground:{type:Boolean,default:!1},placeholder:String},setup(t){const s=d(null);u(()=>{document.addEventListener("keydown",r)}),h(()=>{document.removeEventListener("keydown",r)});function r(e){var o;e.key==="f"&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),(o=s.value)==null||o.focus())}return(e,o)=>{const i=m("FontAwesomeIcon");return n(),c("div",y,[a("div",f,[a("input",{ref_key:"searchInput",ref:s,id:"txtSearch",type:"search",tabindex:"1","aria-label":e.$t("commons.search"),title:e.$t("commons.search"),placeholder:t.placeholder,class:k(["input is-rounded is-search",{"has-no-background":t.hasNoBackground}]),value:t.keyword,onKeyup:o[0]||(o[0]=l=>e.$emit("update:keyword",l.target.value))},null,42,v),a("span",g,[t.keyword!=""?(n(),c("button",{key:0,id:"btnClearSearch",tabindex:"1",title:e.$t("commons.clear_search"),class:"clear-selection delete",onClick:o[1]||(o[1]=l=>e.$emit("update:keyword",""))},null,8,w)):(n(),p(i,{key:1,icon:["fas","search"]}))])])])}}};export{b as _}; +import{r as d,o as u,v as h,e as m,f as n,g as c,h as a,n as k,k as p}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const y={role:"search",class:"field"},f={class:"control has-icons-right"},v=["aria-label","title","placeholder","value"],g={class:"icon is-small is-right"},w=["title"],b={__name:"SearchBox",props:{keyword:String,hasNoBackground:{type:Boolean,default:!1},placeholder:String},setup(t){const s=d(null);u(()=>{document.addEventListener("keydown",r)}),h(()=>{document.removeEventListener("keydown",r)});function r(e){var o;e.key==="f"&&(e.ctrlKey||e.metaKey)&&(e.preventDefault(),(o=s.value)==null||o.focus())}return(e,o)=>{const i=m("FontAwesomeIcon");return n(),c("div",y,[a("div",f,[a("input",{ref_key:"searchInput",ref:s,id:"txtSearch",type:"search",tabindex:"1","aria-label":e.$t("commons.search"),title:e.$t("commons.search"),placeholder:t.placeholder,class:k(["input is-rounded is-search",{"has-no-background":t.hasNoBackground}]),value:t.keyword,onKeyup:o[0]||(o[0]=l=>e.$emit("update:keyword",l.target.value))},null,42,v),a("span",g,[t.keyword!=""?(n(),c("button",{key:0,id:"btnClearSearch",tabindex:"1",title:e.$t("commons.clear_search"),class:"clear-selection delete",onClick:o[1]||(o[1]=l=>e.$emit("update:keyword",""))},null,8,w)):(n(),p(i,{key:1,icon:["fas","search"]}))])])])}}};export{b as _}; diff --git a/public/build/assets/SettingTabs-QG_9mr1s.js b/public/build/assets/SettingTabs-CH0cOPVM.js similarity index 93% rename from public/build/assets/SettingTabs-QG_9mr1s.js rename to public/build/assets/SettingTabs-CH0cOPVM.js index 54bd90eb..55051d08 100644 --- a/public/build/assets/SettingTabs-QG_9mr1s.js +++ b/public/build/assets/SettingTabs-CH0cOPVM.js @@ -1 +1 @@ -import{r as m,e as n,f as t,g as s,m as a,p as i,h as o,F as v,E as _,i as h,n as g,j as w,t as k}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const f={class:"options-header"},b={class:"tabs is-centered is-fullwidth"},R={__name:"SettingTabs",props:{activeTab:{type:String,default:""}},setup(r){const c=m([{name:"settings.options",view:"settings.options",id:"lnkTabOptions"},{name:"settings.account",view:"settings.account",id:"lnkTabAccount"},{name:"settings.oauth",view:"settings.oauth.tokens",id:"lnkTabOAuth"},{name:"settings.webauthn",view:"settings.webauthn.devices",id:"lnkTabWebauthn"}]),l=r;return(u,T)=>{const d=n("RouterLink"),p=n("ResponsiveWidthWrapper");return t(),s("div",f,[a(p,null,{default:i(()=>[o("div",b,[o("ul",null,[(t(!0),s(v,null,_(h(c),e=>(t(),s("li",{key:e.view,class:g({"is-active":e.view===l.activeTab})},[a(d,{id:e.id,to:{name:e.view}},{default:i(()=>[w(k(u.$t(e.name)),1)]),_:2},1032,["id","to"])],2))),128))])])]),_:1})])}}};export{R as _}; +import{r as m,e as n,f as t,g as s,m as a,p as i,h as o,F as v,E as _,i as h,n as g,j as w,t as k}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const f={class:"options-header"},b={class:"tabs is-centered is-fullwidth"},R={__name:"SettingTabs",props:{activeTab:{type:String,default:""}},setup(r){const c=m([{name:"settings.options",view:"settings.options",id:"lnkTabOptions"},{name:"settings.account",view:"settings.account",id:"lnkTabAccount"},{name:"settings.oauth",view:"settings.oauth.tokens",id:"lnkTabOAuth"},{name:"settings.webauthn",view:"settings.webauthn.devices",id:"lnkTabWebauthn"}]),l=r;return(u,T)=>{const d=n("RouterLink"),p=n("ResponsiveWidthWrapper");return t(),s("div",f,[a(p,null,{default:i(()=>[o("div",b,[o("ul",null,[(t(!0),s(v,null,_(h(c),e=>(t(),s("li",{key:e.view,class:g({"is-active":e.view===l.activeTab})},[a(d,{id:e.id,to:{name:e.view}},{default:i(()=>[w(k(u.$t(e.name)),1)]),_:2},1032,["id","to"])],2))),128))])])]),_:1})])}}};export{R as _}; diff --git a/public/build/assets/Spinner-DAB1mDqh.js b/public/build/assets/Spinner-BwxI0ALn.js similarity index 94% rename from public/build/assets/Spinner-DAB1mDqh.js rename to public/build/assets/Spinner-BwxI0ALn.js index 417e93d2..8fb11e2b 100644 --- a/public/build/assets/Spinner-DAB1mDqh.js +++ b/public/build/assets/Spinner-BwxI0ALn.js @@ -1 +1 @@ -import{a6 as p,e as l,f as n,g as t,h as e,m as a,t as c,l as r,k as d}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const _={key:0},m={key:0,class:"spinner-container"},y={class:"spinner-wrapper"},f={id:"icnSpinnerFull",class:"is-size-1 spinner"},u={key:1,class:"spinner-overlay-container"},h={class:"spinner-wrapper"},v={id:"icnSpinnerFull",class:"is-size-1 spinner"},g={key:3,class:"has-text-centered mt-6"},k={id:"icnSpinner",class:"is-size-4"},S={__name:"Spinner",props:{isVisible:Boolean,type:{type:String,default:"inline"},message:{type:String,default:"commons.generating_otp"}},setup(s){return(o,w)=>{const i=l("FontAwesomeIcon");return s.isVisible?(n(),t("div",_,[s.type=="fullscreen"?(n(),t("div",m,[e("div",y,[e("span",f,[a(i,{icon:["fas","spinner"],spin:""})]),e("span",null,c(o.$t(s.message)),1)])])):r("",!0),s.type=="fullscreen-overlay"?(n(),t("div",u,[e("div",h,[e("span",v,[a(i,{icon:["fas","spinner"],spin:""})]),e("span",null,c(o.$t(s.message)),1)])])):s.type=="raw"?(n(),d(i,{key:2,icon:["fas","spinner"],spin:""})):(n(),t("div",g,[e("span",k,[a(i,{icon:["fas","spinner"],spin:""})])]))])):r("",!0)}}},V=p(S,[["__scopeId","data-v-247a4fa7"]]);export{V as S}; +import{a6 as p,e as l,f as n,g as t,h as e,m as a,t as c,l as r,k as d}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const _={key:0},m={key:0,class:"spinner-container"},y={class:"spinner-wrapper"},f={id:"icnSpinnerFull",class:"is-size-1 spinner"},u={key:1,class:"spinner-overlay-container"},h={class:"spinner-wrapper"},v={id:"icnSpinnerFull",class:"is-size-1 spinner"},g={key:3,class:"has-text-centered mt-6"},k={id:"icnSpinner",class:"is-size-4"},S={__name:"Spinner",props:{isVisible:Boolean,type:{type:String,default:"inline"},message:{type:String,default:"commons.generating_otp"}},setup(s){return(o,w)=>{const i=l("FontAwesomeIcon");return s.isVisible?(n(),t("div",_,[s.type=="fullscreen"?(n(),t("div",m,[e("div",y,[e("span",f,[a(i,{icon:["fas","spinner"],spin:""})]),e("span",null,c(o.$t(s.message)),1)])])):r("",!0),s.type=="fullscreen-overlay"?(n(),t("div",u,[e("div",h,[e("span",v,[a(i,{icon:["fas","spinner"],spin:""})]),e("span",null,c(o.$t(s.message)),1)])])):s.type=="raw"?(n(),d(i,{key:2,icon:["fas","spinner"],spin:""})):(n(),t("div",g,[e("span",k,[a(i,{icon:["fas","spinner"],spin:""})])]))])):r("",!0)}}},V=p(S,[["__scopeId","data-v-247a4fa7"]]);export{V as S}; diff --git a/public/build/assets/Start-mHRwuU4_.js b/public/build/assets/Start-Db0pVskV.js similarity index 96% rename from public/build/assets/Start-mHRwuU4_.js rename to public/build/assets/Start-Db0pVskV.js index 949cb46d..8eb32911 100644 --- a/public/build/assets/Start-mHRwuU4_.js +++ b/public/build/assets/Start-Db0pVskV.js @@ -1 +1 @@ -import{u as V,a as x,b as A,c as E,r as w,d as N,o as R,e as l,f as a,g as d,h as t,n as S,i as o,j as r,t as s,w as C,k as B,l as m,m as k,p as _}from"./app-CYV6HkYG.js";import{F as U}from"./Form-DWTCaq3y.js";import{u as K}from"./bus-9R_lUvV0.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const Q={class:"container has-text-centered"},T={class:"columns quick-uploader"},D=t("br",null,null,-1),M={class:"column is-full quick-uploader-button"},j={class:"quick-uploader-centerer"},z={class:"column is-full"},G={class:"block light-or-darker"},H={key:0,class:"block has-text-link"},J={class:"block has-text-link"},O={class:"block has-text-link"},Z={__name:"Start",setup(P){const f=V(),u=x(),b=K(),g=A(),h=E(),p=w(null),c=w(null),i=N(new U({qrcode:null,inputFormat:"fileUpload"}));function v(){i.clear(),i.qrcode=p.value.files[0],i.upload("/api/v1/qrcode/decode",{returnError:!0}).then(e=>{e.data.data.slice(0,33).toLowerCase()==="otpauth-migration://offline?data="?(b.migrationUri=e.data.data,f.push({name:"importAccounts"})):(b.decodedUri=e.data.data,f.push({name:"createAccount"}))}).catch(e=>{e.response.status!==422&&g.alert({text:e.response.data.message})})}function $(){f.push({name:"capture"})}return R(()=>{u.preferences.useDirectCapture&&u.preferences.defaultCaptureMode==="upload"&&c.value.click()}),(e,n)=>{const F=l("FieldError"),q=l("RouterLink"),I=l("ButtonBackCloseCancel"),L=l("VueFooter");return a(),d("div",Q,[t("div",T,[t("div",{class:S(["column is-full quick-uploader-header",{"is-invisible":o(h).count!==0}])},[r(s(e.$t("twofaccounts.no_account_here")),1),D,r(" "+s(e.$t("twofaccounts.add_first_account")),1)],2),t("div",M,[t("div",j,[o(u).preferences.useBasicQrcodeReader?(a(),d("label",{key:0,role:"button",tabindex:"0",class:"button is-link is-medium is-rounded is-main",ref_key:"qrcodeInputLabel",ref:c,onKeyup:n[0]||(n[0]=C(y=>o(c).click(),["enter"]))},[t("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:v,ref_key:"qrcodeInput",ref:p},null,544),r(" "+s(e.$t("twofaccounts.forms.upload_qrcode")),1)],544)):(a(),d("button",{key:1,class:"button is-link is-medium is-rounded is-main",onClick:n[1]||(n[1]=y=>$())},s(e.$t("twofaccounts.forms.scan_qrcode")),1))]),o(i).errors.hasAny("qrcode")?(a(),B(F,{key:0,error:o(i).errors.get("qrcode"),field:"qrcode"},null,8,["error"])):m("",!0)]),t("div",z,[t("div",G,s(e.$t("twofaccounts.forms.alternative_methods")),1),o(u).preferences.useBasicQrcodeReader?m("",!0):(a(),d("div",H,[t("label",{role:"button",tabindex:"0",class:"button is-link is-outlined is-rounded",ref_key:"qrcodeInputLabel",ref:c,onKeyup:n[2]||(n[2]=C(y=>o(c).click(),["enter"]))},[t("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:v,ref_key:"qrcodeInput",ref:p},null,544),r(" "+s(e.$t("twofaccounts.forms.upload_qrcode")),1)],544)])),t("div",J,[k(q,{class:"button is-link is-outlined is-rounded",to:{name:"createAccount"}},{default:_(()=>[r(s(e.$t("twofaccounts.forms.use_advanced_form")),1)]),_:1})]),t("div",O,[k(q,{id:"btnImport",class:"button is-link is-outlined is-rounded",to:{name:"importAccounts"}},{default:_(()=>[r(s(e.$t("twofaccounts.import.import")),1)]),_:1})])])]),k(L,{showButtons:!0},{default:_(()=>[o(h).isEmpty?m("",!0):(a(),B(I,{key:0,returnTo:{name:"accounts"},action:"back"}))]),_:1})])}}};export{Z as default}; +import{u as V,a as x,b as A,c as E,r as w,d as N,o as R,e as l,f as a,g as d,h as t,n as S,i as o,j as r,t as s,w as C,k as B,l as m,m as k,p as _}from"./app-CeOdx_TG.js";import{F as U}from"./Form-BSfNB4q6.js";import{u as K}from"./bus-Sx3kCjbz.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const Q={class:"container has-text-centered"},T={class:"columns quick-uploader"},D=t("br",null,null,-1),M={class:"column is-full quick-uploader-button"},j={class:"quick-uploader-centerer"},z={class:"column is-full"},G={class:"block light-or-darker"},H={key:0,class:"block has-text-link"},J={class:"block has-text-link"},O={class:"block has-text-link"},Z={__name:"Start",setup(P){const f=V(),u=x(),b=K(),g=A(),h=E(),p=w(null),c=w(null),i=N(new U({qrcode:null,inputFormat:"fileUpload"}));function v(){i.clear(),i.qrcode=p.value.files[0],i.upload("/api/v1/qrcode/decode",{returnError:!0}).then(e=>{e.data.data.slice(0,33).toLowerCase()==="otpauth-migration://offline?data="?(b.migrationUri=e.data.data,f.push({name:"importAccounts"})):(b.decodedUri=e.data.data,f.push({name:"createAccount"}))}).catch(e=>{e.response.status!==422&&g.alert({text:e.response.data.message})})}function $(){f.push({name:"capture"})}return R(()=>{u.preferences.useDirectCapture&&u.preferences.defaultCaptureMode==="upload"&&c.value.click()}),(e,n)=>{const F=l("FieldError"),q=l("RouterLink"),I=l("ButtonBackCloseCancel"),L=l("VueFooter");return a(),d("div",Q,[t("div",T,[t("div",{class:S(["column is-full quick-uploader-header",{"is-invisible":o(h).count!==0}])},[r(s(e.$t("twofaccounts.no_account_here")),1),D,r(" "+s(e.$t("twofaccounts.add_first_account")),1)],2),t("div",M,[t("div",j,[o(u).preferences.useBasicQrcodeReader?(a(),d("label",{key:0,role:"button",tabindex:"0",class:"button is-link is-medium is-rounded is-main",ref_key:"qrcodeInputLabel",ref:c,onKeyup:n[0]||(n[0]=C(y=>o(c).click(),["enter"]))},[t("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:v,ref_key:"qrcodeInput",ref:p},null,544),r(" "+s(e.$t("twofaccounts.forms.upload_qrcode")),1)],544)):(a(),d("button",{key:1,class:"button is-link is-medium is-rounded is-main",onClick:n[1]||(n[1]=y=>$())},s(e.$t("twofaccounts.forms.scan_qrcode")),1))]),o(i).errors.hasAny("qrcode")?(a(),B(F,{key:0,error:o(i).errors.get("qrcode"),field:"qrcode"},null,8,["error"])):m("",!0)]),t("div",z,[t("div",G,s(e.$t("twofaccounts.forms.alternative_methods")),1),o(u).preferences.useBasicQrcodeReader?m("",!0):(a(),d("div",H,[t("label",{role:"button",tabindex:"0",class:"button is-link is-outlined is-rounded",ref_key:"qrcodeInputLabel",ref:c,onKeyup:n[2]||(n[2]=C(y=>o(c).click(),["enter"]))},[t("input",{"aria-hidden":"true",tabindex:"-1",class:"file-input",type:"file",accept:"image/*",onChange:v,ref_key:"qrcodeInput",ref:p},null,544),r(" "+s(e.$t("twofaccounts.forms.upload_qrcode")),1)],544)])),t("div",J,[k(q,{class:"button is-link is-outlined is-rounded",to:{name:"createAccount"}},{default:_(()=>[r(s(e.$t("twofaccounts.forms.use_advanced_form")),1)]),_:1})]),t("div",O,[k(q,{id:"btnImport",class:"button is-link is-outlined is-rounded",to:{name:"importAccounts"}},{default:_(()=>[r(s(e.$t("twofaccounts.import.import")),1)]),_:1})])])]),k(L,{showButtons:!0},{default:_(()=>[o(h).isEmpty?m("",!0):(a(),B(I,{key:0,returnTo:{name:"accounts"},action:"back"}))]),_:1})])}}};export{Z as default}; diff --git a/public/build/assets/Users-DjvKWsO3.js b/public/build/assets/Users-CVnBSsgh.js similarity index 95% rename from public/build/assets/Users-DjvKWsO3.js rename to public/build/assets/Users-CVnBSsgh.js index 7a8cedbc..7a58af5c 100644 --- a/public/build/assets/Users-DjvKWsO3.js +++ b/public/build/assets/Users-CVnBSsgh.js @@ -1 +1 @@ -import{_ as j}from"./AdminTabs-Bl1-NjaF.js";import{R as I,b as N,a2 as S,r as k,x as $,o as T,I as R,a1 as E,e as p,f as u,g as m,m as n,h as t,p as h,t as i,j as B,i as r,D as O,F as W,E as D,U as F,n as y,l as x}from"./app-CYV6HkYG.js";import{S as M}from"./Spinner-DAB1mDqh.js";import{_ as Z}from"./SearchBox-BN15Yvrb.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const q={class:"options-tabs"},G={class:"title is-4 has-text-grey-light"},H={class:"is-size-7-mobile"},J={class:"mb-6 mt-3"},K={class:"columns"},P={class:"column pb-0"},Q={class:"level is-mobile mb-0"},X={class:"level-item has-text-centered is-justify-content-end"},Y={class:"subtitle is-7"},ee={class:"level-item has-text-centered is-justify-content-start"},se={class:"buttons"},te={key:0},ae={class:"has-ellipsis"},oe={class:"is-block has-ellipsis is-family-primary is-size-6 is-size-7-mobile has-text-grey"},ne={class:"tags mt-2"},ie={class:"ml-3"},le={key:1,class:"mt-4 pl-3"},he={__name:"Users",setup(re){const A=I("2fauth"),w=N(),z=S(A.prefix+"returnTo","accounts"),f=k([]),a=k(""),g=k(!1),C=$(()=>f.value.filter(e=>{let s=e.name.toLowerCase().includes(d.value.keywords)||e.email.toLowerCase().includes(d.value.keywords);return d.value.admin!=null&&(s=s&&e.is_admin==d.value.admin),d.value.oauth!=null&&(s=s&&e.oauth_provider==d.value.oauth),s})),d=$(()=>{const e={admin:void 0,oauth:void 0,keywords:a.value.toLowerCase()},s=a.value.toLowerCase().split(" "),c=/admin:([01])/,_=/oauth:([a-zA-Z0-9])/;return s.forEach(l=>{l.match(c)&&(e.admin=parseInt(l.replace(c,"$1")),e.keywords=e.keywords.replace(l,"").trim()),l.match(_)&&(e.oauth=l.replace(_,"$1"),e.keywords=e.keywords.replace(l,"").trim())}),e});T(()=>{L()});function b(e){const s=/admin:([01])/,c=/oauth:([a-zA-Z0-9]*)/;a.value.match(s)&&e.match(s)?a.value=a.value.replace(s,e):d.value.oauth!=null&&e.match(c)?a.value=a.value.replace(c,e):a.value=a.value?a.value+" "+e:e}function L(){g.value=!0,R.getAll({returnError:!0}).then(e=>{f.value=e.data}).catch(e=>{w.error(e)}).finally(()=>{g.value=!1})}return E(e=>{e.name.startsWith("admin.")||w.clear()}),(e,s)=>{const c=p("FontAwesomeIcon"),_=p("RouterLink"),l=p("ButtonBackCloseCancel"),U=p("VueFooter"),V=p("FormWrapper");return u(),m("div",null,[n(j,{activeTab:"admin.users"}),t("div",q,[n(V,null,{default:h(()=>[t("h4",G,i(e.$t("admin.users")),1),t("div",H,i(e.$t("admin.users_legend")),1),t("div",J,[n(_,{class:"is-link mt-5",to:{name:"admin.createUser"}},{default:h(()=>[n(c,{icon:["fas","plus-circle"]}),B(" "+i(e.$t("admin.create_new_user")),1)]),_:1},8,["to"])]),t("div",K,[t("div",P,[n(Z,{keyword:r(a),"onUpdate:keyword":s[0]||(s[0]=o=>O(a)?a.value=o:null),hasNoBackground:!0,placeholder:e.$t("admin.search_user_placeholder")},null,8,["keyword","placeholder"])])]),t("div",Q,[t("div",X,[t("p",Y,i(e.$t("admin.quick_filters_colons")),1)]),t("div",ee,[t("div",se,[t("button",{class:"button is-small is-ghost p-0",onClick:s[1]||(s[1]=o=>b("admin:1"))},"admin"),t("button",{class:"button is-small is-ghost p-0",onClick:s[2]||(s[2]=o=>b("oauth:github"))},"github"),t("button",{class:"button is-small is-ghost p-0",onClick:s[3]||(s[3]=o=>b("oauth:openid"))},"openId")])])]),r(C).length>0?(u(),m("div",te,[(u(!0),m(W,null,D(r(C),o=>(u(),m("div",{key:o.id,class:"list-item is-size-5 is-size-6-mobile is-flex is-justify-content-space-between"},[t("div",ae,[t("span",null,i(o.name),1),t("span",oe,i(o.email),1),n(r(F),null,{default:h(({mode:v})=>[t("div",ne,[o.is_admin?(u(),m("span",{key:0,class:y(["tag is-rounded has-text-warning-dark",v=="dark"?"has-background-black-bis":"has-background-grey-lighter"])},"admin",2)):x("",!0),o.oauth_provider?(u(),m("span",{key:1,class:y(["tag is-rounded has-text-grey",v=="dark"?"has-background-black-bis":"has-background-grey-lighter"])},"oauth: "+i(o.oauth_provider),3)):x("",!0)])]),_:2},1024)]),t("div",ie,[n(r(F),null,{default:h(({mode:v})=>[n(_,{to:{name:"admin.manageUser",params:{userId:o.id}},class:y(["button is-small has-normal-radius",{"is-dark":v=="dark"}]),title:e.$t("commons.manage")},{default:h(()=>[B(i(e.$t("commons.manage")),1)]),_:2},1032,["to","class","title"])]),_:2},1024)])]))),128))])):(u(),m("div",le,i(e.$t("commons.no_result")),1)),n(M,{isVisible:r(g)&&r(f).length===0},null,8,["isVisible"]),n(U,{showButtons:!0},{default:h(()=>[n(l,{returnTo:{name:r(z)},action:"close"},null,8,["returnTo"])]),_:1})]),_:1})])])}}};export{he as default}; +import{_ as j}from"./AdminTabs-CH16Y5aI.js";import{R as I,b as N,a2 as S,r as k,x as $,o as T,I as R,a1 as E,e as p,f as u,g as m,m as n,h as t,p as h,t as i,j as B,i as r,D as O,F as W,E as D,U as F,n as y,l as x}from"./app-CeOdx_TG.js";import{S as M}from"./Spinner-BwxI0ALn.js";import{_ as Z}from"./SearchBox-DXIAZhpY.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const q={class:"options-tabs"},G={class:"title is-4 has-text-grey-light"},H={class:"is-size-7-mobile"},J={class:"mb-6 mt-3"},K={class:"columns"},P={class:"column pb-0"},Q={class:"level is-mobile mb-0"},X={class:"level-item has-text-centered is-justify-content-end"},Y={class:"subtitle is-7"},ee={class:"level-item has-text-centered is-justify-content-start"},se={class:"buttons"},te={key:0},ae={class:"has-ellipsis"},oe={class:"is-block has-ellipsis is-family-primary is-size-6 is-size-7-mobile has-text-grey"},ne={class:"tags mt-2"},ie={class:"ml-3"},le={key:1,class:"mt-4 pl-3"},he={__name:"Users",setup(re){const A=I("2fauth"),w=N(),z=S(A.prefix+"returnTo","accounts"),f=k([]),a=k(""),g=k(!1),C=$(()=>f.value.filter(e=>{let s=e.name.toLowerCase().includes(d.value.keywords)||e.email.toLowerCase().includes(d.value.keywords);return d.value.admin!=null&&(s=s&&e.is_admin==d.value.admin),d.value.oauth!=null&&(s=s&&e.oauth_provider==d.value.oauth),s})),d=$(()=>{const e={admin:void 0,oauth:void 0,keywords:a.value.toLowerCase()},s=a.value.toLowerCase().split(" "),c=/admin:([01])/,_=/oauth:([a-zA-Z0-9])/;return s.forEach(l=>{l.match(c)&&(e.admin=parseInt(l.replace(c,"$1")),e.keywords=e.keywords.replace(l,"").trim()),l.match(_)&&(e.oauth=l.replace(_,"$1"),e.keywords=e.keywords.replace(l,"").trim())}),e});T(()=>{L()});function b(e){const s=/admin:([01])/,c=/oauth:([a-zA-Z0-9]*)/;a.value.match(s)&&e.match(s)?a.value=a.value.replace(s,e):d.value.oauth!=null&&e.match(c)?a.value=a.value.replace(c,e):a.value=a.value?a.value+" "+e:e}function L(){g.value=!0,R.getAll({returnError:!0}).then(e=>{f.value=e.data}).catch(e=>{w.error(e)}).finally(()=>{g.value=!1})}return E(e=>{e.name.startsWith("admin.")||w.clear()}),(e,s)=>{const c=p("FontAwesomeIcon"),_=p("RouterLink"),l=p("ButtonBackCloseCancel"),U=p("VueFooter"),V=p("FormWrapper");return u(),m("div",null,[n(j,{activeTab:"admin.users"}),t("div",q,[n(V,null,{default:h(()=>[t("h4",G,i(e.$t("admin.users")),1),t("div",H,i(e.$t("admin.users_legend")),1),t("div",J,[n(_,{class:"is-link mt-5",to:{name:"admin.createUser"}},{default:h(()=>[n(c,{icon:["fas","plus-circle"]}),B(" "+i(e.$t("admin.create_new_user")),1)]),_:1},8,["to"])]),t("div",K,[t("div",P,[n(Z,{keyword:r(a),"onUpdate:keyword":s[0]||(s[0]=o=>O(a)?a.value=o:null),hasNoBackground:!0,placeholder:e.$t("admin.search_user_placeholder")},null,8,["keyword","placeholder"])])]),t("div",Q,[t("div",X,[t("p",Y,i(e.$t("admin.quick_filters_colons")),1)]),t("div",ee,[t("div",se,[t("button",{class:"button is-small is-ghost p-0",onClick:s[1]||(s[1]=o=>b("admin:1"))},"admin"),t("button",{class:"button is-small is-ghost p-0",onClick:s[2]||(s[2]=o=>b("oauth:github"))},"github"),t("button",{class:"button is-small is-ghost p-0",onClick:s[3]||(s[3]=o=>b("oauth:openid"))},"openId")])])]),r(C).length>0?(u(),m("div",te,[(u(!0),m(W,null,D(r(C),o=>(u(),m("div",{key:o.id,class:"list-item is-size-5 is-size-6-mobile is-flex is-justify-content-space-between"},[t("div",ae,[t("span",null,i(o.name),1),t("span",oe,i(o.email),1),n(r(F),null,{default:h(({mode:v})=>[t("div",ne,[o.is_admin?(u(),m("span",{key:0,class:y(["tag is-rounded has-text-warning-dark",v=="dark"?"has-background-black-bis":"has-background-grey-lighter"])},"admin",2)):x("",!0),o.oauth_provider?(u(),m("span",{key:1,class:y(["tag is-rounded has-text-grey",v=="dark"?"has-background-black-bis":"has-background-grey-lighter"])},"oauth: "+i(o.oauth_provider),3)):x("",!0)])]),_:2},1024)]),t("div",ie,[n(r(F),null,{default:h(({mode:v})=>[n(_,{to:{name:"admin.manageUser",params:{userId:o.id}},class:y(["button is-small has-normal-radius",{"is-dark":v=="dark"}]),title:e.$t("commons.manage")},{default:h(()=>[B(i(e.$t("commons.manage")),1)]),_:2},1032,["to","class","title"])]),_:2},1024)])]))),128))])):(u(),m("div",le,i(e.$t("commons.no_result")),1)),n(M,{isVisible:r(g)&&r(f).length===0},null,8,["isVisible"]),n(U,{showButtons:!0},{default:h(()=>[n(l,{returnTo:{name:r(z)},action:"close"},null,8,["returnTo"])]),_:1})]),_:1})])])}}};export{he as default}; diff --git a/public/build/assets/WebAuthn-C_jvKAY0.js b/public/build/assets/WebAuthn-C8Ep1BLK.js similarity index 95% rename from public/build/assets/WebAuthn-C_jvKAY0.js rename to public/build/assets/WebAuthn-C8Ep1BLK.js index 92277420..7ba00109 100644 --- a/public/build/assets/WebAuthn-C_jvKAY0.js +++ b/public/build/assets/WebAuthn-C8Ep1BLK.js @@ -1 +1 @@ -import{R as z,a as A,S as L,b as M,u as U,a2 as E,r as k,x as H,o as I,s as R,I as b,a1 as j,e as _,f as c,g as h,m as r,h as s,p as v,i as t,t as a,l as g,w as K,j as C,F as J,E as P,U as q,n as G,H as u}from"./app-CYV6HkYG.js";import{_ as Q}from"./SettingTabs-QG_9mr1s.js";import{w as X}from"./webauthnService-CtkX6mue.js";import{S as Y}from"./Spinner-DAB1mDqh.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const Z={class:"options-tabs"},ee={key:0,class:"notification is-warning has-text-centered"},te=["innerHTML"],se={class:"title is-4 has-text-grey-light"},ne={class:"is-size-7-mobile"},ae={class:"mt-3"},oe={key:2,class:"field"},ie=["onClick","title"],re={class:"mt-2 is-size-7 is-pulled-right"},ue={class:"title is-4 pt-6 has-text-grey-light"},le={class:"field"},me={__name:"WebAuthn",setup(ce){const S=z("2fauth"),o=A(),y=L(),n=M(),x=U(),W=E(S.prefix+"returnTo","accounts"),i=k([]),f=k(!1),p=H(()=>y.enableSso&&y.useSsoOnly||o.authenticated_by_proxy);I(()=>{V()}),R(()=>o.preferences.useWebauthnOnly,()=>{b.updatePreference("useWebauthnOnly",o.preferences.useWebauthnOnly).then(e=>{n.success({text:u("settings.forms.setting_saved")})})});function w(){if(p.value==!0)return n.warn({text:u("errors.unsupported_with_reverseproxy")}),!1;X.register().then(e=>{x.push({name:"settings.webauthn.editCredential",params:{credentialId:JSON.parse(e.config.data).id}})}).catch(e=>{var l;"webauthn"in e?e.name=="is-warning"?n.warn({text:u(e.message)}):n.alert({text:u(e.message)}):((l=e.response)==null?void 0:l.status)===422?n.alert({text:e.response.data.message}):n.error(e)})}function $(e){confirm(u("auth.confirm.revoke_device"))&&b.revokeWebauthnDevice(e).then(l=>{i.value=i.value.filter(m=>m.id!==e),i.value.length==0&&(o.preferences.useWebauthnOnly=!1),n.success({text:u("auth.webauthn.device_revoked")})})}function F(e){return e.alias?e.alias:u("auth.webauthn.my_device")+" (#"+e.id.substring(0,10)+")"}function V(){f.value=!0,b.getWebauthnDevices({returnError:!0}).then(e=>{i.value=e.data}).catch(e=>{e.response.status===405||n.error(e)}).finally(()=>{f.value=!1})}return j(e=>{e.name.startsWith("settings.")||n.clear()}),(e,l)=>{const m=_("FontAwesomeIcon"),B=_("FormCheckbox"),O=_("ButtonBackCloseCancel"),T=_("VueFooter"),N=_("FormWrapper");return c(),h("div",null,[r(Q,{activeTab:"settings.webauthn.devices"},null,8,["activeTab"]),s("div",Z,[r(N,null,{default:v(()=>[t(p)&&t(o).oauth_provider?(c(),h("div",ee,a(e.$t("auth.sso_only_x_settings_are_disabled",{auth_method:"WebAuthn"})),1)):g("",!0),t(p)&&t(o).authenticated_by_proxy?(c(),h("div",{key:1,class:"notification is-warning has-text-centered",innerHTML:e.$t("auth.auth_handled_by_proxy")},null,8,te)):g("",!0),s("h4",se,a(e.$t("auth.webauthn.security_devices")),1),s("div",ne,a(e.$t("auth.webauthn.security_devices_legend")),1),s("div",ae,[s("a",{tabindex:"0",onClick:w,onKeyup:K(w,["enter"])},[r(m,{icon:["fas","plus-circle"]}),C(" "+a(e.$t("auth.webauthn.register_a_new_device")),1)],32)]),t(i).length>0?(c(),h("div",oe,[(c(!0),h(J,null,P(t(i),d=>(c(),h("div",{key:d.id,class:"group-item is-size-5 is-size-6-mobile"},[C(a(F(d))+" ",1),r(t(q),null,{default:v(({mode:D})=>[s("button",{class:G(["button tag is-pulled-right",D==="dark"?"is-dark":"is-white"]),onClick:he=>$(d.id),title:e.$t("settings.revoke")},a(e.$t("settings.revoke")),11,ie)]),_:2},1024)]))),128)),s("div",re,a(e.$t("auth.webauthn.revoking_a_device_is_permanent")),1)])):g("",!0),r(Y,{isVisible:t(f)&&t(i).length===0},null,8,["isVisible"]),s("h4",ue,a(e.$t("auth.webauthn.options")),1),s("div",le,a(e.$t("auth.webauthn.need_a_security_device_to_enable_options")),1),s("form",null,[r(B,{modelValue:t(o).preferences.useWebauthnOnly,"onUpdate:modelValue":l[0]||(l[0]=d=>t(o).preferences.useWebauthnOnly=d),fieldName:"useWebauthnOnly",label:"auth.webauthn.use_webauthn_only.label",help:"auth.webauthn.use_webauthn_only.help",isDisabled:t(p)||t(i).length===0},null,8,["modelValue","isDisabled"])]),r(T,{showButtons:!0},{default:v(()=>[r(O,{returnTo:{name:t(W)},action:"close"},null,8,["returnTo"])]),_:1})]),_:1})])])}}};export{me as default}; +import{R as z,a as A,S as L,b as M,u as U,a2 as E,r as k,x as H,o as I,s as R,I as b,a1 as j,e as _,f as c,g as h,m as r,h as s,p as v,i as t,t as a,l as g,w as K,j as C,F as J,E as P,U as q,n as G,H as u}from"./app-CeOdx_TG.js";import{_ as Q}from"./SettingTabs-CH0cOPVM.js";import{w as X}from"./webauthnService-3N-iRQ3u.js";import{S as Y}from"./Spinner-BwxI0ALn.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const Z={class:"options-tabs"},ee={key:0,class:"notification is-warning has-text-centered"},te=["innerHTML"],se={class:"title is-4 has-text-grey-light"},ne={class:"is-size-7-mobile"},ae={class:"mt-3"},oe={key:2,class:"field"},ie=["onClick","title"],re={class:"mt-2 is-size-7 is-pulled-right"},ue={class:"title is-4 pt-6 has-text-grey-light"},le={class:"field"},me={__name:"WebAuthn",setup(ce){const S=z("2fauth"),o=A(),y=L(),n=M(),x=U(),W=E(S.prefix+"returnTo","accounts"),i=k([]),f=k(!1),p=H(()=>y.enableSso&&y.useSsoOnly||o.authenticated_by_proxy);I(()=>{V()}),R(()=>o.preferences.useWebauthnOnly,()=>{b.updatePreference("useWebauthnOnly",o.preferences.useWebauthnOnly).then(e=>{n.success({text:u("settings.forms.setting_saved")})})});function w(){if(p.value==!0)return n.warn({text:u("errors.unsupported_with_reverseproxy")}),!1;X.register().then(e=>{x.push({name:"settings.webauthn.editCredential",params:{credentialId:JSON.parse(e.config.data).id}})}).catch(e=>{var l;"webauthn"in e?e.name=="is-warning"?n.warn({text:u(e.message)}):n.alert({text:u(e.message)}):((l=e.response)==null?void 0:l.status)===422?n.alert({text:e.response.data.message}):n.error(e)})}function $(e){confirm(u("auth.confirm.revoke_device"))&&b.revokeWebauthnDevice(e).then(l=>{i.value=i.value.filter(m=>m.id!==e),i.value.length==0&&(o.preferences.useWebauthnOnly=!1),n.success({text:u("auth.webauthn.device_revoked")})})}function F(e){return e.alias?e.alias:u("auth.webauthn.my_device")+" (#"+e.id.substring(0,10)+")"}function V(){f.value=!0,b.getWebauthnDevices({returnError:!0}).then(e=>{i.value=e.data}).catch(e=>{e.response.status===405||n.error(e)}).finally(()=>{f.value=!1})}return j(e=>{e.name.startsWith("settings.")||n.clear()}),(e,l)=>{const m=_("FontAwesomeIcon"),B=_("FormCheckbox"),O=_("ButtonBackCloseCancel"),T=_("VueFooter"),N=_("FormWrapper");return c(),h("div",null,[r(Q,{activeTab:"settings.webauthn.devices"},null,8,["activeTab"]),s("div",Z,[r(N,null,{default:v(()=>[t(p)&&t(o).oauth_provider?(c(),h("div",ee,a(e.$t("auth.sso_only_x_settings_are_disabled",{auth_method:"WebAuthn"})),1)):g("",!0),t(p)&&t(o).authenticated_by_proxy?(c(),h("div",{key:1,class:"notification is-warning has-text-centered",innerHTML:e.$t("auth.auth_handled_by_proxy")},null,8,te)):g("",!0),s("h4",se,a(e.$t("auth.webauthn.security_devices")),1),s("div",ne,a(e.$t("auth.webauthn.security_devices_legend")),1),s("div",ae,[s("a",{tabindex:"0",onClick:w,onKeyup:K(w,["enter"])},[r(m,{icon:["fas","plus-circle"]}),C(" "+a(e.$t("auth.webauthn.register_a_new_device")),1)],32)]),t(i).length>0?(c(),h("div",oe,[(c(!0),h(J,null,P(t(i),d=>(c(),h("div",{key:d.id,class:"group-item is-size-5 is-size-6-mobile"},[C(a(F(d))+" ",1),r(t(q),null,{default:v(({mode:D})=>[s("button",{class:G(["button tag is-pulled-right",D==="dark"?"is-dark":"is-white"]),onClick:he=>$(d.id),title:e.$t("settings.revoke")},a(e.$t("settings.revoke")),11,ie)]),_:2},1024)]))),128)),s("div",re,a(e.$t("auth.webauthn.revoking_a_device_is_permanent")),1)])):g("",!0),r(Y,{isVisible:t(f)&&t(i).length===0},null,8,["isVisible"]),s("h4",ue,a(e.$t("auth.webauthn.options")),1),s("div",le,a(e.$t("auth.webauthn.need_a_security_device_to_enable_options")),1),s("form",null,[r(B,{modelValue:t(o).preferences.useWebauthnOnly,"onUpdate:modelValue":l[0]||(l[0]=d=>t(o).preferences.useWebauthnOnly=d),fieldName:"useWebauthnOnly",label:"auth.webauthn.use_webauthn_only.label",help:"auth.webauthn.use_webauthn_only.help",isDisabled:t(p)||t(i).length===0},null,8,["modelValue","isDisabled"])]),r(T,{showButtons:!0},{default:v(()=>[r(O,{returnTo:{name:t(W)},action:"close"},null,8,["returnTo"])]),_:1})]),_:1})])])}}};export{me as default}; diff --git a/public/build/assets/app-CYV6HkYG.js b/public/build/assets/app-CeOdx_TG.js similarity index 98% rename from public/build/assets/app-CYV6HkYG.js rename to public/build/assets/app-CeOdx_TG.js index e9a19ac8..8f0db578 100644 --- a/public/build/assets/app-CYV6HkYG.js +++ b/public/build/assets/app-CeOdx_TG.js @@ -1,6 +1,6 @@ function __vite__mapDeps(indexes) { if (!__vite__mapDeps.viteFileDeps) { - __vite__mapDeps.viteFileDeps = ["./Start-mHRwuU4_.js","./Form-DWTCaq3y.js","./bus-9R_lUvV0.js","./Capture-CfKxVMuO.js","./Spinner-DAB1mDqh.js","./Spinner-DQLRB1dd.css","./QrContentDisplay-BGd7upKu.js","./Accounts-Dd3ykjhR.js","./OtpDisplay-rOo0JVMb.js","./SearchBox-BN15Yvrb.js","./CreateUpdate-qewMO0ZY.js","./Import-CZR4vcnj.js","./QRcode-0D9Ppru-.js","./Groups-D5oaRkip.js","./CreateUpdate-D5u6vBmO.js","./Options-OR5uIyQb.js","./SettingTabs-QG_9mr1s.js","./Account-bVws_VSU.js","./OAuth-BS_ppCvb.js","./Edit-7XxRGrC1.js","./WebAuthn-C_jvKAY0.js","./webauthnService-CtkX6mue.js","./AppSetup-CX11T-H5.js","./AdminTabs-Bl1-NjaF.js","./appSettingsUpdater-CrpPSh5Y.js","./CopyButton-CDpmfULX.js","./Auth-CmKqXT21.js","./Users-DjvKWsO3.js","./Create-ISEYWR5R.js","./Manage-D6-VL252.js","./AccessLogViewer-QcCOFAQ5.js","./Access-BUEH-HbX.js","./Login-Dvi0IpzI.js","./Register-BU18ipdH.js","./RequestReset-Cwf_djX8.js","./Reset-C9UQ-9Xw.js","./Recover-CE1NgbrS.js"] + __vite__mapDeps.viteFileDeps = ["./Start-Db0pVskV.js","./Form-BSfNB4q6.js","./bus-Sx3kCjbz.js","./Capture-CjOu-0oN.js","./Spinner-BwxI0ALn.js","./Spinner-DQLRB1dd.css","./QrContentDisplay-CxQyxV0P.js","./Accounts-BKgJPgW4.js","./OtpDisplay-CU1C9yFz.js","./SearchBox-DXIAZhpY.js","./CreateUpdate-CPvMgltX.js","./Import-DzQrPeG3.js","./QRcode-BY72oBwO.js","./Groups-CB6BkpLO.js","./CreateUpdate-Bcq5-Ipn.js","./Options-D3fDNCvX.js","./SettingTabs-CH0cOPVM.js","./Account-D0Vo1CDM.js","./OAuth-dgZCcWlL.js","./Edit-C69CLEW0.js","./WebAuthn-C8Ep1BLK.js","./webauthnService-3N-iRQ3u.js","./AppSetup-CRogn-UO.js","./AdminTabs-CH16Y5aI.js","./appSettingsUpdater-Dgw-hmnk.js","./CopyButton-jPP7GkVs.js","./Auth-C0J9t2T1.js","./Users-CVnBSsgh.js","./Create-Ppjik0Rc.js","./Manage-C0NOcaRv.js","./AccessLogViewer-D5ku7YyO.js","./Access-DPUU_q_e.js","./Login-BBynD8CC.js","./Register-BeDlGULg.js","./RequestReset-63WcW87C.js","./Reset-BCtRvP_c.js","./Recover-ClJ3s80u.js"] } return indexes.map((i) => __vite__mapDeps.viteFileDeps[i]) } @@ -33,7 +33,7 @@ function __vite__mapDeps(indexes) { `)}get[Symbol.toStringTag](){return"AxiosHeaders"}static from(t){return t instanceof this?t:new this(t)}static concat(t,...n){const r=new this(t);return n.forEach(s=>r.set(s)),r}static accessor(t){const r=(this[Xl]=this[Xl]={accessors:{}}).accessors,s=this.prototype;function a(i){const o=pr(i);r[o]||(Z2(s,i),r[o]=!0)}return A.isArray(t)?t.forEach(a):a(t),this}}Ea.accessor(["Content-Type","Content-Length","Accept","Accept-Encoding","User-Agent","Authorization"]);A.reduceDescriptors(Ea.prototype,({value:e},t)=>{let n=t[0].toUpperCase()+t.slice(1);return{get:()=>e,set(r){this[n]=r}}});A.freezeMethods(Ea);const Ht=Ea;function Ua(e,t){const n=this||vo,r=t||n,s=Ht.from(r.headers);let a=r.data;return A.forEach(e,function(o){a=o.call(n,a,s.normalize(),t?t.status:void 0)}),s.normalize(),a}function Uf(e){return!!(e&&e.__CANCEL__)}function Qr(e,t,n){ce.call(this,e??"canceled",ce.ERR_CANCELED,t,n),this.name="CanceledError"}A.inherits(Qr,ce,{__CANCEL__:!0});function eg(e,t,n){const r=n.config.validateStatus;!n.status||!r||r(n.status)?e(n):t(new ce("Request failed with status code "+n.status,[ce.ERR_BAD_REQUEST,ce.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n))}const tg=At.hasStandardBrowserEnv?{write(e,t,n,r,s,a){const i=[e+"="+encodeURIComponent(t)];A.isNumber(n)&&i.push("expires="+new Date(n).toGMTString()),A.isString(r)&&i.push("path="+r),A.isString(s)&&i.push("domain="+s),a===!0&&i.push("secure"),document.cookie=i.join("; ")},read(e){const t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove(e){this.write(e,"",Date.now()-864e5)}}:{write(){},read(){return null},remove(){}};function ng(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)}function rg(e,t){return t?e.replace(/\/?\/$/,"")+"/"+t.replace(/^\/+/,""):e}function Kf(e,t){return e&&!ng(t)?rg(e,t):t}const sg=At.hasStandardBrowserEnv?function(){const t=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");let r;function s(a){let i=a;return t&&(n.setAttribute("href",i),i=n.href),n.setAttribute("href",i),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:n.pathname.charAt(0)==="/"?n.pathname:"/"+n.pathname}}return r=s(window.location.href),function(i){const o=A.isString(i)?s(i):i;return o.protocol===r.protocol&&o.host===r.host}}():function(){return function(){return!0}}();function ag(e){const t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""}function ig(e,t){e=e||10;const n=new Array(e),r=new Array(e);let s=0,a=0,i;return t=t!==void 0?t:1e3,function(l){const u=Date.now(),c=r[a];i||(i=u),n[s]=l,r[s]=u;let f=a,d=0;for(;f!==s;)d+=n[f++],f=f%e;if(s=(s+1)%e,s===a&&(a=(a+1)%e),u-i{const a=s.loaded,i=s.lengthComputable?s.total:void 0,o=a-n,l=r(o),u=a<=i;n=a;const c={loaded:a,total:i,progress:i?a/i:void 0,bytes:o,rate:l||void 0,estimated:l&&i&&u?(i-a)/l:void 0,event:s};c[t?"download":"upload"]=!0,e(c)}}const og=typeof XMLHttpRequest<"u",lg=og&&function(e){return new Promise(function(n,r){let s=e.data;const a=Ht.from(e.headers).normalize();let{responseType:i,withXSRFToken:o}=e,l;function u(){e.cancelToken&&e.cancelToken.unsubscribe(l),e.signal&&e.signal.removeEventListener("abort",l)}let c;if(A.isFormData(s)){if(At.hasStandardBrowserEnv||At.hasStandardBrowserWebWorkerEnv)a.setContentType(!1);else if((c=a.getContentType())!==!1){const[v,..._]=c?c.split(";").map(b=>b.trim()).filter(Boolean):[];a.setContentType([v||"multipart/form-data",..._].join("; "))}}let f=new XMLHttpRequest;if(e.auth){const v=e.auth.username||"",_=e.auth.password?unescape(encodeURIComponent(e.auth.password)):"";a.set("Authorization","Basic "+btoa(v+":"+_))}const d=Kf(e.baseURL,e.url);f.open(e.method.toUpperCase(),zf(d,e.params,e.paramsSerializer),!0),f.timeout=e.timeout;function m(){if(!f)return;const v=Ht.from("getAllResponseHeaders"in f&&f.getAllResponseHeaders()),b={data:!i||i==="text"||i==="json"?f.responseText:f.response,status:f.status,statusText:f.statusText,headers:v,config:e,request:f};eg(function(k){n(k),u()},function(k){r(k),u()},b),f=null}if("onloadend"in f?f.onloadend=m:f.onreadystatechange=function(){!f||f.readyState!==4||f.status===0&&!(f.responseURL&&f.responseURL.indexOf("file:")===0)||setTimeout(m)},f.onabort=function(){f&&(r(new ce("Request aborted",ce.ECONNABORTED,e,f)),f=null)},f.onerror=function(){r(new ce("Network Error",ce.ERR_NETWORK,e,f)),f=null},f.ontimeout=function(){let _=e.timeout?"timeout of "+e.timeout+"ms exceeded":"timeout exceeded";const b=e.transitional||Vf;e.timeoutErrorMessage&&(_=e.timeoutErrorMessage),r(new ce(_,b.clarifyTimeoutError?ce.ETIMEDOUT:ce.ECONNABORTED,e,f)),f=null},At.hasStandardBrowserEnv&&(o&&A.isFunction(o)&&(o=o(e)),o||o!==!1&&sg(d))){const v=e.xsrfHeaderName&&e.xsrfCookieName&&tg.read(e.xsrfCookieName);v&&a.set(e.xsrfHeaderName,v)}s===void 0&&a.setContentType(null),"setRequestHeader"in f&&A.forEach(a.toJSON(),function(_,b){f.setRequestHeader(b,_)}),A.isUndefined(e.withCredentials)||(f.withCredentials=!!e.withCredentials),i&&i!=="json"&&(f.responseType=e.responseType),typeof e.onDownloadProgress=="function"&&f.addEventListener("progress",Ql(e.onDownloadProgress,!0)),typeof e.onUploadProgress=="function"&&f.upload&&f.upload.addEventListener("progress",Ql(e.onUploadProgress)),(e.cancelToken||e.signal)&&(l=v=>{f&&(r(!v||v.type?new Qr(null,e,f):v),f.abort(),f=null)},e.cancelToken&&e.cancelToken.subscribe(l),e.signal&&(e.signal.aborted?l():e.signal.addEventListener("abort",l)));const g=ag(d);if(g&&At.protocols.indexOf(g)===-1){r(new ce("Unsupported protocol "+g+":",ce.ERR_BAD_REQUEST,e));return}f.send(s||null)})},bi={http:M2,xhr:lg};A.forEach(bi,(e,t)=>{if(e){try{Object.defineProperty(e,"name",{value:t})}catch{}Object.defineProperty(e,"adapterName",{value:t})}});const Zl=e=>`- ${e}`,cg=e=>A.isFunction(e)||e===null||e===!1,Wf={getAdapter:e=>{e=A.isArray(e)?e:[e];const{length:t}=e;let n,r;const s={};for(let a=0;a`adapter ${o} `+(l===!1?"is not supported by the environment":"is not available in the build"));let i=t?a.length>1?`since : `+a.map(Zl).join(` `):" "+Zl(a[0]):"as no adapter specified";throw new ce("There is no suitable adapter to dispatch the request "+i,"ERR_NOT_SUPPORT")}return r},adapters:bi};function Ka(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new Qr(null,e)}function ec(e){return Ka(e),e.headers=Ht.from(e.headers),e.data=Ua.call(e,e.transformRequest),["post","put","patch"].indexOf(e.method)!==-1&&e.headers.setContentType("application/x-www-form-urlencoded",!1),Wf.getAdapter(e.adapter||vo.adapter)(e).then(function(r){return Ka(e),r.data=Ua.call(e,e.transformResponse,r),r.headers=Ht.from(r.headers),r},function(r){return Uf(r)||(Ka(e),r&&r.response&&(r.response.data=Ua.call(e,e.transformResponse,r.response),r.response.headers=Ht.from(r.response.headers))),Promise.reject(r)})}const tc=e=>e instanceof Ht?{...e}:e;function Zn(e,t){t=t||{};const n={};function r(u,c,f){return A.isPlainObject(u)&&A.isPlainObject(c)?A.merge.call({caseless:f},u,c):A.isPlainObject(c)?A.merge({},c):A.isArray(c)?c.slice():c}function s(u,c,f){if(A.isUndefined(c)){if(!A.isUndefined(u))return r(void 0,u,f)}else return r(u,c,f)}function a(u,c){if(!A.isUndefined(c))return r(void 0,c)}function i(u,c){if(A.isUndefined(c)){if(!A.isUndefined(u))return r(void 0,u)}else return r(void 0,c)}function o(u,c,f){if(f in t)return r(u,c);if(f in e)return r(void 0,u)}const l={url:a,method:a,data:a,baseURL:i,transformRequest:i,transformResponse:i,paramsSerializer:i,timeout:i,timeoutMessage:i,withCredentials:i,withXSRFToken:i,adapter:i,responseType:i,xsrfCookieName:i,xsrfHeaderName:i,onUploadProgress:i,onDownloadProgress:i,decompress:i,maxContentLength:i,maxBodyLength:i,beforeRedirect:i,transport:i,httpAgent:i,httpsAgent:i,cancelToken:i,socketPath:i,responseEncoding:i,validateStatus:o,headers:(u,c)=>s(tc(u),tc(c),!0)};return A.forEach(Object.keys(Object.assign({},e,t)),function(c){const f=l[c]||s,d=f(e[c],t[c],c);A.isUndefined(d)&&f!==o||(n[c]=d)}),n}const qf="1.6.8",yo={};["object","boolean","number","function","string","symbol"].forEach((e,t)=>{yo[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}});const nc={};yo.transitional=function(t,n,r){function s(a,i){return"[Axios v"+qf+"] Transitional option '"+a+"'"+i+(r?". "+r:"")}return(a,i,o)=>{if(t===!1)throw new ce(s(i," has been removed"+(n?" in "+n:"")),ce.ERR_DEPRECATED);return n&&!nc[i]&&(nc[i]=!0,console.warn(s(i," has been deprecated since v"+n+" and will be removed in the near future"))),t?t(a,i,o):!0}};function ug(e,t,n){if(typeof e!="object")throw new ce("options must be an object",ce.ERR_BAD_OPTION_VALUE);const r=Object.keys(e);let s=r.length;for(;s-- >0;){const a=r[s],i=t[a];if(i){const o=e[a],l=o===void 0||i(o,a,e);if(l!==!0)throw new ce("option "+a+" must be "+l,ce.ERR_BAD_OPTION_VALUE);continue}if(n!==!0)throw new ce("Unknown option "+a,ce.ERR_BAD_OPTION)}}const wi={assertOptions:ug,validators:yo},Kt=wi.validators;class qs{constructor(t){this.defaults=t,this.interceptors={request:new Jl,response:new Jl}}async request(t,n){try{return await this._request(t,n)}catch(r){if(r instanceof Error){let s;Error.captureStackTrace?Error.captureStackTrace(s={}):s=new Error;const a=s.stack?s.stack.replace(/^.+\n/,""):"";r.stack?a&&!String(r.stack).endsWith(a.replace(/^.+\n.+\n/,""))&&(r.stack+=` -`+a):r.stack=a}throw r}}_request(t,n){typeof t=="string"?(n=n||{},n.url=t):n=t||{},n=Zn(this.defaults,n);const{transitional:r,paramsSerializer:s,headers:a}=n;r!==void 0&&wi.assertOptions(r,{silentJSONParsing:Kt.transitional(Kt.boolean),forcedJSONParsing:Kt.transitional(Kt.boolean),clarifyTimeoutError:Kt.transitional(Kt.boolean)},!1),s!=null&&(A.isFunction(s)?n.paramsSerializer={serialize:s}:wi.assertOptions(s,{encode:Kt.function,serialize:Kt.function},!0)),n.method=(n.method||this.defaults.method||"get").toLowerCase();let i=a&&A.merge(a.common,a[n.method]);a&&A.forEach(["delete","get","head","post","put","patch","common"],g=>{delete a[g]}),n.headers=Ht.concat(i,a);const o=[];let l=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(l=l&&v.synchronous,o.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let c,f=0,d;if(!l){const g=[ec.bind(this),void 0];for(g.unshift.apply(g,o),g.push.apply(g,u),d=g.length,c=Promise.resolve(n);f{if(!r._listeners)return;let a=r._listeners.length;for(;a-- >0;)r._listeners[a](s);r._listeners=null}),this.promise.then=s=>{let a;const i=new Promise(o=>{r.subscribe(o),a=o}).then(s);return i.cancel=function(){r.unsubscribe(a)},i},t(function(a,i,o){r.reason||(r.reason=new Qr(a,i,o),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new bo(function(s){t=s}),cancel:t}}}const fg=bo;function dg(e){return function(n){return e.apply(null,n)}}function pg(e){return A.isObject(e)&&e.isAxiosError===!0}const _i={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(_i).forEach(([e,t])=>{_i[t]=e});const mg=_i;function Gf(e){const t=new Is(e),n=Of(Is.prototype.request,t);return A.extend(n,Is.prototype,t,{allOwnKeys:!0}),A.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Gf(Zn(e,s))},n}const Pe=Gf(vo);Pe.Axios=Is;Pe.CanceledError=Qr;Pe.CancelToken=fg;Pe.isCancel=Uf;Pe.VERSION=qf;Pe.toFormData=_a;Pe.AxiosError=ce;Pe.Cancel=Pe.CanceledError;Pe.all=function(t){return Promise.all(t)};Pe.spread=dg;Pe.isAxiosError=pg;Pe.mergeConfig=Zn;Pe.AxiosHeaders=Ht;Pe.formToJSON=e=>Bf(A.isHTMLForm(e)?new FormData(e):e);Pe.getAdapter=Wf.getAdapter;Pe.HttpStatusCode=mg;Pe.default=Pe;function hg(e,t){switch(e.replace("_","-")){case"af":case"af-ZA":case"bn":case"bn-BD":case"bn-IN":case"bg":case"bg-BG":case"ca":case"ca-AD":case"ca-ES":case"ca-FR":case"ca-IT":case"da":case"da-DK":case"de":case"de-AT":case"de-BE":case"de-CH":case"de-DE":case"de-LI":case"de-LU":case"el":case"el-CY":case"el-GR":case"en":case"en-AG":case"en-AU":case"en-BW":case"en-CA":case"en-DK":case"en-GB":case"en-HK":case"en-IE":case"en-IN":case"en-NG":case"en-NZ":case"en-PH":case"en-SG":case"en-US":case"en-ZA":case"en-ZM":case"en-ZW":case"eo":case"eo-US":case"es":case"es-AR":case"es-BO":case"es-CL":case"es-CO":case"es-CR":case"es-CU":case"es-DO":case"es-EC":case"es-ES":case"es-GT":case"es-HN":case"es-MX":case"es-NI":case"es-PA":case"es-PE":case"es-PR":case"es-PY":case"es-SV":case"es-US":case"es-UY":case"es-VE":case"et":case"et-EE":case"eu":case"eu-ES":case"eu-FR":case"fa":case"fa-IR":case"fi":case"fi-FI":case"fo":case"fo-FO":case"fur":case"fur-IT":case"fy":case"fy-DE":case"fy-NL":case"gl":case"gl-ES":case"gu":case"gu-IN":case"ha":case"ha-NG":case"he":case"he-IL":case"hu":case"hu-HU":case"is":case"is-IS":case"it":case"it-CH":case"it-IT":case"ku":case"ku-TR":case"lb":case"lb-LU":case"ml":case"ml-IN":case"mn":case"mn-MN":case"mr":case"mr-IN":case"nah":case"nb":case"nb-NO":case"ne":case"ne-NP":case"nl":case"nl-AW":case"nl-BE":case"nl-NL":case"nn":case"nn-NO":case"no":case"om":case"om-ET":case"om-KE":case"or":case"or-IN":case"pa":case"pa-IN":case"pa-PK":case"pap":case"pap-AN":case"pap-AW":case"pap-CW":case"ps":case"ps-AF":case"pt":case"pt-BR":case"pt-PT":case"so":case"so-DJ":case"so-ET":case"so-KE":case"so-SO":case"sq":case"sq-AL":case"sq-MK":case"sv":case"sv-FI":case"sv-SE":case"sw":case"sw-KE":case"sw-TZ":case"ta":case"ta-IN":case"ta-LK":case"te":case"te-IN":case"tk":case"tk-TM":case"ur":case"ur-IN":case"ur-PK":case"zu":case"zu-ZA":return t===1?0:1;case"am":case"am-ET":case"bh":case"fil":case"fil-PH":case"fr":case"fr-BE":case"fr-CA":case"fr-CH":case"fr-FR":case"fr-LU":case"gun":case"hi":case"hi-IN":case"hy":case"hy-AM":case"ln":case"ln-CD":case"mg":case"mg-MG":case"nso":case"nso-ZA":case"ti":case"ti-ER":case"ti-ET":case"wa":case"wa-BE":case"xbr":return t===0||t===1?0:1;case"be":case"be-BY":case"bs":case"bs-BA":case"hr":case"hr-HR":case"ru":case"ru-RU":case"ru-UA":case"sr":case"sr-ME":case"sr-RS":case"uk":case"uk-UA":return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"cs":case"cs-CZ":case"sk":case"sk-SK":return t==1?0:t>=2&&t<=4?1:2;case"ga":case"ga-IE":return t==1?0:t==2?1:2;case"lt":case"lt-LT":return t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2;case"sl":case"sl-SI":return t%100==1?0:t%100==2?1:t%100==3||t%100==4?2:3;case"mk":case"mk-MK":return t%10==1?0:1;case"mt":case"mt-MT":return t==1?0:t==0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3;case"lv":case"lv-LV":return t==0?0:t%10==1&&t%100!=11?1:2;case"pl":case"pl-PL":return t==1?0:t%10>=2&&t%10<=4&&(t%100<12||t%100>14)?1:2;case"cy":case"cy-GB":return t==1?0:t==2?1:t==8||t==11?2:3;case"ro":case"ro-RO":return t==1?0:t==0||t%100>0&&t%100<20?1:2;case"ar":case"ar-AE":case"ar-BH":case"ar-DZ":case"ar-EG":case"ar-IN":case"ar-IQ":case"ar-JO":case"ar-KW":case"ar-LB":case"ar-LY":case"ar-MA":case"ar-OM":case"ar-QA":case"ar-SA":case"ar-SD":case"ar-SS":case"ar-SY":case"ar-TN":case"ar-YE":return t==0?0:t==1?1:t==2?2:t%100>=3&&t%100<=10?3:t%100>=11&&t%100<=99?4:5;default:return 0}}function gg(e,t,n){let r=e.split("|");const s=vg(r,t);if(s!==null)return s.trim();r=bg(r);const a=hg(n,t);return r.length===1||!r[a]?r[0]:r[a]}function vg(e,t){for(const n of e){let r=yg(n,t);if(r!==null)return r}return null}function yg(e,t){const n=e.match(/^[\{\[]([^\[\]\{\}]*)[\}\]](.*)/s)||[];if(n.length!==3)return null;const r=n[1],s=n[2];if(r.includes(",")){let[a,i]=r.split(",");if(i==="*"&&t>=parseFloat(a))return s;if(a==="*"&&t<=parseFloat(i))return s;if(t>=parseFloat(a)&&t<=parseFloat(i))return s}return parseFloat(r)===t?s:null}function bg(e){return e.map(t=>t.replace(/^[\{\[]([^\[\]\{\}]*)[\}\]]/,""))}const Wa=(e,t,n={})=>{try{return e(t)}catch{return n}},qa=async(e,t={})=>{try{return(await e).default||t}catch{return t}};var wg={VITE_LARAVEL_VUE_I18N_HAS_PHP:"true",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};function rc(e){return e||_g()||Eg()}function _g(){return typeof process<"u"}function Eg(){return typeof wg<"u"}const Fn=typeof window>"u";let Mn=null;const sc={lang:!Fn&&document.documentElement.lang?document.documentElement.lang.replace("-","_"):null,fallbackLang:"en",fallbackMissingTranslations:!1,resolve:e=>new Promise(t=>t({default:{}})),onLoad:e=>{}},Sg={shared:!0};function ac(e,t=!1){return Xe.getSharedInstance().loadLanguageAsync(e,t)}function Ye(e,t={}){return Xe.getSharedInstance().trans(e,t)}function qy(){return Xe.getSharedInstance().getActiveLanguage()}const xg={install(e,t={}){t={...Sg,...t};const n=t.shared?Xe.getSharedInstance(t,!0):new Xe(t);e.config.globalProperties.$t=(r,s)=>n.trans(r,s),e.config.globalProperties.$tChoice=(r,s,a)=>n.transChoice(r,s,a),e.provide("i18n",n)}};class Xe{constructor(t={}){this.activeMessages=Nt({}),this.fallbackMessages=Nt({}),this.reset=()=>{Xe.loaded=[],this.options=sc;for(const[n]of Object.entries(this.activeMessages))this.activeMessages[n]=null;this===Mn&&(Mn=null)},this.options={...sc,...t},this.options.fallbackMissingTranslations?this.loadFallbackLanguage():this.load()}setOptions(t={},n=!1){return this.options={...this.options,...t},n&&this.load(),this}load(){this[Fn?"loadLanguage":"loadLanguageAsync"](this.getActiveLanguage())}loadFallbackLanguage(){if(!Fn){this.resolveLangAsync(this.options.resolve,this.options.fallbackLang).then(({default:n})=>{this.applyFallbackLanguage(this.options.fallbackLang,n),this.load()});return}const{default:t}=this.resolveLang(this.options.resolve,this.options.fallbackLang);this.applyFallbackLanguage(this.options.fallbackLang,t),this.loadLanguage(this.getActiveLanguage())}loadLanguage(t,n=!1){const r=Xe.loaded.find(a=>a.lang===t);if(r){this.setLanguage(r);return}const{default:s}=this.resolveLang(this.options.resolve,t);this.applyLanguage(t,s,n,this.loadLanguage)}loadLanguageAsync(t,n=!1,r=!1){var a;r||((a=this.abortController)==null||a.abort(),this.abortController=new AbortController);const s=Xe.loaded.find(i=>i.lang===t);return s?Promise.resolve(this.setLanguage(s)):new Promise((i,o)=>{this.abortController.signal.addEventListener("abort",()=>{i()}),this.resolveLangAsync(this.options.resolve,t).then(({default:l})=>{i(this.applyLanguage(t,l,n,this.loadLanguageAsync))})})}resolveLang(t,n,r={}){return Object.keys(r).length||(r=Wa(t,n)),rc(Fn)?{default:{...r,...Wa(t,`php_${n}`)}}:{default:r}}async resolveLangAsync(t,n){let r=Wa(t,n);if(!(r instanceof Promise))return this.resolveLang(t,n,r);if(rc(Fn)){const s=await qa(t(`php_${n}`)),a=await qa(r);return new Promise(i=>i({default:{...s,...a}}))}return new Promise(async s=>s({default:await qa(r)}))}applyLanguage(t,n,r=!1,s){if(Object.keys(n).length<1){if(/[-_]/g.test(t)&&!r)return s.call(this,t.replace(/[-_]/g,i=>i==="-"?"_":"-"),!0,!0);if(t!==this.options.fallbackLang)return s.call(this,this.options.fallbackLang,!1,!0)}const a={lang:t,messages:n};return this.addLoadedLang(a),this.setLanguage(a)}applyFallbackLanguage(t,n){for(const[r,s]of Object.entries(n))this.fallbackMessages[r]=s;this.addLoadedLang({lang:this.options.fallbackLang,messages:n})}addLoadedLang(t){const n=Xe.loaded.findIndex(r=>r.lang===t.lang);if(n!==-1){Xe.loaded[n]=t;return}Xe.loaded.push(t)}setLanguage({lang:t,messages:n}){Fn||document.documentElement.setAttribute("lang",t.replace("_","-")),this.options.lang=t;for(const[r,s]of Object.entries(n))this.activeMessages[r]=s;for(const[r,s]of Object.entries(this.fallbackMessages))(!this.isValid(n[r])||this.activeMessages[r]===r)&&(this.activeMessages[r]=s);for(const[r]of Object.entries(this.activeMessages))!this.isValid(n[r])&&!this.isValid(this.fallbackMessages[r])&&(this.activeMessages[r]=null);return this.options.onLoad(t),t}getActiveLanguage(){return this.options.lang||this.options.fallbackLang}isLoaded(t){return t??(t=this.getActiveLanguage()),Xe.loaded.some(n=>n.lang.replace(/[-_]/g,"-")===t.replace(/[-_]/g,"-"))}trans(t,n={}){return this.wTrans(t,n).value}wTrans(t,n={}){return eo(()=>{let r=this.findTranslation(t);this.isValid(r)||(r=this.findTranslation(t.replace(/\//g,"."))),this.activeMessages[t]=this.isValid(r)?r:t}),ne(()=>this.makeReplacements(this.activeMessages[t],n))}transChoice(t,n,r={}){return this.wTransChoice(t,n,r).value}wTransChoice(t,n,r={}){const s=this.wTrans(t,r);return r.count=n.toString(),ne(()=>this.makeReplacements(gg(s.value,n,this.options.lang),r))}findTranslation(t){if(this.isValid(this.activeMessages[t]))return this.activeMessages[t];if(this.activeMessages[`${t}.0`]!==void 0){const r=Object.entries(this.activeMessages).filter(s=>s[0].startsWith(`${t}.`)).map(s=>s[1]);return Nt(r)}return this.activeMessages[t]}makeReplacements(t,n){const r=s=>s.charAt(0).toUpperCase()+s.slice(1);return Object.entries(n||[]).sort((s,a)=>s[0].length>=a[0].length?-1:1).forEach(([s,a])=>{a=a.toString(),t=(t||"").replace(new RegExp(`:${s}`,"g"),a).replace(new RegExp(`:${s.toUpperCase()}`,"g"),a.toUpperCase()).replace(new RegExp(`:${r(s)}`,"g"),r(a))}),t}isValid(t){return t!=null}static getSharedInstance(t,n=!1){return(Mn==null?void 0:Mn.setOptions(t,n))||(Mn=new Xe(t))}}Xe.loaded=[];const{notify:In}=Zu(),yt=Jr({id:"notify",state:()=>({err:null,message:null,originalMessage:null,debug:null}),getters:{},actions:{parseError(e){this.$reset,this.err=e,e.response?e.response.status===407?(this.message=Ye("errors.auth_proxy_failed"),this.originalMessage=Ye("errors.auth_proxy_failed_legend")):e.response.status===403?(this.message=Ye("errors.unauthorized"),this.originalMessage=Ye("errors.unauthorized_legend")):e.response.data&&(this.message=e.response.data.message,this.originalMessage=e.response.data.originalMessage??null,this.debug=e.response.data.debug??null):(this.message=e.message,this.debug=e.stack??null)},notFound(e){er.push({name:"404"})},error(e){this.parseError(e),er.push({name:"genericError"})},info(e){In({type:"is-info",...e})},success(e){In({type:"is-success",...e})},warn(e){In({type:"is-warning",...e})},alert(e){In({type:"is-danger",...e})},action(e){In({type:"is-dark",...e})},clear(){In({clean:!0})}}}),Ln=(e="api")=>{let t;const n=window.appConfig.subdirectory;e==="web"?t=n+"/":t=n+"/api/v1";const r=Pe.create({baseURL:t,headers:{"X-Requested-With":"XMLHttpRequest","Content-Type":"application/json"},withCredentials:!0});return r.interceptors.response.use(s=>s,async function(s){const a=s.config;return s.response.status===419&&!a._retried?(a._retried=!0,await Pe.get("/refresh-csrf"),r.request(a)):(s.response.status===418&&qe().logout({kicked:!0}),s.response&&[407].includes(s.response.status)?(yt().error(s),new Promise(()=>{})):s.config.hasOwnProperty("returnError")&&s.config.returnError===!0||(s.response&&[401].includes(s.response.status)&&qe().tossOut(),s.response.status===422)?Promise.reject(s):s.response.status===404?(yt().notFound(),new Promise(()=>{})):(yt().error(s),new Promise(()=>{})))}),r},Ag=Ln("web"),kg=Ln("api"),Yf={logout(e={}){return Ag.get("/user/logout",{...e})},async getCurrentUser(e={}){return kg.get("/user",{...e})}},Et=Ln("api"),ps=Ln("web"),Cg={getPreferences(e={}){return Et.get("/user/preferences",{...e})},updatePreference(e,t,n={}){return Et.put("/user/preferences/"+e,{value:t},{...n})},getWebauthnDevices(e={}){return ps.get("/webauthn/credentials",{...e})},revokeWebauthnDevice(e,t={}){return ps.delete("/webauthn/credentials/"+e,{...t})},getPersonalAccessTokens(e={}){return ps.get("/oauth/personal-access-tokens",{...e})},deletePersonalAccessToken(e,t={}){return ps.delete("/oauth/personal-access-tokens/"+e,{...t})},getAll(e={}){return Et.get("/users",{...e})},getById(e,t={}){return Et.get("/users/"+e,{...t})},resetPassword(e,t={}){return Et.patch("/users/"+e+"/password/reset",{},{...t})},delete(e,t={}){return Et.delete("/users/"+e,{...t})},promote(e,t,n={}){return Et.patch("/users/"+e+"/promote",t,{...n})},revokePATs(e,t={}){return Et.delete("/users/"+e+"/pats",{...t})},revokeWebauthnCredentials(e,t={}){return Et.delete("/users/"+e+"/credentials",{...t})},getauthentications(e,t=12,n,r={}){return Et.get("/users/"+e+"/authentications?period="+t+(n?"&limit="+n:""),{...r})}};function Dn(e,t){let n;switch(t=t.toString(),e){case"text":n="txt";break;case"button":n="btn";break;case"email":n="eml";break;case"password":n="pwd";break;case"radio":n="rdo";break;case"label":n="lbl";break;default:n="txt";break}return{inputId:n+t[0].toUpperCase()+t.toLowerCase().slice(1)}}function Gy(e,t=!1){const n=qe();if(n.preferences.formatPassword&&e.length>0){const r=Math.ceil(n.preferences.formatPasswordBy<1?e.length*n.preferences.formatPasswordBy:n.preferences.formatPasswordBy),s=e.match(new RegExp(`.{1,${r}}`,"g"));s&&(e=s.join(" "))}return n.preferences.showOtpAsDot&&!t?e.replace(/[0-9]/g,"●"):e}const Be=Ln("api"),ms={getAll(e=!1,t={}){return Be.get("/twofaccounts"+(e?"?withOtp=1":""),{...t})},getByIds(e,t=!1,n={}){return Be.get("/twofaccounts?ids="+e+(t?"&withOtp=1":""),{...n})},get(e,t={}){return Be.get("/twofaccounts/"+e,{...t})},preview(e,t={}){return Be.post("/twofaccounts/preview",{uri:e},{...t})},storeFromUri(e,t={}){return Be.post("/twofaccounts",{uri:e},{...t})},getLogo(e,t={}){return Be.post("/icons/default",{service:e},{...t})},deleteIcon(e,t={}){return Be.delete("/icons/"+e,{...t})},getOtpById(e,t={}){return Be.get("/twofaccounts/"+e+"/otp",{...t})},getOtpByUri(e,t={}){return Be.post("/twofaccounts/otp",{uri:e},{...t})},getOtpByParams(e,t={}){return Be.post("/twofaccounts/otp",e,{...t})},withdraw(e,t={}){return Be.patch("/twofaccounts/withdraw?ids="+e.join(),{...t})},saveOrder(e,t={}){return Be.post("/twofaccounts/reorder",{orderedIds:e},{...t})},batchDelete(e,t={}){return Be.delete("/twofaccounts?ids="+e,{...t})},export(e,t={}){return Be.get("/twofaccounts/export?ids="+e,{...t})},getQrcode(e,t={}){return Be.get("/twofaccounts/"+e+"/qrcode",{...t})},migrate(e,t={}){return Be.post("/twofaccounts/migration",{payload:e,withSecret:!0},{...t})},count(e={}){return Be.get("/twofaccounts/count",{...e})}};var mr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Jf={exports:{}};(function(e,t){(function(n,r){r()})(mr,function(){function n(u,c){return typeof c>"u"?c={autoBom:!1}:typeof c!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),c={autoBom:!c}),c.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,c,f){var d=new XMLHttpRequest;d.open("GET",u),d.responseType="blob",d.onload=function(){l(d.response,c,f)},d.onerror=function(){console.error("could not download file")},d.send()}function s(u){var c=new XMLHttpRequest;c.open("HEAD",u,!1);try{c.send()}catch{}return 200<=c.status&&299>=c.status}function a(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(c)}}var i=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof mr=="object"&&mr.global===mr?mr:void 0,o=i.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),l=i.saveAs||(typeof window!="object"||window!==i?function(){}:"download"in HTMLAnchorElement.prototype&&!o?function(u,c,f){var d=i.URL||i.webkitURL,m=document.createElement("a");c=c||u.name||"download",m.download=c,m.rel="noopener",typeof u=="string"?(m.href=u,m.origin===location.origin?a(m):s(m.href)?r(u,c,f):a(m,m.target="_blank")):(m.href=d.createObjectURL(u),setTimeout(function(){d.revokeObjectURL(m.href)},4e4),setTimeout(function(){a(m)},0))}:"msSaveOrOpenBlob"in navigator?function(u,c,f){if(c=c||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,f),c);else if(s(u))r(u,c,f);else{var d=document.createElement("a");d.href=u,d.target="_blank",setTimeout(function(){a(d)})}}:function(u,c,f,d){if(d=d||open("","_blank"),d&&(d.document.title=d.document.body.innerText="downloading..."),typeof u=="string")return r(u,c,f);var m=u.type==="application/octet-stream",g=/constructor/i.test(i.HTMLElement)||i.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||m&&g||o)&&typeof FileReader<"u"){var _=new FileReader;_.onloadend=function(){var k=_.result;k=v?k:k.replace(/^data:[^;]*;/,"data:attachment/file;"),d?d.location.href=k:location=k,d=null},_.readAsDataURL(u)}else{var b=i.URL||i.webkitURL,y=b.createObjectURL(u);d?d.location=y:location.href=y,d=null,setTimeout(function(){b.revokeObjectURL(y)},4e4)}});i.saveAs=l.saveAs=l,e.exports=l})})(Jf);var Og=Jf.exports;const Xf=Jr({id:"twofaccounts",state:()=>({items:[],selectedIds:[],filter:"",backendWasNewer:!1,fetchedOn:null}),getters:{filtered(e){const t=qe();return e.items.filter(n=>parseInt(t.preferences.activeGroup)>0?((n.service?n.service.toLowerCase().includes(e.filter.toLowerCase()):!1)||n.account.toLowerCase().includes(e.filter.toLowerCase()))&&n.group_id==parseInt(t.preferences.activeGroup):(n.service?n.service.toLowerCase().includes(e.filter.toLowerCase()):!1)||n.account.toLowerCase().includes(e.filter.toLowerCase()))},periods(e){return e.items.filter(t=>t.otp_type=="totp").map(function(t){var n;return{period:t.period,generated_at:(n=t.otp)==null?void 0:n.generated_at}}).filter((t,n,r)=>n===r.findIndex(s=>s.period===t.period)).sort()},orderedIds(e){return e.items.map(t=>t.id)},isEmpty(e){return e.items.length==0},count(e){return e.items.length},filteredCount(e){return e.filtered.length},selectedCount(e){return e.selectedIds.length},hasNoneSelected(e){return e.selectedIds.length==0}},actions:{async fetch(e=!1){Math.floor(Date.now()-this.fetchedOn)>2e3||e?(this.fetchedOn=Date.now(),await ms.getAll(!qe().preferences.getOtpOnRequest).then(r=>{e&&(this.backendWasNewer=r.data.length!==this.items.length,this.items.forEach(s=>{let a=r.data.find(i=>i.id===s.id);if(a==null){this.backendWasNewer=!0;return}for(const i in s)if(i!=="otp"&&s[i]!=a[i]){this.backendWasNewer=!0;return}})),this.items=r.data})):this.backendWasNewer=!1},select(e){for(var t=0;te.id)},selectNone(){this.selectedIds=[]},async deleteSelected(){confirm(Ye("twofaccounts.confirm.delete"))&&this.selectedIds.length>0&&await ms.batchDelete(this.selectedIds.join()).then(e=>{let t=this.items;this.selectedIds.forEach(function(n){t=t.filter(r=>r.id!==n)}),this.items=t,this.selectNone(),yt().success({text:Ye("twofaccounts.accounts_deleted")})})},export(){ms.export(this.selectedIds.join(),{responseType:"blob"}).then(e=>{var t=new Blob([e.data],{type:"application/json;charset=utf-8"});Og.saveAs.saveAs(t,"2fauth_export.json")})},saveOrder(){ms.saveOrder(this.orderedIds)},sortAsc(){this.items.sort(function(e,t){return qe().preferences.sortCaseSensitive?e.service.normalize("NFD").replace(/[\u0300-\u036f]/g,"")>t.service.normalize("NFD").replace(/[\u0300-\u036f]/g,"")?1:-1:e.service.localeCompare(t.service,qe().preferences.lang)}),this.saveOrder()},sortDesc(){this.items.sort(function(e,t){return qe().preferences.sortCaseSensitive?e.service.normalize("NFD").replace(/[\u0300-\u036f]/g,"")t.period==e).map(t=>t.id)}}}),hs=Ln("api"),ic={getAll(){return hs.get("groups")},get(e,t={}){return hs.get("/groups/"+e,{...t})},assign(e,t,n={}){return hs.post("/groups/"+t+"/assign",{ids:e},{...n})},delete(e,t={}){return hs.delete("/groups/"+e,{...t})}},Lg=Jr({id:"groups",state:()=>({items:[],fetchedOn:null}),getters:{current(e){const t=e.items.find(n=>n.id===parseInt(qe().preferences.activeGroup));return t?t.name:Ye("commons.all")},withoutTheAllGroup(e){return e.items.filter(t=>t.id>0)},theAllGroup(e){return e.items.find(t=>t.id==0)},isEmpty(){return this.withoutTheAllGroup.length==0},count(){return this.withoutTheAllGroup.length}},actions:{addOrEdit(e){const t=this.items.findIndex(n=>n.id===parseInt(e.id));t>-1?(this.items[t]=e,yt().success({text:Ye("groups.group_name_saved")})):(this.items.push(e),yt().success({text:Ye("groups.group_successfully_created")}))},async fetch(){Math.floor(Date.now()-this.fetchedOn)>2e3&&(this.fetchedOn=Date.now(),await ic.getAll().then(n=>{this.items=n.data}))},async delete(e){const t=qe();confirm(Ye("groups.confirm.delete"))&&await ic.delete(e).then(n=>{this.items=this.items.filter(r=>r.id!==e),yt().success({text:Ye("groups.group_successfully_deleted")}),parseInt(t.preferences.activeGroup)===e&&(t.preferences.activeGroup=0)})}}}),qe=Jr({id:"user",state:()=>({id:void 0,name:void 0,email:void 0,oauth_provider:void 0,authenticated_by_proxy:void 0,preferences:window.defaultPreferences,isAdmin:!1}),getters:{isAuthenticated(){return this.name!=null}},actions:{async loginAs(e){this.$patch(e),await this.initDataStores(),this.applyUserPrefs()},async initDataStores(){const e=Xf(),t=Lg();this.isAuthenticated?(await e.fetch(),t.fetch()):(e.$reset(),t.$reset())},logout(e={}){const{kicked:t}=e,n=yt();if(this.$2fauth.config.proxyAuth)if(this.$2fauth.config.proxyLogoutUrl)location.assign(this.$2fauth.config.proxyLogoutUrl);else return!1;else Yf.logout({returnError:!0}).then(()=>{t&&(n.clear(),n.warn({text:Ye("auth.autolock_triggered_punchline"),duration:-1})),this.tossOut()}).catch(r=>{r.response.status!==401?n.error(r):this.tossOut()})},tossOut(){this.$reset(),this.initDataStores(),this.applyUserPrefs(),er.push({name:"login"})},applyTheme(){const e=_f({attribute:"data-theme"});e.value=this.preferences.theme=="system"?"auto":this.preferences.theme},applyLanguage(){const{isSupported:e,language:t}=Ef();ac(e?this.preferences.lang=="browser"?t.value.slice(0,2):this.preferences.lang:"en")},applyUserPrefs(){this.applyTheme(),this.applyLanguage()},refreshPreferences(){Cg.getPreferences({returnError:!0}).then(e=>{e.data.forEach(t=>{this.preferences[t.key]=t.value})}).catch(e=>{yt().alert({text:Ye("errors.data_cannot_be_refreshed_from_server")})})}}}),Tg=Object.freeze(Object.defineProperty({__proto__:null,useUserStore:qe},Symbol.toStringTag,{value:"Module"})),Ga=Ln("api"),Pg={getAll(e={}){return Ga.get("/settings",{...e})},update(e,t,n={}){return Ga.put("/settings/"+e,{value:t},{...n})},delete(e,t={}){return Ga.delete("/settings/"+e,{...t})}},Qf=Jr({id:"appSettings",state:()=>({...window.appSettings}),actions:{async fetch(){Pg.getAll({returnError:!0}).then(e=>{e.data.forEach(t=>{this[t.key]=t.value})}).catch(e=>{yt().alert({text:Ye("errors.data_cannot_be_refreshed_from_server")})})}}});async function Te({to:e,next:t,nextMiddleware:n,stores:r}){const{user:s}=r;s.isAuthenticated||await Yf.getCurrentUser({returnError:!0}).then(async a=>{const i=a.data;await s.loginAs({id:i.id,name:i.name,email:i.email,oauth_provider:i.oauth_provider,authenticated_by_proxy:i.authenticated_by_proxy,preferences:i.preferences,isAdmin:i.is_admin})}).catch(a=>{}),s.isAuthenticated?n():t({name:"login"})}async function Nn({to:e,next:t,nextMiddleware:n,stores:r}){const{user:s}=r,{notify:a}=r;if(s.isAdmin)n();else{let i=new Error("unauthorized");i.response.status=403,a.error(i)}}async function Rg({to:e,next:t,nextMiddleware:n,stores:r}){const{twofaccounts:s}=r;s.isEmpty?await s.fetch().then(()=>{s.isEmpty?t({name:"start"}):n()}):n()}function Mg({to:e,next:t,nextMiddleware:n,stores:r}){const{notify:s}=r;s.err==null&&!e.query.err?t({name:"accounts"}):n()}async function Ig({to:e,next:t,nextMiddleware:n,stores:r}){const{appSettings:s}=r;s.disableRegistration?t({name:"notFound"}):n()}function We({to:e,next:t,nextMiddleware:n,stores:r}){const{user:s}=r,a=wf(s.$2fauth.prefix+"returnTo","accounts");a.value=e.name,n()}async function Hn({to:e,next:t,nextMiddleware:n,stores:r}){const{appSettings:s}=r;s.$2fauth.config.proxyAuth?t({name:"accounts"}):n()}const er=k1({history:n1(window.appConfig.subdirectory?window.appConfig.subdirectory:"/"),routes:[{path:"/start",name:"start",component:()=>X(()=>import("./Start-mHRwuU4_.js"),__vite__mapDeps([0,1,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/capture",name:"capture",component:()=>X(()=>import("./Capture-CfKxVMuO.js"),__vite__mapDeps([3,1,4,5,6,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/accounts",name:"accounts",component:()=>X(()=>import("./Accounts-Dd3ykjhR.js"),__vite__mapDeps([7,8,4,5,9,2]),import.meta.url),meta:{middlewares:[Te,Rg,We],watchedByKicker:!0},alias:"/"},{path:"/account/create",name:"createAccount",component:()=>X(()=>import("./CreateUpdate-qewMO0ZY.js"),__vite__mapDeps([10,1,8,4,5,6,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/account/import",name:"importAccounts",component:()=>X(()=>import("./Import-CZR4vcnj.js"),__vite__mapDeps([11,1,8,4,5,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/account/:twofaccountId/edit",name:"editAccount",component:()=>X(()=>import("./CreateUpdate-qewMO0ZY.js"),__vite__mapDeps([10,1,8,4,5,6,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0},props:!0},{path:"/account/:twofaccountId/qrcode",name:"showQRcode",component:()=>X(()=>import("./QRcode-0D9Ppru-.js"),__vite__mapDeps([12,4,5]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/groups",name:"groups",component:()=>X(()=>import("./Groups-D5oaRkip.js"),__vite__mapDeps([13,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0},props:!0},{path:"/group/create",name:"createGroup",component:()=>X(()=>import("./CreateUpdate-D5u6vBmO.js"),__vite__mapDeps([14,1,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/group/:groupId/edit",name:"editGroup",component:()=>X(()=>import("./CreateUpdate-D5u6vBmO.js"),__vite__mapDeps([14,1,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0},props:!0},{path:"/settings/options",name:"settings.options",component:()=>X(()=>import("./Options-OR5uIyQb.js"),__vite__mapDeps([15,16]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0}},{path:"/settings/account",name:"settings.account",component:()=>X(()=>import("./Account-bVws_VSU.js"),__vite__mapDeps([17,1,16]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0}},{path:"/settings/oauth",name:"settings.oauth.tokens",component:()=>X(()=>import("./OAuth-BS_ppCvb.js"),__vite__mapDeps([18,1,16,4,5]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0,props:!0}},{path:"/settings/webauthn/:credentialId/edit",name:"settings.webauthn.editCredential",component:()=>X(()=>import("./Edit-7XxRGrC1.js"),__vite__mapDeps([19,1]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0},props:!0},{path:"/settings/webauthn",name:"settings.webauthn.devices",component:()=>X(()=>import("./WebAuthn-C_jvKAY0.js"),__vite__mapDeps([20,16,21,4,5]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0}},{path:"/admin/app",name:"admin.appSetup",component:()=>X(()=>import("./AppSetup-CX11T-H5.js"),__vite__mapDeps([22,23,24,25]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0}},{path:"/admin/auth",name:"admin.auth",component:()=>X(()=>import("./Auth-CmKqXT21.js"),__vite__mapDeps([26,23,24]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0}},{path:"/admin/users",name:"admin.users",component:()=>X(()=>import("./Users-DjvKWsO3.js"),__vite__mapDeps([27,23,4,5,9]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0}},{path:"/admin/users/create",name:"admin.createUser",component:()=>X(()=>import("./Create-ISEYWR5R.js"),__vite__mapDeps([28,1]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0}},{path:"/admin/users/:userId/manage",name:"admin.manageUser",component:()=>X(()=>import("./Manage-D6-VL252.js"),__vite__mapDeps([29,25,30,9,4,5,2]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0},props:!0},{path:"/admin/logs/:userId/access",name:"admin.logs.access",component:()=>X(()=>import("./Access-BUEH-HbX.js"),__vite__mapDeps([31,30,9,4,5,2]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0},props:!0},{path:"/login",name:"login",component:()=>X(()=>import("./Login-Dvi0IpzI.js"),__vite__mapDeps([32,1,21]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/register",name:"register",component:()=>X(()=>import("./Register-BU18ipdH.js"),__vite__mapDeps([33,1,21]),import.meta.url),meta:{middlewares:[Hn,Ig,We],showAbout:!0}},{path:"/password/request",name:"password.request",component:()=>X(()=>import("./RequestReset-Cwf_djX8.js"),__vite__mapDeps([34,1]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/user/password/reset",name:"password.reset",component:()=>X(()=>import("./Reset-C9UQ-9Xw.js"),__vite__mapDeps([35,1]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/webauthn/lost",name:"webauthn.lost",component:()=>X(()=>import("./RequestReset-Cwf_djX8.js"),__vite__mapDeps([34,1]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/webauthn/recover",name:"webauthn.recover",component:()=>X(()=>import("./Recover-CE1NgbrS.js"),__vite__mapDeps([36,1]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/about",name:"about",component:()=>X(()=>import("./About-BZhNTSAg.js"),[],import.meta.url),meta:{showAbout:!0,watchedByKicker:!0}},{path:"/error",name:"genericError",component:()=>X(()=>import("./Error-B64Etrkn.js"),[],import.meta.url),meta:{middlewares:[Mg],watchedByKicker:!0}},{path:"/404",name:"404",component:()=>X(()=>import("./Error-B64Etrkn.js"),[],import.meta.url),meta:{watchedByKicker:!0},props:!0},{path:"/:pathMatch(.*)*",name:"notFound",component:()=>X(()=>import("./Error-B64Etrkn.js"),[],import.meta.url),meta:{watchedByKicker:!0},props:!0}]});er.beforeEach((e,t,n)=>{const r=e.meta.middlewares,s=qe(),a=Xf(),i=Qf(),o=yt(),c={to:e,from:t,next:n,nextMiddleware:{},stores:{user:s,twofaccounts:a,appSettings:i,notify:o}};if(!r)return n();r[0]({...c,nextMiddleware:Sf(c,r,1)})});er.afterEach((e,t)=>{e.meta.title=Ye("titles."+e.name),document.title=e.meta.title});function oc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function V(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n{delete a[g]}),n.headers=Ht.concat(i,a);const o=[];let l=!0;this.interceptors.request.forEach(function(v){typeof v.runWhen=="function"&&v.runWhen(n)===!1||(l=l&&v.synchronous,o.unshift(v.fulfilled,v.rejected))});const u=[];this.interceptors.response.forEach(function(v){u.push(v.fulfilled,v.rejected)});let c,f=0,d;if(!l){const g=[ec.bind(this),void 0];for(g.unshift.apply(g,o),g.push.apply(g,u),d=g.length,c=Promise.resolve(n);f{if(!r._listeners)return;let a=r._listeners.length;for(;a-- >0;)r._listeners[a](s);r._listeners=null}),this.promise.then=s=>{let a;const i=new Promise(o=>{r.subscribe(o),a=o}).then(s);return i.cancel=function(){r.unsubscribe(a)},i},t(function(a,i,o){r.reason||(r.reason=new Qr(a,i,o),n(r.reason))})}throwIfRequested(){if(this.reason)throw this.reason}subscribe(t){if(this.reason){t(this.reason);return}this._listeners?this._listeners.push(t):this._listeners=[t]}unsubscribe(t){if(!this._listeners)return;const n=this._listeners.indexOf(t);n!==-1&&this._listeners.splice(n,1)}static source(){let t;return{token:new bo(function(s){t=s}),cancel:t}}}const fg=bo;function dg(e){return function(n){return e.apply(null,n)}}function pg(e){return A.isObject(e)&&e.isAxiosError===!0}const _i={Continue:100,SwitchingProtocols:101,Processing:102,EarlyHints:103,Ok:200,Created:201,Accepted:202,NonAuthoritativeInformation:203,NoContent:204,ResetContent:205,PartialContent:206,MultiStatus:207,AlreadyReported:208,ImUsed:226,MultipleChoices:300,MovedPermanently:301,Found:302,SeeOther:303,NotModified:304,UseProxy:305,Unused:306,TemporaryRedirect:307,PermanentRedirect:308,BadRequest:400,Unauthorized:401,PaymentRequired:402,Forbidden:403,NotFound:404,MethodNotAllowed:405,NotAcceptable:406,ProxyAuthenticationRequired:407,RequestTimeout:408,Conflict:409,Gone:410,LengthRequired:411,PreconditionFailed:412,PayloadTooLarge:413,UriTooLong:414,UnsupportedMediaType:415,RangeNotSatisfiable:416,ExpectationFailed:417,ImATeapot:418,MisdirectedRequest:421,UnprocessableEntity:422,Locked:423,FailedDependency:424,TooEarly:425,UpgradeRequired:426,PreconditionRequired:428,TooManyRequests:429,RequestHeaderFieldsTooLarge:431,UnavailableForLegalReasons:451,InternalServerError:500,NotImplemented:501,BadGateway:502,ServiceUnavailable:503,GatewayTimeout:504,HttpVersionNotSupported:505,VariantAlsoNegotiates:506,InsufficientStorage:507,LoopDetected:508,NotExtended:510,NetworkAuthenticationRequired:511};Object.entries(_i).forEach(([e,t])=>{_i[t]=e});const mg=_i;function Gf(e){const t=new Is(e),n=Of(Is.prototype.request,t);return A.extend(n,Is.prototype,t,{allOwnKeys:!0}),A.extend(n,t,null,{allOwnKeys:!0}),n.create=function(s){return Gf(Zn(e,s))},n}const Pe=Gf(vo);Pe.Axios=Is;Pe.CanceledError=Qr;Pe.CancelToken=fg;Pe.isCancel=Uf;Pe.VERSION=qf;Pe.toFormData=_a;Pe.AxiosError=ce;Pe.Cancel=Pe.CanceledError;Pe.all=function(t){return Promise.all(t)};Pe.spread=dg;Pe.isAxiosError=pg;Pe.mergeConfig=Zn;Pe.AxiosHeaders=Ht;Pe.formToJSON=e=>Bf(A.isHTMLForm(e)?new FormData(e):e);Pe.getAdapter=Wf.getAdapter;Pe.HttpStatusCode=mg;Pe.default=Pe;function hg(e,t){switch(e.replace("_","-")){case"af":case"af-ZA":case"bn":case"bn-BD":case"bn-IN":case"bg":case"bg-BG":case"ca":case"ca-AD":case"ca-ES":case"ca-FR":case"ca-IT":case"da":case"da-DK":case"de":case"de-AT":case"de-BE":case"de-CH":case"de-DE":case"de-LI":case"de-LU":case"el":case"el-CY":case"el-GR":case"en":case"en-AG":case"en-AU":case"en-BW":case"en-CA":case"en-DK":case"en-GB":case"en-HK":case"en-IE":case"en-IN":case"en-NG":case"en-NZ":case"en-PH":case"en-SG":case"en-US":case"en-ZA":case"en-ZM":case"en-ZW":case"eo":case"eo-US":case"es":case"es-AR":case"es-BO":case"es-CL":case"es-CO":case"es-CR":case"es-CU":case"es-DO":case"es-EC":case"es-ES":case"es-GT":case"es-HN":case"es-MX":case"es-NI":case"es-PA":case"es-PE":case"es-PR":case"es-PY":case"es-SV":case"es-US":case"es-UY":case"es-VE":case"et":case"et-EE":case"eu":case"eu-ES":case"eu-FR":case"fa":case"fa-IR":case"fi":case"fi-FI":case"fo":case"fo-FO":case"fur":case"fur-IT":case"fy":case"fy-DE":case"fy-NL":case"gl":case"gl-ES":case"gu":case"gu-IN":case"ha":case"ha-NG":case"he":case"he-IL":case"hu":case"hu-HU":case"is":case"is-IS":case"it":case"it-CH":case"it-IT":case"ku":case"ku-TR":case"lb":case"lb-LU":case"ml":case"ml-IN":case"mn":case"mn-MN":case"mr":case"mr-IN":case"nah":case"nb":case"nb-NO":case"ne":case"ne-NP":case"nl":case"nl-AW":case"nl-BE":case"nl-NL":case"nn":case"nn-NO":case"no":case"om":case"om-ET":case"om-KE":case"or":case"or-IN":case"pa":case"pa-IN":case"pa-PK":case"pap":case"pap-AN":case"pap-AW":case"pap-CW":case"ps":case"ps-AF":case"pt":case"pt-BR":case"pt-PT":case"so":case"so-DJ":case"so-ET":case"so-KE":case"so-SO":case"sq":case"sq-AL":case"sq-MK":case"sv":case"sv-FI":case"sv-SE":case"sw":case"sw-KE":case"sw-TZ":case"ta":case"ta-IN":case"ta-LK":case"te":case"te-IN":case"tk":case"tk-TM":case"ur":case"ur-IN":case"ur-PK":case"zu":case"zu-ZA":return t===1?0:1;case"am":case"am-ET":case"bh":case"fil":case"fil-PH":case"fr":case"fr-BE":case"fr-CA":case"fr-CH":case"fr-FR":case"fr-LU":case"gun":case"hi":case"hi-IN":case"hy":case"hy-AM":case"ln":case"ln-CD":case"mg":case"mg-MG":case"nso":case"nso-ZA":case"ti":case"ti-ER":case"ti-ET":case"wa":case"wa-BE":case"xbr":return t===0||t===1?0:1;case"be":case"be-BY":case"bs":case"bs-BA":case"hr":case"hr-HR":case"ru":case"ru-RU":case"ru-UA":case"sr":case"sr-ME":case"sr-RS":case"uk":case"uk-UA":return t%10==1&&t%100!=11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;case"cs":case"cs-CZ":case"sk":case"sk-SK":return t==1?0:t>=2&&t<=4?1:2;case"ga":case"ga-IE":return t==1?0:t==2?1:2;case"lt":case"lt-LT":return t%10==1&&t%100!=11?0:t%10>=2&&(t%100<10||t%100>=20)?1:2;case"sl":case"sl-SI":return t%100==1?0:t%100==2?1:t%100==3||t%100==4?2:3;case"mk":case"mk-MK":return t%10==1?0:1;case"mt":case"mt-MT":return t==1?0:t==0||t%100>1&&t%100<11?1:t%100>10&&t%100<20?2:3;case"lv":case"lv-LV":return t==0?0:t%10==1&&t%100!=11?1:2;case"pl":case"pl-PL":return t==1?0:t%10>=2&&t%10<=4&&(t%100<12||t%100>14)?1:2;case"cy":case"cy-GB":return t==1?0:t==2?1:t==8||t==11?2:3;case"ro":case"ro-RO":return t==1?0:t==0||t%100>0&&t%100<20?1:2;case"ar":case"ar-AE":case"ar-BH":case"ar-DZ":case"ar-EG":case"ar-IN":case"ar-IQ":case"ar-JO":case"ar-KW":case"ar-LB":case"ar-LY":case"ar-MA":case"ar-OM":case"ar-QA":case"ar-SA":case"ar-SD":case"ar-SS":case"ar-SY":case"ar-TN":case"ar-YE":return t==0?0:t==1?1:t==2?2:t%100>=3&&t%100<=10?3:t%100>=11&&t%100<=99?4:5;default:return 0}}function gg(e,t,n){let r=e.split("|");const s=vg(r,t);if(s!==null)return s.trim();r=bg(r);const a=hg(n,t);return r.length===1||!r[a]?r[0]:r[a]}function vg(e,t){for(const n of e){let r=yg(n,t);if(r!==null)return r}return null}function yg(e,t){const n=e.match(/^[\{\[]([^\[\]\{\}]*)[\}\]](.*)/s)||[];if(n.length!==3)return null;const r=n[1],s=n[2];if(r.includes(",")){let[a,i]=r.split(",");if(i==="*"&&t>=parseFloat(a))return s;if(a==="*"&&t<=parseFloat(i))return s;if(t>=parseFloat(a)&&t<=parseFloat(i))return s}return parseFloat(r)===t?s:null}function bg(e){return e.map(t=>t.replace(/^[\{\[]([^\[\]\{\}]*)[\}\]]/,""))}const Wa=(e,t,n={})=>{try{return e(t)}catch{return n}},qa=async(e,t={})=>{try{return(await e).default||t}catch{return t}};var wg={VITE_LARAVEL_VUE_I18N_HAS_PHP:"true",BASE_URL:"./",MODE:"production",DEV:!1,PROD:!0,SSR:!1};function rc(e){return e||_g()||Eg()}function _g(){return typeof process<"u"}function Eg(){return typeof wg<"u"}const Fn=typeof window>"u";let Mn=null;const sc={lang:!Fn&&document.documentElement.lang?document.documentElement.lang.replace("-","_"):null,fallbackLang:"en",fallbackMissingTranslations:!1,resolve:e=>new Promise(t=>t({default:{}})),onLoad:e=>{}},Sg={shared:!0};function ac(e,t=!1){return Xe.getSharedInstance().loadLanguageAsync(e,t)}function Ye(e,t={}){return Xe.getSharedInstance().trans(e,t)}function qy(){return Xe.getSharedInstance().getActiveLanguage()}const xg={install(e,t={}){t={...Sg,...t};const n=t.shared?Xe.getSharedInstance(t,!0):new Xe(t);e.config.globalProperties.$t=(r,s)=>n.trans(r,s),e.config.globalProperties.$tChoice=(r,s,a)=>n.transChoice(r,s,a),e.provide("i18n",n)}};class Xe{constructor(t={}){this.activeMessages=Nt({}),this.fallbackMessages=Nt({}),this.reset=()=>{Xe.loaded=[],this.options=sc;for(const[n]of Object.entries(this.activeMessages))this.activeMessages[n]=null;this===Mn&&(Mn=null)},this.options={...sc,...t},this.options.fallbackMissingTranslations?this.loadFallbackLanguage():this.load()}setOptions(t={},n=!1){return this.options={...this.options,...t},n&&this.load(),this}load(){this[Fn?"loadLanguage":"loadLanguageAsync"](this.getActiveLanguage())}loadFallbackLanguage(){if(!Fn){this.resolveLangAsync(this.options.resolve,this.options.fallbackLang).then(({default:n})=>{this.applyFallbackLanguage(this.options.fallbackLang,n),this.load()});return}const{default:t}=this.resolveLang(this.options.resolve,this.options.fallbackLang);this.applyFallbackLanguage(this.options.fallbackLang,t),this.loadLanguage(this.getActiveLanguage())}loadLanguage(t,n=!1){const r=Xe.loaded.find(a=>a.lang===t);if(r){this.setLanguage(r);return}const{default:s}=this.resolveLang(this.options.resolve,t);this.applyLanguage(t,s,n,this.loadLanguage)}loadLanguageAsync(t,n=!1,r=!1){var a;r||((a=this.abortController)==null||a.abort(),this.abortController=new AbortController);const s=Xe.loaded.find(i=>i.lang===t);return s?Promise.resolve(this.setLanguage(s)):new Promise((i,o)=>{this.abortController.signal.addEventListener("abort",()=>{i()}),this.resolveLangAsync(this.options.resolve,t).then(({default:l})=>{i(this.applyLanguage(t,l,n,this.loadLanguageAsync))})})}resolveLang(t,n,r={}){return Object.keys(r).length||(r=Wa(t,n)),rc(Fn)?{default:{...r,...Wa(t,`php_${n}`)}}:{default:r}}async resolveLangAsync(t,n){let r=Wa(t,n);if(!(r instanceof Promise))return this.resolveLang(t,n,r);if(rc(Fn)){const s=await qa(t(`php_${n}`)),a=await qa(r);return new Promise(i=>i({default:{...s,...a}}))}return new Promise(async s=>s({default:await qa(r)}))}applyLanguage(t,n,r=!1,s){if(Object.keys(n).length<1){if(/[-_]/g.test(t)&&!r)return s.call(this,t.replace(/[-_]/g,i=>i==="-"?"_":"-"),!0,!0);if(t!==this.options.fallbackLang)return s.call(this,this.options.fallbackLang,!1,!0)}const a={lang:t,messages:n};return this.addLoadedLang(a),this.setLanguage(a)}applyFallbackLanguage(t,n){for(const[r,s]of Object.entries(n))this.fallbackMessages[r]=s;this.addLoadedLang({lang:this.options.fallbackLang,messages:n})}addLoadedLang(t){const n=Xe.loaded.findIndex(r=>r.lang===t.lang);if(n!==-1){Xe.loaded[n]=t;return}Xe.loaded.push(t)}setLanguage({lang:t,messages:n}){Fn||document.documentElement.setAttribute("lang",t.replace("_","-")),this.options.lang=t;for(const[r,s]of Object.entries(n))this.activeMessages[r]=s;for(const[r,s]of Object.entries(this.fallbackMessages))(!this.isValid(n[r])||this.activeMessages[r]===r)&&(this.activeMessages[r]=s);for(const[r]of Object.entries(this.activeMessages))!this.isValid(n[r])&&!this.isValid(this.fallbackMessages[r])&&(this.activeMessages[r]=null);return this.options.onLoad(t),t}getActiveLanguage(){return this.options.lang||this.options.fallbackLang}isLoaded(t){return t??(t=this.getActiveLanguage()),Xe.loaded.some(n=>n.lang.replace(/[-_]/g,"-")===t.replace(/[-_]/g,"-"))}trans(t,n={}){return this.wTrans(t,n).value}wTrans(t,n={}){return eo(()=>{let r=this.findTranslation(t);this.isValid(r)||(r=this.findTranslation(t.replace(/\//g,"."))),this.activeMessages[t]=this.isValid(r)?r:t}),ne(()=>this.makeReplacements(this.activeMessages[t],n))}transChoice(t,n,r={}){return this.wTransChoice(t,n,r).value}wTransChoice(t,n,r={}){const s=this.wTrans(t,r);return r.count=n.toString(),ne(()=>this.makeReplacements(gg(s.value,n,this.options.lang),r))}findTranslation(t){if(this.isValid(this.activeMessages[t]))return this.activeMessages[t];if(this.activeMessages[`${t}.0`]!==void 0){const r=Object.entries(this.activeMessages).filter(s=>s[0].startsWith(`${t}.`)).map(s=>s[1]);return Nt(r)}return this.activeMessages[t]}makeReplacements(t,n){const r=s=>s.charAt(0).toUpperCase()+s.slice(1);return Object.entries(n||[]).sort((s,a)=>s[0].length>=a[0].length?-1:1).forEach(([s,a])=>{a=a.toString(),t=(t||"").replace(new RegExp(`:${s}`,"g"),a).replace(new RegExp(`:${s.toUpperCase()}`,"g"),a.toUpperCase()).replace(new RegExp(`:${r(s)}`,"g"),r(a))}),t}isValid(t){return t!=null}static getSharedInstance(t,n=!1){return(Mn==null?void 0:Mn.setOptions(t,n))||(Mn=new Xe(t))}}Xe.loaded=[];const{notify:In}=Zu(),yt=Jr({id:"notify",state:()=>({err:null,message:null,originalMessage:null,debug:null}),getters:{},actions:{parseError(e){this.$reset,this.err=e,e.response?e.response.status===407?(this.message=Ye("errors.auth_proxy_failed"),this.originalMessage=Ye("errors.auth_proxy_failed_legend")):e.response.status===403?(this.message=Ye("errors.unauthorized"),this.originalMessage=Ye("errors.unauthorized_legend")):e.response.data&&(this.message=e.response.data.message,this.originalMessage=e.response.data.originalMessage??null,this.debug=e.response.data.debug??null):(this.message=e.message,this.debug=e.stack??null)},notFound(e){er.push({name:"404"})},error(e){this.parseError(e),er.push({name:"genericError"})},info(e){In({type:"is-info",...e})},success(e){In({type:"is-success",...e})},warn(e){In({type:"is-warning",...e})},alert(e){In({type:"is-danger",...e})},action(e){In({type:"is-dark",...e})},clear(){In({clean:!0})}}}),Ln=(e="api")=>{let t;const n=window.appConfig.subdirectory;e==="web"?t=n+"/":t=n+"/api/v1";const r=Pe.create({baseURL:t,headers:{"X-Requested-With":"XMLHttpRequest","Content-Type":"application/json"},withCredentials:!0});return r.interceptors.response.use(s=>s,async function(s){const a=s.config;return s.response.status===419&&!a._retried?(a._retried=!0,await Pe.get("/refresh-csrf"),r.request(a)):(s.response.status===418&&qe().logout({kicked:!0}),s.response&&[407].includes(s.response.status)?(yt().error(s),new Promise(()=>{})):s.config.hasOwnProperty("returnError")&&s.config.returnError===!0||(s.response&&[401].includes(s.response.status)&&qe().tossOut(),s.response.status===422)?Promise.reject(s):s.response.status===404?(yt().notFound(),new Promise(()=>{})):(yt().error(s),new Promise(()=>{})))}),r},Ag=Ln("web"),kg=Ln("api"),Yf={logout(e={}){return Ag.get("/user/logout",{...e})},async getCurrentUser(e={}){return kg.get("/user",{...e})}},Et=Ln("api"),ps=Ln("web"),Cg={getPreferences(e={}){return Et.get("/user/preferences",{...e})},updatePreference(e,t,n={}){return Et.put("/user/preferences/"+e,{value:t},{...n})},getWebauthnDevices(e={}){return ps.get("/webauthn/credentials",{...e})},revokeWebauthnDevice(e,t={}){return ps.delete("/webauthn/credentials/"+e,{...t})},getPersonalAccessTokens(e={}){return ps.get("/oauth/personal-access-tokens",{...e})},deletePersonalAccessToken(e,t={}){return ps.delete("/oauth/personal-access-tokens/"+e,{...t})},getAll(e={}){return Et.get("/users",{...e})},getById(e,t={}){return Et.get("/users/"+e,{...t})},resetPassword(e,t={}){return Et.patch("/users/"+e+"/password/reset",{},{...t})},delete(e,t={}){return Et.delete("/users/"+e,{...t})},promote(e,t,n={}){return Et.patch("/users/"+e+"/promote",t,{...n})},revokePATs(e,t={}){return Et.delete("/users/"+e+"/pats",{...t})},revokeWebauthnCredentials(e,t={}){return Et.delete("/users/"+e+"/credentials",{...t})},getauthentications(e,t=12,n,r={}){return Et.get("/users/"+e+"/authentications?period="+t+(n?"&limit="+n:""),{...r})}};function Dn(e,t){let n;switch(t=t.toString(),e){case"text":n="txt";break;case"button":n="btn";break;case"email":n="eml";break;case"password":n="pwd";break;case"radio":n="rdo";break;case"label":n="lbl";break;default:n="txt";break}return{inputId:n+t[0].toUpperCase()+t.toLowerCase().slice(1)}}function Gy(e,t=!1){const n=qe();if(n.preferences.formatPassword&&e.length>0){const r=Math.ceil(n.preferences.formatPasswordBy<1?e.length*n.preferences.formatPasswordBy:n.preferences.formatPasswordBy),s=e.match(new RegExp(`.{1,${r}}`,"g"));s&&(e=s.join(" "))}return n.preferences.showOtpAsDot&&!t?e.replace(/[0-9]/g,"●"):e}const Be=Ln("api"),ms={getAll(e=!1,t={}){return Be.get("/twofaccounts"+(e?"?withOtp=1":""),{...t})},getByIds(e,t=!1,n={}){return Be.get("/twofaccounts?ids="+e+(t?"&withOtp=1":""),{...n})},get(e,t={}){return Be.get("/twofaccounts/"+e,{...t})},preview(e,t={}){return Be.post("/twofaccounts/preview",{uri:e},{...t})},storeFromUri(e,t={}){return Be.post("/twofaccounts",{uri:e},{...t})},getLogo(e,t={}){return Be.post("/icons/default",{service:e},{...t})},deleteIcon(e,t={}){return Be.delete("/icons/"+e,{...t})},getOtpById(e,t={}){return Be.get("/twofaccounts/"+e+"/otp",{...t})},getOtpByUri(e,t={}){return Be.post("/twofaccounts/otp",{uri:e},{...t})},getOtpByParams(e,t={}){return Be.post("/twofaccounts/otp",e,{...t})},withdraw(e,t={}){return Be.patch("/twofaccounts/withdraw?ids="+e.join(),{...t})},saveOrder(e,t={}){return Be.post("/twofaccounts/reorder",{orderedIds:e},{...t})},batchDelete(e,t={}){return Be.delete("/twofaccounts?ids="+e,{...t})},export(e,t={}){return Be.get("/twofaccounts/export?ids="+e,{...t})},getQrcode(e,t={}){return Be.get("/twofaccounts/"+e+"/qrcode",{...t})},migrate(e,t={}){return Be.post("/twofaccounts/migration",{payload:e,withSecret:!0},{...t})},count(e={}){return Be.get("/twofaccounts/count",{...e})}};var mr=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},Jf={exports:{}};(function(e,t){(function(n,r){r()})(mr,function(){function n(u,c){return typeof c>"u"?c={autoBom:!1}:typeof c!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),c={autoBom:!c}),c.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(u.type)?new Blob(["\uFEFF",u],{type:u.type}):u}function r(u,c,f){var d=new XMLHttpRequest;d.open("GET",u),d.responseType="blob",d.onload=function(){l(d.response,c,f)},d.onerror=function(){console.error("could not download file")},d.send()}function s(u){var c=new XMLHttpRequest;c.open("HEAD",u,!1);try{c.send()}catch{}return 200<=c.status&&299>=c.status}function a(u){try{u.dispatchEvent(new MouseEvent("click"))}catch{var c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),u.dispatchEvent(c)}}var i=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof mr=="object"&&mr.global===mr?mr:void 0,o=i.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),l=i.saveAs||(typeof window!="object"||window!==i?function(){}:"download"in HTMLAnchorElement.prototype&&!o?function(u,c,f){var d=i.URL||i.webkitURL,m=document.createElement("a");c=c||u.name||"download",m.download=c,m.rel="noopener",typeof u=="string"?(m.href=u,m.origin===location.origin?a(m):s(m.href)?r(u,c,f):a(m,m.target="_blank")):(m.href=d.createObjectURL(u),setTimeout(function(){d.revokeObjectURL(m.href)},4e4),setTimeout(function(){a(m)},0))}:"msSaveOrOpenBlob"in navigator?function(u,c,f){if(c=c||u.name||"download",typeof u!="string")navigator.msSaveOrOpenBlob(n(u,f),c);else if(s(u))r(u,c,f);else{var d=document.createElement("a");d.href=u,d.target="_blank",setTimeout(function(){a(d)})}}:function(u,c,f,d){if(d=d||open("","_blank"),d&&(d.document.title=d.document.body.innerText="downloading..."),typeof u=="string")return r(u,c,f);var m=u.type==="application/octet-stream",g=/constructor/i.test(i.HTMLElement)||i.safari,v=/CriOS\/[\d]+/.test(navigator.userAgent);if((v||m&&g||o)&&typeof FileReader<"u"){var _=new FileReader;_.onloadend=function(){var k=_.result;k=v?k:k.replace(/^data:[^;]*;/,"data:attachment/file;"),d?d.location.href=k:location=k,d=null},_.readAsDataURL(u)}else{var b=i.URL||i.webkitURL,y=b.createObjectURL(u);d?d.location=y:location.href=y,d=null,setTimeout(function(){b.revokeObjectURL(y)},4e4)}});i.saveAs=l.saveAs=l,e.exports=l})})(Jf);var Og=Jf.exports;const Xf=Jr({id:"twofaccounts",state:()=>({items:[],selectedIds:[],filter:"",backendWasNewer:!1,fetchedOn:null}),getters:{filtered(e){const t=qe();return e.items.filter(n=>parseInt(t.preferences.activeGroup)>0?((n.service?n.service.toLowerCase().includes(e.filter.toLowerCase()):!1)||n.account.toLowerCase().includes(e.filter.toLowerCase()))&&n.group_id==parseInt(t.preferences.activeGroup):(n.service?n.service.toLowerCase().includes(e.filter.toLowerCase()):!1)||n.account.toLowerCase().includes(e.filter.toLowerCase()))},periods(e){return e.items.filter(t=>t.otp_type=="totp").map(function(t){var n;return{period:t.period,generated_at:(n=t.otp)==null?void 0:n.generated_at}}).filter((t,n,r)=>n===r.findIndex(s=>s.period===t.period)).sort()},orderedIds(e){return e.items.map(t=>t.id)},isEmpty(e){return e.items.length==0},count(e){return e.items.length},filteredCount(e){return e.filtered.length},selectedCount(e){return e.selectedIds.length},hasNoneSelected(e){return e.selectedIds.length==0}},actions:{async fetch(e=!1){Math.floor(Date.now()-this.fetchedOn)>2e3||e?(this.fetchedOn=Date.now(),await ms.getAll(!qe().preferences.getOtpOnRequest).then(r=>{e&&(this.backendWasNewer=r.data.length!==this.items.length,this.items.forEach(s=>{let a=r.data.find(i=>i.id===s.id);if(a==null){this.backendWasNewer=!0;return}for(const i in s)if(i!=="otp"&&s[i]!=a[i]){this.backendWasNewer=!0;return}})),this.items=r.data})):this.backendWasNewer=!1},select(e){for(var t=0;te.id)},selectNone(){this.selectedIds=[]},async deleteSelected(){confirm(Ye("twofaccounts.confirm.delete"))&&this.selectedIds.length>0&&await ms.batchDelete(this.selectedIds.join()).then(e=>{let t=this.items;this.selectedIds.forEach(function(n){t=t.filter(r=>r.id!==n)}),this.items=t,this.selectNone(),yt().success({text:Ye("twofaccounts.accounts_deleted")})})},export(){ms.export(this.selectedIds.join(),{responseType:"blob"}).then(e=>{var t=new Blob([e.data],{type:"application/json;charset=utf-8"});Og.saveAs.saveAs(t,"2fauth_export.json")})},saveOrder(){ms.saveOrder(this.orderedIds)},sortAsc(){this.items.sort(function(e,t){return qe().preferences.sortCaseSensitive?e.service.normalize("NFD").replace(/[\u0300-\u036f]/g,"")>t.service.normalize("NFD").replace(/[\u0300-\u036f]/g,"")?1:-1:e.service.localeCompare(t.service,qe().preferences.lang)}),this.saveOrder()},sortDesc(){this.items.sort(function(e,t){return qe().preferences.sortCaseSensitive?e.service.normalize("NFD").replace(/[\u0300-\u036f]/g,"")t.period==e).map(t=>t.id)}}}),hs=Ln("api"),ic={getAll(){return hs.get("groups")},get(e,t={}){return hs.get("/groups/"+e,{...t})},assign(e,t,n={}){return hs.post("/groups/"+t+"/assign",{ids:e},{...n})},delete(e,t={}){return hs.delete("/groups/"+e,{...t})}},Lg=Jr({id:"groups",state:()=>({items:[],fetchedOn:null}),getters:{current(e){const t=e.items.find(n=>n.id===parseInt(qe().preferences.activeGroup));return t?t.name:Ye("commons.all")},withoutTheAllGroup(e){return e.items.filter(t=>t.id>0)},theAllGroup(e){return e.items.find(t=>t.id==0)},isEmpty(){return this.withoutTheAllGroup.length==0},count(){return this.withoutTheAllGroup.length}},actions:{addOrEdit(e){const t=this.items.findIndex(n=>n.id===parseInt(e.id));t>-1?(this.items[t]=e,yt().success({text:Ye("groups.group_name_saved")})):(this.items.push(e),yt().success({text:Ye("groups.group_successfully_created")}))},async fetch(){Math.floor(Date.now()-this.fetchedOn)>2e3&&(this.fetchedOn=Date.now(),await ic.getAll().then(n=>{this.items=n.data}))},async delete(e){const t=qe();confirm(Ye("groups.confirm.delete"))&&await ic.delete(e).then(n=>{this.items=this.items.filter(r=>r.id!==e),yt().success({text:Ye("groups.group_successfully_deleted")}),parseInt(t.preferences.activeGroup)===e&&(t.preferences.activeGroup=0)})}}}),qe=Jr({id:"user",state:()=>({id:void 0,name:void 0,email:void 0,oauth_provider:void 0,authenticated_by_proxy:void 0,preferences:window.defaultPreferences,isAdmin:!1}),getters:{isAuthenticated(){return this.name!=null}},actions:{async loginAs(e){this.$patch(e),await this.initDataStores(),this.applyUserPrefs()},async initDataStores(){const e=Xf(),t=Lg();this.isAuthenticated?(await e.fetch(),t.fetch()):(e.$reset(),t.$reset())},logout(e={}){const{kicked:t}=e,n=yt();if(this.$2fauth.config.proxyAuth)if(this.$2fauth.config.proxyLogoutUrl)location.assign(this.$2fauth.config.proxyLogoutUrl);else return!1;else Yf.logout({returnError:!0}).then(()=>{t&&(n.clear(),n.warn({text:Ye("auth.autolock_triggered_punchline"),duration:-1})),this.tossOut()}).catch(r=>{r.response.status!==401?n.error(r):this.tossOut()})},tossOut(){this.$reset(),this.initDataStores(),this.applyUserPrefs(),er.push({name:"login"})},applyTheme(){const e=_f({attribute:"data-theme"});e.value=this.preferences.theme=="system"?"auto":this.preferences.theme},applyLanguage(){const{isSupported:e,language:t}=Ef();ac(e?this.preferences.lang=="browser"?t.value.slice(0,2):this.preferences.lang:"en")},applyUserPrefs(){this.applyTheme(),this.applyLanguage()},refreshPreferences(){Cg.getPreferences({returnError:!0}).then(e=>{e.data.forEach(t=>{this.preferences[t.key]=t.value})}).catch(e=>{yt().alert({text:Ye("errors.data_cannot_be_refreshed_from_server")})})}}}),Tg=Object.freeze(Object.defineProperty({__proto__:null,useUserStore:qe},Symbol.toStringTag,{value:"Module"})),Ga=Ln("api"),Pg={getAll(e={}){return Ga.get("/settings",{...e})},update(e,t,n={}){return Ga.put("/settings/"+e,{value:t},{...n})},delete(e,t={}){return Ga.delete("/settings/"+e,{...t})}},Qf=Jr({id:"appSettings",state:()=>({...window.appSettings}),actions:{async fetch(){Pg.getAll({returnError:!0}).then(e=>{e.data.forEach(t=>{this[t.key]=t.value})}).catch(e=>{yt().alert({text:Ye("errors.data_cannot_be_refreshed_from_server")})})}}});async function Te({to:e,next:t,nextMiddleware:n,stores:r}){const{user:s}=r;s.isAuthenticated||await Yf.getCurrentUser({returnError:!0}).then(async a=>{const i=a.data;await s.loginAs({id:i.id,name:i.name,email:i.email,oauth_provider:i.oauth_provider,authenticated_by_proxy:i.authenticated_by_proxy,preferences:i.preferences,isAdmin:i.is_admin})}).catch(a=>{}),s.isAuthenticated?n():t({name:"login"})}async function Nn({to:e,next:t,nextMiddleware:n,stores:r}){const{user:s}=r,{notify:a}=r;if(s.isAdmin)n();else{let i=new Error("unauthorized");i.response.status=403,a.error(i)}}async function Rg({to:e,next:t,nextMiddleware:n,stores:r}){const{twofaccounts:s}=r;s.isEmpty?await s.fetch().then(()=>{s.isEmpty?t({name:"start"}):n()}):n()}function Mg({to:e,next:t,nextMiddleware:n,stores:r}){const{notify:s}=r;s.err==null&&!e.query.err?t({name:"accounts"}):n()}async function Ig({to:e,next:t,nextMiddleware:n,stores:r}){const{appSettings:s}=r;s.disableRegistration?t({name:"notFound"}):n()}function We({to:e,next:t,nextMiddleware:n,stores:r}){const{user:s}=r,a=wf(s.$2fauth.prefix+"returnTo","accounts");a.value=e.name,n()}async function Hn({to:e,next:t,nextMiddleware:n,stores:r}){const{appSettings:s}=r;s.$2fauth.config.proxyAuth?t({name:"accounts"}):n()}const er=k1({history:n1(window.appConfig.subdirectory?window.appConfig.subdirectory:"/"),routes:[{path:"/start",name:"start",component:()=>X(()=>import("./Start-Db0pVskV.js"),__vite__mapDeps([0,1,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/capture",name:"capture",component:()=>X(()=>import("./Capture-CjOu-0oN.js"),__vite__mapDeps([3,1,4,5,6,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/accounts",name:"accounts",component:()=>X(()=>import("./Accounts-BKgJPgW4.js"),__vite__mapDeps([7,8,4,5,9,2]),import.meta.url),meta:{middlewares:[Te,Rg,We],watchedByKicker:!0},alias:"/"},{path:"/account/create",name:"createAccount",component:()=>X(()=>import("./CreateUpdate-CPvMgltX.js"),__vite__mapDeps([10,1,8,4,5,6,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/account/import",name:"importAccounts",component:()=>X(()=>import("./Import-DzQrPeG3.js"),__vite__mapDeps([11,1,8,4,5,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/account/:twofaccountId/edit",name:"editAccount",component:()=>X(()=>import("./CreateUpdate-CPvMgltX.js"),__vite__mapDeps([10,1,8,4,5,6,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0},props:!0},{path:"/account/:twofaccountId/qrcode",name:"showQRcode",component:()=>X(()=>import("./QRcode-BY72oBwO.js"),__vite__mapDeps([12,4,5]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/groups",name:"groups",component:()=>X(()=>import("./Groups-CB6BkpLO.js"),__vite__mapDeps([13,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0},props:!0},{path:"/group/create",name:"createGroup",component:()=>X(()=>import("./CreateUpdate-Bcq5-Ipn.js"),__vite__mapDeps([14,1,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0}},{path:"/group/:groupId/edit",name:"editGroup",component:()=>X(()=>import("./CreateUpdate-Bcq5-Ipn.js"),__vite__mapDeps([14,1,2]),import.meta.url),meta:{middlewares:[Te,We],watchedByKicker:!0},props:!0},{path:"/settings/options",name:"settings.options",component:()=>X(()=>import("./Options-D3fDNCvX.js"),__vite__mapDeps([15,16]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0}},{path:"/settings/account",name:"settings.account",component:()=>X(()=>import("./Account-D0Vo1CDM.js"),__vite__mapDeps([17,1,16]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0}},{path:"/settings/oauth",name:"settings.oauth.tokens",component:()=>X(()=>import("./OAuth-dgZCcWlL.js"),__vite__mapDeps([18,1,16,4,5]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0,props:!0}},{path:"/settings/webauthn/:credentialId/edit",name:"settings.webauthn.editCredential",component:()=>X(()=>import("./Edit-C69CLEW0.js"),__vite__mapDeps([19,1]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0},props:!0},{path:"/settings/webauthn",name:"settings.webauthn.devices",component:()=>X(()=>import("./WebAuthn-C8Ep1BLK.js"),__vite__mapDeps([20,16,21,4,5]),import.meta.url),meta:{middlewares:[Te],watchedByKicker:!0,showAbout:!0}},{path:"/admin/app",name:"admin.appSetup",component:()=>X(()=>import("./AppSetup-CRogn-UO.js"),__vite__mapDeps([22,23,24,25]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0}},{path:"/admin/auth",name:"admin.auth",component:()=>X(()=>import("./Auth-C0J9t2T1.js"),__vite__mapDeps([26,23,24]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0}},{path:"/admin/users",name:"admin.users",component:()=>X(()=>import("./Users-CVnBSsgh.js"),__vite__mapDeps([27,23,4,5,9]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0}},{path:"/admin/users/create",name:"admin.createUser",component:()=>X(()=>import("./Create-Ppjik0Rc.js"),__vite__mapDeps([28,1]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0}},{path:"/admin/users/:userId/manage",name:"admin.manageUser",component:()=>X(()=>import("./Manage-C0NOcaRv.js"),__vite__mapDeps([29,25,30,9,4,5,2]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0},props:!0},{path:"/admin/logs/:userId/access",name:"admin.logs.access",component:()=>X(()=>import("./Access-DPUU_q_e.js"),__vite__mapDeps([31,30,9,4,5,2]),import.meta.url),meta:{middlewares:[Te,Nn],watchedByKicker:!0,showAbout:!0},props:!0},{path:"/login",name:"login",component:()=>X(()=>import("./Login-BBynD8CC.js"),__vite__mapDeps([32,1,21]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/register",name:"register",component:()=>X(()=>import("./Register-BeDlGULg.js"),__vite__mapDeps([33,1,21]),import.meta.url),meta:{middlewares:[Hn,Ig,We],showAbout:!0}},{path:"/password/request",name:"password.request",component:()=>X(()=>import("./RequestReset-63WcW87C.js"),__vite__mapDeps([34,1]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/user/password/reset",name:"password.reset",component:()=>X(()=>import("./Reset-BCtRvP_c.js"),__vite__mapDeps([35,1]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/webauthn/lost",name:"webauthn.lost",component:()=>X(()=>import("./RequestReset-63WcW87C.js"),__vite__mapDeps([34,1]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/webauthn/recover",name:"webauthn.recover",component:()=>X(()=>import("./Recover-ClJ3s80u.js"),__vite__mapDeps([36,1]),import.meta.url),meta:{middlewares:[Hn,We],showAbout:!0}},{path:"/about",name:"about",component:()=>X(()=>import("./About-XlOmnkHo.js"),[],import.meta.url),meta:{showAbout:!0,watchedByKicker:!0}},{path:"/error",name:"genericError",component:()=>X(()=>import("./Error-D63gl45e.js"),[],import.meta.url),meta:{middlewares:[Mg],watchedByKicker:!0}},{path:"/404",name:"404",component:()=>X(()=>import("./Error-D63gl45e.js"),[],import.meta.url),meta:{watchedByKicker:!0},props:!0},{path:"/:pathMatch(.*)*",name:"notFound",component:()=>X(()=>import("./Error-D63gl45e.js"),[],import.meta.url),meta:{watchedByKicker:!0},props:!0}]});er.beforeEach((e,t,n)=>{const r=e.meta.middlewares,s=qe(),a=Xf(),i=Qf(),o=yt(),c={to:e,from:t,next:n,nextMiddleware:{},stores:{user:s,twofaccounts:a,appSettings:i,notify:o}};if(!r)return n();r[0]({...c,nextMiddleware:Sf(c,r,1)})});er.afterEach((e,t)=>{e.meta.title=Ye("titles."+e.name),document.title=e.meta.title});function oc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function V(e){for(var t=1;te.length)&&(t=e.length);for(var n=0,r=new Array(t);n-1;s--){var a=n[s],i=(a.tagName||"").toUpperCase();["STYLE","LINK"].indexOf(i)>-1&&(r=a)}return Ee.head.insertBefore(t,r),e}}var a0="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function Br(){for(var e=12,t="";e-- >0;)t+=a0[Math.random()*62|0];return t}function lr(e){for(var t=[],n=(e||[]).length>>>0;n--;)t[n]=e[n];return t}function Ao(e){return e.classList?lr(e.classList):(e.getAttribute("class")||"").split(" ").filter(function(t){return t})}function ud(e){return"".concat(e).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function i0(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,'="').concat(ud(e[n]),'" ')},"").trim()}function Sa(e){return Object.keys(e||{}).reduce(function(t,n){return t+"".concat(n,": ").concat(e[n].trim(),";")},"")}function ko(e){return e.size!==kt.size||e.x!==kt.x||e.y!==kt.y||e.rotate!==kt.rotate||e.flipX||e.flipY}function o0(e){var t=e.transform,n=e.containerWidth,r=e.iconWidth,s={transform:"translate(".concat(n/2," 256)")},a="translate(".concat(t.x*32,", ").concat(t.y*32,") "),i="scale(".concat(t.size/16*(t.flipX?-1:1),", ").concat(t.size/16*(t.flipY?-1:1),") "),o="rotate(".concat(t.rotate," 0 0)"),l={transform:"".concat(a," ").concat(i," ").concat(o)},u={transform:"translate(".concat(r/2*-1," -256)")};return{outer:s,inner:l,path:u}}function l0(e){var t=e.transform,n=e.width,r=n===void 0?Si:n,s=e.height,a=s===void 0?Si:s,i=e.startCentered,o=i===void 0?!1:i,l="";return o&&rd?l+="translate(".concat(t.x/Wt-r/2,"em, ").concat(t.y/Wt-a/2,"em) "):o?l+="translate(calc(-50% + ".concat(t.x/Wt,"em), calc(-50% + ").concat(t.y/Wt,"em)) "):l+="translate(".concat(t.x/Wt,"em, ").concat(t.y/Wt,"em) "),l+="scale(".concat(t.size/Wt*(t.flipX?-1:1),", ").concat(t.size/Wt*(t.flipY?-1:1),") "),l+="rotate(".concat(t.rotate,"deg) "),l}var c0=`:root, :host { --fa-font-solid: normal 900 1em/1 "Font Awesome 6 Solid"; @@ -795,4 +795,4 @@ svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa { }`;function fd(){var e=sd,t=ad,n=K.cssPrefix,r=K.replacementClass,s=c0;if(n!==e||r!==t){var a=new RegExp("\\.".concat(e,"\\-"),"g"),i=new RegExp("\\--".concat(e,"\\-"),"g"),o=new RegExp("\\.".concat(t),"g");s=s.replace(a,".".concat(n,"-")).replace(i,"--".concat(n,"-")).replace(o,".".concat(r))}return s}var mc=!1;function Ya(){K.autoAddCss&&!mc&&(s0(fd()),mc=!0)}var u0={mixout:function(){return{dom:{css:fd,insertCss:Ya}}},hooks:function(){return{beforeDOMElementCreation:function(){Ya()},beforeI2svg:function(){Ya()}}}},Ft=ln||{};Ft[$t]||(Ft[$t]={});Ft[$t].styles||(Ft[$t].styles={});Ft[$t].hooks||(Ft[$t].hooks={});Ft[$t].shims||(Ft[$t].shims=[]);var vt=Ft[$t],dd=[],f0=function e(){Ee.removeEventListener("DOMContentLoaded",e),Ys=1,dd.map(function(t){return t()})},Ys=!1;Vt&&(Ys=(Ee.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(Ee.readyState),Ys||Ee.addEventListener("DOMContentLoaded",f0));function d0(e){Vt&&(Ys?setTimeout(e,0):dd.push(e))}function ts(e){var t=e.tag,n=e.attributes,r=n===void 0?{}:n,s=e.children,a=s===void 0?[]:s;return typeof e=="string"?ud(e):"<".concat(t," ").concat(i0(r),">").concat(a.map(ts).join(""),"")}function hc(e,t,n){if(e&&e[t]&&e[t][n])return{prefix:t,iconName:n,icon:e[t][n]}}var p0=function(t,n){return function(r,s,a,i){return t.call(n,r,s,a,i)}},Ja=function(t,n,r,s){var a=Object.keys(t),i=a.length,o=s!==void 0?p0(n,s):n,l,u,c;for(r===void 0?(l=1,c=t[a[0]]):(l=0,c=r);l=55296&&s<=56319&&n=55296&&r<=56319&&n>t+1&&(s=e.charCodeAt(t+1),s>=56320&&s<=57343)?(r-55296)*1024+s-56320+65536:r}function gc(e){return Object.keys(e).reduce(function(t,n){var r=e[n],s=!!r.icon;return s?t[r.iconName]=r.icon:t[n]=r,t},{})}function ki(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},r=n.skipHooks,s=r===void 0?!1:r,a=gc(t);typeof vt.hooks.addPack=="function"&&!s?vt.hooks.addPack(e,gc(t)):vt.styles[e]=V(V({},vt.styles[e]||{}),a),e==="fas"&&ki("fa",t)}var Es,Ss,xs,zn=vt.styles,g0=vt.shims,v0=(Es={},He(Es,_e,Object.values(Vr[_e])),He(Es,Oe,Object.values(Vr[Oe])),Es),Co=null,pd={},md={},hd={},gd={},vd={},y0=(Ss={},He(Ss,_e,Object.keys(Dr[_e])),He(Ss,Oe,Object.keys(Dr[Oe])),Ss);function b0(e){return~Zg.indexOf(e)}function w0(e,t){var n=t.split("-"),r=n[0],s=n.slice(1).join("-");return r===e&&s!==""&&!b0(s)?s:null}var yd=function(){var t=function(a){return Ja(zn,function(i,o,l){return i[l]=Ja(o,a,{}),i},{})};pd=t(function(s,a,i){if(a[3]&&(s[a[3]]=i),a[2]){var o=a[2].filter(function(l){return typeof l=="number"});o.forEach(function(l){s[l.toString(16)]=i})}return s}),md=t(function(s,a,i){if(s[i]=i,a[2]){var o=a[2].filter(function(l){return typeof l=="string"});o.forEach(function(l){s[l]=i})}return s}),vd=t(function(s,a,i){var o=a[2];return s[i]=i,o.forEach(function(l){s[l]=i}),s});var n="far"in zn||K.autoFetchSvg,r=Ja(g0,function(s,a){var i=a[0],o=a[1],l=a[2];return o==="far"&&!n&&(o="fas"),typeof i=="string"&&(s.names[i]={prefix:o,iconName:l}),typeof i=="number"&&(s.unicodes[i.toString(16)]={prefix:o,iconName:l}),s},{names:{},unicodes:{}});hd=r.names,gd=r.unicodes,Co=xa(K.styleDefault,{family:K.familyDefault})};r0(function(e){Co=xa(e.styleDefault,{family:K.familyDefault})});yd();function Oo(e,t){return(pd[e]||{})[t]}function _0(e,t){return(md[e]||{})[t]}function bn(e,t){return(vd[e]||{})[t]}function bd(e){return hd[e]||{prefix:null,iconName:null}}function E0(e){var t=gd[e],n=Oo("fas",e);return t||(n?{prefix:"fas",iconName:n}:null)||{prefix:null,iconName:null}}function cn(){return Co}var Lo=function(){return{prefix:null,iconName:null,rest:[]}};function xa(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.family,r=n===void 0?_e:n,s=Dr[r][e],a=zr[r][e]||zr[r][s],i=e in vt.styles?e:null;return a||i||null}var vc=(xs={},He(xs,_e,Object.keys(Vr[_e])),He(xs,Oe,Object.keys(Vr[Oe])),xs);function Aa(e){var t,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.skipLookups,s=r===void 0?!1:r,a=(t={},He(t,_e,"".concat(K.cssPrefix,"-").concat(_e)),He(t,Oe,"".concat(K.cssPrefix,"-").concat(Oe)),t),i=null,o=_e;(e.includes(a[_e])||e.some(function(u){return vc[_e].includes(u)}))&&(o=_e),(e.includes(a[Oe])||e.some(function(u){return vc[Oe].includes(u)}))&&(o=Oe);var l=e.reduce(function(u,c){var f=w0(K.cssPrefix,c);if(zn[c]?(c=v0[o].includes(c)?qg[o][c]:c,i=c,u.prefix=c):y0[o].indexOf(c)>-1?(i=c,u.prefix=xa(c,{family:o})):f?u.iconName=f:c!==K.replacementClass&&c!==a[_e]&&c!==a[Oe]&&u.rest.push(c),!s&&u.prefix&&u.iconName){var d=i==="fa"?bd(u.iconName):{},m=bn(u.prefix,u.iconName);d.prefix&&(i=null),u.iconName=d.iconName||m||u.iconName,u.prefix=d.prefix||u.prefix,u.prefix==="far"&&!zn.far&&zn.fas&&!K.autoFetchSvg&&(u.prefix="fas")}return u},Lo());return(e.includes("fa-brands")||e.includes("fab"))&&(l.prefix="fab"),(e.includes("fa-duotone")||e.includes("fad"))&&(l.prefix="fad"),!l.prefix&&o===Oe&&(zn.fass||K.autoFetchSvg)&&(l.prefix="fass",l.iconName=bn(l.prefix,l.iconName)||l.iconName),(l.prefix==="fa"||i==="fa")&&(l.prefix=cn()||"fas"),l}var S0=function(){function e(){Ng(this,e),this.definitions={}}return Hg(e,[{key:"add",value:function(){for(var n=this,r=arguments.length,s=new Array(r),a=0;a0&&c.forEach(function(f){typeof f=="string"&&(n[o][f]=u)}),n[o][l]=u}),n}}]),e}(),yc=[],Vn={},qn={},x0=Object.keys(qn);function A0(e,t){var n=t.mixoutsTo;return yc=e,Vn={},Object.keys(qn).forEach(function(r){x0.indexOf(r)===-1&&delete qn[r]}),yc.forEach(function(r){var s=r.mixout?r.mixout():{};if(Object.keys(s).forEach(function(i){typeof s[i]=="function"&&(n[i]=s[i]),Gs(s[i])==="object"&&Object.keys(s[i]).forEach(function(o){n[i]||(n[i]={}),n[i][o]=s[i][o]})}),r.hooks){var a=r.hooks();Object.keys(a).forEach(function(i){Vn[i]||(Vn[i]=[]),Vn[i].push(a[i])})}r.provides&&r.provides(qn)}),n}function Ci(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),s=2;s1?t-1:0),r=1;r0&&arguments[0]!==void 0?arguments[0]:{};return Vt?(Sn("beforeI2svg",t),Dt("pseudoElements2svg",t),Dt("i2svg",t)):Promise.reject("Operation requires a DOM of some kind.")},watch:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.autoReplaceSvgRoot;K.autoReplaceSvg===!1&&(K.autoReplaceSvg=!0),K.observeMutations=!0,d0(function(){L0({autoReplaceSvgRoot:n}),Sn("watch",t)})}},O0={icon:function(t){if(t===null)return null;if(Gs(t)==="object"&&t.prefix&&t.iconName)return{prefix:t.prefix,iconName:bn(t.prefix,t.iconName)||t.iconName};if(Array.isArray(t)&&t.length===2){var n=t[1].indexOf("fa-")===0?t[1].slice(3):t[1],r=xa(t[0]);return{prefix:r,iconName:bn(r,n)||n}}if(typeof t=="string"&&(t.indexOf("".concat(K.cssPrefix,"-"))>-1||t.match(Gg))){var s=Aa(t.split(" "),{skipLookups:!0});return{prefix:s.prefix||cn(),iconName:bn(s.prefix,s.iconName)||s.iconName}}if(typeof t=="string"){var a=cn();return{prefix:a,iconName:bn(a,t)||t}}}},ot={noAuto:k0,config:K,dom:C0,parse:O0,library:wd,findIconDefinition:Oi,toHtml:ts},L0=function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=t.autoReplaceSvgRoot,r=n===void 0?Ee:n;(Object.keys(vt.styles).length>0||K.autoFetchSvg)&&Vt&&K.autoReplaceSvg&&ot.dom.i2svg({node:r})};function ka(e,t){return Object.defineProperty(e,"abstract",{get:t}),Object.defineProperty(e,"html",{get:function(){return e.abstract.map(function(r){return ts(r)})}}),Object.defineProperty(e,"node",{get:function(){if(Vt){var r=Ee.createElement("div");return r.innerHTML=e.html,r.children}}}),e}function T0(e){var t=e.children,n=e.main,r=e.mask,s=e.attributes,a=e.styles,i=e.transform;if(ko(i)&&n.found&&!r.found){var o=n.width,l=n.height,u={x:o/l/2,y:.5};s.style=Sa(V(V({},a),{},{"transform-origin":"".concat(u.x+i.x/16,"em ").concat(u.y+i.y/16,"em")}))}return[{tag:"svg",attributes:s,children:t}]}function P0(e){var t=e.prefix,n=e.iconName,r=e.children,s=e.attributes,a=e.symbol,i=a===!0?"".concat(t,"-").concat(K.cssPrefix,"-").concat(n):a;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:V(V({},s),{},{id:i}),children:r}]}]}function To(e){var t=e.icons,n=t.main,r=t.mask,s=e.prefix,a=e.iconName,i=e.transform,o=e.symbol,l=e.title,u=e.maskId,c=e.titleId,f=e.extra,d=e.watchable,m=d===void 0?!1:d,g=r.found?r:n,v=g.width,_=g.height,b=s==="fak",y=[K.replacementClass,a?"".concat(K.cssPrefix,"-").concat(a):""].filter(function($){return f.classes.indexOf($)===-1}).filter(function($){return $!==""||!!$}).concat(f.classes).join(" "),k={children:[],attributes:V(V({},f.attributes),{},{"data-prefix":s,"data-icon":a,class:y,role:f.attributes.role||"img",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 ".concat(v," ").concat(_)})},T=b&&!~f.classes.indexOf("fa-fw")?{width:"".concat(v/_*16*.0625,"em")}:{};m&&(k.attributes[En]=""),l&&(k.children.push({tag:"title",attributes:{id:k.attributes["aria-labelledby"]||"title-".concat(c||Br())},children:[l]}),delete k.attributes.title);var N=V(V({},k),{},{prefix:s,iconName:a,main:n,mask:r,maskId:u,transform:i,symbol:o,styles:V(V({},T),f.styles)}),z=r.found&&n.found?Dt("generateAbstractMask",N)||{children:[],attributes:{}}:Dt("generateAbstractIcon",N)||{children:[],attributes:{}},q=z.children,P=z.attributes;return N.children=q,N.attributes=P,o?P0(N):T0(N)}function bc(e){var t=e.content,n=e.width,r=e.height,s=e.transform,a=e.title,i=e.extra,o=e.watchable,l=o===void 0?!1:o,u=V(V(V({},i.attributes),a?{title:a}:{}),{},{class:i.classes.join(" ")});l&&(u[En]="");var c=V({},i.styles);ko(s)&&(c.transform=l0({transform:s,startCentered:!0,width:n,height:r}),c["-webkit-transform"]=c.transform);var f=Sa(c);f.length>0&&(u.style=f);var d=[];return d.push({tag:"span",attributes:u,children:[t]}),a&&d.push({tag:"span",attributes:{class:"sr-only"},children:[a]}),d}function R0(e){var t=e.content,n=e.title,r=e.extra,s=V(V(V({},r.attributes),n?{title:n}:{}),{},{class:r.classes.join(" ")}),a=Sa(r.styles);a.length>0&&(s.style=a);var i=[];return i.push({tag:"span",attributes:s,children:[t]}),n&&i.push({tag:"span",attributes:{class:"sr-only"},children:[n]}),i}var Xa=vt.styles;function Li(e){var t=e[0],n=e[1],r=e.slice(4),s=wo(r,1),a=s[0],i=null;return Array.isArray(a)?i={tag:"g",attributes:{class:"".concat(K.cssPrefix,"-").concat(yn.GROUP)},children:[{tag:"path",attributes:{class:"".concat(K.cssPrefix,"-").concat(yn.SECONDARY),fill:"currentColor",d:a[0]}},{tag:"path",attributes:{class:"".concat(K.cssPrefix,"-").concat(yn.PRIMARY),fill:"currentColor",d:a[1]}}]}:i={tag:"path",attributes:{fill:"currentColor",d:a}},{found:!0,width:t,height:n,icon:i}}var M0={found:!1,width:512,height:512};function I0(e,t){!id&&!K.showMissingIcons&&e&&console.error('Icon with name "'.concat(e,'" and prefix "').concat(t,'" is missing.'))}function Ti(e,t){var n=t;return t==="fa"&&K.styleDefault!==null&&(t=cn()),new Promise(function(r,s){if(Dt("missingIconAbstract"),n==="fa"){var a=bd(e)||{};e=a.iconName||e,t=a.prefix||t}if(e&&t&&Xa[t]&&Xa[t][e]){var i=Xa[t][e];return r(Li(i))}I0(e,t),r(V(V({},M0),{},{icon:K.showMissingIcons&&e?Dt("missingIconAbstract")||{}:{}}))})}var wc=function(){},Pi=K.measurePerformance&&gs&&gs.mark&&gs.measure?gs:{mark:wc,measure:wc},gr='FA "6.5.1"',N0=function(t){return Pi.mark("".concat(gr," ").concat(t," begins")),function(){return _d(t)}},_d=function(t){Pi.mark("".concat(gr," ").concat(t," ends")),Pi.measure("".concat(gr," ").concat(t),"".concat(gr," ").concat(t," begins"),"".concat(gr," ").concat(t," ends"))},Po={begin:N0,end:_d},Ns=function(){};function _c(e){var t=e.getAttribute?e.getAttribute(En):null;return typeof t=="string"}function H0(e){var t=e.getAttribute?e.getAttribute(Eo):null,n=e.getAttribute?e.getAttribute(So):null;return t&&n}function $0(e){return e&&e.classList&&e.classList.contains&&e.classList.contains(K.replacementClass)}function F0(){if(K.autoReplaceSvg===!0)return Hs.replace;var e=Hs[K.autoReplaceSvg];return e||Hs.replace}function D0(e){return Ee.createElementNS("http://www.w3.org/2000/svg",e)}function z0(e){return Ee.createElement(e)}function Ed(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=t.ceFn,r=n===void 0?e.tag==="svg"?D0:z0:n;if(typeof e=="string")return Ee.createTextNode(e);var s=r(e.tag);Object.keys(e.attributes||[]).forEach(function(i){s.setAttribute(i,e.attributes[i])});var a=e.children||[];return a.forEach(function(i){s.appendChild(Ed(i,{ceFn:r}))}),s}function V0(e){var t=" ".concat(e.outerHTML," ");return t="".concat(t,"Font Awesome fontawesome.com "),t}var Hs={replace:function(t){var n=t[0];if(n.parentNode)if(t[1].forEach(function(s){n.parentNode.insertBefore(Ed(s),n)}),n.getAttribute(En)===null&&K.keepOriginalSource){var r=Ee.createComment(V0(n));n.parentNode.replaceChild(r,n)}else n.remove()},nest:function(t){var n=t[0],r=t[1];if(~Ao(n).indexOf(K.replacementClass))return Hs.replace(t);var s=new RegExp("".concat(K.cssPrefix,"-.*"));if(delete r[0].attributes.id,r[0].attributes.class){var a=r[0].attributes.class.split(" ").reduce(function(o,l){return l===K.replacementClass||l.match(s)?o.toSvg.push(l):o.toNode.push(l),o},{toNode:[],toSvg:[]});r[0].attributes.class=a.toSvg.join(" "),a.toNode.length===0?n.removeAttribute("class"):n.setAttribute("class",a.toNode.join(" "))}var i=r.map(function(o){return ts(o)}).join(` `);n.setAttribute(En,""),n.innerHTML=i}};function Ec(e){e()}function Sd(e,t){var n=typeof t=="function"?t:Ns;if(e.length===0)n();else{var r=Ec;K.mutateApproach===Kg&&(r=ln.requestAnimationFrame||Ec),r(function(){var s=F0(),a=Po.begin("mutate");e.map(s),a(),n()})}}var Ro=!1;function xd(){Ro=!0}function Ri(){Ro=!1}var Js=null;function Sc(e){if(dc&&K.observeMutations){var t=e.treeCallback,n=t===void 0?Ns:t,r=e.nodeCallback,s=r===void 0?Ns:r,a=e.pseudoElementsCallback,i=a===void 0?Ns:a,o=e.observeMutationsRoot,l=o===void 0?Ee:o;Js=new dc(function(u){if(!Ro){var c=cn();lr(u).forEach(function(f){if(f.type==="childList"&&f.addedNodes.length>0&&!_c(f.addedNodes[0])&&(K.searchPseudoElements&&i(f.target),n(f.target)),f.type==="attributes"&&f.target.parentNode&&K.searchPseudoElements&&i(f.target.parentNode),f.type==="attributes"&&_c(f.target)&&~Qg.indexOf(f.attributeName))if(f.attributeName==="class"&&H0(f.target)){var d=Aa(Ao(f.target)),m=d.prefix,g=d.iconName;f.target.setAttribute(Eo,m||c),g&&f.target.setAttribute(So,g)}else $0(f.target)&&s(f.target)})}}),Vt&&Js.observe(l,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}}function j0(){Js&&Js.disconnect()}function B0(e){var t=e.getAttribute("style"),n=[];return t&&(n=t.split(";").reduce(function(r,s){var a=s.split(":"),i=a[0],o=a.slice(1);return i&&o.length>0&&(r[i]=o.join(":").trim()),r},{})),n}function U0(e){var t=e.getAttribute("data-prefix"),n=e.getAttribute("data-icon"),r=e.innerText!==void 0?e.innerText.trim():"",s=Aa(Ao(e));return s.prefix||(s.prefix=cn()),t&&n&&(s.prefix=t,s.iconName=n),s.iconName&&s.prefix||(s.prefix&&r.length>0&&(s.iconName=_0(s.prefix,e.innerText)||Oo(s.prefix,Ai(e.innerText))),!s.iconName&&K.autoFetchSvg&&e.firstChild&&e.firstChild.nodeType===Node.TEXT_NODE&&(s.iconName=e.firstChild.data)),s}function K0(e){var t=lr(e.attributes).reduce(function(s,a){return s.name!=="class"&&s.name!=="style"&&(s[a.name]=a.value),s},{}),n=e.getAttribute("title"),r=e.getAttribute("data-fa-title-id");return K.autoA11y&&(n?t["aria-labelledby"]="".concat(K.replacementClass,"-title-").concat(r||Br()):(t["aria-hidden"]="true",t.focusable="false")),t}function W0(){return{iconName:null,title:null,titleId:null,prefix:null,transform:kt,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function xc(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},n=U0(e),r=n.iconName,s=n.prefix,a=n.rest,i=K0(e),o=Ci("parseNodeAttributes",{},e),l=t.styleParser?B0(e):[];return V({iconName:r,title:e.getAttribute("title"),titleId:e.getAttribute("data-fa-title-id"),prefix:s,transform:kt,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:a,styles:l,attributes:i}},o)}var q0=vt.styles;function Ad(e){var t=K.autoReplaceSvg==="nest"?xc(e,{styleParser:!1}):xc(e);return~t.extra.classes.indexOf(od)?Dt("generateLayersText",e,t):Dt("generateSvgReplacementMutation",e,t)}var un=new Set;xo.map(function(e){un.add("fa-".concat(e))});Object.keys(Dr[_e]).map(un.add.bind(un));Object.keys(Dr[Oe]).map(un.add.bind(un));un=Zr(un);function Ac(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Vt)return Promise.resolve();var n=Ee.documentElement.classList,r=function(f){return n.add("".concat(pc,"-").concat(f))},s=function(f){return n.remove("".concat(pc,"-").concat(f))},a=K.autoFetchSvg?un:xo.map(function(c){return"fa-".concat(c)}).concat(Object.keys(q0));a.includes("fa")||a.push("fa");var i=[".".concat(od,":not([").concat(En,"])")].concat(a.map(function(c){return".".concat(c,":not([").concat(En,"])")})).join(", ");if(i.length===0)return Promise.resolve();var o=[];try{o=lr(e.querySelectorAll(i))}catch{}if(o.length>0)r("pending"),s("complete");else return Promise.resolve();var l=Po.begin("onTree"),u=o.reduce(function(c,f){try{var d=Ad(f);d&&c.push(d)}catch(m){id||m.name==="MissingIcon"&&console.error(m)}return c},[]);return new Promise(function(c,f){Promise.all(u).then(function(d){Sd(d,function(){r("active"),r("complete"),s("pending"),typeof t=="function"&&t(),l(),c()})}).catch(function(d){l(),f(d)})})}function G0(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;Ad(e).then(function(n){n&&Sd([n],t)})}function Y0(e){return function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(t||{}).icon?t:Oi(t||{}),s=n.mask;return s&&(s=(s||{}).icon?s:Oi(s||{})),e(r,V(V({},n),{},{mask:s}))}}var J0=function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=n.transform,s=r===void 0?kt:r,a=n.symbol,i=a===void 0?!1:a,o=n.mask,l=o===void 0?null:o,u=n.maskId,c=u===void 0?null:u,f=n.title,d=f===void 0?null:f,m=n.titleId,g=m===void 0?null:m,v=n.classes,_=v===void 0?[]:v,b=n.attributes,y=b===void 0?{}:b,k=n.styles,T=k===void 0?{}:k;if(t){var N=t.prefix,z=t.iconName,q=t.icon;return ka(V({type:"icon"},t),function(){return Sn("beforeDOMElementCreation",{iconDefinition:t,params:n}),K.autoA11y&&(d?y["aria-labelledby"]="".concat(K.replacementClass,"-title-").concat(g||Br()):(y["aria-hidden"]="true",y.focusable="false")),To({icons:{main:Li(q),mask:l?Li(l.icon):{found:!1,width:null,height:null,icon:{}}},prefix:N,iconName:z,transform:V(V({},kt),s),symbol:i,title:d,maskId:c,titleId:g,extra:{attributes:y,styles:T,classes:_}})})}},X0={mixout:function(){return{icon:Y0(J0)}},hooks:function(){return{mutationObserverCallbacks:function(n){return n.treeCallback=Ac,n.nodeCallback=G0,n}}},provides:function(t){t.i2svg=function(n){var r=n.node,s=r===void 0?Ee:r,a=n.callback,i=a===void 0?function(){}:a;return Ac(s,i)},t.generateSvgReplacementMutation=function(n,r){var s=r.iconName,a=r.title,i=r.titleId,o=r.prefix,l=r.transform,u=r.symbol,c=r.mask,f=r.maskId,d=r.extra;return new Promise(function(m,g){Promise.all([Ti(s,o),c.iconName?Ti(c.iconName,c.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(v){var _=wo(v,2),b=_[0],y=_[1];m([n,To({icons:{main:b,mask:y},prefix:o,iconName:s,transform:l,symbol:u,maskId:f,title:a,titleId:i,extra:d,watchable:!0})])}).catch(g)})},t.generateAbstractIcon=function(n){var r=n.children,s=n.attributes,a=n.main,i=n.transform,o=n.styles,l=Sa(o);l.length>0&&(s.style=l);var u;return ko(i)&&(u=Dt("generateAbstractTransformGrouping",{main:a,transform:i,containerWidth:a.width,iconWidth:a.width})),r.push(u||a.icon),{children:r,attributes:s}}}},Q0={mixout:function(){return{layer:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=r.classes,a=s===void 0?[]:s;return ka({type:"layer"},function(){Sn("beforeDOMElementCreation",{assembler:n,params:r});var i=[];return n(function(o){Array.isArray(o)?o.map(function(l){i=i.concat(l.abstract)}):i=i.concat(o.abstract)}),[{tag:"span",attributes:{class:["".concat(K.cssPrefix,"-layers")].concat(Zr(a)).join(" ")},children:i}]})}}}},Z0={mixout:function(){return{counter:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=r.title,a=s===void 0?null:s,i=r.classes,o=i===void 0?[]:i,l=r.attributes,u=l===void 0?{}:l,c=r.styles,f=c===void 0?{}:c;return ka({type:"counter",content:n},function(){return Sn("beforeDOMElementCreation",{content:n,params:r}),R0({content:n.toString(),title:a,extra:{attributes:u,styles:f,classes:["".concat(K.cssPrefix,"-layers-counter")].concat(Zr(o))}})})}}}},ev={mixout:function(){return{text:function(n){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},s=r.transform,a=s===void 0?kt:s,i=r.title,o=i===void 0?null:i,l=r.classes,u=l===void 0?[]:l,c=r.attributes,f=c===void 0?{}:c,d=r.styles,m=d===void 0?{}:d;return ka({type:"text",content:n},function(){return Sn("beforeDOMElementCreation",{content:n,params:r}),bc({content:n,transform:V(V({},kt),a),title:o,extra:{attributes:f,styles:m,classes:["".concat(K.cssPrefix,"-layers-text")].concat(Zr(u))}})})}}},provides:function(t){t.generateLayersText=function(n,r){var s=r.title,a=r.transform,i=r.extra,o=null,l=null;if(rd){var u=parseInt(getComputedStyle(n).fontSize,10),c=n.getBoundingClientRect();o=c.width/u,l=c.height/u}return K.autoA11y&&!s&&(i.attributes["aria-hidden"]="true"),Promise.resolve([n,bc({content:n.innerHTML,width:o,height:l,transform:a,title:s,extra:i,watchable:!0})])}}},tv=new RegExp('"',"ug"),kc=[1105920,1112319];function nv(e){var t=e.replace(tv,""),n=h0(t,0),r=n>=kc[0]&&n<=kc[1],s=t.length===2?t[0]===t[1]:!1;return{value:Ai(s?t[0]:t),isSecondary:r||s}}function Cc(e,t){var n="".concat(Ug).concat(t.replace(":","-"));return new Promise(function(r,s){if(e.getAttribute(n)!==null)return r();var a=lr(e.children),i=a.filter(function(q){return q.getAttribute(xi)===t})[0],o=ln.getComputedStyle(e,t),l=o.getPropertyValue("font-family").match(Yg),u=o.getPropertyValue("font-weight"),c=o.getPropertyValue("content");if(i&&!l)return e.removeChild(i),r();if(l&&c!=="none"&&c!==""){var f=o.getPropertyValue("content"),d=~["Sharp"].indexOf(l[2])?Oe:_e,m=~["Solid","Regular","Light","Thin","Duotone","Brands","Kit"].indexOf(l[2])?zr[d][l[2].toLowerCase()]:Jg[d][u],g=nv(f),v=g.value,_=g.isSecondary,b=l[0].startsWith("FontAwesome"),y=Oo(m,v),k=y;if(b){var T=E0(v);T.iconName&&T.prefix&&(y=T.iconName,m=T.prefix)}if(y&&!_&&(!i||i.getAttribute(Eo)!==m||i.getAttribute(So)!==k)){e.setAttribute(n,k),i&&e.removeChild(i);var N=W0(),z=N.extra;z.attributes[xi]=t,Ti(y,m).then(function(q){var P=To(V(V({},N),{},{icons:{main:q,mask:Lo()},prefix:m,iconName:k,extra:z,watchable:!0})),$=Ee.createElementNS("http://www.w3.org/2000/svg","svg");t==="::before"?e.insertBefore($,e.firstChild):e.appendChild($),$.outerHTML=P.map(function(x){return ts(x)}).join(` `),e.removeAttribute(n),r()}).catch(s)}else r()}else r()})}function rv(e){return Promise.all([Cc(e,"::before"),Cc(e,"::after")])}function sv(e){return e.parentNode!==document.head&&!~Wg.indexOf(e.tagName.toUpperCase())&&!e.getAttribute(xi)&&(!e.parentNode||e.parentNode.tagName!=="svg")}function Oc(e){if(Vt)return new Promise(function(t,n){var r=lr(e.querySelectorAll("*")).filter(sv).map(rv),s=Po.begin("searchPseudoElements");xd(),Promise.all(r).then(function(){s(),Ri(),t()}).catch(function(){s(),Ri(),n()})})}var av={hooks:function(){return{mutationObserverCallbacks:function(n){return n.pseudoElementsCallback=Oc,n}}},provides:function(t){t.pseudoElements2svg=function(n){var r=n.node,s=r===void 0?Ee:r;K.searchPseudoElements&&Oc(s)}}},Lc=!1,iv={mixout:function(){return{dom:{unwatch:function(){xd(),Lc=!0}}}},hooks:function(){return{bootstrap:function(){Sc(Ci("mutationObserverCallbacks",{}))},noAuto:function(){j0()},watch:function(n){var r=n.observeMutationsRoot;Lc?Ri():Sc(Ci("mutationObserverCallbacks",{observeMutationsRoot:r}))}}}},Tc=function(t){var n={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return t.toLowerCase().split(" ").reduce(function(r,s){var a=s.toLowerCase().split("-"),i=a[0],o=a.slice(1).join("-");if(i&&o==="h")return r.flipX=!0,r;if(i&&o==="v")return r.flipY=!0,r;if(o=parseFloat(o),isNaN(o))return r;switch(i){case"grow":r.size=r.size+o;break;case"shrink":r.size=r.size-o;break;case"left":r.x=r.x-o;break;case"right":r.x=r.x+o;break;case"up":r.y=r.y-o;break;case"down":r.y=r.y+o;break;case"rotate":r.rotate=r.rotate+o;break}return r},n)},ov={mixout:function(){return{parse:{transform:function(n){return Tc(n)}}}},hooks:function(){return{parseNodeAttributes:function(n,r){var s=r.getAttribute("data-fa-transform");return s&&(n.transform=Tc(s)),n}}},provides:function(t){t.generateAbstractTransformGrouping=function(n){var r=n.main,s=n.transform,a=n.containerWidth,i=n.iconWidth,o={transform:"translate(".concat(a/2," 256)")},l="translate(".concat(s.x*32,", ").concat(s.y*32,") "),u="scale(".concat(s.size/16*(s.flipX?-1:1),", ").concat(s.size/16*(s.flipY?-1:1),") "),c="rotate(".concat(s.rotate," 0 0)"),f={transform:"".concat(l," ").concat(u," ").concat(c)},d={transform:"translate(".concat(i/2*-1," -256)")},m={outer:o,inner:f,path:d};return{tag:"g",attributes:V({},m.outer),children:[{tag:"g",attributes:V({},m.inner),children:[{tag:r.icon.tag,children:r.icon.children,attributes:V(V({},r.icon.attributes),m.path)}]}]}}}},Qa={x:0,y:0,width:"100%",height:"100%"};function Pc(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return e.attributes&&(e.attributes.fill||t)&&(e.attributes.fill="black"),e}function lv(e){return e.tag==="g"?e.children:[e]}var cv={hooks:function(){return{parseNodeAttributes:function(n,r){var s=r.getAttribute("data-fa-mask"),a=s?Aa(s.split(" ").map(function(i){return i.trim()})):Lo();return a.prefix||(a.prefix=cn()),n.mask=a,n.maskId=r.getAttribute("data-fa-mask-id"),n}}},provides:function(t){t.generateAbstractMask=function(n){var r=n.children,s=n.attributes,a=n.main,i=n.mask,o=n.maskId,l=n.transform,u=a.width,c=a.icon,f=i.width,d=i.icon,m=o0({transform:l,containerWidth:f,iconWidth:u}),g={tag:"rect",attributes:V(V({},Qa),{},{fill:"white"})},v=c.children?{children:c.children.map(Pc)}:{},_={tag:"g",attributes:V({},m.inner),children:[Pc(V({tag:c.tag,attributes:V(V({},c.attributes),m.path)},v))]},b={tag:"g",attributes:V({},m.outer),children:[_]},y="mask-".concat(o||Br()),k="clip-".concat(o||Br()),T={tag:"mask",attributes:V(V({},Qa),{},{id:y,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[g,b]},N={tag:"defs",children:[{tag:"clipPath",attributes:{id:k},children:lv(d)},T]};return r.push(N,{tag:"rect",attributes:V({fill:"currentColor","clip-path":"url(#".concat(k,")"),mask:"url(#".concat(y,")")},Qa)}),{children:r,attributes:s}}}},uv={provides:function(t){var n=!1;ln.matchMedia&&(n=ln.matchMedia("(prefers-reduced-motion: reduce)").matches),t.missingIconAbstract=function(){var r=[],s={fill:"currentColor"},a={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};r.push({tag:"path",attributes:V(V({},s),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var i=V(V({},a),{},{attributeName:"opacity"}),o={tag:"circle",attributes:V(V({},s),{},{cx:"256",cy:"364",r:"28"}),children:[]};return n||o.children.push({tag:"animate",attributes:V(V({},a),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:V(V({},i),{},{values:"1;0;1;1;0;1;"})}),r.push(o),r.push({tag:"path",attributes:V(V({},s),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:n?[]:[{tag:"animate",attributes:V(V({},i),{},{values:"1;0;0;0;0;1;"})}]}),n||r.push({tag:"path",attributes:V(V({},s),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:V(V({},i),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:r}}}},fv={hooks:function(){return{parseNodeAttributes:function(n,r){var s=r.getAttribute("data-fa-symbol"),a=s===null?!1:s===""?!0:s;return n.symbol=a,n}}}},dv=[u0,X0,Q0,Z0,ev,av,iv,ov,cv,uv,fv];A0(dv,{mixoutsTo:ot});ot.noAuto;var pv=ot.config,mv=ot.library;ot.dom;var Mi=ot.parse;ot.findIconDefinition;ot.toHtml;var hv=ot.icon;ot.layer;ot.text;ot.counter;function Rc(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,r)}return n}function Mt(e){for(var t=1;t=0)&&(n[s]=e[s]);return n}function vv(e,t){if(e==null)return{};var n=gv(e,t),r,s;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(s=0;s=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function yv(e){return bv(e)||wv(e)||_v(e)||Ev()}function bv(e){if(Array.isArray(e))return Ii(e)}function wv(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function _v(e,t){if(e){if(typeof e=="string")return Ii(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ii(e,t)}}function Ii(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof e=="string")return e;var r=(e.children||[]).map(function(l){return Cd(l)}),s=Object.keys(e.attributes||{}).reduce(function(l,u){var c=e.attributes[u];switch(u){case"class":l.class=Lv(c);break;case"style":l.style=Ov(c);break;default:l.attrs[u]=c}return l},{attrs:{},class:{},style:{}});n.class;var a=n.style,i=a===void 0?{}:a,o=vv(n,Cv);return Yr(e.tag,Mt(Mt(Mt({},t),{},{class:s.class,style:Mt(Mt({},s.style),i)},s.attrs),o),r)}var Od=!1;try{Od=!0}catch{}function Tv(){if(!Od&&console&&typeof console.error=="function"){var e;(e=console).error.apply(e,arguments)}}function Za(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?Qe({},e,t):{}}function Pv(e){var t,n=(t={"fa-spin":e.spin,"fa-pulse":e.pulse,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip":e.flip===!0,"fa-flip-horizontal":e.flip==="horizontal"||e.flip==="both","fa-flip-vertical":e.flip==="vertical"||e.flip==="both"},Qe(t,"fa-".concat(e.size),e.size!==null),Qe(t,"fa-rotate-".concat(e.rotation),e.rotation!==null),Qe(t,"fa-pull-".concat(e.pull),e.pull!==null),Qe(t,"fa-swap-opacity",e.swapOpacity),Qe(t,"fa-bounce",e.bounce),Qe(t,"fa-shake",e.shake),Qe(t,"fa-beat",e.beat),Qe(t,"fa-fade",e.fade),Qe(t,"fa-beat-fade",e.beatFade),Qe(t,"fa-flash",e.flash),Qe(t,"fa-spin-pulse",e.spinPulse),Qe(t,"fa-spin-reverse",e.spinReverse),t);return Object.keys(n).map(function(r){return n[r]?r:null}).filter(function(r){return r})}function Mc(e){if(e&&Xs(e)==="object"&&e.prefix&&e.iconName&&e.icon)return e;if(Mi.icon)return Mi.icon(e);if(e===null)return null;if(Xs(e)==="object"&&e.prefix&&e.iconName)return e;if(Array.isArray(e)&&e.length===2)return{prefix:e[0],iconName:e[1]};if(typeof e=="string")return{prefix:"fas",iconName:e}}var Rv=fn({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(t){return[!0,!1,"horizontal","vertical","both"].indexOf(t)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},maskId:{type:String,default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(t){return["right","left"].indexOf(t)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(t){return[90,180,270].indexOf(Number.parseInt(t,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(t){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(t)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},titleId:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beat:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1}},setup:function(t,n){var r=n.attrs,s=ne(function(){return Mc(t.icon)}),a=ne(function(){return Za("classes",Pv(t))}),i=ne(function(){return Za("transform",typeof t.transform=="string"?Mi.transform(t.transform):t.transform)}),o=ne(function(){return Za("mask",Mc(t.mask))}),l=ne(function(){return hv(s.value,Mt(Mt(Mt(Mt({},a.value),i.value),o.value),{},{symbol:t.symbol,title:t.title,titleId:t.titleId,maskId:t.maskId}))});Ve(l,function(c){if(!c)return Tv("Could not find one or more icon(s)",s.value,o.value)},{immediate:!0});var u=ne(function(){return l.value?Cd(l.value.abstract[0],{},r):null});return function(){return u.value}}}),Yy=fn({name:"FontAwesomeLayers",props:{fixedWidth:{type:Boolean,default:!1}},setup:function(t,n){var r=n.slots,s=pv.familyPrefix,a=ne(function(){return["".concat(s,"-layers")].concat(yv(t.fixedWidth?["".concat(s,"-fw")]:[]))});return function(){return Yr("div",{class:a.value},r.default?r.default():[])}}}),Mv={prefix:"fas",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},Iv={prefix:"fas",iconName:"circle-minus",icon:[512,512,["minus-circle"],"f056","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},Nv=Iv,Hv={prefix:"fas",iconName:"arrow-up-long",icon:[384,512,["long-arrow-up"],"f176","M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z"]},$v={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]},Fv={prefix:"fas",iconName:"tablet-screen-button",icon:[448,512,["tablet-alt"],"f3fa","M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64H64V384H384V64z"]},Dv={prefix:"fas",iconName:"bars",icon:[448,512,["navicon"],"f0c9","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},zv={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Vv=zv,jv={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Bv=jv,Uv={prefix:"fas",iconName:"list",icon:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"]},Kv={prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z"]},Wv={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z"]},qv={prefix:"fas",iconName:"globe",icon:[512,512,[127760],"f0ac","M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z"]},Gv={prefix:"fas",iconName:"slash",icon:[640,512,[],"f715","M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z"]},Yv={prefix:"fas",iconName:"arrow-up-a-z",icon:[576,512,["sort-alpha-up"],"f15e","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z"]},Jv=Yv,Xv={prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},Qv={prefix:"fas",iconName:"circle-check",icon:[512,512,[61533,"check-circle"],"f058","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Zv={prefix:"fas",iconName:"layer-group",icon:[576,512,[],"f5fd","M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z"]},e4={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]},t4={prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z"]},n4={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]},r4={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"]},s4={prefix:"fas",iconName:"align-left",icon:[448,512,[],"f036","M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},a4={prefix:"fas",iconName:"up-right-from-square",icon:[512,512,["external-link-alt"],"f35d","M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},i4=a4,o4={prefix:"fas",iconName:"table-cells",icon:[512,512,["th"],"f00a","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z"]},l4=o4,c4={prefix:"fas",iconName:"camera",icon:[512,512,[62258,"camera-alt"],"f030","M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},u4={prefix:"fas",iconName:"arrow-down-a-z",icon:[576,512,["sort-alpha-asc","sort-alpha-down"],"f15d","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z"]},f4=u4,d4={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]},p4={prefix:"fas",iconName:"mobile-screen",icon:[384,512,["mobile-android-alt"],"f3cf","M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z"]},m4={prefix:"fas",iconName:"flask",icon:[448,512,[],"f0c3","M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z"]},h4={prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},g4={prefix:"fas",iconName:"file-arrow-down",icon:[384,512,["file-download"],"f56d","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},v4=g4,y4={prefix:"fas",iconName:"sun",icon:[512,512,[9728],"f185","M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},b4={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},w4=b4,_4={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},E4=_4,S4={prefix:"fas",iconName:"square-pen",icon:[448,512,["pen-square","pencil-square"],"f14b","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},x4=S4,A4={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z"]},k4={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"]},C4={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},O4=C4,L4={prefix:"fas",iconName:"chevron-right",icon:[320,512,[9002],"f054","M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"]},T4={prefix:"fas",iconName:"video-slash",icon:[640,512,[],"f4e2","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3z"]},P4={prefix:"fas",iconName:"display",icon:[576,512,[],"e163","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z"]},R4={prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"]},M4={prefix:"fas",iconName:"qrcode",icon:[448,512,[],"f029","M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80zM64 96v64h64V96H64zM0 336c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336zm64 16v64h64V352H64zM304 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H304c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48zm80 64H320v64h64V96zM256 304c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16v96c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16v64c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V304zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z"]},I4={prefix:"fas",iconName:"moon",icon:[384,512,[127769,9214],"f186","M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"]},N4={prefix:"fas",iconName:"circle-plus",icon:[512,512,["plus-circle"],"f055","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},H4=N4,$4={prefix:"fas",iconName:"desktop",icon:[576,512,[128421,61704,"desktop-alt"],"f390","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z"]},F4={prefix:"fas",iconName:"book",icon:[448,512,[128212],"f02d","M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},D4={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]},z4={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},V4={prefix:"fas",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},j4=V4,B4={prefix:"far",iconName:"star",icon:[576,512,[11088,61446],"f005","M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"]},U4={prefix:"far",iconName:"calendar",icon:[448,512,[128197,128198],"f133","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192H400V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z"]},K4={prefix:"far",iconName:"paper-plane",icon:[512,512,[61913],"f1d8","M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376V479.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z"]},W4={prefix:"fab",iconName:"github-alt",icon:[480,512,[],"f113","M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"]},q4={prefix:"fab",iconName:"openid",icon:[448,512,[],"f19b","M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"]};mv.add(k4,H4,M4,Xv,r4,D4,Bv,O4,Kv,t4,E4,w4,Dv,R4,W4,d4,Zv,Nv,Vv,x4,l4,Uv,j4,h4,qv,F4,m4,e4,A4,f4,Jv,n4,Wv,i4,c4,v4,y4,I4,$4,$v,Qv,z4,Mv,T4,B4,L4,q4,K4,Gv,s4,p4,Fv,P4,U4,Hv);const G4=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Y4={},J4={class:"columns is-centered"},X4={class:"form-column column is-two-thirds-tablet is-half-desktop is-half-widescreen is-one-third-fullhd"};function Q4(e,t){return U(),Z("div",J4,[Q("div",X4,[qr(e.$slots,"default")])])}const Z4=G4(Y4,[["render",Q4]]),e3=["innerHTML"],t3=["innerHTML"],n3={__name:"FormWrapper",props:{title:{type:String,default:""},punchline:{type:String,default:""}},setup(e){return(t,n)=>{const r=je("ResponsiveWidthWrapper");return U(),tt(r,null,{default:at(()=>[e.title?(U(),Z("h1",{key:0,class:"title has-text-grey-dark",innerHTML:t.$t(e.title)},null,8,e3)):de("",!0),e.punchline?(U(),Z("div",{key:1,id:"punchline",class:"block",innerHTML:t.$t(e.punchline)},null,8,t3)):de("",!0),qr(t.$slots,"default")]),_:3})}}},r3={class:"main"},s3={key:0,class:"columns is-gapless"},a3={class:"column has-text-centered"},i3={class:"field is-grouped"},o3={key:1,class:"content has-text-centered"},l3={key:2,class:"content has-text-centered"},c3={key:1},u3={key:3,class:"content has-text-centered"},f3={key:0,class:"is-size-6"},d3={class:"has-text-weight-bold"},p3={key:1},m3={key:0},h3={key:0,class:"release-flag"},g3={key:1},v3={__name:"Footer",props:{showButtons:!0,internalFooterType:{type:String,default:"navLinks"}},setup(e){const t=Qf(),n=qe(),r=et("2fauth");function s(){confirm(Ye("auth.confirm.logout"))&&n.logout()}return(a,i)=>{const o=je("router-link");return U(),Z("footer",r3,[e.showButtons?(U(),Z("div",s3,[Q("div",a3,[Q("div",i3,[qr(a.$slots,"default")])])])):de("",!0),e.internalFooterType=="doneButton"?(U(),Z("div",o3,[Q("button",{id:"lnkExitEdit",class:"button is-ghost is-like-text",onClick:i[0]||(i[0]=da(l=>a.$emit("doneButtonClicked",!0),["stop"]))},Ce(a.$t("commons.done")),1)])):e.internalFooterType=="modal"?(U(),Z("div",l3,[a.$route.name!="accounts"?(U(),tt(o,{key:0,id:"lnkBackToHome",to:{name:"accounts"},class:"has-text-grey"},{default:at(()=>[De(Ce(a.$t("commons.back_to_home")),1)]),_:1})):(U(),Z("span",c3," "))])):(U(),Z("div",u3,[a.$route.meta.showAbout===!0?(U(),Z("div",f3,[re(o,{id:"lnkAbout",to:{name:"about"},class:"has-text-grey"},{default:at(()=>[De(" 2FAuth – "),Q("span",d3,"v"+Ce(ae(r).version),1)]),_:1})])):(U(),Z("div",p3,[re(o,{id:"lnkSettings",to:{name:"settings.options"},class:"has-text-grey"},{default:at(()=>[De(Ce(a.$t("settings.settings")),1)]),_:1},8,["to"]),ae(n).isAdmin?(U(),Z("span",m3,[De(" - "),re(o,{id:"lnkAdmin",to:{name:"admin.appSetup"},class:"has-text-grey"},{default:at(()=>[De(Ce(a.$t("admin.admin")),1),ae(t).latestRelease&&ae(t).checkForUpdate?(U(),Z("span",h3)):de("",!0)]),_:1},8,["to"])])):de("",!0),!ae(r).config.proxyAuth||ae(r).config.proxyAuth&&ae(r).config.proxyLogoutUrl?(U(),Z("span",g3,[De(" - "),Q("button",{id:"lnkSignOut",class:"button is-text is-like-text has-text-grey",onClick:s},Ce(a.$t("auth.sign_out")),1)])):de("",!0)]))]))])}}},y3={class:"modal-content"},b3={class:"section"},w3={class:"columns is-centered"},_3={class:"column is-three-quarters"},E3={class:"modal-slot box has-text-centered is-shadowless"},S3={__name:"Modal",props:{modelValue:Boolean,closable:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(e,{emit:t}){const{notify:n}=Zu(),r=e,s=t,a=ne({get(){return r.modelValue},set(o){s("update:modelValue",o)}});function i(o){n({clean:!0}),a.value=!1}return(o,l)=>{const u=je("ButtonBackCloseCancel"),c=je("VueFooter");return U(),Z("div",{class:Ae(["modal modal-otp",{"is-active":ae(a)}])},[Q("div",{class:"modal-background",onClick:da(i,["stop"])}),Q("div",y3,[Q("section",b3,[Q("div",w3,[Q("div",_3,[Q("div",E3,[qr(o.$slots,"default")])])])])]),r.closable?(U(),tt(c,{key:0,showButtons:!0,internalFooterType:"modal"},{default:at(()=>[re(u,{action:"close",useLinkTag:!1,onClosed:i})]),_:1})):de("",!0)],2)}}},x3=["type","disabled"],A3={__name:"Button",props:{color:{type:String,default:"is-link"},nativeType:{type:String,default:"submit"},isLoading:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1}},setup(e){return(t,n)=>(U(),Z("button",{type:e.nativeType,disabled:e.isLoading||e.isDisabled,class:Ae({button:!0,[`${e.color}`]:!0,"is-loading":e.isLoading})},[qr(t.$slots,"default")],10,x3))}},k3={key:0,class:"control"},C3={key:1,class:"control"},O3={__name:"ButtonBackCloseCancel",props:{returnTo:{type:Object,default:{name:"accounts"}},action:{type:String,default:"close"},useLinkTag:{type:Boolean,default:!0},isText:{type:Boolean,default:!1},isCapture:{type:Boolean,default:!1},isRounded:{type:Boolean,default:!0}},setup(e){O1(),pf();const t=_f(),n=e,r="button"+(t.value==="dark"&&!n.isText&&!n.isCapture?" is-dark":"")+(n.isText?" is-text":"")+(n.isCapture?" is-large is-warning":"")+(n.isRounded?" is-rounded":"");return(s,a)=>{const i=je("RouterLink");return e.useLinkTag?(U(),Z("p",k3,[e.action=="close"?(U(),tt(i,{key:0,id:"btnClose",to:e.returnTo,class:Ae(r),tabindex:"0",role:"button","aria-label":s.$t("commons.close_the_x_page",{pagetitle:s.$route.meta.title})},{default:at(()=>[De(Ce(s.$t("commons.close")),1)]),_:1},8,["to","aria-label"])):e.action=="back"?(U(),tt(i,{key:1,id:"lnkBack",to:e.returnTo,class:Ae(r),"aria-label":s.$t("commons.close_the_x_page",{pagetitle:s.$route.meta.title})},{default:at(()=>[De(Ce(s.$t("commons.back")),1)]),_:1},8,["to","aria-label"])):e.action=="cancel"?(U(),tt(i,{key:2,id:"btnCancel",to:e.returnTo,class:Ae(r)},{default:at(()=>[De(Ce(s.$t("commons.cancel")),1)]),_:1},8,["to"])):de("",!0)])):(U(),Z("p",C3,[e.action=="close"?(U(),Z("button",{key:0,id:"btnClose",class:Ae(r),onClick:a[0]||(a[0]=o=>s.$emit("closed")),type:"button"},Ce(s.$t("commons.close")),1)):de("",!0),e.action=="cancel"?(U(),Z("button",{key:1,id:"btnCancel",class:Ae(r),onClick:a[1]||(a[1]=o=>s.$emit("canceled")),type:"button"},Ce(s.$t("commons.cancel")),1)):de("",!0)]))}}},L3={role:"alert"},T3=["id","innerHTML"],P3={__name:"FieldError",props:{error:{type:String,required:!0},field:{type:String,required:!0},alertType:{type:String,default:"is-danger"}},setup(e){return(t,n)=>(U(),Z("div",L3,[Q("p",{id:"valError"+e.field[0].toUpperCase()+e.field.toLowerCase().slice(1),class:Ae(["help",e.alertType]),innerHTML:e.error},null,10,T3)]))}},R3=["for","innerHTML"],M3=["disabled","id","type","value","placeholder","maxlength"],I3={key:0,class:"icon is-small is-left"},N3={key:1,class:"icon is-small is-right"},H3=["innerHTML"],$3=Object.assign({inheritAttrs:!1},{__name:"FormField",props:{modelValue:[String,Number,Boolean],label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],inputType:{type:String,default:"text"},placeholder:{type:String,default:""},help:{type:String,default:""},hasOffset:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},maxLength:{type:Number,default:null},isIndented:Boolean,leftIcon:"",rightIcon:""},setup(e){const t=e,{inputId:n}=Dn(t.inputType,t.fieldName);return(r,s)=>{const a=je("FontAwesomeIcon"),i=je("FieldError");return U(),Z("div",{class:Ae(["mb-3",{"pt-3":e.hasOffset,"is-flex":e.isIndented}])},[e.isIndented?(U(),Z("div",{key:0,class:"mx-2 pr-1",style:an({opacity:e.isDisabled?"0.5":"1"})},[re(a,{class:"has-text-grey",icon:["fas","chevron-right"],transform:"rotate-135"})],4)):de("",!0),Q("div",{class:Ae(["field",{"is-flex-grow-5":e.isIndented}])},[Q("label",{for:ae(n),class:"label",style:an({opacity:e.isDisabled?"0.5":"1"}),innerHTML:r.$t(e.label)},null,12,R3),Q("div",{class:Ae(["control",{"has-icons-left":e.leftIcon,"has-icons-right":e.rightIcon}])},[Q("input",io({disabled:e.isDisabled,id:ae(n),type:e.inputType,class:"input",value:e.modelValue,placeholder:e.placeholder},r.$attrs,{onInput:s[0]||(s[0]=o=>r.$emit("update:modelValue",o.target.value)),onChange:s[1]||(s[1]=o=>r.$emit("change:modelValue",o.target.value)),maxlength:e.maxLength}),null,16,M3),e.leftIcon?(U(),Z("span",I3,[re(a,{icon:["fas",e.leftIcon],transform:"rotate-75",size:"xs"},null,8,["icon"])])):de("",!0),e.rightIcon?(U(),Z("span",N3,[re(a,{icon:["fas",e.rightIcon],transform:"rotate-75",size:"xs"},null,8,["icon"])])):de("",!0)],2),e.fieldError!=null?(U(),tt(i,{key:0,error:e.fieldError,field:e.fieldName},null,8,["error","field"])):de("",!0),e.help?(U(),Z("p",{key:1,class:"help",innerHTML:r.$t(e.help)},null,8,H3)):de("",!0)],2)],2)}}}),F3=["for","innerHTML"],D3={class:"control has-icons-right"},z3=["disabled","id","type","value","placeholder"],V3=["title"],j3=["title"],B3=["innerHTML"],U3=["innerHTML"],K3={key:3,class:"columns is-mobile is-size-7 mt-0"},W3={class:"column is-one-third"},q3={class:"has-text-weight-semibold"},G3=Q("br",null,null,-1),Y3=Q("br",null,null,-1),J3={class:"column"},X3={class:"has-text-weight-semibold"},Q3=Q("br",null,null,-1),Z3=Q("br",null,null,-1),ey=Q("br",null,null,-1),ty=Q("br",null,null,-1),ny=Object.assign({inheritAttrs:!0},{__name:"FormPasswordField",props:{modelValue:[String],label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],inputType:{type:String,default:"password"},placeholder:{type:String,default:""},help:{type:String,default:""},hasOffset:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},showRules:{type:Boolean,default:!1}},setup(e){const t=e,{inputId:n}=Dn(t.inputType,t.fieldName),r=ge(t.inputType),s=ge(!1),a=ne(()=>/[a-z]/.test(t.modelValue)),i=ne(()=>/[A-Z]/.test(t.modelValue)),o=ne(()=>/[0-9]/.test(t.modelValue)),l=ne(()=>/[^A-Za-z0-9]/.test(t.modelValue)),u=ne(()=>t.modelValue.length>=8);function c(d){s.value=!!d.getModifierState("CapsLock")}function f(d){r.value!=d&&(r.value=d)}return(d,m)=>{const g=je("font-awesome-icon"),v=je("FieldError");return U(),Z("div",{class:Ae(["field",{"pt-3":e.hasOffset}])},[Q("label",{for:ae(n),class:"label",innerHTML:d.$t(e.label)},null,8,F3),Q("div",D3,[Q("input",io({disabled:e.isDisabled,id:ae(n),type:ae(r),class:"input",value:e.modelValue,placeholder:e.placeholder},d.$attrs,{onInput:m[0]||(m[0]=_=>d.$emit("update:modelValue",_.target.value)),onKeyup:c}),null,16,z3),ae(r)=="password"?(U(),Z("span",{key:0,role:"button",id:"btnTogglePassword",tabindex:"0",class:"icon is-small is-right is-clickable",onKeyup:m[1]||(m[1]=fi(_=>f("text"),["enter"])),onClick:m[2]||(m[2]=_=>f("text")),title:d.$t("auth.forms.reveal_password")},[re(g,{icon:["fas","eye-slash"]})],40,V3)):(U(),Z("span",{key:1,role:"button",id:"btnTogglePassword",tabindex:"0",class:"icon is-small is-right is-clickable",onKeyup:m[3]||(m[3]=fi(_=>f("password"),["enter"])),onClick:m[4]||(m[4]=_=>f("password")),title:d.$t("auth.forms.hide_password")},[re(g,{icon:["fas","eye"]})],40,j3))]),ae(s)?(U(),Z("p",{key:0,class:"help is-warning",innerHTML:d.$t("auth.forms.caps_lock_is_on")},null,8,B3)):de("",!0),e.fieldError!=null?(U(),tt(v,{key:1,error:e.fieldError,field:e.fieldName},null,8,["error","field"])):de("",!0),e.help?(U(),Z("p",{key:2,class:"help",innerHTML:d.$t(e.help)},null,8,U3)):de("",!0),e.showRules?(U(),Z("div",K3,[Q("div",W3,[Q("span",q3,Ce(d.$t("auth.forms.mandatory_rules")),1),G3,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(u)}]),id:"valPwdIsLongEnough"},null,2),De(Ce(d.$t("auth.forms.is_long_enough")),1),Y3]),Q("div",J3,[Q("span",X3,Ce(d.$t("auth.forms.optional_rules_you_should_follow")),1),Q3,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(a)}]),id:"valPwdHasLowerCase"},null,2),De(Ce(d.$t("auth.forms.has_lower_case")),1),Z3,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(i)}]),id:"valPwdHasUpperCase"},null,2),De(Ce(d.$t("auth.forms.has_upper_case")),1),ey,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(l)}]),id:"valPwdHasSpecialChar"},null,2),De(Ce(d.$t("auth.forms.has_special_char")),1),ty,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(o)}]),id:"valPwdHasNumber"},null,2),De(Ce(d.$t("auth.forms.has_number")),1)])])):de("",!0)],2)}}}),ry={class:"field is-flex"},sy=["innerHTML"],ay={class:"control"},iy={class:"select"},oy=["disabled"],ly=["value"],cy=["innerHTML"],uy={__name:"FormSelect",props:{modelValue:[String,Number,Boolean],label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],options:{type:Array,required:!0},help:{type:String,default:""},isIndented:Boolean,isDisabled:Boolean},setup(e){const n=ge(e.modelValue);return(r,s)=>{const a=je("FontAwesomeIcon"),i=je("FieldError");return U(),Z("div",ry,[e.isIndented?(U(),Z("div",{key:0,class:"mx-2 pr-1",style:an({opacity:e.isDisabled?"0.5":"1"})},[re(a,{class:"has-text-grey",icon:["fas","chevron-right"],transform:"rotate-135"})],4)):de("",!0),Q("div",null,[Q("label",{class:"label",innerHTML:r.$t(e.label),style:an({opacity:e.isDisabled?"0.5":"1"})},null,12,sy),Q("div",ay,[Q("div",iy,[hu(Q("select",{"onUpdate:modelValue":s[0]||(s[0]=o=>Le(n)?n.value=o:null),onChange:s[1]||(s[1]=o=>r.$emit("update:modelValue",o.target.value)),disabled:e.isDisabled},[(U(!0),Z(Fe,null,Au(e.options,o=>(U(),Z("option",{value:o.value},Ce(r.$t(o.text)),9,ly))),256))],40,oy),[[rh,ae(n)]])])]),e.fieldError!=null?(U(),tt(i,{key:0,error:e.fieldError,field:e.fieldName},null,8,["error","field"])):de("",!0),e.help?(U(),Z("p",{key:1,class:"help",innerHTML:r.$t(e.help)},null,8,cy)):de("",!0)])])}}};function Ld(e){var t;const n=it(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ur=ir?window:void 0;function Ni(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Ur):[t,n,r,s]=e,!t)return fo;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const a=[],i=()=>{a.forEach(c=>c()),a.length=0},o=(c,f,d,m)=>(c.addEventListener(f,d,m),()=>c.removeEventListener(f,d,m)),l=Ve(()=>[Ld(t),it(s)],([c,f])=>{if(i(),!c)return;const d=mf(f)?{...f}:f;a.push(...n.flatMap(m=>r.map(g=>o(c,m,g,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),i()};return ar(u),u}const As=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ks="__vueuse_ssr_handlers__",fy=dy();function dy(){return ks in As||(As[ks]=As[ks]||{}),As[ks]}function Td(e,t){return fy[e]||t}function py(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const my={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ic="vueuse-storage";function hy(e,t,n,r={}){var s;const{flush:a="pre",deep:i=!0,listenToStorageChanges:o=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=Ur,eventFilter:d,onError:m=x=>{console.error(x)},initOnMounted:g}=r,v=(c?Xi:ge)(typeof t=="function"?t():t);if(!n)try{n=Td("getDefaultStorage",()=>{var x;return(x=Ur)==null?void 0:x.localStorage})()}catch(x){m(x)}if(!n)return v;const _=it(t),b=py(_),y=(s=r.serializer)!=null?s:my[b],{pause:k,resume:T}=gf(v,()=>z(v.value),{flush:a,deep:i,eventFilter:d});f&&o&&ha(()=>{Ni(f,"storage",P),Ni(f,Ic,$),g&&P()}),g||P();function N(x,E){f&&f.dispatchEvent(new CustomEvent(Ic,{detail:{key:e,oldValue:x,newValue:E,storageArea:n}}))}function z(x){try{const E=n.getItem(e);if(x==null)N(E,null),n.removeItem(e);else{const C=y.write(x);E!==C&&(n.setItem(e,C),N(E,C))}}catch(E){m(E)}}function q(x){const E=x?x.newValue:n.getItem(e);if(E==null)return l&&_!=null&&n.setItem(e,y.write(_)),_;if(!x&&u){const C=y.read(E);return typeof u=="function"?u(C,_):b==="object"&&!Array.isArray(C)?{..._,...C}:C}else return typeof E!="string"?E:y.read(E)}function P(x){if(!(x&&x.storageArea!==n)){if(x&&x.key==null){v.value=_;return}if(!(x&&x.key!==e)){k();try{(x==null?void 0:x.newValue)!==y.write(v.value)&&(v.value=q(x))}catch(E){m(E)}finally{x?Cn(T):T()}}}}function $(x){P(x.detail)}return v}function gy(){const e=ge(!1),t=sr();return t&&On(()=>{e.value=!0},t),e}function vy(e){const t=gy();return ne(()=>(t.value,!!e()))}function yy(e,t={}){const{window:n=Ur}=t,r=vy(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const a=ge(!1),i=u=>{a.value=u.matches},o=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},l=eo(()=>{r.value&&(o(),s=n.matchMedia(it(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),a.value=s.matches)});return ar(()=>{l(),o(),s=void 0}),a}function by(e){return yy("(prefers-color-scheme: dark)",e)}function wy(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Ur,storage:a,storageKey:i="vueuse-color-scheme",listenToStorageChanges:o=!0,storageRef:l,emitAuto:u,disableTransition:c=!0}=e,f={auto:"",light:"light",dark:"dark",...e.modes||{}},d=by({window:s}),m=ne(()=>d.value?"dark":"light"),g=l||(i==null?po(r):hy(i,r,a,{window:s,listenToStorageChanges:o})),v=ne(()=>g.value==="auto"?m.value:g.value),_=Td("updateHTMLAttrs",(T,N,z)=>{const q=typeof T=="string"?s==null?void 0:s.document.querySelector(T):Ld(T);if(!q)return;let P;if(c&&(P=s.document.createElement("style"),P.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild(P)),N==="class"){const $=z.split(/\s/g);Object.values(f).flatMap(x=>(x||"").split(/\s/g)).filter(Boolean).forEach(x=>{$.includes(x)?q.classList.add(x):q.classList.remove(x)})}else q.setAttribute(N,z);c&&(s.getComputedStyle(P).opacity,document.head.removeChild(P))});function b(T){var N;_(t,n,(N=f[T])!=null?N:T)}function y(T){e.onChanged?e.onChanged(T,b):b(T)}Ve(v,y,{flush:"post",immediate:!0}),ha(()=>y(v.value));const k=ne({get(){return u?g.value:v.value},set(T){g.value=T}});try{return Object.assign(k,{store:g,system:m,state:v})}catch{return k}}const _y=fn({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(e,{slots:t}){const n=wy(e),r=Nt({mode:n,system:n.system,store:n.store});return()=>{if(t.default)return t.default(r)}}});function ei(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Pd(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Cs=new WeakMap;function Sy(e,t=!1){const n=ge(t);let r=null;Ve(po(e),i=>{const o=ei(it(i));if(o){const l=o;Cs.get(l)||Cs.set(l,l.style.overflow),n.value&&(l.style.overflow="hidden")}},{immediate:!0});const s=()=>{const i=ei(it(e));!i||n.value||(jl&&(r=Ni(i,"touchmove",o=>{Ey(o)},{passive:!1})),i.style.overflow="hidden",n.value=!0)},a=()=>{var i;const o=ei(it(e));!o||!n.value||(jl&&(r==null||r()),o.style.overflow=(i=Cs.get(o))!=null?i:"",Cs.delete(o),n.value=!1)};return ar(a),ne({get(){return n.value},set(i){i?s():a()}})}function xy(){let e=!1;const t=ge(!1);return(n,r)=>{if(t.value=r.value,e)return;e=!0;const s=Sy(n,r.value);Ve(t,a=>s.value=a)}}xy();const Ay=["aria-labelledby"],ky=["id","innerHTML"],Cy={class:"is-toggle buttons"},Oy=["id","aria-checked","disabled","onClick","title"],Ly=["id","checked","value","disabled"],Ty=["innerHTML"],Py=["innerHTML"],Ry={__name:"FormToggle",props:{modelValue:[String,Number,Boolean],choices:{type:Array,required:!0},fieldName:{type:String,required:!0},fieldError:[String],hasOffset:Boolean,isDisabled:Boolean,label:{type:String,default:""},help:{type:String,default:""}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t;function r(s){n("update:modelValue",s)}return(s,a)=>{const i=je("FontAwesomeIcon"),o=je("FieldError");return U(),Z("div",{class:Ae(["field",{"pt-3":e.hasOffset}]),role:"radiogroup","aria-labelledby":ae(Dn)("label",e.fieldName).inputId},[e.label?(U(),Z("label",{key:0,id:ae(Dn)("label",e.fieldName).inputId,class:"label",innerHTML:s.$t(e.label)},null,8,ky)):de("",!0),Q("div",Cy,[re(ae(_y),null,{default:at(({mode:l})=>[(U(!0),Z(Fe,null,Au(e.choices,u=>(U(),Z("button",{key:u.value,id:ae(Dn)("button",e.fieldName+u.value).inputId,role:"radio",type:"button",class:Ae(["button",{"is-link":e.modelValue===u.value,"is-dark":l==="dark","is-multiline":u.legend}]),"aria-checked":e.modelValue===u.value,disabled:e.isDisabled,onClick:da(c=>r(u.value),["stop"]),title:u.title?u.title:""},[Q("input",{id:ae(Dn)("radio",u.value).inputId,type:"radio",class:"is-hidden",checked:e.modelValue===u.value,value:u.value,disabled:e.isDisabled},null,8,Ly),u.legend?(U(),Z("span",{key:0,innerHTML:s.$t(u.legend),class:"is-block is-size-7"},null,8,Ty)):de("",!0),u.icon?(U(),tt(i,{key:1,icon:["fas",u.icon],class:"mr-2"},null,8,["icon"])):de("",!0),De(" "+Ce(s.$t(u.text)),1)],10,Oy))),128))]),_:1})]),e.fieldError!=null?(U(),tt(o,{key:1,error:e.fieldError,field:e.fieldName},null,8,["error","field"])):de("",!0),e.help?(U(),Z("p",{key:2,class:"help",innerHTML:s.$t(e.help)},null,8,Py)):de("",!0)],10,Ay)}}},My={class:"field is-flex"},Iy=["id","name","disabled"],Ny=["for","innerHTML","onKeypress"],Hy=["innerHTML"],$y=Object.assign({inheritAttrs:!1},{__name:"FormCheckbox",props:{modelValue:Boolean,fieldName:{type:String,default:"",required:!0},label:{type:String,default:""},labelClass:{type:String,default:""},help:{type:String,default:""},isIndented:Boolean,isDisabled:Boolean},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,r=t,s=Xp(),a=ne({get(){return n.modelValue},set(o){r("update:modelValue",o)}});function i(){s.disabled!=!0&&(a.value=!a.value)}return(o,l)=>{const u=je("FontAwesomeIcon");return U(),Z("div",My,[e.isIndented?(U(),Z("div",{key:0,class:"mx-2 pr-1",style:an({opacity:e.isDisabled?"0.5":"1"})},[re(u,{class:"has-text-grey",icon:["fas","chevron-right"],transform:"rotate-135"})],4)):de("",!0),Q("div",null,[hu(Q("input",{id:e.fieldName,type:"checkbox",name:e.fieldName,class:"is-checkradio is-info","onUpdate:modelValue":l[0]||(l[0]=c=>Le(a)?a.value=c:null),disabled:e.isDisabled},null,8,Iy),[[nh,ae(a)]]),Q("label",{tabindex:"0",for:e.fieldName,class:Ae(["label",e.labelClass]),innerHTML:o.$t(e.label),onKeypress:fi(da(i,["prevent"]),["space"])},null,42,Ny),e.help?(U(),Z("p",{key:0,class:"help",innerHTML:o.$t(e.help)},null,8,Hy)):de("",!0)])])}}}),Fy={class:"field is-grouped"},Dy={class:"control"},zy={key:0,class:"control"},Vy={__name:"FormButtons",props:{showCancelButton:{type:Boolean,default:!1},isBusy:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},caption:{type:String,default:"commons.submit"},cancelLandingView:{type:String,default:""},color:{type:String,default:"is-link"},submitId:{type:String,default:"btnSubmit"},cancelId:{type:String,default:"btnCancel"}},setup(e){return(t,n)=>{const r=je("VueButton"),s=je("RouterLink");return U(),Z("div",Fy,[Q("div",Dy,[re(r,{id:e.submitId,color:e.color,isLoading:e.isBusy,disabled:e.isDisabled},{default:at(()=>[De(Ce(t.$t(e.caption)),1)]),_:1},8,["id","color","isLoading","disabled"])]),e.showCancelButton?(U(),Z("div",zy,[re(s,{id:e.cancelId,to:{name:e.cancelLandingView},class:"button is-text"},{default:at(()=>[De(Ce(t.$t("commons.cancel")),1)]),_:1},8,["id","to"])])):de("",!0)])}}},jy={__name:"Kicker",props:{kickAfter:{type:Number,required:!0}},setup(e){const t=qe(),n=ge(["mousedown","scroll","keypress"]),r=ge(null),s=e;Ve(()=>s.kickAfter,()=>{o()}),On(()=>{n.value.forEach(function(u){window.addEventListener(u,o)},this),a()}),oa(()=>{n.value.forEach(function(u){window.removeEventListener(u,o)},this),l()});function a(){r.value=setTimeout(i,s.kickAfter*60*1e3)}function i(){clearTimeout(r.value),t.logout({kicked:!0})}function o(){l(),a()}function l(){clearTimeout(r.value)}return(u,c)=>null}},Tn=ch(K1),Rd={prefix:"2fauth_",config:window.appConfig,version:window.appVersion,isDemoApp:window.isDemoApp,isTestingApp:window.isTestingApp,langs:window.appLocales,urls:window.urls};Tn.provide("2fauth",rr(Rd));const Md=q1();Md.use(({store:e})=>{e.$2fauth=Rd});Tn.use(Md);Tn.use(er);Tn.use(xg,{lang:document.documentElement.lang.substring(0,2),resolve:async e=>{const t=Object.assign({"../lang/php_ar.json":()=>X(()=>import("./php_ar-CiPag0wT.js"),[],import.meta.url),"../lang/php_bg.json":()=>X(()=>import("./php_bg-C_QYqeC2.js"),[],import.meta.url),"../lang/php_de.json":()=>X(()=>import("./php_de-CNLq-YHx.js"),[],import.meta.url),"../lang/php_en.json":()=>X(()=>import("./php_en-C4IEX6AH.js"),[],import.meta.url),"../lang/php_es.json":()=>X(()=>import("./php_es-Lxkbsyey.js"),[],import.meta.url),"../lang/php_fr.json":()=>X(()=>import("./php_fr-Cur_j0aK.js"),[],import.meta.url),"../lang/php_hi.json":()=>X(()=>import("./php_hi-CU6d3ViN.js"),[],import.meta.url),"../lang/php_id.json":()=>X(()=>import("./php_id-CM1wJZ2G.js"),[],import.meta.url),"../lang/php_it.json":()=>X(()=>import("./php_it-BpueWuGs.js"),[],import.meta.url),"../lang/php_ja.json":()=>X(()=>import("./php_ja-Bfru0uTI.js"),[],import.meta.url),"../lang/php_ko.json":()=>X(()=>import("./php_ko-CXCP7am7.js"),[],import.meta.url),"../lang/php_nl.json":()=>X(()=>import("./php_nl-DyZ6Mpcv.js"),[],import.meta.url),"../lang/php_pl.json":()=>X(()=>import("./php_pl-CiPag0wT.js"),[],import.meta.url),"../lang/php_pt.json":()=>X(()=>import("./php_pt-jHljIwjL.js"),[],import.meta.url),"../lang/php_ro.json":()=>X(()=>import("./php_ro-DZtFBYoK.js"),[],import.meta.url),"../lang/php_ru.json":()=>X(()=>import("./php_ru-DBo3L5wk.js"),[],import.meta.url),"../lang/php_si.json":()=>X(()=>import("./php_si-DO4lw2wu.js"),[],import.meta.url),"../lang/php_tr.json":()=>X(()=>import("./php_tr-kY6NvRcc.js"),[],import.meta.url),"../lang/php_zh.json":()=>X(()=>import("./php_zh-BLzLFTvm.js"),[],import.meta.url)});if(e.includes("php_"))return await t[`../lang/${e}.json`]()}});Tn.use(Ah);Tn.component("FontAwesomeIcon",Rv).component("ResponsiveWidthWrapper",Z4).component("FormWrapper",n3).component("VueFooter",v3).component("Modal",S3).component("VueButton",A3).component("ButtonBackCloseCancel",O3).component("FieldError",P3).component("FormField",$3).component("FormPasswordField",ny).component("FormSelect",uy).component("FormToggle",Ry).component("FormCheckbox",$y).component("FormButtons",Vy).component("Kicker",jy);Tn.mount("#app");qe().applyUserPrefs();export{pf as $,By as A,qr as B,da as C,Le as D,Au as E,Fe as F,rh as G,Ye as H,Cg as I,ms as J,ic as K,ha as L,ar as M,vf as N,it as O,Cn as P,Ky as Q,et as R,Qf as S,Wy as T,_y as U,Lg as V,io as W,nh as X,Vu as Y,Gy as Z,Dn as _,qe as a,Eu as a0,Uy as a1,wf as a2,qy as a3,Ln as a4,Jr as a5,G4 as a6,Pg as a7,Yy as a8,yt as b,Xf as c,Nt as d,je as e,U as f,Z as g,Q as h,ae as i,De as j,tt as k,de as l,re as m,Ae as n,On as o,at as p,fn as q,ge as r,Ve as s,Ce as t,O1 as u,oa as v,fi as w,ne as x,an as y,hu as z}; +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Sv(e,t){if(typeof e!="object"||e===null)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function xv(e){var t=Sv(e,"string");return typeof t=="symbol"?t:String(t)}var Av=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},kd={exports:{}};(function(e){(function(t){var n=function(b,y,k){if(!u(y)||f(y)||d(y)||m(y)||l(y))return y;var T,N=0,z=0;if(c(y))for(T=[],z=y.length;N1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof e=="string")return e;var r=(e.children||[]).map(function(l){return Cd(l)}),s=Object.keys(e.attributes||{}).reduce(function(l,u){var c=e.attributes[u];switch(u){case"class":l.class=Lv(c);break;case"style":l.style=Ov(c);break;default:l.attrs[u]=c}return l},{attrs:{},class:{},style:{}});n.class;var a=n.style,i=a===void 0?{}:a,o=vv(n,Cv);return Yr(e.tag,Mt(Mt(Mt({},t),{},{class:s.class,style:Mt(Mt({},s.style),i)},s.attrs),o),r)}var Od=!1;try{Od=!0}catch{}function Tv(){if(!Od&&console&&typeof console.error=="function"){var e;(e=console).error.apply(e,arguments)}}function Za(e,t){return Array.isArray(t)&&t.length>0||!Array.isArray(t)&&t?Qe({},e,t):{}}function Pv(e){var t,n=(t={"fa-spin":e.spin,"fa-pulse":e.pulse,"fa-fw":e.fixedWidth,"fa-border":e.border,"fa-li":e.listItem,"fa-inverse":e.inverse,"fa-flip":e.flip===!0,"fa-flip-horizontal":e.flip==="horizontal"||e.flip==="both","fa-flip-vertical":e.flip==="vertical"||e.flip==="both"},Qe(t,"fa-".concat(e.size),e.size!==null),Qe(t,"fa-rotate-".concat(e.rotation),e.rotation!==null),Qe(t,"fa-pull-".concat(e.pull),e.pull!==null),Qe(t,"fa-swap-opacity",e.swapOpacity),Qe(t,"fa-bounce",e.bounce),Qe(t,"fa-shake",e.shake),Qe(t,"fa-beat",e.beat),Qe(t,"fa-fade",e.fade),Qe(t,"fa-beat-fade",e.beatFade),Qe(t,"fa-flash",e.flash),Qe(t,"fa-spin-pulse",e.spinPulse),Qe(t,"fa-spin-reverse",e.spinReverse),t);return Object.keys(n).map(function(r){return n[r]?r:null}).filter(function(r){return r})}function Mc(e){if(e&&Xs(e)==="object"&&e.prefix&&e.iconName&&e.icon)return e;if(Mi.icon)return Mi.icon(e);if(e===null)return null;if(Xs(e)==="object"&&e.prefix&&e.iconName)return e;if(Array.isArray(e)&&e.length===2)return{prefix:e[0],iconName:e[1]};if(typeof e=="string")return{prefix:"fas",iconName:e}}var Rv=fn({name:"FontAwesomeIcon",props:{border:{type:Boolean,default:!1},fixedWidth:{type:Boolean,default:!1},flip:{type:[Boolean,String],default:!1,validator:function(t){return[!0,!1,"horizontal","vertical","both"].indexOf(t)>-1}},icon:{type:[Object,Array,String],required:!0},mask:{type:[Object,Array,String],default:null},maskId:{type:String,default:null},listItem:{type:Boolean,default:!1},pull:{type:String,default:null,validator:function(t){return["right","left"].indexOf(t)>-1}},pulse:{type:Boolean,default:!1},rotation:{type:[String,Number],default:null,validator:function(t){return[90,180,270].indexOf(Number.parseInt(t,10))>-1}},swapOpacity:{type:Boolean,default:!1},size:{type:String,default:null,validator:function(t){return["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"].indexOf(t)>-1}},spin:{type:Boolean,default:!1},transform:{type:[String,Object],default:null},symbol:{type:[Boolean,String],default:!1},title:{type:String,default:null},titleId:{type:String,default:null},inverse:{type:Boolean,default:!1},bounce:{type:Boolean,default:!1},shake:{type:Boolean,default:!1},beat:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},beatFade:{type:Boolean,default:!1},flash:{type:Boolean,default:!1},spinPulse:{type:Boolean,default:!1},spinReverse:{type:Boolean,default:!1}},setup:function(t,n){var r=n.attrs,s=ne(function(){return Mc(t.icon)}),a=ne(function(){return Za("classes",Pv(t))}),i=ne(function(){return Za("transform",typeof t.transform=="string"?Mi.transform(t.transform):t.transform)}),o=ne(function(){return Za("mask",Mc(t.mask))}),l=ne(function(){return hv(s.value,Mt(Mt(Mt(Mt({},a.value),i.value),o.value),{},{symbol:t.symbol,title:t.title,titleId:t.titleId,maskId:t.maskId}))});Ve(l,function(c){if(!c)return Tv("Could not find one or more icon(s)",s.value,o.value)},{immediate:!0});var u=ne(function(){return l.value?Cd(l.value.abstract[0],{},r):null});return function(){return u.value}}}),Yy=fn({name:"FontAwesomeLayers",props:{fixedWidth:{type:Boolean,default:!1}},setup:function(t,n){var r=n.slots,s=pv.familyPrefix,a=ne(function(){return["".concat(s,"-layers")].concat(yv(t.fixedWidth?["".concat(s,"-fw")]:[]))});return function(){return Yr("div",{class:a.value},r.default?r.default():[])}}}),Mv={prefix:"fas",iconName:"file-lines",icon:[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM112 256H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64H272c8.8 0 16 7.2 16 16s-7.2 16-16 16H112c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},Iv={prefix:"fas",iconName:"circle-minus",icon:[512,512,["minus-circle"],"f056","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM184 232H328c13.3 0 24 10.7 24 24s-10.7 24-24 24H184c-13.3 0-24-10.7-24-24s10.7-24 24-24z"]},Nv=Iv,Hv={prefix:"fas",iconName:"arrow-up-long",icon:[384,512,["long-arrow-up"],"f176","M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3V480c0 17.7 14.3 32 32 32s32-14.3 32-32V109.3l73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z"]},$v={prefix:"fas",iconName:"circle-notch",icon:[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8C121.8 95.6 64 169.1 64 256c0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1c-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256c0 141.4-114.6 256-256 256S0 397.4 0 256C0 140 77.1 42.1 182.9 10.6c16.9-5 34.8 4.6 39.8 21.5z"]},Fv={prefix:"fas",iconName:"tablet-screen-button",icon:[448,512,["tablet-alt"],"f3fa","M0 64C0 28.7 28.7 0 64 0H384c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V64zM256 448a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64H64V384H384V64z"]},Dv={prefix:"fas",iconName:"bars",icon:[448,512,["navicon"],"f0c9","M0 96C0 78.3 14.3 64 32 64H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},zv={prefix:"fas",iconName:"circle-exclamation",icon:[512,512,["exclamation-circle"],"f06a","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24V264c0 13.3-10.7 24-24 24s-24-10.7-24-24V152c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"]},Vv=zv,jv={prefix:"fas",iconName:"square-check",icon:[448,512,[9745,9989,61510,"check-square"],"f14a","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Bv=jv,Uv={prefix:"fas",iconName:"list",icon:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V72c0-13.3-10.7-24-24-24H40zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H192zM16 232v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V232c0-13.3-10.7-24-24-24H40c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24v48c0 13.3 10.7 24 24 24H88c13.3 0 24-10.7 24-24V392c0-13.3-10.7-24-24-24H40z"]},Kv={prefix:"fas",iconName:"lock",icon:[448,512,[128274],"f023","M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z"]},Wv={prefix:"fas",iconName:"eye-slash",icon:[640,512,[],"f070","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7L525.6 386.7c39.6-40.6 66.4-86.1 79.9-118.4c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C465.5 68.8 400.8 32 320 32c-68.2 0-125 26.3-169.3 60.8L38.8 5.1zM223.1 149.5C248.6 126.2 282.7 112 320 112c79.5 0 144 64.5 144 144c0 24.9-6.3 48.3-17.4 68.7L408 294.5c8.4-19.3 10.6-41.4 4.8-63.3c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3c0 10.2-2.4 19.8-6.6 28.3l-90.3-70.8zM373 389.9c-16.4 6.5-34.3 10.1-53 10.1c-79.5 0-144-64.5-144-144c0-6.9 .5-13.6 1.4-20.2L83.1 161.5C60.3 191.2 44 220.8 34.5 243.7c-3.3 7.9-3.3 16.7 0 24.6c14.9 35.7 46.2 87.7 93 131.1C174.5 443.2 239.2 480 320 480c47.8 0 89.9-12.9 126.2-32.5L373 389.9z"]},qv={prefix:"fas",iconName:"globe",icon:[512,512,[127760],"f0ac","M352 256c0 22.2-1.2 43.6-3.3 64H163.3c-2.2-20.4-3.3-41.8-3.3-64s1.2-43.6 3.3-64H348.7c2.2 20.4 3.3 41.8 3.3 64zm28.8-64H503.9c5.3 20.5 8.1 41.9 8.1 64s-2.8 43.5-8.1 64H380.8c2.1-20.6 3.2-42 3.2-64s-1.1-43.4-3.2-64zm112.6-32H376.7c-10-63.9-29.8-117.4-55.3-151.6c78.3 20.7 142 77.5 171.9 151.6zm-149.1 0H167.7c6.1-36.4 15.5-68.6 27-94.7c10.5-23.6 22.2-40.7 33.5-51.5C239.4 3.2 248.7 0 256 0s16.6 3.2 27.8 13.8c11.3 10.8 23 27.9 33.5 51.5c11.6 26 20.9 58.2 27 94.7zm-209 0H18.6C48.6 85.9 112.2 29.1 190.6 8.4C165.1 42.6 145.3 96.1 135.3 160zM8.1 192H131.2c-2.1 20.6-3.2 42-3.2 64s1.1 43.4 3.2 64H8.1C2.8 299.5 0 278.1 0 256s2.8-43.5 8.1-64zM194.7 446.6c-11.6-26-20.9-58.2-27-94.6H344.3c-6.1 36.4-15.5 68.6-27 94.6c-10.5 23.6-22.2 40.7-33.5 51.5C272.6 508.8 263.3 512 256 512s-16.6-3.2-27.8-13.8c-11.3-10.8-23-27.9-33.5-51.5zM135.3 352c10 63.9 29.8 117.4 55.3 151.6C112.2 482.9 48.6 426.1 18.6 352H135.3zm358.1 0c-30 74.1-93.6 130.9-171.9 151.6c25.5-34.2 45.2-87.7 55.3-151.6H493.4z"]},Gv={prefix:"fas",iconName:"slash",icon:[640,512,[],"f715","M5.1 9.2C13.3-1.2 28.4-3.1 38.8 5.1l592 464c10.4 8.2 12.3 23.3 4.1 33.7s-23.3 12.3-33.7 4.1L9.2 42.9C-1.2 34.7-3.1 19.6 5.1 9.2z"]},Yv={prefix:"fas",iconName:"arrow-up-a-z",icon:[576,512,["sort-alpha-up"],"f15e","M183.6 42.4C177.5 35.8 169 32 160 32s-17.5 3.8-23.6 10.4l-88 96c-11.9 13-11.1 33.3 2 45.2s33.3 11.1 45.2-2L128 146.3V448c0 17.7 14.3 32 32 32s32-14.3 32-32V146.3l32.4 35.4c11.9 13 32.2 13.9 45.2 2s13.9-32.2 2-45.2l-88-96zM320 320c0 17.7 14.3 32 32 32h50.7l-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8H480c17.7 0 32-14.3 32-32s-14.3-32-32-32H429.3l73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8H352c-17.7 0-32 14.3-32 32zM416 32c-12.1 0-23.2 6.8-28.6 17.7l-64 128-16 32c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3h88.4l7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-16-32-64-128C439.2 38.8 428.1 32 416 32zM395.8 176L416 135.6 436.2 176H395.8z"]},Jv=Yv,Xv={prefix:"fas",iconName:"image",icon:[512,512,[],"f03e","M0 96C0 60.7 28.7 32 64 32H448c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96zM323.8 202.5c-4.5-6.6-11.9-10.5-19.8-10.5s-15.4 3.9-19.8 10.5l-87 127.6L170.7 297c-4.6-5.7-11.5-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4s12.4 13.6 21.6 13.6h96 32H424c8.9 0 17.1-4.9 21.2-12.8s3.6-17.4-1.4-24.7l-120-176zM112 192a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"]},Qv={prefix:"fas",iconName:"circle-check",icon:[512,512,[61533,"check-circle"],"f058","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM369 209L241 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L335 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"]},Zv={prefix:"fas",iconName:"layer-group",icon:[576,512,[],"f5fd","M264.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 149.8C37.4 145.8 32 137.3 32 128s5.4-17.9 13.9-21.8L264.5 5.2zM476.9 209.6l53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 277.8C37.4 273.8 32 265.3 32 256s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0l152-70.2zm-152 198.2l152-70.2 53.2 24.6c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L45.9 405.8C37.4 401.8 32 393.3 32 384s5.4-17.9 13.9-21.8l53.2-24.6 152 70.2c23.4 10.8 50.4 10.8 73.8 0z"]},e4={prefix:"fas",iconName:"code",icon:[640,512,[],"f121","M392.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm80.6 120.1c-12.5 12.5-12.5 32.8 0 45.3L562.7 256l-89.4 89.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l112-112c12.5-12.5 12.5-32.8 0-45.3l-112-112c-12.5-12.5-32.8-12.5-45.3 0zm-306.7 0c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3l112 112c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256l89.4-89.4c12.5-12.5 12.5-32.8 0-45.3z"]},t4={prefix:"fas",iconName:"lock-open",icon:[576,512,[],"f3c1","M352 144c0-44.2 35.8-80 80-80s80 35.8 80 80v48c0 17.7 14.3 32 32 32s32-14.3 32-32V144C576 64.5 511.5 0 432 0S288 64.5 288 144v48H64c-35.3 0-64 28.7-64 64V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V256c0-35.3-28.7-64-64-64H352V144z"]},n4={prefix:"fas",iconName:"eye",icon:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6C48.6 156 17.3 208 2.5 243.7c-3.3 7.9-3.3 16.7 0 24.6C17.3 304 48.6 356 95.4 399.4C142.5 443.2 207.2 480 288 480s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1c3.3-7.9 3.3-16.7 0-24.6c-14.9-35.7-46.2-87.7-93-131.1C433.5 68.8 368.8 32 288 32zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64c-7.1 0-13.9-1.2-20.3-3.3c-5.5-1.8-11.9 1.6-11.7 7.4c.3 6.9 1.3 13.8 3.2 20.7c13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-11.1-41.5-47.8-69.4-88.6-71.1c-5.8-.2-9.2 6.1-7.4 11.7c2.1 6.4 3.3 13.2 3.3 20.3z"]},r4={prefix:"fas",iconName:"trash",icon:[448,512,[],"f1f8","M135.2 17.7L128 32H32C14.3 32 0 46.3 0 64S14.3 96 32 96H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H320l-7.2-14.3C307.4 6.8 296.3 0 284.2 0H163.8c-12.1 0-23.2 6.8-28.6 17.7zM416 128H32L53.2 467c1.6 25.3 22.6 45 47.9 45H346.9c25.3 0 46.3-19.7 47.9-45L416 128z"]},s4={prefix:"fas",iconName:"align-left",icon:[448,512,[],"f036","M288 64c0 17.7-14.3 32-32 32H32C14.3 96 0 81.7 0 64S14.3 32 32 32H256c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H256c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32H416c17.7 0 32 14.3 32 32s-14.3 32-32 32H32c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32H32c-17.7 0-32-14.3-32-32s14.3-32 32-32H416c17.7 0 32 14.3 32 32z"]},a4={prefix:"fas",iconName:"up-right-from-square",icon:[512,512,["external-link-alt"],"f35d","M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6V32c0-17.7-14.3-32-32-32H352zM80 32C35.8 32 0 67.8 0 112V432c0 44.2 35.8 80 80 80H400c44.2 0 80-35.8 80-80V320c0-17.7-14.3-32-32-32s-32 14.3-32 32V432c0 8.8-7.2 16-16 16H80c-8.8 0-16-7.2-16-16V112c0-8.8 7.2-16 16-16H192c17.7 0 32-14.3 32-32s-14.3-32-32-32H80z"]},i4=a4,o4={prefix:"fas",iconName:"table-cells",icon:[512,512,["th"],"f00a","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zm88 64v64H64V96h88zm56 0h88v64H208V96zm240 0v64H360V96h88zM64 224h88v64H64V224zm232 0v64H208V224h88zm64 0h88v64H360V224zM152 352v64H64V352h88zm56 0h88v64H208V352zm240 0v64H360V352h88z"]},l4=o4,c4={prefix:"fas",iconName:"camera",icon:[512,512,[62258,"camera-alt"],"f030","M149.1 64.8L138.7 96H64C28.7 96 0 124.7 0 160V416c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H373.3L362.9 64.8C356.4 45.2 338.1 32 317.4 32H194.6c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"]},u4={prefix:"fas",iconName:"arrow-down-a-z",icon:[576,512,["sort-alpha-asc","sort-alpha-down"],"f15d","M183.6 469.6C177.5 476.2 169 480 160 480s-17.5-3.8-23.6-10.4l-88-96c-11.9-13-11.1-33.3 2-45.2s33.3-11.1 45.2 2L128 365.7V64c0-17.7 14.3-32 32-32s32 14.3 32 32V365.7l32.4-35.4c11.9-13 32.2-13.9 45.2-2s13.9 32.2 2 45.2l-88 96zM320 320c0-17.7 14.3-32 32-32H480c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L429.3 416H480c17.7 0 32 14.3 32 32s-14.3 32-32 32H352c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L402.7 352H352c-17.7 0-32-14.3-32-32zM416 32c12.1 0 23.2 6.8 28.6 17.7l64 128 16 32c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3L460.2 224H371.8l-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l16-32 64-128C392.8 38.8 403.9 32 416 32zM395.8 176h40.4L416 135.6 395.8 176z"]},f4=u4,d4={prefix:"fas",iconName:"caret-down",icon:[320,512,[],"f0d7","M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"]},p4={prefix:"fas",iconName:"mobile-screen",icon:[384,512,["mobile-android-alt"],"f3cf","M16 64C16 28.7 44.7 0 80 0H304c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H80c-35.3 0-64-28.7-64-64V64zM144 448c0 8.8 7.2 16 16 16h64c8.8 0 16-7.2 16-16s-7.2-16-16-16H160c-8.8 0-16 7.2-16 16zM304 64H80V384H304V64z"]},m4={prefix:"fas",iconName:"flask",icon:[448,512,[],"f0c3","M288 0H160 128C110.3 0 96 14.3 96 32s14.3 32 32 32V196.8c0 11.8-3.3 23.5-9.5 33.5L10.3 406.2C3.6 417.2 0 429.7 0 442.6C0 480.9 31.1 512 69.4 512H378.6c38.3 0 69.4-31.1 69.4-69.4c0-12.8-3.6-25.4-10.3-36.4L329.5 230.4c-6.2-10.1-9.5-21.7-9.5-33.5V64c17.7 0 32-14.3 32-32s-14.3-32-32-32H288zM192 196.8V64h64V196.8c0 23.7 6.6 46.9 19 67.1L309.5 320h-171L173 263.9c12.4-20.2 19-43.4 19-67.1z"]},h4={prefix:"fas",iconName:"upload",icon:[512,512,[],"f093","M288 109.3V352c0 17.7-14.3 32-32 32s-32-14.3-32-32V109.3l-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0l128 128c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L288 109.3zM64 352H192c0 35.3 28.7 64 64 64s64-28.7 64-64H448c35.3 0 64 28.7 64 64v32c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V416c0-35.3 28.7-64 64-64zM432 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"]},g4={prefix:"fas",iconName:"file-arrow-down",icon:[384,512,["file-download"],"f56d","M64 0C28.7 0 0 28.7 0 64V448c0 35.3 28.7 64 64 64H320c35.3 0 64-28.7 64-64V160H256c-17.7 0-32-14.3-32-32V0H64zM256 0V128H384L256 0zM216 232V334.1l31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31V232c0-13.3 10.7-24 24-24s24 10.7 24 24z"]},v4=g4,y4={prefix:"fas",iconName:"sun",icon:[512,512,[9728],"f185","M361.5 1.2c5 2.1 8.6 6.6 9.6 11.9L391 121l107.9 19.8c5.3 1 9.8 4.6 11.9 9.6s1.5 10.7-1.6 15.2L446.9 256l62.3 90.3c3.1 4.5 3.7 10.2 1.6 15.2s-6.6 8.6-11.9 9.6L391 391 371.1 498.9c-1 5.3-4.6 9.8-9.6 11.9s-10.7 1.5-15.2-1.6L256 446.9l-90.3 62.3c-4.5 3.1-10.2 3.7-15.2 1.6s-8.6-6.6-9.6-11.9L121 391 13.1 371.1c-5.3-1-9.8-4.6-11.9-9.6s-1.5-10.7 1.6-15.2L65.1 256 2.8 165.7c-3.1-4.5-3.7-10.2-1.6-15.2s6.6-8.6 11.9-9.6L121 121 140.9 13.1c1-5.3 4.6-9.8 9.6-11.9s10.7-1.5 15.2 1.6L256 65.1 346.3 2.8c4.5-3.1 10.2-3.7 15.2-1.6zM160 256a96 96 0 1 1 192 0 96 96 0 1 1 -192 0zm224 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"]},b4={prefix:"fas",iconName:"ellipsis",icon:[448,512,["ellipsis-h"],"f141","M8 256a56 56 0 1 1 112 0A56 56 0 1 1 8 256zm160 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm216-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"]},w4=b4,_4={prefix:"fas",iconName:"magnifying-glass",icon:[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"]},E4=_4,S4={prefix:"fas",iconName:"square-pen",icon:[448,512,["pen-square","pencil-square"],"f14b","M64 32C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V96c0-35.3-28.7-64-64-64H64zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-21.4 21.4-71-71 21.4-21.4c15.6-15.6 40.9-15.6 56.6 0zM119.9 289L225.1 183.8l71 71L190.9 359.9c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"]},x4=S4,A4={prefix:"fas",iconName:"copy",icon:[448,512,[],"f0c5","M208 0H332.1c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9V336c0 26.5-21.5 48-48 48H208c-26.5 0-48-21.5-48-48V48c0-26.5 21.5-48 48-48zM48 128h80v64H64V448H256V416h64v48c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V176c0-26.5 21.5-48 48-48z"]},k4={prefix:"fas",iconName:"plus",icon:[448,512,[10133,61543,"add"],"2b","M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z"]},C4={prefix:"fas",iconName:"xmark",icon:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z"]},O4=C4,L4={prefix:"fas",iconName:"chevron-right",icon:[320,512,[9002],"f054","M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"]},T4={prefix:"fas",iconName:"video-slash",icon:[640,512,[],"f4e2","M38.8 5.1C28.4-3.1 13.3-1.2 5.1 9.2S-1.2 34.7 9.2 42.9l592 464c10.4 8.2 25.5 6.3 33.7-4.1s6.3-25.5-4.1-33.7l-86.4-67.7 13.8 9.2c9.8 6.5 22.4 7.2 32.9 1.6s16.9-16.4 16.9-28.2V128c0-11.8-6.5-22.6-16.9-28.2s-23-5-32.9 1.6l-96 64L448 174.9V192 320v5.8l-32-25.1V128c0-35.3-28.7-64-64-64H113.9L38.8 5.1zM407 416.7L32.3 121.5c-.2 2.1-.3 4.3-.3 6.5V384c0 35.3 28.7 64 64 64H352c23.4 0 43.9-12.6 55-31.3z"]},P4={prefix:"fas",iconName:"display",icon:[576,512,[],"e163","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V352H64V64H512z"]},R4={prefix:"fas",iconName:"spinner",icon:[512,512,[],"f110","M304 48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm0 416a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM48 304a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm464-48a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM142.9 437A48 48 0 1 0 75 369.1 48 48 0 1 0 142.9 437zm0-294.2A48 48 0 1 0 75 75a48 48 0 1 0 67.9 67.9zM369.1 437A48 48 0 1 0 437 369.1 48 48 0 1 0 369.1 437z"]},M4={prefix:"fas",iconName:"qrcode",icon:[448,512,[],"f029","M0 80C0 53.5 21.5 32 48 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V80zM64 96v64h64V96H64zM0 336c0-26.5 21.5-48 48-48h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H48c-26.5 0-48-21.5-48-48V336zm64 16v64h64V352H64zM304 32h96c26.5 0 48 21.5 48 48v96c0 26.5-21.5 48-48 48H304c-26.5 0-48-21.5-48-48V80c0-26.5 21.5-48 48-48zm80 64H320v64h64V96zM256 304c0-8.8 7.2-16 16-16h64c8.8 0 16 7.2 16 16s7.2 16 16 16h32c8.8 0 16-7.2 16-16s7.2-16 16-16s16 7.2 16 16v96c0 8.8-7.2 16-16 16H368c-8.8 0-16-7.2-16-16s-7.2-16-16-16s-16 7.2-16 16v64c0 8.8-7.2 16-16 16H272c-8.8 0-16-7.2-16-16V304zM368 480a16 16 0 1 1 0-32 16 16 0 1 1 0 32zm64 0a16 16 0 1 1 0-32 16 16 0 1 1 0 32z"]},I4={prefix:"fas",iconName:"moon",icon:[384,512,[127769,9214],"f186","M223.5 32C100 32 0 132.3 0 256S100 480 223.5 480c60.6 0 115.5-24.2 155.8-63.4c5-4.9 6.3-12.5 3.1-18.7s-10.1-9.7-17-8.5c-9.8 1.7-19.8 2.6-30.1 2.6c-96.9 0-175.5-78.8-175.5-176c0-65.8 36-123.1 89.3-153.3c6.1-3.5 9.2-10.5 7.7-17.3s-7.3-11.9-14.3-12.5c-6.3-.5-12.6-.8-19-.8z"]},N4={prefix:"fas",iconName:"circle-plus",icon:[512,512,["plus-circle"],"f055","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM232 344V280H168c-13.3 0-24-10.7-24-24s10.7-24 24-24h64V168c0-13.3 10.7-24 24-24s24 10.7 24 24v64h64c13.3 0 24 10.7 24 24s-10.7 24-24 24H280v64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"]},H4=N4,$4={prefix:"fas",iconName:"desktop",icon:[576,512,[128421,61704,"desktop-alt"],"f390","M64 0C28.7 0 0 28.7 0 64V352c0 35.3 28.7 64 64 64H240l-10.7 32H160c-17.7 0-32 14.3-32 32s14.3 32 32 32H416c17.7 0 32-14.3 32-32s-14.3-32-32-32H346.7L336 416H512c35.3 0 64-28.7 64-64V64c0-35.3-28.7-64-64-64H64zM512 64V288H64V64H512z"]},F4={prefix:"fas",iconName:"book",icon:[448,512,[128212],"f02d","M96 0C43 0 0 43 0 96V416c0 53 43 96 96 96H384h32c17.7 0 32-14.3 32-32s-14.3-32-32-32V384c17.7 0 32-14.3 32-32V32c0-17.7-14.3-32-32-32H384 96zm0 384H352v64H96c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16zm16 48H336c8.8 0 16 7.2 16 16s-7.2 16-16 16H144c-8.8 0-16-7.2-16-16s7.2-16 16-16z"]},D4={prefix:"fas",iconName:"check",icon:[448,512,[10003,10004],"f00c","M438.6 105.4c12.5 12.5 12.5 32.8 0 45.3l-256 256c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 338.7 393.4 105.4c12.5-12.5 32.8-12.5 45.3 0z"]},z4={prefix:"fas",iconName:"triangle-exclamation",icon:[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480H40c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24V296c0 13.3 10.7 24 24 24s24-10.7 24-24V184c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"]},V4={prefix:"fas",iconName:"circle-xmark",icon:[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM175 175c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z"]},j4=V4,B4={prefix:"far",iconName:"star",icon:[576,512,[11088,61446],"f005","M287.9 0c9.2 0 17.6 5.2 21.6 13.5l68.6 141.3 153.2 22.6c9 1.3 16.5 7.6 19.3 16.3s.5 18.1-5.9 24.5L433.6 328.4l26.2 155.6c1.5 9-2.2 18.1-9.7 23.5s-17.3 6-25.3 1.7l-137-73.2L151 509.1c-8.1 4.3-17.9 3.7-25.3-1.7s-11.2-14.5-9.7-23.5l26.2-155.6L31.1 218.2c-6.5-6.4-8.7-15.9-5.9-24.5s10.3-14.9 19.3-16.3l153.2-22.6L266.3 13.5C270.4 5.2 278.7 0 287.9 0zm0 79L235.4 187.2c-3.5 7.1-10.2 12.1-18.1 13.3L99 217.9 184.9 303c5.5 5.5 8.1 13.3 6.8 21L171.4 443.7l105.2-56.2c7.1-3.8 15.6-3.8 22.6 0l105.2 56.2L384.2 324.1c-1.3-7.7 1.2-15.5 6.8-21l85.9-85.1L358.6 200.5c-7.8-1.2-14.6-6.1-18.1-13.3L287.9 79z"]},U4={prefix:"far",iconName:"calendar",icon:[448,512,[128197,128198],"f133","M152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H64C28.7 64 0 92.7 0 128v16 48V448c0 35.3 28.7 64 64 64H384c35.3 0 64-28.7 64-64V192 144 128c0-35.3-28.7-64-64-64H344V24c0-13.3-10.7-24-24-24s-24 10.7-24 24V64H152V24zM48 192H400V448c0 8.8-7.2 16-16 16H64c-8.8 0-16-7.2-16-16V192z"]},K4={prefix:"far",iconName:"paper-plane",icon:[512,512,[61913],"f1d8","M16.1 260.2c-22.6 12.9-20.5 47.3 3.6 57.3L160 376V479.3c0 18.1 14.6 32.7 32.7 32.7c9.7 0 18.9-4.3 25.1-11.8l62-74.3 123.9 51.6c18.9 7.9 40.8-4.5 43.9-24.7l64-416c1.9-12.1-3.4-24.3-13.5-31.2s-23.3-7.5-34-1.4l-448 256zm52.1 25.5L409.7 90.6 190.1 336l1.2 1L68.2 285.7zM403.3 425.4L236.7 355.9 450.8 116.6 403.3 425.4z"]},W4={prefix:"fab",iconName:"github-alt",icon:[480,512,[],"f113","M186.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM480 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3h48.2c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"]},q4={prefix:"fab",iconName:"openid",icon:[448,512,[],"f19b","M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2c0-71.5 82.5-131 191.7-144.3v43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103v-340l68-33.2v384zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8v-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8L448 291z"]};mv.add(k4,H4,M4,Xv,r4,D4,Bv,O4,Kv,t4,E4,w4,Dv,R4,W4,d4,Zv,Nv,Vv,x4,l4,Uv,j4,h4,qv,F4,m4,e4,A4,f4,Jv,n4,Wv,i4,c4,v4,y4,I4,$4,$v,Qv,z4,Mv,T4,B4,L4,q4,K4,Gv,s4,p4,Fv,P4,U4,Hv);const G4=(e,t)=>{const n=e.__vccOpts||e;for(const[r,s]of t)n[r]=s;return n},Y4={},J4={class:"columns is-centered"},X4={class:"form-column column is-two-thirds-tablet is-half-desktop is-half-widescreen is-one-third-fullhd"};function Q4(e,t){return U(),Z("div",J4,[Q("div",X4,[qr(e.$slots,"default")])])}const Z4=G4(Y4,[["render",Q4]]),e3=["innerHTML"],t3=["innerHTML"],n3={__name:"FormWrapper",props:{title:{type:String,default:""},punchline:{type:String,default:""}},setup(e){return(t,n)=>{const r=je("ResponsiveWidthWrapper");return U(),tt(r,null,{default:at(()=>[e.title?(U(),Z("h1",{key:0,class:"title has-text-grey-dark",innerHTML:t.$t(e.title)},null,8,e3)):de("",!0),e.punchline?(U(),Z("div",{key:1,id:"punchline",class:"block",innerHTML:t.$t(e.punchline)},null,8,t3)):de("",!0),qr(t.$slots,"default")]),_:3})}}},r3={class:"main"},s3={key:0,class:"columns is-gapless"},a3={class:"column has-text-centered"},i3={class:"field is-grouped"},o3={key:1,class:"content has-text-centered"},l3={key:2,class:"content has-text-centered"},c3={key:1},u3={key:3,class:"content has-text-centered"},f3={key:0,class:"is-size-6"},d3={class:"has-text-weight-bold"},p3={key:1},m3={key:0},h3={key:0,class:"release-flag"},g3={key:1},v3={__name:"Footer",props:{showButtons:!0,internalFooterType:{type:String,default:"navLinks"}},setup(e){const t=Qf(),n=qe(),r=et("2fauth");function s(){confirm(Ye("auth.confirm.logout"))&&n.logout()}return(a,i)=>{const o=je("router-link");return U(),Z("footer",r3,[e.showButtons?(U(),Z("div",s3,[Q("div",a3,[Q("div",i3,[qr(a.$slots,"default")])])])):de("",!0),e.internalFooterType=="doneButton"?(U(),Z("div",o3,[Q("button",{id:"lnkExitEdit",class:"button is-ghost is-like-text",onClick:i[0]||(i[0]=da(l=>a.$emit("doneButtonClicked",!0),["stop"]))},Ce(a.$t("commons.done")),1)])):e.internalFooterType=="modal"?(U(),Z("div",l3,[a.$route.name!="accounts"?(U(),tt(o,{key:0,id:"lnkBackToHome",to:{name:"accounts"},class:"has-text-grey"},{default:at(()=>[De(Ce(a.$t("commons.back_to_home")),1)]),_:1})):(U(),Z("span",c3," "))])):(U(),Z("div",u3,[a.$route.meta.showAbout===!0?(U(),Z("div",f3,[re(o,{id:"lnkAbout",to:{name:"about"},class:"has-text-grey"},{default:at(()=>[De(" 2FAuth – "),Q("span",d3,"v"+Ce(ae(r).version),1)]),_:1})])):(U(),Z("div",p3,[re(o,{id:"lnkSettings",to:{name:"settings.options"},class:"has-text-grey"},{default:at(()=>[De(Ce(a.$t("settings.settings")),1)]),_:1},8,["to"]),ae(n).isAdmin?(U(),Z("span",m3,[De(" - "),re(o,{id:"lnkAdmin",to:{name:"admin.appSetup"},class:"has-text-grey"},{default:at(()=>[De(Ce(a.$t("admin.admin")),1),ae(t).latestRelease&&ae(t).checkForUpdate?(U(),Z("span",h3)):de("",!0)]),_:1},8,["to"])])):de("",!0),!ae(r).config.proxyAuth||ae(r).config.proxyAuth&&ae(r).config.proxyLogoutUrl?(U(),Z("span",g3,[De(" - "),Q("button",{id:"lnkSignOut",class:"button is-text is-like-text has-text-grey",onClick:s},Ce(a.$t("auth.sign_out")),1)])):de("",!0)]))]))])}}},y3={class:"modal-content"},b3={class:"section"},w3={class:"columns is-centered"},_3={class:"column is-three-quarters"},E3={class:"modal-slot box has-text-centered is-shadowless"},S3={__name:"Modal",props:{modelValue:Boolean,closable:{type:Boolean,default:!0}},emits:["update:modelValue"],setup(e,{emit:t}){const{notify:n}=Zu(),r=e,s=t,a=ne({get(){return r.modelValue},set(o){s("update:modelValue",o)}});function i(o){n({clean:!0}),a.value=!1}return(o,l)=>{const u=je("ButtonBackCloseCancel"),c=je("VueFooter");return U(),Z("div",{class:Ae(["modal modal-otp",{"is-active":ae(a)}])},[Q("div",{class:"modal-background",onClick:da(i,["stop"])}),Q("div",y3,[Q("section",b3,[Q("div",w3,[Q("div",_3,[Q("div",E3,[qr(o.$slots,"default")])])])])]),r.closable?(U(),tt(c,{key:0,showButtons:!0,internalFooterType:"modal"},{default:at(()=>[re(u,{action:"close",useLinkTag:!1,onClosed:i})]),_:1})):de("",!0)],2)}}},x3=["type","disabled"],A3={__name:"Button",props:{color:{type:String,default:"is-link"},nativeType:{type:String,default:"submit"},isLoading:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1}},setup(e){return(t,n)=>(U(),Z("button",{type:e.nativeType,disabled:e.isLoading||e.isDisabled,class:Ae({button:!0,[`${e.color}`]:!0,"is-loading":e.isLoading})},[qr(t.$slots,"default")],10,x3))}},k3={key:0,class:"control"},C3={key:1,class:"control"},O3={__name:"ButtonBackCloseCancel",props:{returnTo:{type:Object,default:{name:"accounts"}},action:{type:String,default:"close"},useLinkTag:{type:Boolean,default:!0},isText:{type:Boolean,default:!1},isCapture:{type:Boolean,default:!1},isRounded:{type:Boolean,default:!0}},setup(e){O1(),pf();const t=_f(),n=e,r="button"+(t.value==="dark"&&!n.isText&&!n.isCapture?" is-dark":"")+(n.isText?" is-text":"")+(n.isCapture?" is-large is-warning":"")+(n.isRounded?" is-rounded":"");return(s,a)=>{const i=je("RouterLink");return e.useLinkTag?(U(),Z("p",k3,[e.action=="close"?(U(),tt(i,{key:0,id:"btnClose",to:e.returnTo,class:Ae(r),tabindex:"0",role:"button","aria-label":s.$t("commons.close_the_x_page",{pagetitle:s.$route.meta.title})},{default:at(()=>[De(Ce(s.$t("commons.close")),1)]),_:1},8,["to","aria-label"])):e.action=="back"?(U(),tt(i,{key:1,id:"lnkBack",to:e.returnTo,class:Ae(r),"aria-label":s.$t("commons.close_the_x_page",{pagetitle:s.$route.meta.title})},{default:at(()=>[De(Ce(s.$t("commons.back")),1)]),_:1},8,["to","aria-label"])):e.action=="cancel"?(U(),tt(i,{key:2,id:"btnCancel",to:e.returnTo,class:Ae(r)},{default:at(()=>[De(Ce(s.$t("commons.cancel")),1)]),_:1},8,["to"])):de("",!0)])):(U(),Z("p",C3,[e.action=="close"?(U(),Z("button",{key:0,id:"btnClose",class:Ae(r),onClick:a[0]||(a[0]=o=>s.$emit("closed")),type:"button"},Ce(s.$t("commons.close")),1)):de("",!0),e.action=="cancel"?(U(),Z("button",{key:1,id:"btnCancel",class:Ae(r),onClick:a[1]||(a[1]=o=>s.$emit("canceled")),type:"button"},Ce(s.$t("commons.cancel")),1)):de("",!0)]))}}},L3={role:"alert"},T3=["id","innerHTML"],P3={__name:"FieldError",props:{error:{type:String,required:!0},field:{type:String,required:!0},alertType:{type:String,default:"is-danger"}},setup(e){return(t,n)=>(U(),Z("div",L3,[Q("p",{id:"valError"+e.field[0].toUpperCase()+e.field.toLowerCase().slice(1),class:Ae(["help",e.alertType]),innerHTML:e.error},null,10,T3)]))}},R3=["for","innerHTML"],M3=["disabled","id","type","value","placeholder","maxlength"],I3={key:0,class:"icon is-small is-left"},N3={key:1,class:"icon is-small is-right"},H3=["innerHTML"],$3=Object.assign({inheritAttrs:!1},{__name:"FormField",props:{modelValue:[String,Number,Boolean],label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],inputType:{type:String,default:"text"},placeholder:{type:String,default:""},help:{type:String,default:""},hasOffset:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},maxLength:{type:Number,default:null},isIndented:Boolean,leftIcon:"",rightIcon:""},setup(e){const t=e,{inputId:n}=Dn(t.inputType,t.fieldName);return(r,s)=>{const a=je("FontAwesomeIcon"),i=je("FieldError");return U(),Z("div",{class:Ae(["mb-3",{"pt-3":e.hasOffset,"is-flex":e.isIndented}])},[e.isIndented?(U(),Z("div",{key:0,class:"mx-2 pr-1",style:an({opacity:e.isDisabled?"0.5":"1"})},[re(a,{class:"has-text-grey",icon:["fas","chevron-right"],transform:"rotate-135"})],4)):de("",!0),Q("div",{class:Ae(["field",{"is-flex-grow-5":e.isIndented}])},[Q("label",{for:ae(n),class:"label",style:an({opacity:e.isDisabled?"0.5":"1"}),innerHTML:r.$t(e.label)},null,12,R3),Q("div",{class:Ae(["control",{"has-icons-left":e.leftIcon,"has-icons-right":e.rightIcon}])},[Q("input",io({disabled:e.isDisabled,id:ae(n),type:e.inputType,class:"input",value:e.modelValue,placeholder:e.placeholder},r.$attrs,{onInput:s[0]||(s[0]=o=>r.$emit("update:modelValue",o.target.value)),onChange:s[1]||(s[1]=o=>r.$emit("change:modelValue",o.target.value)),maxlength:e.maxLength}),null,16,M3),e.leftIcon?(U(),Z("span",I3,[re(a,{icon:["fas",e.leftIcon],transform:"rotate-75",size:"xs"},null,8,["icon"])])):de("",!0),e.rightIcon?(U(),Z("span",N3,[re(a,{icon:["fas",e.rightIcon],transform:"rotate-75",size:"xs"},null,8,["icon"])])):de("",!0)],2),e.fieldError!=null?(U(),tt(i,{key:0,error:e.fieldError,field:e.fieldName},null,8,["error","field"])):de("",!0),e.help?(U(),Z("p",{key:1,class:"help",innerHTML:r.$t(e.help)},null,8,H3)):de("",!0)],2)],2)}}}),F3=["for","innerHTML"],D3={class:"control has-icons-right"},z3=["disabled","id","type","value","placeholder"],V3=["title"],j3=["title"],B3=["innerHTML"],U3=["innerHTML"],K3={key:3,class:"columns is-mobile is-size-7 mt-0"},W3={class:"column is-one-third"},q3={class:"has-text-weight-semibold"},G3=Q("br",null,null,-1),Y3=Q("br",null,null,-1),J3={class:"column"},X3={class:"has-text-weight-semibold"},Q3=Q("br",null,null,-1),Z3=Q("br",null,null,-1),ey=Q("br",null,null,-1),ty=Q("br",null,null,-1),ny=Object.assign({inheritAttrs:!0},{__name:"FormPasswordField",props:{modelValue:[String],label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],inputType:{type:String,default:"password"},placeholder:{type:String,default:""},help:{type:String,default:""},hasOffset:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},showRules:{type:Boolean,default:!1}},setup(e){const t=e,{inputId:n}=Dn(t.inputType,t.fieldName),r=ge(t.inputType),s=ge(!1),a=ne(()=>/[a-z]/.test(t.modelValue)),i=ne(()=>/[A-Z]/.test(t.modelValue)),o=ne(()=>/[0-9]/.test(t.modelValue)),l=ne(()=>/[^A-Za-z0-9]/.test(t.modelValue)),u=ne(()=>t.modelValue.length>=8);function c(d){s.value=!!d.getModifierState("CapsLock")}function f(d){r.value!=d&&(r.value=d)}return(d,m)=>{const g=je("font-awesome-icon"),v=je("FieldError");return U(),Z("div",{class:Ae(["field",{"pt-3":e.hasOffset}])},[Q("label",{for:ae(n),class:"label",innerHTML:d.$t(e.label)},null,8,F3),Q("div",D3,[Q("input",io({disabled:e.isDisabled,id:ae(n),type:ae(r),class:"input",value:e.modelValue,placeholder:e.placeholder},d.$attrs,{onInput:m[0]||(m[0]=_=>d.$emit("update:modelValue",_.target.value)),onKeyup:c}),null,16,z3),ae(r)=="password"?(U(),Z("span",{key:0,role:"button",id:"btnTogglePassword",tabindex:"0",class:"icon is-small is-right is-clickable",onKeyup:m[1]||(m[1]=fi(_=>f("text"),["enter"])),onClick:m[2]||(m[2]=_=>f("text")),title:d.$t("auth.forms.reveal_password")},[re(g,{icon:["fas","eye-slash"]})],40,V3)):(U(),Z("span",{key:1,role:"button",id:"btnTogglePassword",tabindex:"0",class:"icon is-small is-right is-clickable",onKeyup:m[3]||(m[3]=fi(_=>f("password"),["enter"])),onClick:m[4]||(m[4]=_=>f("password")),title:d.$t("auth.forms.hide_password")},[re(g,{icon:["fas","eye"]})],40,j3))]),ae(s)?(U(),Z("p",{key:0,class:"help is-warning",innerHTML:d.$t("auth.forms.caps_lock_is_on")},null,8,B3)):de("",!0),e.fieldError!=null?(U(),tt(v,{key:1,error:e.fieldError,field:e.fieldName},null,8,["error","field"])):de("",!0),e.help?(U(),Z("p",{key:2,class:"help",innerHTML:d.$t(e.help)},null,8,U3)):de("",!0),e.showRules?(U(),Z("div",K3,[Q("div",W3,[Q("span",q3,Ce(d.$t("auth.forms.mandatory_rules")),1),G3,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(u)}]),id:"valPwdIsLongEnough"},null,2),De(Ce(d.$t("auth.forms.is_long_enough")),1),Y3]),Q("div",J3,[Q("span",X3,Ce(d.$t("auth.forms.optional_rules_you_should_follow")),1),Q3,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(a)}]),id:"valPwdHasLowerCase"},null,2),De(Ce(d.$t("auth.forms.has_lower_case")),1),Z3,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(i)}]),id:"valPwdHasUpperCase"},null,2),De(Ce(d.$t("auth.forms.has_upper_case")),1),ey,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(l)}]),id:"valPwdHasSpecialChar"},null,2),De(Ce(d.$t("auth.forms.has_special_char")),1),ty,Q("span",{class:Ae(["is-underscored",{"is-dot":ae(o)}]),id:"valPwdHasNumber"},null,2),De(Ce(d.$t("auth.forms.has_number")),1)])])):de("",!0)],2)}}}),ry={class:"field is-flex"},sy=["innerHTML"],ay={class:"control"},iy={class:"select"},oy=["disabled"],ly=["value"],cy=["innerHTML"],uy={__name:"FormSelect",props:{modelValue:[String,Number,Boolean],label:{type:String,default:""},fieldName:{type:String,default:"",required:!0},fieldError:[String],options:{type:Array,required:!0},help:{type:String,default:""},isIndented:Boolean,isDisabled:Boolean},setup(e){const n=ge(e.modelValue);return(r,s)=>{const a=je("FontAwesomeIcon"),i=je("FieldError");return U(),Z("div",ry,[e.isIndented?(U(),Z("div",{key:0,class:"mx-2 pr-1",style:an({opacity:e.isDisabled?"0.5":"1"})},[re(a,{class:"has-text-grey",icon:["fas","chevron-right"],transform:"rotate-135"})],4)):de("",!0),Q("div",null,[Q("label",{class:"label",innerHTML:r.$t(e.label),style:an({opacity:e.isDisabled?"0.5":"1"})},null,12,sy),Q("div",ay,[Q("div",iy,[hu(Q("select",{"onUpdate:modelValue":s[0]||(s[0]=o=>Le(n)?n.value=o:null),onChange:s[1]||(s[1]=o=>r.$emit("update:modelValue",o.target.value)),disabled:e.isDisabled},[(U(!0),Z(Fe,null,Au(e.options,o=>(U(),Z("option",{value:o.value},Ce(r.$t(o.text)),9,ly))),256))],40,oy),[[rh,ae(n)]])])]),e.fieldError!=null?(U(),tt(i,{key:0,error:e.fieldError,field:e.fieldName},null,8,["error","field"])):de("",!0),e.help?(U(),Z("p",{key:1,class:"help",innerHTML:r.$t(e.help)},null,8,cy)):de("",!0)])])}}};function Ld(e){var t;const n=it(e);return(t=n==null?void 0:n.$el)!=null?t:n}const Ur=ir?window:void 0;function Ni(...e){let t,n,r,s;if(typeof e[0]=="string"||Array.isArray(e[0])?([n,r,s]=e,t=Ur):[t,n,r,s]=e,!t)return fo;Array.isArray(n)||(n=[n]),Array.isArray(r)||(r=[r]);const a=[],i=()=>{a.forEach(c=>c()),a.length=0},o=(c,f,d,m)=>(c.addEventListener(f,d,m),()=>c.removeEventListener(f,d,m)),l=Ve(()=>[Ld(t),it(s)],([c,f])=>{if(i(),!c)return;const d=mf(f)?{...f}:f;a.push(...n.flatMap(m=>r.map(g=>o(c,m,g,d))))},{immediate:!0,flush:"post"}),u=()=>{l(),i()};return ar(u),u}const As=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},ks="__vueuse_ssr_handlers__",fy=dy();function dy(){return ks in As||(As[ks]=As[ks]||{}),As[ks]}function Td(e,t){return fy[e]||t}function py(e){return e==null?"any":e instanceof Set?"set":e instanceof Map?"map":e instanceof Date?"date":typeof e=="boolean"?"boolean":typeof e=="string"?"string":typeof e=="object"?"object":Number.isNaN(e)?"any":"number"}const my={boolean:{read:e=>e==="true",write:e=>String(e)},object:{read:e=>JSON.parse(e),write:e=>JSON.stringify(e)},number:{read:e=>Number.parseFloat(e),write:e=>String(e)},any:{read:e=>e,write:e=>String(e)},string:{read:e=>e,write:e=>String(e)},map:{read:e=>new Map(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e.entries()))},set:{read:e=>new Set(JSON.parse(e)),write:e=>JSON.stringify(Array.from(e))},date:{read:e=>new Date(e),write:e=>e.toISOString()}},Ic="vueuse-storage";function hy(e,t,n,r={}){var s;const{flush:a="pre",deep:i=!0,listenToStorageChanges:o=!0,writeDefaults:l=!0,mergeDefaults:u=!1,shallow:c,window:f=Ur,eventFilter:d,onError:m=x=>{console.error(x)},initOnMounted:g}=r,v=(c?Xi:ge)(typeof t=="function"?t():t);if(!n)try{n=Td("getDefaultStorage",()=>{var x;return(x=Ur)==null?void 0:x.localStorage})()}catch(x){m(x)}if(!n)return v;const _=it(t),b=py(_),y=(s=r.serializer)!=null?s:my[b],{pause:k,resume:T}=gf(v,()=>z(v.value),{flush:a,deep:i,eventFilter:d});f&&o&&ha(()=>{Ni(f,"storage",P),Ni(f,Ic,$),g&&P()}),g||P();function N(x,E){f&&f.dispatchEvent(new CustomEvent(Ic,{detail:{key:e,oldValue:x,newValue:E,storageArea:n}}))}function z(x){try{const E=n.getItem(e);if(x==null)N(E,null),n.removeItem(e);else{const C=y.write(x);E!==C&&(n.setItem(e,C),N(E,C))}}catch(E){m(E)}}function q(x){const E=x?x.newValue:n.getItem(e);if(E==null)return l&&_!=null&&n.setItem(e,y.write(_)),_;if(!x&&u){const C=y.read(E);return typeof u=="function"?u(C,_):b==="object"&&!Array.isArray(C)?{..._,...C}:C}else return typeof E!="string"?E:y.read(E)}function P(x){if(!(x&&x.storageArea!==n)){if(x&&x.key==null){v.value=_;return}if(!(x&&x.key!==e)){k();try{(x==null?void 0:x.newValue)!==y.write(v.value)&&(v.value=q(x))}catch(E){m(E)}finally{x?Cn(T):T()}}}}function $(x){P(x.detail)}return v}function gy(){const e=ge(!1),t=sr();return t&&On(()=>{e.value=!0},t),e}function vy(e){const t=gy();return ne(()=>(t.value,!!e()))}function yy(e,t={}){const{window:n=Ur}=t,r=vy(()=>n&&"matchMedia"in n&&typeof n.matchMedia=="function");let s;const a=ge(!1),i=u=>{a.value=u.matches},o=()=>{s&&("removeEventListener"in s?s.removeEventListener("change",i):s.removeListener(i))},l=eo(()=>{r.value&&(o(),s=n.matchMedia(it(e)),"addEventListener"in s?s.addEventListener("change",i):s.addListener(i),a.value=s.matches)});return ar(()=>{l(),o(),s=void 0}),a}function by(e){return yy("(prefers-color-scheme: dark)",e)}function wy(e={}){const{selector:t="html",attribute:n="class",initialValue:r="auto",window:s=Ur,storage:a,storageKey:i="vueuse-color-scheme",listenToStorageChanges:o=!0,storageRef:l,emitAuto:u,disableTransition:c=!0}=e,f={auto:"",light:"light",dark:"dark",...e.modes||{}},d=by({window:s}),m=ne(()=>d.value?"dark":"light"),g=l||(i==null?po(r):hy(i,r,a,{window:s,listenToStorageChanges:o})),v=ne(()=>g.value==="auto"?m.value:g.value),_=Td("updateHTMLAttrs",(T,N,z)=>{const q=typeof T=="string"?s==null?void 0:s.document.querySelector(T):Ld(T);if(!q)return;let P;if(c&&(P=s.document.createElement("style"),P.appendChild(document.createTextNode("*,*::before,*::after{-webkit-transition:none!important;-moz-transition:none!important;-o-transition:none!important;-ms-transition:none!important;transition:none!important}")),s.document.head.appendChild(P)),N==="class"){const $=z.split(/\s/g);Object.values(f).flatMap(x=>(x||"").split(/\s/g)).filter(Boolean).forEach(x=>{$.includes(x)?q.classList.add(x):q.classList.remove(x)})}else q.setAttribute(N,z);c&&(s.getComputedStyle(P).opacity,document.head.removeChild(P))});function b(T){var N;_(t,n,(N=f[T])!=null?N:T)}function y(T){e.onChanged?e.onChanged(T,b):b(T)}Ve(v,y,{flush:"post",immediate:!0}),ha(()=>y(v.value));const k=ne({get(){return u?g.value:v.value},set(T){g.value=T}});try{return Object.assign(k,{store:g,system:m,state:v})}catch{return k}}const _y=fn({name:"UseColorMode",props:["selector","attribute","modes","onChanged","storageKey","storage","emitAuto"],setup(e,{slots:t}){const n=wy(e),r=Nt({mode:n,system:n.system,store:n.store});return()=>{if(t.default)return t.default(r)}}});function ei(e){return typeof Window<"u"&&e instanceof Window?e.document.documentElement:typeof Document<"u"&&e instanceof Document?e.documentElement:e}function Pd(e){const t=window.getComputedStyle(e);if(t.overflowX==="scroll"||t.overflowY==="scroll"||t.overflowX==="auto"&&e.clientWidth1?!0:(t.preventDefault&&t.preventDefault(),!1)}const Cs=new WeakMap;function Sy(e,t=!1){const n=ge(t);let r=null;Ve(po(e),i=>{const o=ei(it(i));if(o){const l=o;Cs.get(l)||Cs.set(l,l.style.overflow),n.value&&(l.style.overflow="hidden")}},{immediate:!0});const s=()=>{const i=ei(it(e));!i||n.value||(jl&&(r=Ni(i,"touchmove",o=>{Ey(o)},{passive:!1})),i.style.overflow="hidden",n.value=!0)},a=()=>{var i;const o=ei(it(e));!o||!n.value||(jl&&(r==null||r()),o.style.overflow=(i=Cs.get(o))!=null?i:"",Cs.delete(o),n.value=!1)};return ar(a),ne({get(){return n.value},set(i){i?s():a()}})}function xy(){let e=!1;const t=ge(!1);return(n,r)=>{if(t.value=r.value,e)return;e=!0;const s=Sy(n,r.value);Ve(t,a=>s.value=a)}}xy();const Ay=["aria-labelledby"],ky=["id","innerHTML"],Cy={class:"is-toggle buttons"},Oy=["id","aria-checked","disabled","onClick","title"],Ly=["id","checked","value","disabled"],Ty=["innerHTML"],Py=["innerHTML"],Ry={__name:"FormToggle",props:{modelValue:[String,Number,Boolean],choices:{type:Array,required:!0},fieldName:{type:String,required:!0},fieldError:[String],hasOffset:Boolean,isDisabled:Boolean,label:{type:String,default:""},help:{type:String,default:""}},emits:["update:modelValue"],setup(e,{emit:t}){const n=t;function r(s){n("update:modelValue",s)}return(s,a)=>{const i=je("FontAwesomeIcon"),o=je("FieldError");return U(),Z("div",{class:Ae(["field",{"pt-3":e.hasOffset}]),role:"radiogroup","aria-labelledby":ae(Dn)("label",e.fieldName).inputId},[e.label?(U(),Z("label",{key:0,id:ae(Dn)("label",e.fieldName).inputId,class:"label",innerHTML:s.$t(e.label)},null,8,ky)):de("",!0),Q("div",Cy,[re(ae(_y),null,{default:at(({mode:l})=>[(U(!0),Z(Fe,null,Au(e.choices,u=>(U(),Z("button",{key:u.value,id:ae(Dn)("button",e.fieldName+u.value).inputId,role:"radio",type:"button",class:Ae(["button",{"is-link":e.modelValue===u.value,"is-dark":l==="dark","is-multiline":u.legend}]),"aria-checked":e.modelValue===u.value,disabled:e.isDisabled,onClick:da(c=>r(u.value),["stop"]),title:u.title?u.title:""},[Q("input",{id:ae(Dn)("radio",u.value).inputId,type:"radio",class:"is-hidden",checked:e.modelValue===u.value,value:u.value,disabled:e.isDisabled},null,8,Ly),u.legend?(U(),Z("span",{key:0,innerHTML:s.$t(u.legend),class:"is-block is-size-7"},null,8,Ty)):de("",!0),u.icon?(U(),tt(i,{key:1,icon:["fas",u.icon],class:"mr-2"},null,8,["icon"])):de("",!0),De(" "+Ce(s.$t(u.text)),1)],10,Oy))),128))]),_:1})]),e.fieldError!=null?(U(),tt(o,{key:1,error:e.fieldError,field:e.fieldName},null,8,["error","field"])):de("",!0),e.help?(U(),Z("p",{key:2,class:"help",innerHTML:s.$t(e.help)},null,8,Py)):de("",!0)],10,Ay)}}},My={class:"field is-flex"},Iy=["id","name","disabled"],Ny=["for","innerHTML","onKeypress"],Hy=["innerHTML"],$y=Object.assign({inheritAttrs:!1},{__name:"FormCheckbox",props:{modelValue:Boolean,fieldName:{type:String,default:"",required:!0},label:{type:String,default:""},labelClass:{type:String,default:""},help:{type:String,default:""},isIndented:Boolean,isDisabled:Boolean},emits:["update:modelValue"],setup(e,{emit:t}){const n=e,r=t,s=Xp(),a=ne({get(){return n.modelValue},set(o){r("update:modelValue",o)}});function i(){s.disabled!=!0&&(a.value=!a.value)}return(o,l)=>{const u=je("FontAwesomeIcon");return U(),Z("div",My,[e.isIndented?(U(),Z("div",{key:0,class:"mx-2 pr-1",style:an({opacity:e.isDisabled?"0.5":"1"})},[re(u,{class:"has-text-grey",icon:["fas","chevron-right"],transform:"rotate-135"})],4)):de("",!0),Q("div",null,[hu(Q("input",{id:e.fieldName,type:"checkbox",name:e.fieldName,class:"is-checkradio is-info","onUpdate:modelValue":l[0]||(l[0]=c=>Le(a)?a.value=c:null),disabled:e.isDisabled},null,8,Iy),[[nh,ae(a)]]),Q("label",{tabindex:"0",for:e.fieldName,class:Ae(["label",e.labelClass]),innerHTML:o.$t(e.label),onKeypress:fi(da(i,["prevent"]),["space"])},null,42,Ny),e.help?(U(),Z("p",{key:0,class:"help",innerHTML:o.$t(e.help)},null,8,Hy)):de("",!0)])])}}}),Fy={class:"field is-grouped"},Dy={class:"control"},zy={key:0,class:"control"},Vy={__name:"FormButtons",props:{showCancelButton:{type:Boolean,default:!1},isBusy:{type:Boolean,default:!1},isDisabled:{type:Boolean,default:!1},caption:{type:String,default:"commons.submit"},cancelLandingView:{type:String,default:""},color:{type:String,default:"is-link"},submitId:{type:String,default:"btnSubmit"},cancelId:{type:String,default:"btnCancel"}},setup(e){return(t,n)=>{const r=je("VueButton"),s=je("RouterLink");return U(),Z("div",Fy,[Q("div",Dy,[re(r,{id:e.submitId,color:e.color,isLoading:e.isBusy,disabled:e.isDisabled},{default:at(()=>[De(Ce(t.$t(e.caption)),1)]),_:1},8,["id","color","isLoading","disabled"])]),e.showCancelButton?(U(),Z("div",zy,[re(s,{id:e.cancelId,to:{name:e.cancelLandingView},class:"button is-text"},{default:at(()=>[De(Ce(t.$t("commons.cancel")),1)]),_:1},8,["id","to"])])):de("",!0)])}}},jy={__name:"Kicker",props:{kickAfter:{type:Number,required:!0}},setup(e){const t=qe(),n=ge(["mousedown","scroll","keypress"]),r=ge(null),s=e;Ve(()=>s.kickAfter,()=>{o()}),On(()=>{n.value.forEach(function(u){window.addEventListener(u,o)},this),a()}),oa(()=>{n.value.forEach(function(u){window.removeEventListener(u,o)},this),l()});function a(){r.value=setTimeout(i,s.kickAfter*60*1e3)}function i(){clearTimeout(r.value),t.logout({kicked:!0})}function o(){l(),a()}function l(){clearTimeout(r.value)}return(u,c)=>null}},Tn=ch(K1),Rd={prefix:"2fauth_",config:window.appConfig,version:window.appVersion,isDemoApp:window.isDemoApp,isTestingApp:window.isTestingApp,langs:window.appLocales,urls:window.urls};Tn.provide("2fauth",rr(Rd));const Md=q1();Md.use(({store:e})=>{e.$2fauth=Rd});Tn.use(Md);Tn.use(er);Tn.use(xg,{lang:document.documentElement.lang.substring(0,2),resolve:async e=>{const t=Object.assign({"../lang/php_ar.json":()=>X(()=>import("./php_ar-CiPag0wT.js"),[],import.meta.url),"../lang/php_bg.json":()=>X(()=>import("./php_bg-C_QYqeC2.js"),[],import.meta.url),"../lang/php_de.json":()=>X(()=>import("./php_de-BNdlHPsO.js"),[],import.meta.url),"../lang/php_en.json":()=>X(()=>import("./php_en-C4IEX6AH.js"),[],import.meta.url),"../lang/php_es.json":()=>X(()=>import("./php_es-Lxkbsyey.js"),[],import.meta.url),"../lang/php_fr.json":()=>X(()=>import("./php_fr-Cur_j0aK.js"),[],import.meta.url),"../lang/php_hi.json":()=>X(()=>import("./php_hi-CU6d3ViN.js"),[],import.meta.url),"../lang/php_id.json":()=>X(()=>import("./php_id-CM1wJZ2G.js"),[],import.meta.url),"../lang/php_it.json":()=>X(()=>import("./php_it-BpueWuGs.js"),[],import.meta.url),"../lang/php_ja.json":()=>X(()=>import("./php_ja-Bfru0uTI.js"),[],import.meta.url),"../lang/php_ko.json":()=>X(()=>import("./php_ko-CXCP7am7.js"),[],import.meta.url),"../lang/php_nl.json":()=>X(()=>import("./php_nl-DyZ6Mpcv.js"),[],import.meta.url),"../lang/php_pl.json":()=>X(()=>import("./php_pl-CiPag0wT.js"),[],import.meta.url),"../lang/php_pt.json":()=>X(()=>import("./php_pt-jHljIwjL.js"),[],import.meta.url),"../lang/php_ro.json":()=>X(()=>import("./php_ro-DZtFBYoK.js"),[],import.meta.url),"../lang/php_ru.json":()=>X(()=>import("./php_ru-DBo3L5wk.js"),[],import.meta.url),"../lang/php_si.json":()=>X(()=>import("./php_si-DO4lw2wu.js"),[],import.meta.url),"../lang/php_tr.json":()=>X(()=>import("./php_tr-kY6NvRcc.js"),[],import.meta.url),"../lang/php_zh.json":()=>X(()=>import("./php_zh-Co42ifwQ.js"),[],import.meta.url)});if(e.includes("php_"))return await t[`../lang/${e}.json`]()}});Tn.use(Ah);Tn.component("FontAwesomeIcon",Rv).component("ResponsiveWidthWrapper",Z4).component("FormWrapper",n3).component("VueFooter",v3).component("Modal",S3).component("VueButton",A3).component("ButtonBackCloseCancel",O3).component("FieldError",P3).component("FormField",$3).component("FormPasswordField",ny).component("FormSelect",uy).component("FormToggle",Ry).component("FormCheckbox",$y).component("FormButtons",Vy).component("Kicker",jy);Tn.mount("#app");qe().applyUserPrefs();export{pf as $,By as A,qr as B,da as C,Le as D,Au as E,Fe as F,rh as G,Ye as H,Cg as I,ms as J,ic as K,ha as L,ar as M,vf as N,it as O,Cn as P,Ky as Q,et as R,Qf as S,Wy as T,_y as U,Lg as V,io as W,nh as X,Vu as Y,Gy as Z,Dn as _,qe as a,Eu as a0,Uy as a1,wf as a2,qy as a3,Ln as a4,Jr as a5,G4 as a6,Pg as a7,Yy as a8,yt as b,Xf as c,Nt as d,je as e,U as f,Z as g,Q as h,ae as i,De as j,tt as k,de as l,re as m,Ae as n,On as o,at as p,fn as q,ge as r,Ve as s,Ce as t,O1 as u,oa as v,fi as w,ne as x,an as y,hu as z}; diff --git a/public/build/assets/appSettingsUpdater-CrpPSh5Y.js b/public/build/assets/appSettingsUpdater-Dgw-hmnk.js similarity index 84% rename from public/build/assets/appSettingsUpdater-CrpPSh5Y.js rename to public/build/assets/appSettingsUpdater-Dgw-hmnk.js index 3b4f46a7..4e5ce360 100644 --- a/public/build/assets/appSettingsUpdater-CrpPSh5Y.js +++ b/public/build/assets/appSettingsUpdater-Dgw-hmnk.js @@ -1 +1 @@ -import{a7 as u,b as a,H as i}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */async function c(n,e,o=!1){let s=null,r=null;return await u.update(n,e,{returnError:!0}).then(t=>{s=e,a().success({type:"is-success",text:i("settings.forms.setting_saved")})}).catch(t=>{o&&t.response.status===422?r=t:a().error(t)}),{data:s,error:r}}export{c as u}; +import{a7 as u,b as a,H as i}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */async function c(n,e,o=!1){let s=null,r=null;return await u.update(n,e,{returnError:!0}).then(t=>{s=e,a().success({type:"is-success",text:i("settings.forms.setting_saved")})}).catch(t=>{o&&t.response.status===422?r=t:a().error(t)}),{data:s,error:r}}export{c as u}; diff --git a/public/build/assets/bus-9R_lUvV0.js b/public/build/assets/bus-Sx3kCjbz.js similarity index 77% rename from public/build/assets/bus-9R_lUvV0.js rename to public/build/assets/bus-Sx3kCjbz.js index d3840796..59789fd6 100644 --- a/public/build/assets/bus-9R_lUvV0.js +++ b/public/build/assets/bus-Sx3kCjbz.js @@ -1 +1 @@ -import{a5 as e}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const r=e({id:"bus",state:()=>({migrationUri:null,decodedUri:null,inManagementMode:!1,editedGroupName:null,username:null}),actions:{}});export{r as u}; +import{a5 as e}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const r=e({id:"bus",state:()=>({migrationUri:null,decodedUri:null,inManagementMode:!1,editedGroupName:null,username:null}),actions:{}});export{r as u}; diff --git a/public/build/assets/php_de-BNdlHPsO.js b/public/build/assets/php_de-BNdlHPsO.js new file mode 100644 index 00000000..de0237ac --- /dev/null +++ b/public/build/assets/php_de-BNdlHPsO.js @@ -0,0 +1,4 @@ +/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const e={"admin.admin":"Administrator","admin.app_setup":"App-Einstellungen","admin.auth":"Auth","admin.registrations":"Registrierungen","admin.users":"Benutzer","admin.users_legend":"Benutzer verwalten, die bereits registriert sind, oder neue Benutzer erstellen.","admin.admin_settings":"Administrator-Einstellungen","admin.create_new_user":"Benutzer erstellen","admin.new_user":"Neuer Benutzer","admin.search_user_placeholder":"Benutzername, E-Mail...","admin.quick_filters_colons":"Schnellfilter:","admin.user_created":"Benutzer erfolgreich erstellt","admin.confirm.delete_user":"Sind Sie sicher, dass Sie diesen Benutzer löschen möchten? Es gibt kein zurück mehr.","admin.confirm.request_password_reset":"Sind Sie sicher, dass Sie das Passwort dieses Benutzers zurücksetzen möchten?","admin.confirm.purge_password_reset_request":"Sind Sie sicher, dass Sie die vorherige Anfrage widerrufen möchten?","admin.confirm.delete_account":"Sind Sie sicher, dass Sie diesen Benutzer löschen möchten?","admin.confirm.edit_own_account":"Dies ist Ihr eigener Account. Sind Sie sicher?","admin.confirm.change_admin_role":"Dies wird gravierende Auswirkungen auf die Berechtigungen dieses Benutzers haben. Sind Sie sicher?","admin.confirm.demote_own_account":"Sie werden kein Administrator mehr sein. Wirklich sicher?","admin.logs":"Protokolle","admin.administration_legend":"Die folgenden Einstellungen sind global und gelten für alle Benutzer.","admin.user_management":"Benutzerverwaltung","admin.oauth_provider":"OAuth-Provider","admin.account_bound_to_x_via_oauth":"Dieses Konto ist mit einem :provider Konto über OAuth verbunden","admin.last_seen_on_date":"Zuletzt gesehen :date","admin.registered_on_date":"Registriert: :date","admin.updated_on_date":"Aktualisiert :date","admin.access":"Zugang","admin.password_requested_on_t":"Für diesen Benutzer existiert eine Anfrage zum Zurücksetzen des Passworts (Anfrage um :datetime), was bedeutet, dass der Benutzer sein Passwort noch nicht geändert hat, aber der Link, den er erhalten hat, weiterhin gültig ist. Dies könnte eine Anfrage des Benutzers selbst oder eines Administrators sein.","admin.password_request_expired":"Für diesen Benutzer existiert eine Anfrage zum Zurücksetzen des Passworts, die aber abgelaufen ist, was bedeutet, dass der Benutzer sein Passwort nicht rechtzeitig geändert hat. Dies kann eine Anfrage des Benutzers selbst oder eines Administrators sein.","admin.resend_email":"E-Mail erneut senden","admin.resend_email_title":"Eine E-Mail zum Zurücksetzen des Passworts erneut senden","admin.resend_email_help":"Verwenden Sie E-Mail erneut senden, um eine neue E-Mail zum Zurücksetzen des Passworts an den Benutzer zu senden, damit er ein neues Passwort festlegen kann. Dies wird sein aktuelles Passwort unverändert lassen und jede vorherige Anfrage wird widerrufen.","admin.reset_password":"Passwort zurücksetzen","admin.reset_password_help":"Verwenden Sie Passwort zurücksetzen um ein Passwort zurückzusetzen (dies wird ein temporäres Passwort setzen), bevor Sie eine E-Mail an den Benutzer senden, damit er ein neues Passwort setzen kann. Alle vorherigen Anfragen werden widerrufen.","admin.reset_password_title":"Passwort des Benutzers zurücksetzen","admin.password_successfully_reset":"Passwort erfolgreich zurückgesetzt","admin.user_has_x_active_pat":":count aktive Token","admin.user_has_x_security_devices":":count Sicherheitsgerät(e) (Passkeys)","admin.revoke_all_pat_for_user":"Alle Benutzer-Token widerrufen","admin.revoke_all_devices_for_user":"Alle Sicherheitsgeräte des Benutzers widerrufen","admin.danger_zone":"Gefahrenzone","admin.delete_this_user_legend":"Das Benutzerkonto sowie alle 2FA-Daten werden gelöscht.","admin.this_is_not_soft_delete":"Dies ist kein einfacher Löschvorgang, es gibt kein Zurück mehr.","admin.delete_this_user":"Benutzer löschen","admin.user_role_updated":"Benutzerrolle aktualisiert","admin.pats_succesfully_revoked":"Benutzer-PATs erfolgreich widerrufen","admin.security_devices_succesfully_revoked":"Sicherheitsgeräte des Benutzers wurden erfolgreich widerrufen","admin.variables":"Variablen","admin.cache_cleared":"Cache geleert","admin.cache_optimized":"Cache optimiert","admin.check_now":"Jetzt prüfen","admin.view_on_github":"Auf GitHub anzeigen","admin.x_is_available":":version ist verfügbar","admin.successful_login_on":'Erfolgreiche Anmeldung auf :login_at',"admin.successful_logout_on":'Erfolgreiche Abmeldung auf :login_at',"admin.failed_login_on":'Anmeldung fehlgeschlagen auf :login_at',"admin.viewed_on":'Angesehen auf :login_at',"admin.last_accesses":"Letzte Zugriffe","admin.see_full_log":"Gesamtes Zugriffsprotokoll anzeigen","admin.browser_on_platform":":browser auf :platform","admin.access_log_has_more_entries":"Das Zugriffsprotokoll enthält weitere Einträge.","admin.access_log_legend_for_user":"Vollständiges Zugriffsprotokoll für Benutzer :username","admin.show_last_month_log":"Einträge aus dem letzten Monat anzeigen","admin.show_three_months_log":"Einträge aus den letzten 3 Monaten anzeigen","admin.show_six_months_log":"Einträge aus den letzten 6 Monaten anzeigen","admin.show_one_year_log":"Einträge aus dem letzten Jahr anzeigen","admin.sort_by_date_asc":"Älteste zuerst anzeigen","admin.sort_by_date_desc":"Aktuellste zuerst anzeigen","admin.single_sign_on":"Single-Sign-On (SSO)","admin.forms.use_encryption.label":"Sensible Daten schützen","admin.forms.use_encryption.help":"Vertrauliche Daten, die 2FA-Geheimnisse und E-Mails, werden verschlüsselt in der Datenbank gespeichert. Erstellen Sie ein Backup der APP_KEY-Variablen der .env Datei (oder der gesamten Datei), da sie als Schlüssel zur gesicherten Datenbank dient. Es gibt keine Möglichkeit, verschlüsselte Daten ohne diesen Schlüssel zu wiederherzustellen.","admin.forms.restrict_registration.label":"Registrierung einschränken","admin.forms.restrict_registration.help":"Die Registrierung nur für eine begrenzte Anzahl von E-Mail-Adressen verfügbar machen. Beide Regeln können gleichzeitig verwendet werden. Dies hat keinen Einfluss auf die Registrierung über SSO.","admin.forms.restrict_list.label":"Filterliste","admin.forms.restrict_list.help":'E-Mails in dieser Liste können sich registrieren. Adressen mit einem Pfeil trennen ("|")',"admin.forms.restrict_rule.label":"Filterregel","admin.forms.restrict_rule.help":"E-Mails mit diesem regulären Ausdruck dürfen sich registrieren","admin.forms.disable_registration.label":"Registrierung deaktivieren","admin.forms.disable_registration.help":"Verhindert eine neue Benutzerregistrierung. Sofern nicht überschrieben (siehe unten) wirkt sich dies auch auf SSO aus, so dass neue Benutzer sich nicht via SSO anmelden können.","admin.forms.enable_sso.label":"SSO aktivieren","admin.forms.enable_sso.help":"Besuchern die Authentifizierung mit einer externen ID über das Single Sign-On Schema erlauben.","admin.forms.use_sso_only.label":"Nur SSO verwenden","admin.forms.use_sso_only.help":"Machen Sie SSO die einzige verfügbare Methode, um sich bei 2FAuth anzumelden. Passwort-Login und Webauthn sind dann für normale Benutzer deaktiviert. Administratoren sind von dieser Einschränkung nicht betroffen.","admin.forms.keep_sso_registration_enabled.label":"SSO-Registrierung aktiviert lassen","admin.forms.keep_sso_registration_enabled.help":"Neuen Benutzern erlauben, sich zum ersten Mal über SSO anzumelden, während die Registrierung deaktiviert ist.","admin.forms.is_admin.label":"Ist Admininstrator","admin.forms.is_admin.help":"Geben Sie dem Benutzer Administratorrechte. Administratoren haben die Berechtigung, die gesamte App zu verwalten, d. h. Einstellungen und andere Benutzer, können aber kein Passwort für eine 2FA erstellen, die sie nicht besitzen.","admin.forms.test_email.label":"E-Mail-Konfigurationstest","admin.forms.test_email.help":"Senden Sie eine Test-E-Mail, um die E-Mail-Konfiguration Ihrer Instanz zu kontrollieren. Es ist wichtig, eine funktionierende Konfiguration zu haben, sonst können Benutzer kein Zurücksetzen des Passworts anfordern.","admin.forms.test_email.email_will_be_send_to_x":'Diese E-Mail wird an :email gesendet.',"admin.forms.health_endpoint.label":"Gesicherter Endpunkt","admin.forms.health_endpoint.help":"URL die Sie besuchen können, um die Unversehrtheit dieser 2FAuth Instanz zu überprüfen. Diese URL kann verwendet werden, um eine Docker HEALTHECK oder eine Kubernetes HTTPS Liveness Sonde einzurichten.","admin.forms.cache_management.label":"Cache-Verwaltung","admin.forms.cache_management.help":"Manchmal muss der Cache geleert werden, zum Beispiel nach einer Änderung an Umgebungsvariablen oder einer Aktualisierung. Sie können es von hier aus tun.","auth.failed":"Diese Angaben stimmen nicht mit unseren Aufzeichnungen überein.","auth.password":"Das angegebene Passwort ist falsch.","auth.throttle":"Zu viele Anmeldeversuche. Bitte versuchen Sie es in :seconds Sekunden erneut.","auth.sign_out":"Abmelden","auth.sign_in":"Anmelden","auth.sign_in_using":"Anmelden mit","auth.if_administrator":"Administrator?","auth.sign_in_here":"Sie können sich ohne SSO anmelden","auth.or_continue_with":"Sie können auch fortfahren mit:","auth.password_login_and_webauthn_are_disabled":"Passwort-Login und WebAuthn sind deaktiviert.","auth.sign_in_using_sso":"Wählen Sie einen SSO-Anbieter zum Anmelden:","auth.no_provider":"kein Anbieter","auth.no_sso_provider_or_provider_is_missing":"Anbieter fehlt?","auth.see_how_to_enable_sso":"Wie man einen Anbieter aktiviert","auth.sign_in_using_security_device":"Mit einem Sicherheitsgerät anmelden","auth.login_and_password":"Benutzername & Passwort","auth.register":"Registrieren","auth.welcome_to_2fauth":"Willkommen bei 2FAuth","auth.autolock_triggered":"Automatische Sperre ausgelöst","auth.autolock_triggered_punchline":"Automatische Sperre ausgelöst, Sie wurden abgemeldet","auth.already_authenticated":"Bereits authentifiziert, bitte erst abmelden","auth.authentication":"Authentifizierung","auth.maybe_later":"Vielleicht später","auth.user_account_controlled_by_proxy":"Benutzerkonto, das von einem Authentifizierungsproxy zur Verfügung gestellt wurde.
Verwalten Sie das Konto auf Proxy-Ebene.","auth.auth_handled_by_proxy":"Authentifizierung von einem Reverse-Proxy verwaltet, unten sind die Einstellungen deaktiviert.
Authentifizierung auf Proxy-Ebene verwalten.","auth.sso_only_x_settings_are_disabled":"Authentifizierung ist nur auf SSO beschränkt, :auth_method ist deaktiviert","auth.confirm.logout":"Sind Sie sicher, dass Sie sich abmelden möchten?","auth.confirm.revoke_device":"Möchten Sie das Gerät wirklich entfernen?","auth.confirm.delete_account":"Möchten Sie Ihr Konto wirklich löschen?","auth.webauthn.security_device":"einem Sicherheitsgerät","auth.webauthn.security_devices":"Sicherheitsgeräte","auth.webauthn.security_devices_legend":"Authentifizierungsgeräte, mit denen Sie sich in 2FAuth anmelden können, wie z.B. Sicherheitsschlüssel (z.B. Yubikey) oder Smartphones mit biometrischen Fähigkeiten (z.B. Apple FaceID/TouchID)","auth.webauthn.enhance_security_using_webauthn":`Sie können die Sicherheit Ihres 2FAuth-Accounts verbessern, indem Sie die WebAuthn-Authentifizierung aktivieren.

+ WebAuthn erlaubt es Ihnen, sich schnell und sicher mit vertrauenswürdigen Geräten (wie Yubikeys oder Smartphones mit biometrischen Fähigkeiten) anzumelden.`,"auth.webauthn.use_security_device_to_sign_in":"Machen Sie sich bereit, sich mit (einem) Ihren Sicherheitsgeräten zu authentifizieren. Schließen Sie Ihren Schlüssel an, entfernen Sie die Gesichtsmaske oder Handschuhe, etc.","auth.webauthn.lost_your_device":"Haben Sie Ihr Gerät verloren?","auth.webauthn.recover_your_account":"Konto wiederherstellen","auth.webauthn.account_recovery":"Kontowiederherstellung","auth.webauthn.recovery_punchline":"2FAuth wird Ihnen einen Wiederherstellungslink an diese E-Mail-Adresse senden. Klicken Sie auf den Link in der erhaltenen E-Mail und folgen Sie den Anweisungen.

Stellen Sie sicher, dass Sie die E-Mail auf einem Gerät öffnen, das vollständig Ihnen gehört.","auth.webauthn.send_recovery_link":"Wiederherstellungs-Link senden","auth.webauthn.account_recovery_email_sent":"E-Mail zur Kontowiederherstellung versendet!","auth.webauthn.disable_all_security_devices":"Alle Sicherheitsgeräte deaktivieren","auth.webauthn.disable_all_security_devices_help":"Alle Ihre Sicherheitsgeräte werden entzogen. Verwenden Sie diese Option, wenn Sie ein Gerät verloren haben oder seine Sicherheit beeinträchtigt wurde.","auth.webauthn.register_a_new_device":"Ein neues Gerät registrieren","auth.webauthn.register_a_device":"Ein Gerät registrieren","auth.webauthn.device_successfully_registered":"Gerät erfolgreich registriert","auth.webauthn.device_revoked":"Gerät erfolgreich widerrufen","auth.webauthn.revoking_a_device_is_permanent":"Das Widerrufen eines Gerätes ist dauerhaft","auth.webauthn.recover_account_instructions":"Um Ihr Konto wiederherzustellen, setzt 2FAuth einige Webauthn-Einstellungen zurück, damit Sie sich mit Ihrer E-Mail und Ihrem Passwort anmelden können.","auth.webauthn.invalid_recovery_token":"Ungültiger Wiederherstellungsschlüssel","auth.webauthn.webauthn_login_disabled":"Webauthn-Login deaktiviert","auth.webauthn.invalid_reset_token":"Der Schlüssel zum Zurücksetzen des Passwortes ist ungültig.","auth.webauthn.rename_device":"Gerät umbenennen","auth.webauthn.my_device":"Mein Gerät","auth.webauthn.unknown_device":"Unbekanntes Gerät","auth.webauthn.use_webauthn_only.label":"Nur WebAuthn verwenden","auth.webauthn.use_webauthn_only.help":`WebAuthn als die einzige autorisierte Methode zulassen, um sich in Ihr 2FAuth-Konto einzuloggen. Diese Option ist empfohlen und bietet eine verbesserte Sicherheit durch WebAuthn.

+ Bei Verlust des WebAuthn-Geräts Sie können Ihr Konto wiederherstellen, indem Sie diese Option zurücksetzen und sich mit Ihrer E-Mail und Ihrem Passwort anmelden.

+ Achtung! Das E-Mail & Passwort-Anmeldeformular bleibt verfügbar, obwohl diese Option aktiviert ist. Eine Anmeldung hiermit führt jedoch immer zu der Meldung 'Authentifizierung fehlgeschlagen'.`,"auth.webauthn.need_a_security_device_to_enable_options":"Mindestens ein Gerät einrichten, um die nachfolgenden Optionen zu aktiveren","auth.webauthn.options":"Einstellungen","auth.forms.name":"Name","auth.forms.login":"Anmeldung","auth.forms.webauthn_login":"WebAuthn-Anmeldung","auth.forms.sso_login":"SSO-Login","auth.forms.email":"E-Mail","auth.forms.password":"Passwort","auth.forms.reveal_password":"Passwort anzeigen","auth.forms.hide_password":"Passwort verbergen","auth.forms.confirm_password":"Passwort bestätigen","auth.forms.new_password":"Neues Passwort","auth.forms.confirm_new_password":"Neues Passwort bestätigen","auth.forms.dont_have_account_yet":"Sie haben noch keinen Account?","auth.forms.already_register":"Schon registriert?","auth.forms.authentication_failed":"Anmeldung fehlgeschlagen","auth.forms.forgot_your_password":"Passwort vergessen?","auth.forms.request_password_reset":"Zurücksetzen","auth.forms.reset_your_password":"Passwort zurücksetzen","auth.forms.reset_password":"Password zurücksetzen","auth.forms.disabled_in_demo":"Funktion im Demo-Modus deaktiviert","auth.forms.sso_only_form_restricted_to_admin":"Normale Benutzer müssen sich mit SSO anmelden. Andere Methoden sind nur für Administratoren gedacht.","auth.forms.current_password.label":"Aktuelles Passwort","auth.forms.current_password.help":"Geben Sie Ihr aktuelles Passwort ein, um zu bestätigen, dass Sie es sind","auth.forms.change_password":"Passwort ändern","auth.forms.send_password_reset_link":"Link zum Zurücksetzen des Passworts senden","auth.forms.password_successfully_reset":"Passwort erfolgreich zurückgesetzt","auth.forms.edit_account":"Konto bearbeiten","auth.forms.profile_saved":"Profil erfolgreich aktualisiert!","auth.forms.welcome_to_demo_app_use_those_credentials":"Willkommen bei der 2FAuth-Demo.

Sie können sich mit der E-Mail-Adresse demo@2fauth.app und dem Passwort demo anmelden","auth.forms.welcome_to_testing_app_use_those_credentials":"Willkommen bei der 2FAuth-Testinstanz.

Verwenden Sie die E-Mail-Adresse testing@2fauth.app und das Passwort password","auth.forms.register_punchline":"Willkommen bei 2FAuth.
Sie müssen sich mit einem Konto anmelden, bitte registrieren Sie sich.","auth.forms.reset_punchline":"2FAuth sendet Ihnen einen Link zum Zurücksetzen des Passworts an diese Adresse. Klicken Sie auf den Link in der erhaltenen E-Mail, um ein neues Passwort festzulegen.","auth.forms.name_this_device":"Dieses Gerät benennen","auth.forms.delete_account":"Konto löschen","auth.forms.delete_your_account":"Ihr Konto Löschen","auth.forms.delete_your_account_and_reset_all_data":"Ihr Benutzerkonto wird gelöscht, ebenso wie alle Ihre 2FA-Daten. Es gibt kein Zurück mehr.","auth.forms.reset_your_password_to_delete_your_account":"Wenn Sie sich immer mit SSO angemeldet haben, melden Sie sich ab und verwenden Sie die Funktion zum Zurücksetzen des Passworts, um ein Passwort zu erhalten, damit Sie dieses Formular ausfüllen können.","auth.forms.deleting_2fauth_account_does_not_impact_provider":"Das Löschen Ihres 2FAuth-Kontos hat keine Auswirkungen auf Ihr externes SSO-Konto.","auth.forms.user_account_successfully_deleted":"Benutzerkonto wurde erfolgreich gelöscht","auth.forms.has_lower_case":"Beinhaltet Kleinbuchstaben","auth.forms.has_upper_case":"Beinhaltet Großbuchstaben","auth.forms.has_special_char":"Beinhaltet Sonderzeichen","auth.forms.has_number":"Beinhaltet Zahlen","auth.forms.is_long_enough":"Besteht aus mindestens 8 Zeichen","auth.forms.mandatory_rules":"Erforderlich","auth.forms.optional_rules_you_should_follow":"Empfohlen (sehr)","auth.forms.caps_lock_is_on":"Die Feststelltaste ist aktiviert","auth.sso_providers.unknown":"unbekannt","auth.sso_providers.github":"GitHub","auth.sso_providers.openid":"OpenID","commons.cancel":"Abbrechen","commons.update":"Aktualisieren","commons.copy":"Kopieren","commons.copy_to_clipboard":"In die Zwischenablage kopieren","commons.copied_to_clipboard":"In die Zwischenablage kopiert","commons.profile":"Profil","commons.edit":"Bearbeiten","commons.delete":"Löschen","commons.disable":"Deaktivieren","commons.enable":"Aktivieren","commons.create":"Erstellen","commons.save":"Speichern","commons.close":"Schließen","commons.clear":"Leeren","commons.clear_search":"Suche leeren","commons.demo_do_not_post_sensitive_data":"Dies ist eine Demo-App, veröffentlichen Sie keine sensiblen Daten","commons.testing_do_not_post_sensitive_data":"Dies ist eine Test-App, veröffentlichen Sie keine sensiblen Daten","commons.x_selected":":count ausgewählt","commons.name":"Name","commons.manage":"Verwalten","commons.done":"Erledigt","commons.new":"Neu","commons.back":"Zurück","commons.move":"Verschieben","commons.export":"Exportieren","commons.all":"Alle","commons.check_all":"Alles","commons.select_all":"Alle auswählen","commons.clear_selection":"Auswahl löschen","commons.sort_descending":"Sortierung absteigend","commons.sort_ascending":"Sortierung aufsteigend","commons.rename":"Umbenennen","commons.new_name":"Neuer Name","commons.options":"Einstellungen","commons.reload":"Neu laden","commons.refresh":"Aktualisieren","commons.data_refreshed_to_reflect_server_changes":"Daten wurden aktualisiert, um Änderungen auf dem Server wiederzugeben","commons.generate":"Erzeugen","commons.generating_otp":"OTP erzeugen","commons.open_in_browser":"Im Browser öffnen","commons.continue":"Weiter","commons.discard":"Ablehnen","commons.about":"Über","commons.usefull_links":"Nützliche Links","commons.environment":"Umgebung","commons.credits":"Mitwirkende","commons.2fauth_teaser":"Eine Web-App um Ihre Zwei-Faktor-Authentifizierung (2FA)-Konten zu verwalten und deren Sicherheitscodes zu erzeugen","commons.made_with":"Erstellt mit","commons.ui_icons_by":"UI-Symbole von","commons.logos_by":"Logos von","commons.search":"Suche","commons.resources":"Ressourcen","commons.check_for_update":"Auf neue Version prüfen","commons.check_for_update_help":"Automatisch überprüfen (einmal pro Woche) und warnen, wenn eine neue Version von 2FAuth auf Github veröffentlicht wird","commons.you_are_up_to_date":"Instanz ist auf dem neusten Stand","commons.2fauth_description":"Eine Web-App um Ihre Zwei-Faktor-Authentifizierung (2FA) Konten zu verwalten und deren Sicherheitscodes zu generieren","commons.image_of_qrcode_to_scan":"Bild eines QR-Codes zum Scannen","commons.file":"Datei","commons.or":"ODER","commons.close_the_x_page":"Seite :pagetitle schließen","commons.submit":"Absenden","commons.default":"Standard","commons.back_to_home":"Zurück zur Startseite","commons.nothing":"nichts","commons.no_result":"Kein Ergebnis","commons.information":"Information","commons.send":"Absenden","commons.optimize":"Optimieren","commons.IP":"IP","commons.browser":"Browser","commons.operating_system_short":"OS","commons.no_entry_yet":"Noch kein Eintrag","commons.time":"Zeit","commons.ip_address":"IP-Adresse","commons.device":"Gerät","commons.one_month":"1 Mon.","commons.x_month":":x Mon.","commons.one_year":"1 J.","errors.resource_not_found":"Ressource nicht gefunden","errors.error_occured":"Ein Fehler ist aufgetreten:","errors.refresh":"Aktualisieren","errors.no_valid_otp":"Keine gültige OTP-Ressource in diesem QR-Code","errors.something_wrong_with_server":"Etwas stimmt mit Ihrem Server nicht","errors.Unable_to_decrypt_uri":"URI konnte nicht entschlüsselt werden","errors.not_a_supported_otp_type":"Dieses OTP-Format wird derzeit nicht unterstützt","errors.cannot_create_otp_without_secret":"Das OTP kann nicht ohne Geheimnis erstellt werden","errors.data_of_qrcode_is_not_valid_URI":"Dieser QR-Code enthält keine gültige OTP Auth URI. Inhalt des QR-Codes:","errors.wrong_current_password":"Aktuelles Passwort falsch, nichts wurde geändert","errors.error_during_encryption":"Verschlüsselung fehlgeschlagen, Ihre Datenbank bleibt ungeschützt.","errors.error_during_decryption":"Entschlüsselung fehlgeschlagen, Ihre Datenbank bleibt geschützt. Dies wird hauptsächlich durch eine Integritätsproblem verschlüsselter Daten für ein oder mehrere Konten verursacht.","errors.qrcode_cannot_be_read":"Dieser QR-Code ist unlesbar","errors.too_many_ids":"zu viele Ids wurden in den Abfrageparameter eingefügt, maximal 100 erlaubt","errors.delete_user_setting_only":"Nur benutzerdefinierte Einstellungen können gelöscht werden","errors.indecipherable":"*nicht lesbar*","errors.cannot_decipher_secret":"Das Geheimnis kann nicht entschlüsselt werden. Dies wird hauptsächlich durch einen falsch gesetzten APP_KEY in der .env-Konfigurationsdatei von 2Fauth oder durch beschädigte Daten in der Datenbank verursacht.","errors.https_required":"HTTPS-Kontext erforderlich","errors.browser_does_not_support_webauthn":"Ihr Gerät unterstützt nicht Webauthn. Versuchen Sie es später mit einem moderneren Browser erneut","errors.aborted_by_user":"Vom Benutzer abgebrochen","errors.security_device_already_registered":"Gerät ist bereits registriert","errors.not_allowed_operation":"Vorgang nicht erlaubt","errors.no_authenticator_support_specified_algorithms":"Keine Authentifikatoren unterstützen die angegebenen Algorithmen","errors.authenticator_missing_discoverable_credential_support":"Authentifikator fehlt erkennbare Anmeldeinformationen","errors.authenticator_missing_user_verification_support":"Authentifikator fehlt Unterstützung für die Benutzerüberprüfung","errors.unknown_error":"Unbekannter Fehler","errors.security_error_check_rpid":"Sicherheitsfehler
Prüfen Sie die Umgebungsvariable WEBAUTHN_ID","errors.2fauth_has_not_a_valid_domain":"2FAuths Domain ist keine gültige Domain","errors.user_id_not_between_1_64":"Benutzer-ID war nicht zwischen 1 und 64 Zeichen","errors.no_entry_was_of_type_public_key":'Kein Eintrag vom Typ "public-key"',"errors.unsupported_with_reverseproxy":"Nicht anwendbar, wenn ein Auth-Proxy oder SSO benutzt wird","errors.unsupported_with_sso_only":"Diese Authentifizierungsmethode ist nur für Administratoren. Benutzer müssen sich mit SSO anmelden.","errors.user_deletion_failed":"Löschen des Benutzerkontos fehlgeschlagen, es wurden keine Daten gelöscht","errors.auth_proxy_failed":"Proxy-Authentifizierung fehlgeschlagen","errors.auth_proxy_failed_legend":"2Fauth ist so konfiguriert, dass es hinter einem Authentifizierungs-Proxy läuft, aber Ihr Proxy gibt nicht den erwarteten Header zurück. Überprüfen Sie Ihre Konfiguration und versuchen Sie es erneut.","errors.invalid_x_migration":"Ungültige oder nicht lesbare Daten bei :appname","errors.invalid_2fa_data":"Ungültige 2FA-Daten","errors.unsupported_migration":"Daten stimmen mit keinem der unterstützten Formate überein","errors.unsupported_otp_type":"Nicht unterstützter OTP-Typ","errors.encrypted_migration":"Nicht lesbar, die Daten scheinen verschlüsselt zu sein","errors.no_logo_found_for_x":"Kein Logo verfügbar für :service","errors.file_upload_failed":"Hochladen der Datei fehlgeschlagen","errors.unauthorized":"Nicht berechtigt","errors.unauthorized_legend":"Sie haben keine Berechtigung, diese Ressource zu sehen oder diese Aktion auszuführen","errors.cannot_delete_the_only_admin":"Löschen des einzigen Admin-Kontos nicht möglichen","errors.cannot_demote_the_only_admin":"Der einzige Admin-Account kann nicht degradiert werden","errors.error_during_data_fetching":"💀 Während des Datenabrufs ist etwas schief gelaufen","errors.check_failed_try_later":"Überprüfung fehlgeschlagen, bitte später erneut versuchen","errors.sso_disabled":"SSO ist deaktiviert","errors.sso_bad_provider_setup":"Dieser SSO-Provider ist nicht vollständig in Ihrer .env-Datei eingerichtet","errors.sso_failed":"Authentifizierung über SSO abgelehnt","errors.sso_no_register":"Registrierungen sind deaktiviert","errors.sso_email_already_used":"Ein Benutzerkonto mit der gleichen E-Mail-Adresse existiert bereits, aber es stimmt nicht mit Ihrer externen Konto-ID überein. Verwenden Sie kein SSO, wenn Sie bereits bei 2FAuth mit dieser E-Mail registriert sind.","errors.account_managed_by_external_provider":"Konto von einem externen Anbieter verwaltet","errors.data_cannot_be_refreshed_from_server":"Daten können nicht vom Server aktualisiert werden","errors.no_pwd_reset_for_this_user_type":"Passwort zurücksetzen für diesen Benutzer nicht verfügbar","errors.cannot_detect_qrcode_in_image":"Es kann kein QR-Code im Bild erkannt werden. Bitte das Bild zuschneiden","errors.cannot_decode_detected_qrcode":"Kann den QR-Code nicht dekodieren. Bitte das Bild zuschneiden oder schärfen","errors.qrcode_has_invalid_checksum":"QR-Code hat eine ungültige Prüfsumme","errors.no_readable_qrcode":"Kein lesbarer QR-Code","groups.groups":"Gruppen","groups.create_group":"Neue Gruppe erstellen","groups.show_group_selector":"Gruppenauswahl anzeigen","groups.hide_group_selector":"Gruppenauswahl ausblenden","groups.select_accounts_to_show":"Kontogruppe auswählen","groups.x_accounts":":count Konten","groups.manage_groups":"Gruppen verwalten","groups.active_group":"Aktive Gruppe","groups.manage_groups_legend":'Sie können Gruppen erstellen, um Ihre Konten so zu organisieren wie Sie möchten. Alle Konten bleiben in der Pseudo-Gruppe mit dem Namen "Alle" sichtbar, unabhängig davon, zu welcher Gruppe sie gehören.',"groups.deleting_group_does_not_delete_accounts":"Konten bleiben beim Löschen der Gruppe erhalten","groups.move_selected_to":"Ausgewählte verschieben","groups.move_selected_to_group":"Auswahl in eine Gruppe verschieben","groups.no_group":"Keine Gruppe","groups.change_group":"Gruppe ändern","groups.group_successfully_created":"Gruppe erfolgreich erstellt","groups.group_name_saved":"Gruppenname gespeichert","groups.group_successfully_deleted":"Gruppe erfolgreich gelöscht","groups.forms.new_group":"Neue Gruppe","groups.forms.new_name":"Neuer Name","groups.forms.rename_group":"Gruppe umbenennen","groups.confirm.delete":"Möchten Sie diese Gruppe wirklich löschen?","languages.browser_preference":"Browsereinstellung","languages.en":"English (Englisch)","languages.fr":"Français (Französisch)","languages.de":"Deutsch (Deutsch)","languages.es":"Español (Spanisch)","languages.zh":"简体中文 (Vereinfachtes Chinesisch)","languages.ru":"Русский (Russisch)","languages.bg":"Български (Bulgarisch)","languages.ja":"日本語 (Japanisch)","languages.hi":"हिंदी (Hindi)","languages.tr":"Türkçe (Turkish)","notifications.hello":"Hallo","notifications.hello_user":"Hallo :username,","notifications.regards":"Mit freundlichen Grüßen","notifications.test_email_settings.subject":"2FAuth-Test-E-Mail","notifications.test_email_settings.reason":"Sie erhalten diese E-Mail, weil Sie eine Test-E-Mail angefordert haben, um die E-Mail-Einstellungen Ihrer 2FAuth Instanz zu überprüfen.","notifications.test_email_settings.success":"Gute Nachricht, es funktioniert :)","notifications.new_device.subject":"Verbindung zu 2FAuth von einem neuen Gerät","notifications.new_device.resume":"Ein neues Gerät hat sich gerade mit Ihrem 2FAuth-Konto verbunden.","notifications.new_device.connection_details":"Hier sind die Details dieser Verbindung","notifications.new_device.recommandations":"Wenn dies auf Sie zutrifft, können Sie diese Meldung ignorieren. Wenn Sie eine verdächtige Aktivität in Ihrem Konto vermuten, ändern Sie bitte Ihr Passwort.","notifications.failed_login.subject":"Anmeldung bei 2FAuth fehlgeschlagen","notifications.failed_login.resume":"Es gab einen fehlgeschlagenen Anmeldeversuch auf Ihr 2FAuth Konto.","notifications.failed_login.connection_details":"Hier sind die Details zu diesem Verbindungsversuch","notifications.failed_login.recommandations":"Wenn Sie dies waren, können Sie diese Warnung ignorieren. Falls weitere Versuche fehlschlagen, sollten Sie den 2FAuth-Administrator kontaktieren, um die Sicherheitseinstellungen zu überprüfen und Maßnahmen gegen diesen Angreifer zu ergreifen.","pagination.previous":"« Zurück","pagination.next":"Weiter »","passwords.reset":"Das Passwort wurde zurückgesetzt!","passwords.sent":"Passworterinnerung wurde gesendet!","passwords.throttled":"Bitte warten Sie, bevor Sie es erneut versuchen.","passwords.token":"Der Passwort-Wiederherstellungs-Schlüssel ist ungültig oder abgelaufen.","passwords.user":"Es konnte leider kein Benutzer mit dieser E-Mail-Adresse gefunden werden.","passwords.password":"Passwörter müssen mindestens acht Zeichen lang sein und mit der Bestätigung übereinstimmen.","settings.settings":"Einstellungen","settings.preferences":"Voreinstellungen","settings.account":"Benutzerkonto","settings.oauth":"OAuth","settings.webauthn":"WebAuthn","settings.tokens":"Token","settings.options":"Einstellungen","settings.user_preferences":"Benutzereinstellungen","settings.admin_settings":"Admin-Einstellungen","settings.confirm.revoke":"Sind Sie sicher, dass Sie diesen Token widerrufen möchten?","settings.you_are_administrator":"Sie sind ein Administrator","settings.account_linked_to_sso_x_provider":"Sie haben sich mit Ihrem :provider -Konto via SSO angemeldet. Ihre Daten können hier nicht geändert werden, sondern auf :provider.","settings.general":"Allgemein","settings.security":"Sicherheit","settings.notifications":"Benachrichtigungen","settings.profile":"Profil","settings.change_password":"Passwort ändern","settings.personal_access_tokens":"Persönliche Zugriffsstoken","settings.token_legend":"Persönliche Zugriffstoken ermöglichen es jeder Anwendung, sich bei der 2Fauth-API zu authentifizieren. Sie sollten das Zugriffs-Token als Bearer-Token im Autorisierungs-Header der Anfragen von Verbraucher-Apps angeben.","settings.generate_new_token":"Neuen Token erzeugen","settings.revoke":"Widerrufen","settings.token_revoked":"Token erfolgreich widerrufen","settings.revoking_a_token_is_permanent":"Widerruf eines Token ist dauerhaft","settings.make_sure_copy_token":"Kopieren Sie Ihren persönlichen Zugangs-Token jetzt. Sie werden ihn nicht mehr sehen können!","settings.data_input":"Daten-Eingabe","settings.forms.edit_settings":"Einstellungen bearbeiten","settings.forms.setting_saved":"Einstellungen gespeichert","settings.forms.new_token":"Neuer Token","settings.forms.some_translation_are_missing":"Einige Übersetzungen fehlen bei Verwendung der bevorzugten Sprache des Browsers?","settings.forms.help_translate_2fauth":"Helfen Sie 2FAuth zu übersetzen","settings.forms.language.label":"Sprache","settings.forms.language.help":"Sprache, die zur Übersetzung der 2FAuth-Benutzeroberfläche verwendet wird. Benannte Sprachen sind vollständig. Stellen Sie die Sprache Ihrer Wahl ein, um Ihre Browserpräferenz zu überschreiben.","settings.forms.timezone.label":"Zeitzone","settings.forms.timezone.help":"Die Zeitzone wird auf alle in der Anwendung angezeigten Daten und Zeiten angewendet","settings.forms.show_otp_as_dot.label":'Erzeugte OTP als Punkt anzeigen',"settings.forms.show_otp_as_dot.help":"Passwortzeichen werden als *** angezeigt, um die Vertraulichkeit zu gewährleisten. Dies beeinflusst nicht die Kopieren/Einfügen-Funktion","settings.forms.reveal_dotted_otp.label":'Verdecktes OTP aufdecken',"settings.forms.reveal_dotted_otp.help":"Die Fähigkeit Punkt-verdeckte Passwörter temporär freigeben","settings.forms.close_otp_on_copy.label":'OTP nach dem Kopieren schließen',"settings.forms.close_otp_on_copy.help":"Bei einem Klick auf das erzeugte Passwort wird es automatisch auf dem Bildschirm ausgeblendet","settings.forms.auto_close_timeout.label":'OTP automatisch schließen',"settings.forms.auto_close_timeout.help":"Passwort automatisch nach einem Timeout auf dem Bildschirm ausblenden. Dies vermeidet unnötige Anfragen nach neuen Passwörtern, wenn Sie die Passwortansicht nicht schließen.","settings.forms.clear_search_on_copy.label":"Suche beim Kopieren löschen","settings.forms.clear_search_on_copy.help":"Das Suchfeld leeren, nachdem ein Code in die Zwischenablage kopiert wurde","settings.forms.sort_case_sensitive.label":"Groß-/Kleinschreibung beachten","settings.forms.sort_case_sensitive.help":"Erzwingt bei Aufruf der Funktion Sortieren die Sortierung der Konten unter Berücksichtigung der Groß- und Kleinschreibung","settings.forms.copy_otp_on_display.label":'OTP auf Anzeige kopieren',"settings.forms.copy_otp_on_display.help":'Kopiert automatisch ein generiertes Passwort bei Anzeige auf dem Bildschirm. Aufgrund der Einschränkungen des Browsers, wird nur das erste TOTP Passwort kopiert, nicht das rotierende Passwort',"settings.forms.use_basic_qrcode_reader.label":"Einfachen QR-Codeleser benutzen","settings.forms.use_basic_qrcode_reader.help":"Wenn bei der Erfassung von QR-Codes Probleme auftreten, können Sie mit dieser Option zu einem einfacheren, aber zuverlässigeren QR-Codeleser wechseln","settings.forms.display_mode.label":"Anzeigemodus","settings.forms.display_mode.help":"Wählen Sie aus, ob Konten als Liste oder als Raster angezeigt werden sollen","settings.forms.password_format.label":"Passwort-Formatierung","settings.forms.password_format.help":"Anzeige der Passwörter ändern durch Gruppierung der Ziffern. Verbessert die Lesbarkeit und Passwörter lassen sich einfacher merken","settings.forms.pair":"nach Paar","settings.forms.pair_legend":"Ziffern in zweistellige Gruppen aufteilen","settings.forms.trio_legend":"Ziffern in dreistellige Gruppen aufteilen","settings.forms.half_legend":"Ziffern in zwei gleiche Gruppen aufteilen","settings.forms.trio":"nach Trio","settings.forms.half":"nach Hälfte","settings.forms.grid":"Raster","settings.forms.list":"Liste","settings.forms.theme.label":"Design","settings.forms.theme.help":"Eine bestimmte Darstellung erzwingen oder die in Ihren System-/Browsereinstellungen definierte Darstellung anwenden","settings.forms.light":"Hell","settings.forms.dark":"Dunkel","settings.forms.automatic":"Automatisch","settings.forms.show_accounts_icons.label":"Symbole anzeigen","settings.forms.show_accounts_icons.help":"Kontosymbole in der Hauptansicht anzeigen","settings.forms.get_official_icons.label":"Offizielle Symbole abrufen","settings.forms.get_official_icons.help":"(Versuch) Das offizielle Symbol des 2FA-Ausstellers beim Hinzufügen eines Kontos erhalten","settings.forms.auto_lock.label":"Automatische Sperrung","settings.forms.auto_lock.help":"Den Benutzer bei Inaktivität automatisch abmelden. Hat keine Auswirkung, wenn die Authentifizierung über einen Proxy erfolgt und keine benutzerdefinierte Logout-URL angegeben ist","settings.forms.default_group.label":"Standardgruppe","settings.forms.default_group.help":"Die Gruppe, der neu erstellte Konten zugeordnet werden","settings.forms.view_default_group_on_copy.label":"Standardgruppe beim Kopieren anzeigen","settings.forms.view_default_group_on_copy.help":"Immer zur Standardgruppe zurückkehren, wenn ein OTP kopiert wird","settings.forms.auto_save_qrcoded_account.label":"Konten automatisch speichern","settings.forms.auto_save_qrcoded_account.help":"Neue Konten werden automatisch nach dem Scannen oder Hochladen eines QR-Codes registriert, ohne dass Sie auf den Speichern-Tastr klicken müssen","settings.forms.useDirectCapture.label":"Direkteingabe","settings.forms.useDirectCapture.help":"Wählen Sie aus, ob Sie einen Eingabemodus unter den Verfügbaren wählen möchten oder ob Sie direkt den Standard-Eingabemodus verwenden möchten","settings.forms.defaultCaptureMode.label":"Standard-Eingabemodus","settings.forms.defaultCaptureMode.help":"Standard-Eingabemodus, der verwendet wird, falls die Direkteingabe aktiviert ist","settings.forms.remember_active_group.label":"Gruppenfilter merken","settings.forms.remember_active_group.help":"Den letzten Gruppenfilter speichern und ihn beim nächsten Besuch wiederherstellen","settings.forms.otp_generation.label":"Passwort zeigen","settings.forms.otp_generation.help":'Festlegen, wie und wann OTPs angezeigt werden.
',"settings.forms.notify_on_new_auth_device.label":"Auf neuem Gerät","settings.forms.notify_on_new_auth_device.help":"Erhalten Sie eine E-Mail, wenn sich ein neues Gerät zum ersten Mal mit Ihrem 2FAuth Konto verbindet","settings.forms.notify_on_failed_login.label":"Bei fehlgeschlagener Anmeldung","settings.forms.notify_on_failed_login.help":"Erhalten Sie jedes Mal eine E-Mail, wenn ein Verbindungsversuch zu Ihrem 2FAuth-Konto fehlschlägt","settings.forms.otp_generation_on_request":"Nach einem Klick/Tippen","settings.forms.otp_generation_on_request_legend":"Einzeln, in eigener Ansicht","settings.forms.otp_generation_on_request_title":"Konto anklicken, um ein Passwort in einer eigenen Ansicht zu erhalten","settings.forms.otp_generation_on_home":"Ständig","settings.forms.otp_generation_on_home_legend":"Alle auf dem Startbildschirm anzeigen","settings.forms.otp_generation_on_home_title":"Alle Passwörter auf dem Startbildschirm anzeigen, ohne etwas tun zu müssen","settings.forms.never":"Niemals","settings.forms.on_otp_copy":"Beim Kopieren des Token","settings.forms.1_minutes":"Nach 1 Minute","settings.forms.2_minutes":"Nach 2 Minuten","settings.forms.5_minutes":"Nach 5 Minuten","settings.forms.10_minutes":"Nach 10 Minuten","settings.forms.15_minutes":"Nach 15 Minuten","settings.forms.30_minutes":"Nach 30 Minuten","settings.forms.1_hour":"Nach 1 Stunde","settings.forms.1_day":"Nach 1 Tag","settings.forms.livescan":"QR-Code scannen","settings.forms.upload":"QR-Code hochladen","settings.forms.advanced_form":"Erweitertes Formular","titles.404":"Objekt nicht gefunden","titles.start":"Neues Konto","titles.capture":"QR blinken","titles.accounts":"Konten","titles.createAccount":"Konto erstellen","titles.importAccounts":"Konten importieren","titles.editAccount":"Konto bearbeiten","titles.showQRcode":"Konto als QR-Code","titles.groups":"Gruppen","titles.createGroup":"Gruppe erstellen","titles.editGroup":"Gruppe bearbeiten","titles.settings.options":"Einstellungen","titles.settings.account":"Benutzerkonto","titles.settings.oauth.tokens":"OAuth-Token","titles.settings.oauth.generatePAT":"Neuer persönlicher Token","titles.settings.webauthn.editCredential":"Gerät bearbeiten","titles.settings.webauthn.devices":"WebAuthn-Geräte","titles.login":"Anmelden","titles.register":"Registrieren","titles.autolock":"Automatische Sperrung","titles.password.request":"Passwort zurücksetzen","titles.password.reset":"Neues Passwort","titles.webauthn.lost":"Kontowiederherstellung","titles.webauthn.recover":"Neues Gerät registrieren","titles.flooded":"Überschwemmung","titles.genericError":"Fehler","titles.about":"Über","titles.admin.appSetup":"App-Einrichtung","titles.admin.users":"Benutzerverwaltung","titles.admin.createUser":"Benutzer erstellen","titles.admin.manageUser":"Benutzer verwalten","titles.admin.logs.access":"Zugriffsprotokoll","twofaccounts.service":"Dienst","twofaccounts.account":"Benutzerkonto","twofaccounts.icon":"Symbol","twofaccounts.icon_to_illustrate_the_account":"Symbol, das den Account darstellt","twofaccounts.remove_icon":"Symbol entfernen","twofaccounts.no_account_here":"Noch keine 2FA vorhanden!","twofaccounts.add_first_account":"Wählen Sie eine Methode und fügen Sie Ihren ersten Account hinzu","twofaccounts.use_full_form":"Oder nutzen Sie das vollständige Formular","twofaccounts.add_one":"Konto hinzufügen","twofaccounts.show_qrcode":"QR-Code anzeigen","twofaccounts.no_service":"- kein Service -","twofaccounts.account_created":"Konto erfolgreich erstellt","twofaccounts.account_updated":"Konto erfolgreich aktualisiert","twofaccounts.accounts_deleted":"Konto(en) erfolgreich gelöscht","twofaccounts.accounts_moved":"Konto(en) erfolgreich verschoben","twofaccounts.export_selected_to_json":"Json-Export ausgewählter Konten herunterladen","twofaccounts.reveal":"aufdecken","twofaccounts.forms.service.placeholder":"Google, Twitter, Apple","twofaccounts.forms.account.placeholder":"Max Mustermann","twofaccounts.forms.new_account":"Neues Konto","twofaccounts.forms.edit_account":"Konto bearbeiten","twofaccounts.forms.otp_uri":"OTP Uri","twofaccounts.forms.scan_qrcode":"QR-Code scannen","twofaccounts.forms.upload_qrcode":"QR-Code hochladen","twofaccounts.forms.use_advanced_form":"Erweitertes Formular verwenden","twofaccounts.forms.prefill_using_qrcode":"Mit einem QR-Code ausfüllen","twofaccounts.forms.use_qrcode.val":"QR-Code verwenden","twofaccounts.forms.use_qrcode.title":"Verwenden Sie einen QR-Code, um das Formular auszufüllen","twofaccounts.forms.unlock.val":"Entsperren","twofaccounts.forms.unlock.title":"Entsperren (auf eigene Gefahr)","twofaccounts.forms.lock.val":"Sperren","twofaccounts.forms.lock.title":"Sperren","twofaccounts.forms.choose_image":"Hochladen","twofaccounts.forms.i_m_lucky":"Mein Glück versuchen","twofaccounts.forms.i_m_lucky_legend":'Durch "Mein Glück versuchen" können Sie das offizielle Symbol des jeweiligen Dienstes erhalten. Geben Sie den tatsächlichen Namen des Dienstes ohne die Erweiterung ".xyz" ein und versuchen Sie, Tippfehler zu vermeiden (Beta-Funktion)',"twofaccounts.forms.test":"Test","twofaccounts.forms.group.label":"Gruppe","twofaccounts.forms.group.help":"Die Gruppe, der das Konto zugeordnet werden soll","twofaccounts.forms.secret.label":"Geheimnis","twofaccounts.forms.secret.help":"Der Schlüssel, der zur Erzeugung Ihrer Sicherheitscodes verwendet wird","twofaccounts.forms.plain_text":"Klartext","twofaccounts.forms.otp_type.label":'Wählen Sie den OTP Typ',"twofaccounts.forms.otp_type.help":"Zeitbasierte OTP oder HMAC-basierte OTP oder Steam OTP","twofaccounts.forms.digits.label":"Ziffern","twofaccounts.forms.digits.help":"Die Anzahl der Ziffern der erzeugten Sicherheitscodes","twofaccounts.forms.algorithm.label":"Algorithmus","twofaccounts.forms.algorithm.help":"Der Algorithmus, der zur Sicherung Ihrer Sicherheitscodes verwendet wird","twofaccounts.forms.period.label":"Gültigkeitsdauer","twofaccounts.forms.period.placeholder":"Standard ist 30","twofaccounts.forms.period.help":"Die Gültigkeitsdauer der erzeugten Sicherheitscodes in Sekunden","twofaccounts.forms.counter.label":"Zähler","twofaccounts.forms.counter.placeholder":"Standard ist 0","twofaccounts.forms.counter.help":"Der erste Zählerwert","twofaccounts.forms.counter.help_lock":"Es ist riskant, den Zähler zu ändern, da Sie das Konto mit dem Verifizierungsserver des Dienstes desynchronisieren können. Verwenden Sie das Schlosssymbol, um Änderungen zu ermöglichen, aber nur, wenn Sie wissen, was Sie tun","twofaccounts.forms.image.label":"Bild","twofaccounts.forms.image.placeholder":"http://...","twofaccounts.forms.image.help":"Die Url eines externen Bildes, das als Kontosymbol verwendet werden soll","twofaccounts.forms.options_help":"Sie können die folgenden Einstellungen leer lassen, wenn Sie nicht wissen, wie Sie sie einstellen. In dem Fall werden die Standardwerte verwendet.","twofaccounts.forms.alternative_methods":"Alternative Methoden","twofaccounts.forms.spaces_are_ignored":"Ungewollte Leerzeichen werden automatisch entfernt","twofaccounts.stream.live_scan_cant_start":"Der Live-Scan kann nicht gestartet werden :(","twofaccounts.stream.need_grant_permission.reason":"2FAuth hat keine Berechtigung auf Ihre Kamera zuzugreifen","twofaccounts.stream.need_grant_permission.solution":"Sie müssen die Erlaubnis erteilen, um Ihre Gerätekamera zu verwenden. Falls Sie bereits verweigert haben und Ihr Browser Sie nicht erneut anfragt, verweisen Sie bitte auf die Browser-Dokumentation, um herauszufinden, wie Sie die Erlaubnis erteilen können.","twofaccounts.stream.need_grant_permission.click_camera_icon":"Dies geschieht üblicherweise durch Klicken auf ein geschlitztes Kamerasymbol in oder neben der Adressleiste des Browsers","twofaccounts.stream.not_readable.reason":"Fehler beim Laden des Scanners","twofaccounts.stream.not_readable.solution":"Wird die Kamera bereits verwendet? Stellen Sie sicher, dass keine andere App Ihre Kamera verwendet und versuchen Sie es erneut","twofaccounts.stream.no_cam_on_device.reason":"Keine Kamera in diesem Gerät","twofaccounts.stream.no_cam_on_device.solution":"Vielleicht haben Sie vergessen, Ihre Webcam anzuschließen","twofaccounts.stream.secured_context_required.reason":"Sichere Umgebung erforderlich","twofaccounts.stream.secured_context_required.solution":"HTTPS wird für den Live-Scan benötigt. Wenn Sie 2FAuth auf Ihrem Computer ausführen, verwenden Sie nur localhost und keinen anderen virtuellen Host","twofaccounts.stream.https_required":"HTTPS für Kamera-Übertragung erforderlich","twofaccounts.stream.camera_not_suitable.reason":"Die verbauten Kameras sind nicht geeignet","twofaccounts.stream.camera_not_suitable.solution":"Bitte verwenden Sie ein anderes Gerät/Kamera","twofaccounts.stream.stream_api_not_supported.reason":"Stream API wird von diesem Browser nicht unterstützt","twofaccounts.stream.stream_api_not_supported.solution":"Sie sollten einen modernen Browser verwenden","twofaccounts.confirm.delete":"Sind Sie sicher, dass Sie dieses Konto löschen möchten?","twofaccounts.confirm.cancel":"Das Konto wird gelöscht. Sind Sie sicher?","twofaccounts.confirm.discard":"Sind Sie sicher, dass Sie dieses Konto verwerfen möchten?","twofaccounts.confirm.discard_all":"Sind Sie sicher, dass Sie alle Konten verwerfen möchten?","twofaccounts.confirm.discard_duplicates":"Möchten Sie wirklich alle Duplikate verwerfen?","twofaccounts.import.import":"Import","twofaccounts.import.to_import":"Import","twofaccounts.import.import_legend":"2FAuth kann Daten aus verschiedenen 2FA-Apps importieren.","twofaccounts.import.import_legend_afterpart":"Benutzen Sie die Export-Funktion dieser Apps, um eine Migrations-Ressource wie einen QR-Code oder eine JSON-Datei zu erhalten und lade Sie sie hier.","twofaccounts.import.upload":"Hochladen","twofaccounts.import.scan":"Scannen","twofaccounts.import.supported_formats_for_qrcode_upload":"Akzeptiert: jpg, jpeg, png, bmp, gif, svg oder webp","twofaccounts.import.supported_formats_for_file_upload":"Akzeptiert: Klartext, Json, 2fas","twofaccounts.import.expected_format_for_direct_input":"Erwartet: Eine Liste der otpauth URI, eins pro Zeile","twofaccounts.import.supported_migration_formats":"Unterstütze Migrationsformate","twofaccounts.import.qr_code":"QR-Code","twofaccounts.import.text_file":"Textdatei","twofaccounts.import.direct_input":"Direkte Eingabe","twofaccounts.import.plain_text":"Klartext","twofaccounts.import.parsing_data":"Daten werden verarbeitet...","twofaccounts.import.issuer":"Aussteller","twofaccounts.import.imported":"Importiert","twofaccounts.import.failure":"Fehlschlag","twofaccounts.import.x_valid_accounts_found":":count gültige Konten gefunden","twofaccounts.import.submitted_data_parsed_now_accounts_are_awaiting_import":"Die folgenden 2FA-Konten wurden in der Migrations-Ressource gefunden. Bisher wurden noch keine von ihnen zu 2FAuth hinzugefügt.","twofaccounts.import.use_buttons_to_save_or_discard":"Verwenden Sie die verfügbaren Schaltflächen, um sie dauerhaft in Ihrer 2FA-Sammlung zu speichern oder zu verwerfen.","twofaccounts.import.import_all":"Alle importieren","twofaccounts.import.import_this_account":"Dieses Konto importieren","twofaccounts.import.discard_all":"Alles verwerfen","twofaccounts.import.discard_duplicates":"Duplikate verwerfen","twofaccounts.import.discard_this_account":"Dieses Konto verwerfen","twofaccounts.import.generate_a_test_password":"Ein Testpasswort erzeugen","twofaccounts.import.possible_duplicate":"Ein Konto mit den gleichen Daten ist bereits vorhanden","twofaccounts.import.invalid_account":"- ungültiges Konto -","twofaccounts.import.invalid_service":"- ungültiges Service -","twofaccounts.import.do_not_set_password_or_encryption":"Aktivieren Sie NICHT den Passwortschutz oder die Verschlüsselung, wenn Sie Daten aus einer anderen 2FA-App exportieren, die Sie in 2FAuth importieren möchten.","validation.accepted":":attribute muss akzeptiert werden.","validation.accepted_if":"Das :attribute muss akzeptiert werden, wenn :other :value ist.","validation.active_url":":attribute ist keine gültige Internet-Adresse.","validation.after":":attribute muss ein Datum nach dem :date sein.","validation.after_or_equal":":attribute muss ein Datum nach dem :date oder gleich dem :date sein.","validation.alpha":"Das :attribute Feld darf nur Buchstaben enthalten.","validation.alpha_dash":"Das :attribute Feld darf nur Buchstaben, Ziffern, Bindestriche und Unterstriche enthalten.","validation.alpha_num":"Das :attribute Feld darf nur aus Zeichen und Nummern bestehen.","validation.array":":attribute muss ein Array sein.","validation.before":":attribute muss ein Datum vor dem :date sein.","validation.before_or_equal":":attribute muss ein Datum vor dem :date oder gleich dem :date sein.","validation.between.array":":attribute muss zwischen :min & :max Elemente haben.","validation.between.file":":attribute muss zwischen :min & :max Kilobytes groß sein.","validation.between.numeric":":attribute muss zwischen :min & :max liegen.","validation.between.string":":attribute muss zwischen :min & :max Zeichen lang sein.","validation.boolean":":attribute muss entweder 'true' oder 'false' sein.","validation.confirmed":":attribute stimmt nicht mit der Bestätigung überein.","validation.current_password":"Das Passwort ist falsch.","validation.date":":attribute muss ein gültiges Datum sein.","validation.date_equals":":attribute muss ein Datum gleich :date sein.","validation.date_format":":attribute entspricht nicht dem gültigen Format für :format.","validation.declined":"Das :attribute muss abgelehnt werden.","validation.declined_if":"Das :attribute muss abgelehnt werden, wenn :other :value ist.","validation.different":":attribute und :other müssen sich unterscheiden.","validation.digits":":attribute muss :digits Stellen haben.","validation.digits_between":":attribute muss zwischen :min und :max Stellen haben.","validation.dimensions":":attribute hat ungültige Bildabmessungen.","validation.distinct":":attribute beinhaltet einen bereits vorhandenen Wert.","validation.doesnt_end_with":"Das :attribute darf nicht mit einem der folgenden Werte enden: :values.","validation.doesnt_start_with":"Das :attribute Feld darf nicht mit einem der folgenden Werte beginnen: :values.","validation.email":":attribute muss eine gültige E-Mail-Adresse sein.","validation.ends_with":":attribute muss eine der folgenden Endungen aufweisen: :values","validation.enum":"Der gewählte Wert für :attribute ist ungültig.","validation.exists":"Der gewählte Wert für :attribute ist ungültig.","validation.file":":attribute muss eine Datei sein.","validation.filled":":attribute muss ausgefüllt sein.","validation.gt.array":":attribute muss mehr als :value Elemente haben.","validation.gt.file":":attribute muss größer als :value Kilobytes sein.","validation.gt.numeric":":attribute muss größer als :value sein.","validation.gt.string":":attribute muss länger als :value Zeichen sein.","validation.gte.array":":attribute muss mindestens :value Elemente haben.","validation.gte.file":"Das :attribute muss größer oder gleich :value Kilobytes groß sein.","validation.gte.numeric":"Das :attribute Feld muss größer oder gleich :value sein.","validation.gte.string":"Das :attribute Feld muss mindestens :value Zeichen enthalten.","validation.image":":attribute muss ein Bild sein.","validation.in":"Der gewählte Wert für :attribute ist ungültig.","validation.in_array":"Der gewählte Wert für :attribute kommt nicht in :other vor.","validation.integer":":attribute muss eine ganze Zahl sein.","validation.ip":":attribute muss eine gültige IP-Adresse sein.","validation.ipv4":":attribute muss eine gültige IPv4-Adresse sein.","validation.ipv6":":attribute muss eine gültige IPv6-Adresse sein.","validation.json":":attribute muss ein gültiger JSON-String sein.","validation.lt.array":":attribute muss weniger als :value Elemente haben.","validation.lt.file":":attribute muss kleiner als :value Kilobytes sein.","validation.lt.numeric":":attribute muss kleiner als :value sein.","validation.lt.string":":attribute muss kürzer als :value Zeichen sein.","validation.lte.array":":attribute darf maximal :value Elemente haben.","validation.lte.file":"Das :attribute muss kleiner oder gleich :value Kilobytes groß sein.","validation.lte.numeric":"Das :attribute Feld muss kleiner oder gleich :value sein.","validation.lte.string":"Das :attribute Feld darf maximal :value Zeichen enthalten.","validation.mac_address":"Das :attribute Feld muss eine gültige MAC-Adresse enthalten.","validation.max.array":"Das :attribute Feld darf nicht mehr als :max Elemente enthalten.","validation.max.file":"Das :attribute darf nicht größer als :max Kilobytes groß sein.","validation.max.numeric":"Das :attribute Feld darf nicht größer als :max sein.","validation.max.string":"Das :attribute Feld darf nicht mehr als :value Zeichen enthalten.","validation.max_digits":"Das :attribute Feld darf nicht mehr als :max Ziffern enthalten.","validation.mimes":":attribute muss den Dateityp :values haben.","validation.mimetypes":":attribute muss den Dateityp :values haben.","validation.min.array":":attribute muss mindestens :min Elemente haben.","validation.min.file":":attribute muss mindestens :min Kilobytes groß sein.","validation.min.numeric":":attribute muss mindestens :min sein.","validation.min.string":":attribute muss mindestens :min Zeichen lang sein.","validation.min_digits":"Das :attribute Feld muss mindestens :min Ziffern enthalten.","validation.multiple_of":"Das :attribute Feld muss ein Vielfaches von :value sein.","validation.not_in":"Der gewählte Wert für :attribute ist ungültig.","validation.not_regex":":attribute hat ein ungültiges Format.","validation.numeric":":attribute muss eine Zahl sein.","validation.password.letters":"Das :attribute Feld muss mindestens einen Buchstaben enthalten.","validation.password.mixed":"Das :attribute Feld muss mindestens einen Groß- und einen Kleinbuchstaben enthalten.","validation.password.numbers":"Das :attribute Feld muss mindestens eine Zahl enthalten.","validation.password.symbols":"Das :attribute Feld muss mindestens ein Symbol enthalten.","validation.password.uncompromised":"Der im :attribute Feld angegebene Wert wurde in einem Datenleck gefunden. Bitte geben Sie für :attribute einen anderen Wert ein.","validation.present":":attribute muss vorhanden sein.","validation.prohibited":"Das :attribute Feld ist unzulässig.","validation.prohibited_if":"Das :attribute Feld ist unzulässig, wenn :other den Wert :value entspricht.","validation.prohibited_unless":"Das :attribute Feld ist unzulässig, wenn :other nicht den Wert :value annimmt.","validation.prohibits":"Bei gegebenem :attribute Feld ist :other nicht zulässig.","validation.regex":":attribute Format ist ungültig.","validation.required":":attribute muss ausgefüllt werden.","validation.required_array_keys":"Das Feld :attribute muss Einträge enthalten für: :values.","validation.required_if":":attribute muss ausgefüllt werden, wenn :other den Wert :value hat.","validation.required_if_accepted":"Das Feld :attribute muss ausgefüllt werden, wenn :other ausgefüllt wurde.","validation.required_unless":":attribute muss ausgefüllt werden, wenn :other nicht den Wert :values hat.","validation.required_with":":attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.","validation.required_with_all":":attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.","validation.required_without":":attribute muss ausgefüllt werden, wenn :values nicht ausgefüllt wurde.","validation.required_without_all":":attribute muss ausgefüllt werden, wenn keines der Felder :values ausgefüllt wurde.","validation.same":":attribute und :other müssen übereinstimmen.","validation.size.array":":attribute muss genau :size Elemente haben.","validation.size.file":":attribute muss :size Kilobyte groß sein.","validation.size.numeric":":attribute muss gleich :size sein.","validation.size.string":":attribute muss :size Zeichen lang sein.","validation.starts_with":":attribute muss mit einem der folgenden Anfänge aufweisen: :values","validation.string":":attribute muss ein String sein.","validation.timezone":"Das :attribute Feld muss eine gültige Zeitzone sein.","validation.unique":":attribute ist bereits vergeben.","validation.uploaded":":attribute konnte nicht hochgeladen werden.","validation.url":"Das :attribute Feld muss eine gültige URL aufweisen.","validation.uuid":":attribute muss ein UUID sein.","validation.single":"Bei Verwendung von :attribute muss es der einzige Parameter in diesem Anfragetext sein","validation.onlyCustomOtpWithUri":"Der uri Parameter muss allein oder nur in Kombination mit dem 'custom_otp' Parameter angegeben werden","validation.IsValidRegex":":attribute muss ein gültiges Regex-Muster sein.","validation.custom.icon.image":"Unterstützte Formate sind jpeg, png, bmp, gif, svg oder webp.","validation.custom.qrcode.image":"Unterstützte Formate sind jpeg, png, bmp, gif, svg oder webp.","validation.custom.uri.regex":"Das :attribute Feld enthält kein gültiges otpauth uri.","validation.custom.otp_type.in":"Das :attribute Feld wird nicht unterstützt.","validation.custom.email.exists":"Kein Konto mit dieser E-Mail gefunden.","validation.custom.email.ComplyWithEmailRestrictionPolicy":"Diese E-Mail-Adresse entspricht nicht den Registrierungsrichtlinien","validation.custom.email.IsValidEmailList":"Alle E-Mails müssen gültig und durch eine Pipe getrennt sein","validation.custom.secret.isBase32Encoded":"Das :attribute Feld muss einen Base32 kodierten String enthalten.","validation.custom.account.regex":"Das :attribute Feld darf keinen Doppelpunkt enthalten.","validation.custom.service.regex":"Das :attribute Feld darf keinen Doppelpunkt enthalten.","validation.custom.label.required":"Der URI muss ein Label haben.","validation.custom.ids.regex":"IDs müssen durch Komma getrennt werden, ohne Komma am Ende."};export{e as default}; diff --git a/public/build/assets/php_de-CNLq-YHx.js b/public/build/assets/php_de-CNLq-YHx.js deleted file mode 100644 index 37308c22..00000000 --- a/public/build/assets/php_de-CNLq-YHx.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const e={"admin.admin":"Administrator","admin.app_setup":"App-Einstellungen","admin.auth":"Auth","admin.registrations":"Registrierungen","admin.users":"Benutzer","admin.users_legend":"Benutzer verwalten, die bereits registriert sind, oder neue Benutzer erstellen.","admin.admin_settings":"Administrator-Einstellungen","admin.create_new_user":"Benutzer erstellen","admin.new_user":"Neuer Benutzer","admin.search_user_placeholder":"Benutzername, E-Mail...","admin.quick_filters_colons":"Schnellfilter:","admin.user_created":"Benutzer erfolgreich erstellt","admin.confirm.delete_user":"Sind Sie sicher, dass Sie diesen Benutzer löschen möchten? Es gibt kein zurück mehr.","admin.confirm.request_password_reset":"Sind Sie sicher, dass Sie das Passwort dieses Benutzers zurücksetzen möchten?","admin.confirm.purge_password_reset_request":"Sind Sie sicher, dass Sie die vorherige Anfrage widerrufen möchten?","admin.confirm.delete_account":"Sind Sie sicher, dass Sie diesen Benutzer löschen möchten?","admin.confirm.edit_own_account":"Dies ist Ihr eigener Account. Sind Sie sicher?","admin.confirm.change_admin_role":"Dies wird gravierende Auswirkungen auf die Berechtigungen dieses Benutzers haben. Sind Sie sicher?","admin.confirm.demote_own_account":"Sie werden kein Administrator mehr sein. Wirklich sicher?","admin.logs":"Protokolle","admin.administration_legend":"Die folgenden Einstellungen sind global und gelten für alle Benutzer.","admin.user_management":"Benutzerverwaltung","admin.oauth_provider":"OAuth-Provider","admin.account_bound_to_x_via_oauth":"Dieses Konto ist mit einem :provider Konto über OAuth verbunden","admin.last_seen_on_date":"Zuletzt gesehen :date","admin.registered_on_date":"Registriert: :date","admin.updated_on_date":"Aktualisiert :date","admin.access":"Zugang","admin.password_requested_on_t":"Für diesen Benutzer existiert eine Anfrage zum Zurücksetzen des Passworts (Anfrage um :datetime), was bedeutet, dass der Benutzer sein Passwort noch nicht geändert hat, aber der Link, den er erhalten hat, weiterhin gültig ist. Dies könnte eine Anfrage des Benutzers selbst oder eines Administrators sein.","admin.password_request_expired":"Für diesen Benutzer existiert eine Anfrage zum Zurücksetzen des Passworts, die aber abgelaufen ist, was bedeutet, dass der Benutzer sein Passwort nicht rechtzeitig geändert hat. Dies kann eine Anfrage des Benutzers selbst oder eines Administrators sein.","admin.resend_email":"E-Mail erneut senden","admin.resend_email_title":"Eine E-Mail zum Zurücksetzen des Passworts erneut senden","admin.resend_email_help":"Verwenden Sie E-Mail erneut senden, um eine neue E-Mail zum Zurücksetzen des Passworts an den Benutzer zu senden, damit er ein neues Passwort festlegen kann. Dies wird sein aktuelles Passwort unverändert lassen und jede vorherige Anfrage wird widerrufen.","admin.reset_password":"Passwort zurücksetzen","admin.reset_password_help":"Verwenden Sie Passwort zurücksetzen um ein Passwort zurückzusetzen (dies wird ein temporäres Passwort setzen), bevor Sie eine E-Mail an den Benutzer senden, damit er ein neues Passwort setzen kann. Alle vorherigen Anfragen werden widerrufen.","admin.reset_password_title":"Passwort des Benutzers zurücksetzen","admin.password_successfully_reset":"Passwort erfolgreich zurückgesetzt","admin.user_has_x_active_pat":":count aktive Token","admin.user_has_x_security_devices":":count Sicherheitsgerät(e) (Passkeys)","admin.revoke_all_pat_for_user":"Alle Benutzer-Token widerrufen","admin.revoke_all_devices_for_user":"Alle Sicherheitsgeräte des Benutzers widerrufen","admin.danger_zone":"Gefahrenzone","admin.delete_this_user_legend":"Das Benutzerkonto sowie alle 2FA-Daten werden gelöscht.","admin.this_is_not_soft_delete":"Dies ist kein einfacher Löschvorgang, es gibt kein Zurück mehr.","admin.delete_this_user":"Benutzer löschen","admin.user_role_updated":"Benutzerrolle aktualisiert","admin.pats_succesfully_revoked":"Benutzer-PATs erfolgreich widerrufen","admin.security_devices_succesfully_revoked":"Sicherheitsgeräte des Benutzers wurden erfolgreich widerrufen","admin.variables":"Variablen","admin.cache_cleared":"Cache geleert","admin.cache_optimized":"Cache optimiert","admin.check_now":"Jetzt prüfen","admin.view_on_github":"Auf GitHub anzeigen","admin.x_is_available":":version ist verfügbar","admin.successful_login_on":'Erfolgreiche Anmeldung auf :login_at',"admin.successful_logout_on":'Erfolgreiche Abmeldung auf :login_at',"admin.failed_login_on":'Anmeldung fehlgeschlagen auf :login_at',"admin.viewed_on":'Angesehen auf :login_at',"admin.last_accesses":"Letzte Zugriffe","admin.see_full_log":"Gesamtes Zugriffsprotokoll anzeigen","admin.browser_on_platform":":browser auf :platform","admin.access_log_has_more_entries":"Das Zugriffsprotokoll enthält weitere Einträge.","admin.access_log_legend_for_user":"Vollständiges Zugriffsprotokoll für Benutzer :username","admin.show_last_month_log":"Einträge aus dem letzten Monat anzeigen","admin.show_three_months_log":"Einträge aus den letzten 3 Monaten anzeigen","admin.show_six_months_log":"Einträge aus den letzten 6 Monaten anzeigen","admin.show_one_year_log":"Einträge aus dem letzten Jahr anzeigen","admin.sort_by_date_asc":"Älteste zuerst anzeigen","admin.sort_by_date_desc":"Aktuellste zuerst anzeigen","admin.single_sign_on":"Single Sign-On (SSO)","admin.forms.use_encryption.label":"Sensible Daten schützen","admin.forms.use_encryption.help":"Vertrauliche Daten, die 2FA-Geheimnisse und E-Mails, werden verschlüsselt in der Datenbank gespeichert. Erstellen Sie ein Backup der APP_KEY-Variablen der .env Datei (oder der gesamten Datei), da sie als Schlüssel zur gesicherten Datenbank dient. Es gibt keine Möglichkeit, verschlüsselte Daten ohne diesen Schlüssel zu wiederherzustellen.","admin.forms.restrict_registration.label":"Registrierung einschränken","admin.forms.restrict_registration.help":"Die Registrierung nur für eine begrenzte Anzahl von E-Mail-Adressen verfügbar machen. Beide Regeln können gleichzeitig verwendet werden. Dies hat keinen Einfluss auf die Registrierung über SSO.","admin.forms.restrict_list.label":"Filterliste","admin.forms.restrict_list.help":'E-Mails in dieser Liste können sich registrieren. Adressen mit einem Pfeil trennen ("|")',"admin.forms.restrict_rule.label":"Filterregel","admin.forms.restrict_rule.help":"E-Mails mit diesem regulären Ausdruck dürfen sich registrieren","admin.forms.disable_registration.label":"Registrierung deaktivieren","admin.forms.disable_registration.help":"Verhindert eine neue Benutzerregistrierung. Sofern nicht überschrieben (siehe unten) wirkt sich dies auch auf SSO aus, so dass neue Benutzer sich nicht via SSO anmelden können.","admin.forms.enable_sso.label":"Enable SSO","admin.forms.enable_sso.help":"Besuchern die Authentifizierung mit einer externen ID über das Single Sign-On Schema erlauben.","admin.forms.use_sso_only.label":"Use SSO only","admin.forms.use_sso_only.help":"Make SSO the only available method to log in to 2FAuth. Password login and Webauthn are then disabled for regular users. Administrators are not affected by this restriction.","admin.forms.keep_sso_registration_enabled.label":"SSO-Registrierung aktiviert lassen","admin.forms.keep_sso_registration_enabled.help":"Neuen Benutzern erlauben, sich zum ersten Mal über SSO anzumelden, während die Registrierung deaktiviert ist.","admin.forms.is_admin.label":"Ist Admininstrator","admin.forms.is_admin.help":"Geben Sie dem Benutzer Administratorrechte. Administratoren haben die Berechtigung, die gesamte App zu verwalten, d. h. Einstellungen und andere Benutzer, können aber kein Passwort für eine 2FA erstellen, die sie nicht besitzen.","admin.forms.test_email.label":"E-Mail-Konfigurationstest","admin.forms.test_email.help":"Senden Sie eine Test-E-Mail, um die E-Mail-Konfiguration Ihrer Instanz zu kontrollieren. Es ist wichtig, eine funktionierende Konfiguration zu haben, sonst können Benutzer kein Zurücksetzen des Passworts anfordern.","admin.forms.test_email.email_will_be_send_to_x":'Diese E-Mail wird an :email gesendet.',"admin.forms.health_endpoint.label":"Health endpoint","admin.forms.health_endpoint.help":"URL you can visit to check the health of this 2FAuth instance. This URL can be used to set up a Docker HEALTHCHECK or a Kubernetes HTTPS Liveness probe.","admin.forms.cache_management.label":"Cache-Verwaltung","admin.forms.cache_management.help":"Manchmal muss der Cache geleert werden, zum Beispiel nach einer Änderung an Umgebungsvariablen oder einer Aktualisierung. Sie können es von hier aus tun.","auth.failed":"Diese Angaben stimmen nicht mit unseren Aufzeichnungen überein.","auth.password":"Das angegebene Passwort ist falsch.","auth.throttle":"Zu viele Anmeldeversuche. Bitte versuchen Sie es in :seconds Sekunden erneut.","auth.sign_out":"Abmelden","auth.sign_in":"Anmelden","auth.sign_in_using":"Anmelden mit","auth.if_administrator":"Administrator?","auth.sign_in_here":"You can sign without SSO","auth.or_continue_with":"Sie können auch fortfahren mit:","auth.password_login_and_webauthn_are_disabled":"Password login and WebAuthn are disabled.","auth.sign_in_using_sso":"Pick an SSO provider to sign in with:","auth.no_provider":"no provider","auth.no_sso_provider_or_provider_is_missing":"Provider is missing?","auth.see_how_to_enable_sso":"See how to enable a provider","auth.sign_in_using_security_device":"Mit einem Sicherheitsgerät anmelden","auth.login_and_password":"Benutzername & Passwort","auth.register":"Registrieren","auth.welcome_to_2fauth":"Willkommen bei 2FAuth","auth.autolock_triggered":"Automatische Sperre ausgelöst","auth.autolock_triggered_punchline":"Automatische Sperre ausgelöst, Sie wurden abgemeldet","auth.already_authenticated":"Bereits authentifiziert, bitte erst abmelden","auth.authentication":"Authentifizierung","auth.maybe_later":"Vielleicht später","auth.user_account_controlled_by_proxy":"Benutzerkonto, das von einem Authentifizierungsproxy zur Verfügung gestellt wurde.
Verwalten Sie das Konto auf Proxy-Ebene.","auth.auth_handled_by_proxy":"Authentifizierung von einem Reverse-Proxy verwaltet, unten sind die Einstellungen deaktiviert.
Authentifizierung auf Proxy-Ebene verwalten.","auth.sso_only_x_settings_are_disabled":"Authentication is restricted to SSO only, :auth_method is disabled","auth.confirm.logout":"Sind Sie sicher, dass Sie sich abmelden möchten?","auth.confirm.revoke_device":"Möchten Sie das Gerät wirklich entfernen?","auth.confirm.delete_account":"Möchten Sie Ihr Konto wirklich löschen?","auth.webauthn.security_device":"einem Sicherheitsgerät","auth.webauthn.security_devices":"Sicherheitsgeräte","auth.webauthn.security_devices_legend":"Authentifizierungsgeräte, mit denen Sie sich in 2FAuth anmelden können, wie z.B. Sicherheitsschlüssel (z.B. Yubikey) oder Smartphones mit biometrischen Fähigkeiten (z.B. Apple FaceID/TouchID)","auth.webauthn.enhance_security_using_webauthn":`Sie können die Sicherheit Ihres 2FAuth-Accounts verbessern, indem Sie die WebAuthn-Authentifizierung aktivieren.

- WebAuthn erlaubt es Ihnen, sich schnell und sicher mit vertrauenswürdigen Geräten (wie Yubikeys oder Smartphones mit biometrischen Fähigkeiten) anzumelden.`,"auth.webauthn.use_security_device_to_sign_in":"Machen Sie sich bereit, sich mit (einem) Ihren Sicherheitsgeräten zu authentifizieren. Schließen Sie Ihren Schlüssel an, entfernen Sie die Gesichtsmaske oder Handschuhe, etc.","auth.webauthn.lost_your_device":"Haben Sie Ihr Gerät verloren?","auth.webauthn.recover_your_account":"Konto wiederherstellen","auth.webauthn.account_recovery":"Kontowiederherstellung","auth.webauthn.recovery_punchline":"2FAuth wird Ihnen einen Wiederherstellungslink an diese E-Mail-Adresse senden. Klicken Sie auf den Link in der erhaltenen E-Mail und folgen Sie den Anweisungen.

Stellen Sie sicher, dass Sie die E-Mail auf einem Gerät öffnen, das vollständig Ihnen gehört.","auth.webauthn.send_recovery_link":"Wiederherstellungs-Link senden","auth.webauthn.account_recovery_email_sent":"E-Mail zur Kontowiederherstellung versendet!","auth.webauthn.disable_all_security_devices":"Alle Sicherheitsgeräte deaktivieren","auth.webauthn.disable_all_security_devices_help":"Alle Ihre Sicherheitsgeräte werden entzogen. Verwenden Sie diese Option, wenn Sie ein Gerät verloren haben oder seine Sicherheit beeinträchtigt wurde.","auth.webauthn.register_a_new_device":"Ein neues Gerät registrieren","auth.webauthn.register_a_device":"Ein Gerät registrieren","auth.webauthn.device_successfully_registered":"Gerät erfolgreich registriert","auth.webauthn.device_revoked":"Gerät erfolgreich widerrufen","auth.webauthn.revoking_a_device_is_permanent":"Das Widerrufen eines Gerätes ist dauerhaft","auth.webauthn.recover_account_instructions":"Um Ihr Konto wiederherzustellen, setzt 2FAuth einige Webauthn-Einstellungen zurück, damit Sie sich mit Ihrer E-Mail und Ihrem Passwort anmelden können.","auth.webauthn.invalid_recovery_token":"Ungültiger Wiederherstellungsschlüssel","auth.webauthn.webauthn_login_disabled":"Webauthn-Login deaktiviert","auth.webauthn.invalid_reset_token":"Der Schlüssel zum Zurücksetzen des Passwortes ist ungültig.","auth.webauthn.rename_device":"Gerät umbenennen","auth.webauthn.my_device":"Mein Gerät","auth.webauthn.unknown_device":"Unbekanntes Gerät","auth.webauthn.use_webauthn_only.label":"Nur WebAuthn verwenden","auth.webauthn.use_webauthn_only.help":`WebAuthn als die einzige autorisierte Methode zulassen, um sich in Ihr 2FAuth-Konto einzuloggen. Diese Option ist empfohlen und bietet eine verbesserte Sicherheit durch WebAuthn.

- Bei Verlust des WebAuthn-Geräts Sie können Ihr Konto wiederherstellen, indem Sie diese Option zurücksetzen und sich mit Ihrer E-Mail und Ihrem Passwort anmelden.

- Achtung! Das E-Mail & Passwort-Anmeldeformular bleibt verfügbar, obwohl diese Option aktiviert ist. Eine Anmeldung hiermit führt jedoch immer zu der Meldung 'Authentifizierung fehlgeschlagen'.`,"auth.webauthn.need_a_security_device_to_enable_options":"Mindestens ein Gerät einrichten, um die nachfolgenden Optionen zu aktiveren","auth.webauthn.options":"Einstellungen","auth.forms.name":"Name","auth.forms.login":"Anmeldung","auth.forms.webauthn_login":"WebAuthn-Anmeldung","auth.forms.sso_login":"SSO login","auth.forms.email":"E-Mail","auth.forms.password":"Passwort","auth.forms.reveal_password":"Passwort anzeigen","auth.forms.hide_password":"Passwort verbergen","auth.forms.confirm_password":"Passwort bestätigen","auth.forms.new_password":"Neues Passwort","auth.forms.confirm_new_password":"Neues Passwort bestätigen","auth.forms.dont_have_account_yet":"Sie haben noch keinen Account?","auth.forms.already_register":"Schon registriert?","auth.forms.authentication_failed":"Anmeldung fehlgeschlagen","auth.forms.forgot_your_password":"Passwort vergessen?","auth.forms.request_password_reset":"Zurücksetzen","auth.forms.reset_your_password":"Passwort zurücksetzen","auth.forms.reset_password":"Password zurücksetzen","auth.forms.disabled_in_demo":"Funktion im Demo-Modus deaktiviert","auth.forms.sso_only_form_restricted_to_admin":"Regular users must sign in with SSO. Other methods are for administrators only.","auth.forms.current_password.label":"Aktuelles Passwort","auth.forms.current_password.help":"Geben Sie Ihr aktuelles Passwort ein, um zu bestätigen, dass Sie es sind","auth.forms.change_password":"Passwort ändern","auth.forms.send_password_reset_link":"Link zum Zurücksetzen des Passworts senden","auth.forms.password_successfully_reset":"Passwort erfolgreich zurückgesetzt","auth.forms.edit_account":"Konto bearbeiten","auth.forms.profile_saved":"Profil erfolgreich aktualisiert!","auth.forms.welcome_to_demo_app_use_those_credentials":"Willkommen bei der 2FAuth-Demo.

Sie können sich mit der E-Mail-Adresse demo@2fauth.app und dem Passwort demo anmelden","auth.forms.welcome_to_testing_app_use_those_credentials":"Willkommen bei der 2FAuth-Testinstanz.

Verwenden Sie die E-Mail-Adresse testing@2fauth.app und das Passwort password","auth.forms.register_punchline":"Willkommen bei 2FAuth.
Sie müssen sich mit einem Konto anmelden, bitte registrieren Sie sich.","auth.forms.reset_punchline":"2FAuth sendet Ihnen einen Link zum Zurücksetzen des Passworts an diese Adresse. Klicken Sie auf den Link in der erhaltenen E-Mail, um ein neues Passwort festzulegen.","auth.forms.name_this_device":"Dieses Gerät benennen","auth.forms.delete_account":"Konto löschen","auth.forms.delete_your_account":"Ihr Konto Löschen","auth.forms.delete_your_account_and_reset_all_data":"Ihr Benutzerkonto wird gelöscht, ebenso wie alle Ihre 2FA-Daten. Es gibt kein Zurück mehr.","auth.forms.reset_your_password_to_delete_your_account":"Wenn Sie sich immer mit SSO angemeldet haben, melden Sie sich ab und verwenden Sie die Funktion zum Zurücksetzen des Passworts, um ein Passwort zu erhalten, damit Sie dieses Formular ausfüllen können.","auth.forms.deleting_2fauth_account_does_not_impact_provider":"Das Löschen Ihres 2FAuth-Kontos hat keine Auswirkungen auf Ihr externes SSO-Konto.","auth.forms.user_account_successfully_deleted":"Benutzerkonto wurde erfolgreich gelöscht","auth.forms.has_lower_case":"Beinhaltet Kleinbuchstaben","auth.forms.has_upper_case":"Beinhaltet Großbuchstaben","auth.forms.has_special_char":"Beinhaltet Sonderzeichen","auth.forms.has_number":"Beinhaltet Zahlen","auth.forms.is_long_enough":"Besteht aus mindestens 8 Zeichen","auth.forms.mandatory_rules":"Erforderlich","auth.forms.optional_rules_you_should_follow":"Empfohlen (sehr)","auth.forms.caps_lock_is_on":"Die Feststelltaste ist aktiviert","auth.sso_providers.unknown":"unknown","auth.sso_providers.github":"Github","auth.sso_providers.openid":"OpenID","commons.cancel":"Abbrechen","commons.update":"Aktualisieren","commons.copy":"Kopieren","commons.copy_to_clipboard":"In die Zwischenablage kopieren","commons.copied_to_clipboard":"In die Zwischenablage kopiert","commons.profile":"Profil","commons.edit":"Bearbeiten","commons.delete":"Löschen","commons.disable":"Deaktivieren","commons.enable":"Aktivieren","commons.create":"Erstellen","commons.save":"Speichern","commons.close":"Schließen","commons.clear":"Leeren","commons.clear_search":"Suche leeren","commons.demo_do_not_post_sensitive_data":"Dies ist eine Demo-App, veröffentlichen Sie keine sensiblen Daten","commons.testing_do_not_post_sensitive_data":"Dies ist eine Test-App, veröffentlichen Sie keine sensiblen Daten","commons.x_selected":":count ausgewählt","commons.name":"Name","commons.manage":"Verwalten","commons.done":"Erledigt","commons.new":"Neu","commons.back":"Zurück","commons.move":"Verschieben","commons.export":"Exportieren","commons.all":"Alle","commons.check_all":"Alles","commons.select_all":"Alle auswählen","commons.clear_selection":"Auswahl löschen","commons.sort_descending":"Sortierung absteigend","commons.sort_ascending":"Sortierung aufsteigend","commons.rename":"Umbenennen","commons.new_name":"Neuer Name","commons.options":"Einstellungen","commons.reload":"Neu laden","commons.refresh":"Aktualisieren","commons.data_refreshed_to_reflect_server_changes":"Daten wurden aktualisiert, um Änderungen auf dem Server wiederzugeben","commons.generate":"Erzeugen","commons.generating_otp":"OTP erzeugen","commons.open_in_browser":"Im Browser öffnen","commons.continue":"Weiter","commons.discard":"Ablehnen","commons.about":"Über","commons.usefull_links":"Nützliche Links","commons.environment":"Umgebung","commons.credits":"Mitwirkende","commons.2fauth_teaser":"Eine Web-App um Ihre Zwei-Faktor-Authentifizierung (2FA)-Konten zu verwalten und deren Sicherheitscodes zu erzeugen","commons.made_with":"Erstellt mit","commons.ui_icons_by":"UI-Symbole von","commons.logos_by":"Logos von","commons.search":"Suche","commons.resources":"Ressourcen","commons.check_for_update":"Auf neue Version prüfen","commons.check_for_update_help":"Automatisch überprüfen (einmal pro Woche) und warnen, wenn eine neue Version von 2FAuth auf Github veröffentlicht wird","commons.you_are_up_to_date":"Instanz ist auf dem neusten Stand","commons.2fauth_description":"Eine Web-App um Ihre Zwei-Faktor-Authentifizierung (2FA) Konten zu verwalten und deren Sicherheitscodes zu generieren","commons.image_of_qrcode_to_scan":"Bild eines QR-Codes zum Scannen","commons.file":"Datei","commons.or":"ODER","commons.close_the_x_page":"Seite :pagetitle schließen","commons.submit":"Absenden","commons.default":"Standard","commons.back_to_home":"Zurück zur Startseite","commons.nothing":"nichts","commons.no_result":"Kein Ergebnis","commons.information":"Information","commons.send":"Absenden","commons.optimize":"Optimieren","commons.IP":"IP","commons.browser":"Browser","commons.operating_system_short":"OS","commons.no_entry_yet":"Noch kein Eintrag","commons.time":"Zeit","commons.ip_address":"IP-Adresse","commons.device":"Gerät","commons.one_month":"1 Mon.","commons.x_month":":x Mon.","commons.one_year":"1 J.","errors.resource_not_found":"Ressource nicht gefunden","errors.error_occured":"Ein Fehler ist aufgetreten:","errors.refresh":"Aktualisieren","errors.no_valid_otp":"Keine gültige OTP-Ressource in diesem QR-Code","errors.something_wrong_with_server":"Etwas stimmt mit Ihrem Server nicht","errors.Unable_to_decrypt_uri":"URI konnte nicht entschlüsselt werden","errors.not_a_supported_otp_type":"Dieses OTP-Format wird derzeit nicht unterstützt","errors.cannot_create_otp_without_secret":"Das OTP kann nicht ohne Geheimnis erstellt werden","errors.data_of_qrcode_is_not_valid_URI":"Dieser QR-Code enthält keine gültige OTP Auth URI. Inhalt des QR-Codes:","errors.wrong_current_password":"Aktuelles Passwort falsch, nichts wurde geändert","errors.error_during_encryption":"Verschlüsselung fehlgeschlagen, Ihre Datenbank bleibt ungeschützt.","errors.error_during_decryption":"Entschlüsselung fehlgeschlagen, Ihre Datenbank bleibt geschützt. Dies wird hauptsächlich durch eine Integritätsproblem verschlüsselter Daten für ein oder mehrere Konten verursacht.","errors.qrcode_cannot_be_read":"Dieser QR-Code ist unlesbar","errors.too_many_ids":"zu viele Ids wurden in den Abfrageparameter eingefügt, maximal 100 erlaubt","errors.delete_user_setting_only":"Nur benutzerdefinierte Einstellungen können gelöscht werden","errors.indecipherable":"*nicht lesbar*","errors.cannot_decipher_secret":"Das Geheimnis kann nicht entschlüsselt werden. Dies wird hauptsächlich durch einen falsch gesetzten APP_KEY in der .env-Konfigurationsdatei von 2Fauth oder durch beschädigte Daten in der Datenbank verursacht.","errors.https_required":"HTTPS-Kontext erforderlich","errors.browser_does_not_support_webauthn":"Ihr Gerät unterstützt nicht Webauthn. Versuchen Sie es später mit einem moderneren Browser erneut","errors.aborted_by_user":"Vom Benutzer abgebrochen","errors.security_device_already_registered":"Gerät ist bereits registriert","errors.not_allowed_operation":"Vorgang nicht erlaubt","errors.no_authenticator_support_specified_algorithms":"Keine Authentifikatoren unterstützen die angegebenen Algorithmen","errors.authenticator_missing_discoverable_credential_support":"Authentifikator fehlt erkennbare Anmeldeinformationen","errors.authenticator_missing_user_verification_support":"Authentifikator fehlt Unterstützung für die Benutzerüberprüfung","errors.unknown_error":"Unbekannter Fehler","errors.security_error_check_rpid":"Sicherheitsfehler
Prüfen Sie die Umgebungsvariable WEBAUTHN_ID","errors.2fauth_has_not_a_valid_domain":"2FAuths Domain ist keine gültige Domain","errors.user_id_not_between_1_64":"Benutzer-ID war nicht zwischen 1 und 64 Zeichen","errors.no_entry_was_of_type_public_key":'Kein Eintrag vom Typ "public-key"',"errors.unsupported_with_reverseproxy":"Not applicable when using an auth proxy or SSO","errors.unsupported_with_sso_only":"This authentication method is for administrators only. Users must log in with SSO.","errors.user_deletion_failed":"Löschen des Benutzerkontos fehlgeschlagen, es wurden keine Daten gelöscht","errors.auth_proxy_failed":"Proxy-Authentifizierung fehlgeschlagen","errors.auth_proxy_failed_legend":"2Fauth ist so konfiguriert, dass es hinter einem Authentifizierungs-Proxy läuft, aber Ihr Proxy gibt nicht den erwarteten Header zurück. Überprüfen Sie Ihre Konfiguration und versuchen Sie es erneut.","errors.invalid_x_migration":"Ungültige oder nicht lesbare Daten bei :appname","errors.invalid_2fa_data":"Ungültige 2FA-Daten","errors.unsupported_migration":"Daten stimmen mit keinem der unterstützten Formate überein","errors.unsupported_otp_type":"Nicht unterstützter OTP-Typ","errors.encrypted_migration":"Nicht lesbar, die Daten scheinen verschlüsselt zu sein","errors.no_logo_found_for_x":"Kein Logo verfügbar für :service","errors.file_upload_failed":"Hochladen der Datei fehlgeschlagen","errors.unauthorized":"Nicht berechtigt","errors.unauthorized_legend":"Sie haben keine Berechtigung, diese Ressource zu sehen oder diese Aktion auszuführen","errors.cannot_delete_the_only_admin":"Löschen des einzigen Admin-Kontos nicht möglichen","errors.cannot_demote_the_only_admin":"Der einzige Admin-Account kann nicht degradiert werden","errors.error_during_data_fetching":"💀 Während des Datenabrufs ist etwas schief gelaufen","errors.check_failed_try_later":"Überprüfung fehlgeschlagen, bitte später erneut versuchen","errors.sso_disabled":"SSO ist deaktiviert","errors.sso_bad_provider_setup":"Dieser SSO-Provider ist nicht vollständig in Ihrer .env-Datei eingerichtet","errors.sso_failed":"Authentifizierung über SSO abgelehnt","errors.sso_no_register":"Registrierungen sind deaktiviert","errors.sso_email_already_used":"Ein Benutzerkonto mit der gleichen E-Mail-Adresse existiert bereits, aber es stimmt nicht mit Ihrer externen Konto-ID überein. Verwenden Sie kein SSO, wenn Sie bereits bei 2FAuth mit dieser E-Mail registriert sind.","errors.account_managed_by_external_provider":"Konto von einem externen Anbieter verwaltet","errors.data_cannot_be_refreshed_from_server":"Daten können nicht vom Server aktualisiert werden","errors.no_pwd_reset_for_this_user_type":"Passwort zurücksetzen für diesen Benutzer nicht verfügbar","errors.cannot_detect_qrcode_in_image":"Es kann kein QR-Code im Bild erkannt werden. Bitte das Bild zuschneiden","errors.cannot_decode_detected_qrcode":"Kann den QR-Code nicht dekodieren. Bitte das Bild zuschneiden oder schärfen","errors.qrcode_has_invalid_checksum":"QR-Code hat eine ungültige Prüfsumme","errors.no_readable_qrcode":"Kein lesbarer QR-Code","groups.groups":"Gruppen","groups.create_group":"Neue Gruppe erstellen","groups.show_group_selector":"Gruppenauswahl anzeigen","groups.hide_group_selector":"Gruppenauswahl ausblenden","groups.select_accounts_to_show":"Kontogruppe auswählen","groups.x_accounts":":count Konten","groups.manage_groups":"Gruppen verwalten","groups.active_group":"Aktive Gruppe","groups.manage_groups_legend":'Sie können Gruppen erstellen, um Ihre Konten so zu organisieren wie Sie möchten. Alle Konten bleiben in der Pseudo-Gruppe mit dem Namen "Alle" sichtbar, unabhängig davon, zu welcher Gruppe sie gehören.',"groups.deleting_group_does_not_delete_accounts":"Konten bleiben beim Löschen der Gruppe erhalten","groups.move_selected_to":"Ausgewählte verschieben","groups.move_selected_to_group":"Auswahl in eine Gruppe verschieben","groups.no_group":"Keine Gruppe","groups.change_group":"Gruppe ändern","groups.group_successfully_created":"Gruppe erfolgreich erstellt","groups.group_name_saved":"Gruppenname gespeichert","groups.group_successfully_deleted":"Gruppe erfolgreich gelöscht","groups.forms.new_group":"Neue Gruppe","groups.forms.new_name":"Neuer Name","groups.forms.rename_group":"Gruppe umbenennen","groups.confirm.delete":"Möchten Sie diese Gruppe wirklich löschen?","languages.browser_preference":"Browsereinstellung","languages.en":"English (Englisch)","languages.fr":"Français (Französisch)","languages.de":"Deutsch (Deutsch)","languages.es":"Español (Spanisch)","languages.zh":"简体中文 (Vereinfachtes Chinesisch)","languages.ru":"Русский (Russisch)","languages.bg":"Български (Bulgarisch)","languages.ja":"日本語 (Japanisch)","languages.hi":"हिंदी (Hindi)","languages.tr":"Türkçe (Turkish)","notifications.hello":"Hallo","notifications.hello_user":"Hallo :username,","notifications.regards":"Mit freundlichen Grüßen","notifications.test_email_settings.subject":"2FAuth-Test-E-Mail","notifications.test_email_settings.reason":"Sie erhalten diese E-Mail, weil Sie eine Test-E-Mail angefordert haben, um die E-Mail-Einstellungen Ihrer 2FAuth Instanz zu überprüfen.","notifications.test_email_settings.success":"Gute Nachricht, es funktioniert :)","notifications.new_device.subject":"Verbindung zu 2FAuth von einem neuen Gerät","notifications.new_device.resume":"Ein neues Gerät hat sich gerade mit Ihrem 2FAuth-Konto verbunden.","notifications.new_device.connection_details":"Hier sind die Details dieser Verbindung","notifications.new_device.recommandations":"Wenn dies auf Sie zutrifft, können Sie diese Meldung ignorieren. Wenn Sie eine verdächtige Aktivität in Ihrem Konto vermuten, ändern Sie bitte Ihr Passwort.","notifications.failed_login.subject":"Anmeldung bei 2FAuth fehlgeschlagen","notifications.failed_login.resume":"Es gab einen fehlgeschlagenen Anmeldeversuch auf Ihr 2FAuth Konto.","notifications.failed_login.connection_details":"Hier sind die Details zu diesem Verbindungsversuch","notifications.failed_login.recommandations":"Wenn Sie dies waren, können Sie diese Warnung ignorieren. Falls weitere Versuche fehlschlagen, sollten Sie den 2FAuth-Administrator kontaktieren, um die Sicherheitseinstellungen zu überprüfen und Maßnahmen gegen diesen Angreifer zu ergreifen.","pagination.previous":"« Zurück","pagination.next":"Weiter »","passwords.reset":"Das Passwort wurde zurückgesetzt!","passwords.sent":"Passworterinnerung wurde gesendet!","passwords.throttled":"Bitte warten Sie, bevor Sie es erneut versuchen.","passwords.token":"Der Passwort-Wiederherstellungs-Schlüssel ist ungültig oder abgelaufen.","passwords.user":"Es konnte leider kein Benutzer mit dieser E-Mail-Adresse gefunden werden.","passwords.password":"Passwörter müssen mindestens acht Zeichen lang sein und mit der Bestätigung übereinstimmen.","settings.settings":"Einstellungen","settings.preferences":"Voreinstellungen","settings.account":"Benutzerkonto","settings.oauth":"OAuth","settings.webauthn":"WebAuthn","settings.tokens":"Token","settings.options":"Einstellungen","settings.user_preferences":"Benutzereinstellungen","settings.admin_settings":"Admin-Einstellungen","settings.confirm.revoke":"Sind Sie sicher, dass Sie diesen Token widerrufen möchten?","settings.you_are_administrator":"Sie sind ein Administrator","settings.account_linked_to_sso_x_provider":"Sie haben sich mit Ihrem :provider -Konto via SSO angemeldet. Ihre Daten können hier nicht geändert werden, sondern auf :provider.","settings.general":"Allgemein","settings.security":"Sicherheit","settings.notifications":"Benachrichtigungen","settings.profile":"Profil","settings.change_password":"Passwort ändern","settings.personal_access_tokens":"Persönliche Zugriffsstoken","settings.token_legend":"Persönliche Zugriffstoken ermöglichen es jeder Anwendung, sich bei der 2Fauth-API zu authentifizieren. Sie sollten das Zugriffs-Token als Bearer-Token im Autorisierungs-Header der Anfragen von Verbraucher-Apps angeben.","settings.generate_new_token":"Neuen Token erzeugen","settings.revoke":"Widerrufen","settings.token_revoked":"Token erfolgreich widerrufen","settings.revoking_a_token_is_permanent":"Widerruf eines Token ist dauerhaft","settings.make_sure_copy_token":"Kopieren Sie Ihren persönlichen Zugangs-Token jetzt. Sie werden ihn nicht mehr sehen können!","settings.data_input":"Daten-Eingabe","settings.forms.edit_settings":"Einstellungen bearbeiten","settings.forms.setting_saved":"Einstellungen gespeichert","settings.forms.new_token":"Neuer Token","settings.forms.some_translation_are_missing":"Einige Übersetzungen fehlen bei Verwendung der bevorzugten Sprache des Browsers?","settings.forms.help_translate_2fauth":"Helfen Sie 2FAuth zu übersetzen","settings.forms.language.label":"Sprache","settings.forms.language.help":"Sprache, die zur Übersetzung der 2FAuth-Benutzeroberfläche verwendet wird. Benannte Sprachen sind vollständig. Stellen Sie die Sprache Ihrer Wahl ein, um Ihre Browserpräferenz zu überschreiben.","settings.forms.timezone.label":"Zeitzone","settings.forms.timezone.help":"Die Zeitzone wird auf alle in der Anwendung angezeigten Daten und Zeiten angewendet","settings.forms.show_otp_as_dot.label":'Erzeugte OTP als Punkt anzeigen',"settings.forms.show_otp_as_dot.help":"Passwortzeichen werden als *** angezeigt, um die Vertraulichkeit zu gewährleisten. Dies beeinflusst nicht die Kopieren/Einfügen-Funktion","settings.forms.reveal_dotted_otp.label":'Verdecktes OTP aufdecken',"settings.forms.reveal_dotted_otp.help":"Die Fähigkeit Punkt-verdeckte Passwörter temporär freigeben","settings.forms.close_otp_on_copy.label":'OTP nach dem Kopieren schließen',"settings.forms.close_otp_on_copy.help":"Bei einem Klick auf das erzeugte Passwort wird es automatisch auf dem Bildschirm ausgeblendet","settings.forms.auto_close_timeout.label":'OTP automatisch schließen',"settings.forms.auto_close_timeout.help":"Passwort automatisch nach einem Timeout auf dem Bildschirm ausblenden. Dies vermeidet unnötige Anfragen nach neuen Passwörtern, wenn Sie die Passwortansicht nicht schließen.","settings.forms.clear_search_on_copy.label":"Suche beim Kopieren löschen","settings.forms.clear_search_on_copy.help":"Das Suchfeld leeren, nachdem ein Code in die Zwischenablage kopiert wurde","settings.forms.sort_case_sensitive.label":"Groß-/Kleinschreibung beachten","settings.forms.sort_case_sensitive.help":"Erzwingt bei Aufruf der Funktion Sortieren die Sortierung der Konten unter Berücksichtigung der Groß- und Kleinschreibung","settings.forms.copy_otp_on_display.label":'OTP auf Anzeige kopieren',"settings.forms.copy_otp_on_display.help":'Kopiert automatisch ein generiertes Passwort bei Anzeige auf dem Bildschirm. Aufgrund der Einschränkungen des Browsers, wird nur das erste TOTP Passwort kopiert, nicht das rotierende Passwort',"settings.forms.use_basic_qrcode_reader.label":"Einfachen QR-Codeleser benutzen","settings.forms.use_basic_qrcode_reader.help":"Wenn bei der Erfassung von QR-Codes Probleme auftreten, können Sie mit dieser Option zu einem einfacheren, aber zuverlässigeren QR-Codeleser wechseln","settings.forms.display_mode.label":"Anzeigemodus","settings.forms.display_mode.help":"Wählen Sie aus, ob Konten als Liste oder als Raster angezeigt werden sollen","settings.forms.password_format.label":"Passwort-Formatierung","settings.forms.password_format.help":"Anzeige der Passwörter ändern durch Gruppierung der Ziffern. Verbessert die Lesbarkeit und Passwörter lassen sich einfacher merken","settings.forms.pair":"nach Paar","settings.forms.pair_legend":"Ziffern in zweistellige Gruppen aufteilen","settings.forms.trio_legend":"Ziffern in dreistellige Gruppen aufteilen","settings.forms.half_legend":"Ziffern in zwei gleiche Gruppen aufteilen","settings.forms.trio":"nach Trio","settings.forms.half":"nach Hälfte","settings.forms.grid":"Raster","settings.forms.list":"Liste","settings.forms.theme.label":"Design","settings.forms.theme.help":"Eine bestimmte Darstellung erzwingen oder die in Ihren System-/Browsereinstellungen definierte Darstellung anwenden","settings.forms.light":"Hell","settings.forms.dark":"Dunkel","settings.forms.automatic":"Automatisch","settings.forms.show_accounts_icons.label":"Symbole anzeigen","settings.forms.show_accounts_icons.help":"Kontosymbole in der Hauptansicht anzeigen","settings.forms.get_official_icons.label":"Offizielle Symbole abrufen","settings.forms.get_official_icons.help":"(Versuch) Das offizielle Symbol des 2FA-Ausstellers beim Hinzufügen eines Kontos erhalten","settings.forms.auto_lock.label":"Automatische Sperrung","settings.forms.auto_lock.help":"Den Benutzer bei Inaktivität automatisch abmelden. Hat keine Auswirkung, wenn die Authentifizierung über einen Proxy erfolgt und keine benutzerdefinierte Logout-URL angegeben ist","settings.forms.default_group.label":"Standardgruppe","settings.forms.default_group.help":"Die Gruppe, der neu erstellte Konten zugeordnet werden","settings.forms.view_default_group_on_copy.label":"Standardgruppe beim Kopieren anzeigen","settings.forms.view_default_group_on_copy.help":"Immer zur Standardgruppe zurückkehren, wenn ein OTP kopiert wird","settings.forms.auto_save_qrcoded_account.label":"Konten automatisch speichern","settings.forms.auto_save_qrcoded_account.help":"Neue Konten werden automatisch nach dem Scannen oder Hochladen eines QR-Codes registriert, ohne dass Sie auf den Speichern-Tastr klicken müssen","settings.forms.useDirectCapture.label":"Direkteingabe","settings.forms.useDirectCapture.help":"Wählen Sie aus, ob Sie einen Eingabemodus unter den Verfügbaren wählen möchten oder ob Sie direkt den Standard-Eingabemodus verwenden möchten","settings.forms.defaultCaptureMode.label":"Standard-Eingabemodus","settings.forms.defaultCaptureMode.help":"Standard-Eingabemodus, der verwendet wird, falls die Direkteingabe aktiviert ist","settings.forms.remember_active_group.label":"Gruppenfilter merken","settings.forms.remember_active_group.help":"Den letzten Gruppenfilter speichern und ihn beim nächsten Besuch wiederherstellen","settings.forms.otp_generation.label":"Passwort zeigen","settings.forms.otp_generation.help":'Festlegen, wie und wann OTPs angezeigt werden.
',"settings.forms.notify_on_new_auth_device.label":"Auf neuem Gerät","settings.forms.notify_on_new_auth_device.help":"Erhalten Sie eine E-Mail, wenn sich ein neues Gerät zum ersten Mal mit Ihrem 2FAuth Konto verbindet","settings.forms.notify_on_failed_login.label":"Bei fehlgeschlagener Anmeldung","settings.forms.notify_on_failed_login.help":"Erhalten Sie jedes Mal eine E-Mail, wenn ein Verbindungsversuch zu Ihrem 2FAuth-Konto fehlschlägt","settings.forms.otp_generation_on_request":"Nach einem Klick/Tippen","settings.forms.otp_generation_on_request_legend":"Einzeln, in eigener Ansicht","settings.forms.otp_generation_on_request_title":"Konto anklicken, um ein Passwort in einer eigenen Ansicht zu erhalten","settings.forms.otp_generation_on_home":"Ständig","settings.forms.otp_generation_on_home_legend":"Alle auf dem Startbildschirm anzeigen","settings.forms.otp_generation_on_home_title":"Alle Passwörter auf dem Startbildschirm anzeigen, ohne etwas tun zu müssen","settings.forms.never":"Niemals","settings.forms.on_otp_copy":"Beim Kopieren des Token","settings.forms.1_minutes":"Nach 1 Minute","settings.forms.2_minutes":"Nach 2 Minuten","settings.forms.5_minutes":"Nach 5 Minuten","settings.forms.10_minutes":"Nach 10 Minuten","settings.forms.15_minutes":"Nach 15 Minuten","settings.forms.30_minutes":"Nach 30 Minuten","settings.forms.1_hour":"Nach 1 Stunde","settings.forms.1_day":"Nach 1 Tag","settings.forms.livescan":"QR-Code scannen","settings.forms.upload":"QR-Code hochladen","settings.forms.advanced_form":"Erweitertes Formular","titles.404":"Objekt nicht gefunden","titles.start":"Neues Konto","titles.capture":"QR blinken","titles.accounts":"Konten","titles.createAccount":"Konto erstellen","titles.importAccounts":"Konten importieren","titles.editAccount":"Konto bearbeiten","titles.showQRcode":"Konto als QR-Code","titles.groups":"Gruppen","titles.createGroup":"Gruppe erstellen","titles.editGroup":"Gruppe bearbeiten","titles.settings.options":"Einstellungen","titles.settings.account":"Benutzerkonto","titles.settings.oauth.tokens":"OAuth-Token","titles.settings.oauth.generatePAT":"Neuer persönlicher Token","titles.settings.webauthn.editCredential":"Gerät bearbeiten","titles.settings.webauthn.devices":"WebAuthn-Geräte","titles.login":"Anmelden","titles.register":"Registrieren","titles.autolock":"Automatische Sperrung","titles.password.request":"Passwort zurücksetzen","titles.password.reset":"Neues Passwort","titles.webauthn.lost":"Kontowiederherstellung","titles.webauthn.recover":"Neues Gerät registrieren","titles.flooded":"Überschwemmung","titles.genericError":"Fehler","titles.about":"Über","titles.admin.appSetup":"App-Einrichtung","titles.admin.users":"Benutzerverwaltung","titles.admin.createUser":"Benutzer erstellen","titles.admin.manageUser":"Benutzer verwalten","titles.admin.logs.access":"Zugriffsprotokoll","twofaccounts.service":"Dienst","twofaccounts.account":"Benutzerkonto","twofaccounts.icon":"Symbol","twofaccounts.icon_to_illustrate_the_account":"Symbol, das den Account darstellt","twofaccounts.remove_icon":"Symbol entfernen","twofaccounts.no_account_here":"Noch keine 2FA vorhanden!","twofaccounts.add_first_account":"Wählen Sie eine Methode und fügen Sie Ihren ersten Account hinzu","twofaccounts.use_full_form":"Oder nutzen Sie das vollständige Formular","twofaccounts.add_one":"Konto hinzufügen","twofaccounts.show_qrcode":"QR-Code anzeigen","twofaccounts.no_service":"- kein Service -","twofaccounts.account_created":"Konto erfolgreich erstellt","twofaccounts.account_updated":"Konto erfolgreich aktualisiert","twofaccounts.accounts_deleted":"Konto(en) erfolgreich gelöscht","twofaccounts.accounts_moved":"Konto(en) erfolgreich verschoben","twofaccounts.export_selected_to_json":"Json-Export ausgewählter Konten herunterladen","twofaccounts.reveal":"aufdecken","twofaccounts.forms.service.placeholder":"Google, Twitter, Apple","twofaccounts.forms.account.placeholder":"Max Mustermann","twofaccounts.forms.new_account":"Neues Konto","twofaccounts.forms.edit_account":"Konto bearbeiten","twofaccounts.forms.otp_uri":"OTP Uri","twofaccounts.forms.scan_qrcode":"QR-Code scannen","twofaccounts.forms.upload_qrcode":"QR-Code hochladen","twofaccounts.forms.use_advanced_form":"Erweitertes Formular verwenden","twofaccounts.forms.prefill_using_qrcode":"Mit einem QR-Code ausfüllen","twofaccounts.forms.use_qrcode.val":"QR-Code verwenden","twofaccounts.forms.use_qrcode.title":"Verwenden Sie einen QR-Code, um das Formular auszufüllen","twofaccounts.forms.unlock.val":"Entsperren","twofaccounts.forms.unlock.title":"Entsperren (auf eigene Gefahr)","twofaccounts.forms.lock.val":"Sperren","twofaccounts.forms.lock.title":"Sperren","twofaccounts.forms.choose_image":"Hochladen","twofaccounts.forms.i_m_lucky":"Mein Glück versuchen","twofaccounts.forms.i_m_lucky_legend":'Durch "Mein Glück versuchen" können Sie das offizielle Symbol des jeweiligen Dienstes erhalten. Geben Sie den tatsächlichen Namen des Dienstes ohne die Erweiterung ".xyz" ein und versuchen Sie, Tippfehler zu vermeiden (Beta-Funktion)',"twofaccounts.forms.test":"Test","twofaccounts.forms.group.label":"Group","twofaccounts.forms.group.help":"The group to which the account is to be assigned","twofaccounts.forms.secret.label":"Geheimnis","twofaccounts.forms.secret.help":"Der Schlüssel, der zur Erzeugung Ihrer Sicherheitscodes verwendet wird","twofaccounts.forms.plain_text":"Klartext","twofaccounts.forms.otp_type.label":'Wählen Sie den OTP Typ',"twofaccounts.forms.otp_type.help":"Zeitbasierte OTP oder HMAC-basierte OTP oder Steam OTP","twofaccounts.forms.digits.label":"Ziffern","twofaccounts.forms.digits.help":"Die Anzahl der Ziffern der erzeugten Sicherheitscodes","twofaccounts.forms.algorithm.label":"Algorithmus","twofaccounts.forms.algorithm.help":"Der Algorithmus, der zur Sicherung Ihrer Sicherheitscodes verwendet wird","twofaccounts.forms.period.label":"Gültigkeitsdauer","twofaccounts.forms.period.placeholder":"Standard ist 30","twofaccounts.forms.period.help":"Die Gültigkeitsdauer der erzeugten Sicherheitscodes in Sekunden","twofaccounts.forms.counter.label":"Zähler","twofaccounts.forms.counter.placeholder":"Standard ist 0","twofaccounts.forms.counter.help":"Der erste Zählerwert","twofaccounts.forms.counter.help_lock":"Es ist riskant, den Zähler zu ändern, da Sie das Konto mit dem Verifizierungsserver des Dienstes desynchronisieren können. Verwenden Sie das Schlosssymbol, um Änderungen zu ermöglichen, aber nur, wenn Sie wissen, was Sie tun","twofaccounts.forms.image.label":"Bild","twofaccounts.forms.image.placeholder":"http://...","twofaccounts.forms.image.help":"Die Url eines externen Bildes, das als Kontosymbol verwendet werden soll","twofaccounts.forms.options_help":"Sie können die folgenden Einstellungen leer lassen, wenn Sie nicht wissen, wie Sie sie einstellen. In dem Fall werden die Standardwerte verwendet.","twofaccounts.forms.alternative_methods":"Alternative Methoden","twofaccounts.forms.spaces_are_ignored":"Ungewollte Leerzeichen werden automatisch entfernt","twofaccounts.stream.live_scan_cant_start":"Der Live-Scan kann nicht gestartet werden :(","twofaccounts.stream.need_grant_permission.reason":"2FAuth hat keine Berechtigung auf Ihre Kamera zuzugreifen","twofaccounts.stream.need_grant_permission.solution":"Sie müssen die Erlaubnis erteilen, um Ihre Gerätekamera zu verwenden. Falls Sie bereits verweigert haben und Ihr Browser Sie nicht erneut anfragt, verweisen Sie bitte auf die Browser-Dokumentation, um herauszufinden, wie Sie die Erlaubnis erteilen können.","twofaccounts.stream.need_grant_permission.click_camera_icon":"Dies geschieht üblicherweise durch Klicken auf ein geschlitztes Kamerasymbol in oder neben der Adressleiste des Browsers","twofaccounts.stream.not_readable.reason":"Fehler beim Laden des Scanners","twofaccounts.stream.not_readable.solution":"Wird die Kamera bereits verwendet? Stellen Sie sicher, dass keine andere App Ihre Kamera verwendet und versuchen Sie es erneut","twofaccounts.stream.no_cam_on_device.reason":"Keine Kamera in diesem Gerät","twofaccounts.stream.no_cam_on_device.solution":"Vielleicht haben Sie vergessen, Ihre Webcam anzuschließen","twofaccounts.stream.secured_context_required.reason":"Sichere Umgebung erforderlich","twofaccounts.stream.secured_context_required.solution":"HTTPS wird für den Live-Scan benötigt. Wenn Sie 2FAuth auf Ihrem Computer ausführen, verwenden Sie nur localhost und keinen anderen virtuellen Host","twofaccounts.stream.https_required":"HTTPS für Kamera-Übertragung erforderlich","twofaccounts.stream.camera_not_suitable.reason":"Die verbauten Kameras sind nicht geeignet","twofaccounts.stream.camera_not_suitable.solution":"Bitte verwenden Sie ein anderes Gerät/Kamera","twofaccounts.stream.stream_api_not_supported.reason":"Stream API wird von diesem Browser nicht unterstützt","twofaccounts.stream.stream_api_not_supported.solution":"Sie sollten einen modernen Browser verwenden","twofaccounts.confirm.delete":"Sind Sie sicher, dass Sie dieses Konto löschen möchten?","twofaccounts.confirm.cancel":"Das Konto wird gelöscht. Sind Sie sicher?","twofaccounts.confirm.discard":"Sind Sie sicher, dass Sie dieses Konto verwerfen möchten?","twofaccounts.confirm.discard_all":"Sind Sie sicher, dass Sie alle Konten verwerfen möchten?","twofaccounts.confirm.discard_duplicates":"Möchten Sie wirklich alle Duplikate verwerfen?","twofaccounts.import.import":"Import","twofaccounts.import.to_import":"Import","twofaccounts.import.import_legend":"2FAuth kann Daten aus verschiedenen 2FA-Apps importieren.","twofaccounts.import.import_legend_afterpart":"Benutzen Sie die Export-Funktion dieser Apps, um eine Migrations-Ressource wie einen QR-Code oder eine JSON-Datei zu erhalten und lade Sie sie hier.","twofaccounts.import.upload":"Hochladen","twofaccounts.import.scan":"Scannen","twofaccounts.import.supported_formats_for_qrcode_upload":"Akzeptiert: jpg, jpeg, png, bmp, gif, svg oder webp","twofaccounts.import.supported_formats_for_file_upload":"Akzeptiert: Klartext, Json, 2fas","twofaccounts.import.expected_format_for_direct_input":"Erwartet: Eine Liste der otpauth URI, eins pro Zeile","twofaccounts.import.supported_migration_formats":"Unterstütze Migrationsformate","twofaccounts.import.qr_code":"QR-Code","twofaccounts.import.text_file":"Textdatei","twofaccounts.import.direct_input":"Direkte Eingabe","twofaccounts.import.plain_text":"Klartext","twofaccounts.import.parsing_data":"Daten werden verarbeitet...","twofaccounts.import.issuer":"Aussteller","twofaccounts.import.imported":"Importiert","twofaccounts.import.failure":"Fehlschlag","twofaccounts.import.x_valid_accounts_found":":count gültige Konten gefunden","twofaccounts.import.submitted_data_parsed_now_accounts_are_awaiting_import":"Die folgenden 2FA-Konten wurden in der Migrations-Ressource gefunden. Bisher wurden noch keine von ihnen zu 2FAuth hinzugefügt.","twofaccounts.import.use_buttons_to_save_or_discard":"Verwenden Sie die verfügbaren Schaltflächen, um sie dauerhaft in Ihrer 2FA-Sammlung zu speichern oder zu verwerfen.","twofaccounts.import.import_all":"Alle importieren","twofaccounts.import.import_this_account":"Dieses Konto importieren","twofaccounts.import.discard_all":"Alles verwerfen","twofaccounts.import.discard_duplicates":"Duplikate verwerfen","twofaccounts.import.discard_this_account":"Dieses Konto verwerfen","twofaccounts.import.generate_a_test_password":"Ein Testpasswort erzeugen","twofaccounts.import.possible_duplicate":"Ein Konto mit den gleichen Daten ist bereits vorhanden","twofaccounts.import.invalid_account":"- ungültiges Konto -","twofaccounts.import.invalid_service":"- ungültiges Service -","twofaccounts.import.do_not_set_password_or_encryption":"Aktivieren Sie NICHT den Passwortschutz oder die Verschlüsselung, wenn Sie Daten aus einer anderen 2FA-App exportieren, die Sie in 2FAuth importieren möchten.","validation.accepted":":attribute muss akzeptiert werden.","validation.accepted_if":"Das :attribute muss akzeptiert werden, wenn :other :value ist.","validation.active_url":":attribute ist keine gültige Internet-Adresse.","validation.after":":attribute muss ein Datum nach dem :date sein.","validation.after_or_equal":":attribute muss ein Datum nach dem :date oder gleich dem :date sein.","validation.alpha":"Das :attribute Feld darf nur Buchstaben enthalten.","validation.alpha_dash":"Das :attribute Feld darf nur Buchstaben, Ziffern, Bindestriche und Unterstriche enthalten.","validation.alpha_num":"Das :attribute Feld darf nur aus Zeichen und Nummern bestehen.","validation.array":":attribute muss ein Array sein.","validation.before":":attribute muss ein Datum vor dem :date sein.","validation.before_or_equal":":attribute muss ein Datum vor dem :date oder gleich dem :date sein.","validation.between.array":":attribute muss zwischen :min & :max Elemente haben.","validation.between.file":":attribute muss zwischen :min & :max Kilobytes groß sein.","validation.between.numeric":":attribute muss zwischen :min & :max liegen.","validation.between.string":":attribute muss zwischen :min & :max Zeichen lang sein.","validation.boolean":":attribute muss entweder 'true' oder 'false' sein.","validation.confirmed":":attribute stimmt nicht mit der Bestätigung überein.","validation.current_password":"Das Passwort ist falsch.","validation.date":":attribute muss ein gültiges Datum sein.","validation.date_equals":":attribute muss ein Datum gleich :date sein.","validation.date_format":":attribute entspricht nicht dem gültigen Format für :format.","validation.declined":"Das :attribute muss abgelehnt werden.","validation.declined_if":"Das :attribute muss abgelehnt werden, wenn :other :value ist.","validation.different":":attribute und :other müssen sich unterscheiden.","validation.digits":":attribute muss :digits Stellen haben.","validation.digits_between":":attribute muss zwischen :min und :max Stellen haben.","validation.dimensions":":attribute hat ungültige Bildabmessungen.","validation.distinct":":attribute beinhaltet einen bereits vorhandenen Wert.","validation.doesnt_end_with":"Das :attribute darf nicht mit einem der folgenden Werte enden: :values.","validation.doesnt_start_with":"Das :attribute Feld darf nicht mit einem der folgenden Werte beginnen: :values.","validation.email":":attribute muss eine gültige E-Mail-Adresse sein.","validation.ends_with":":attribute muss eine der folgenden Endungen aufweisen: :values","validation.enum":"Der gewählte Wert für :attribute ist ungültig.","validation.exists":"Der gewählte Wert für :attribute ist ungültig.","validation.file":":attribute muss eine Datei sein.","validation.filled":":attribute muss ausgefüllt sein.","validation.gt.array":":attribute muss mehr als :value Elemente haben.","validation.gt.file":":attribute muss größer als :value Kilobytes sein.","validation.gt.numeric":":attribute muss größer als :value sein.","validation.gt.string":":attribute muss länger als :value Zeichen sein.","validation.gte.array":":attribute muss mindestens :value Elemente haben.","validation.gte.file":"Das :attribute muss größer oder gleich :value Kilobytes groß sein.","validation.gte.numeric":"Das :attribute Feld muss größer oder gleich :value sein.","validation.gte.string":"Das :attribute Feld muss mindestens :value Zeichen enthalten.","validation.image":":attribute muss ein Bild sein.","validation.in":"Der gewählte Wert für :attribute ist ungültig.","validation.in_array":"Der gewählte Wert für :attribute kommt nicht in :other vor.","validation.integer":":attribute muss eine ganze Zahl sein.","validation.ip":":attribute muss eine gültige IP-Adresse sein.","validation.ipv4":":attribute muss eine gültige IPv4-Adresse sein.","validation.ipv6":":attribute muss eine gültige IPv6-Adresse sein.","validation.json":":attribute muss ein gültiger JSON-String sein.","validation.lt.array":":attribute muss weniger als :value Elemente haben.","validation.lt.file":":attribute muss kleiner als :value Kilobytes sein.","validation.lt.numeric":":attribute muss kleiner als :value sein.","validation.lt.string":":attribute muss kürzer als :value Zeichen sein.","validation.lte.array":":attribute darf maximal :value Elemente haben.","validation.lte.file":"Das :attribute muss kleiner oder gleich :value Kilobytes groß sein.","validation.lte.numeric":"Das :attribute Feld muss kleiner oder gleich :value sein.","validation.lte.string":"Das :attribute Feld darf maximal :value Zeichen enthalten.","validation.mac_address":"Das :attribute Feld muss eine gültige MAC-Adresse enthalten.","validation.max.array":"Das :attribute Feld darf nicht mehr als :max Elemente enthalten.","validation.max.file":"Das :attribute darf nicht größer als :max Kilobytes groß sein.","validation.max.numeric":"Das :attribute Feld darf nicht größer als :max sein.","validation.max.string":"Das :attribute Feld darf nicht mehr als :value Zeichen enthalten.","validation.max_digits":"Das :attribute Feld darf nicht mehr als :max Ziffern enthalten.","validation.mimes":":attribute muss den Dateityp :values haben.","validation.mimetypes":":attribute muss den Dateityp :values haben.","validation.min.array":":attribute muss mindestens :min Elemente haben.","validation.min.file":":attribute muss mindestens :min Kilobytes groß sein.","validation.min.numeric":":attribute muss mindestens :min sein.","validation.min.string":":attribute muss mindestens :min Zeichen lang sein.","validation.min_digits":"Das :attribute Feld muss mindestens :min Ziffern enthalten.","validation.multiple_of":"Das :attribute Feld muss ein Vielfaches von :value sein.","validation.not_in":"Der gewählte Wert für :attribute ist ungültig.","validation.not_regex":":attribute hat ein ungültiges Format.","validation.numeric":":attribute muss eine Zahl sein.","validation.password.letters":"Das :attribute Feld muss mindestens einen Buchstaben enthalten.","validation.password.mixed":"Das :attribute Feld muss mindestens einen Groß- und einen Kleinbuchstaben enthalten.","validation.password.numbers":"Das :attribute Feld muss mindestens eine Zahl enthalten.","validation.password.symbols":"Das :attribute Feld muss mindestens ein Symbol enthalten.","validation.password.uncompromised":"Der im :attribute Feld angegebene Wert wurde in einem Datenleck gefunden. Bitte geben Sie für :attribute einen anderen Wert ein.","validation.present":":attribute muss vorhanden sein.","validation.prohibited":"Das :attribute Feld ist unzulässig.","validation.prohibited_if":"Das :attribute Feld ist unzulässig, wenn :other den Wert :value entspricht.","validation.prohibited_unless":"Das :attribute Feld ist unzulässig, wenn :other nicht den Wert :value annimmt.","validation.prohibits":"Bei gegebenem :attribute Feld ist :other nicht zulässig.","validation.regex":":attribute Format ist ungültig.","validation.required":":attribute muss ausgefüllt werden.","validation.required_array_keys":"Das Feld :attribute muss Einträge enthalten für: :values.","validation.required_if":":attribute muss ausgefüllt werden, wenn :other den Wert :value hat.","validation.required_if_accepted":"Das Feld :attribute muss ausgefüllt werden, wenn :other ausgefüllt wurde.","validation.required_unless":":attribute muss ausgefüllt werden, wenn :other nicht den Wert :values hat.","validation.required_with":":attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.","validation.required_with_all":":attribute muss ausgefüllt werden, wenn :values ausgefüllt wurde.","validation.required_without":":attribute muss ausgefüllt werden, wenn :values nicht ausgefüllt wurde.","validation.required_without_all":":attribute muss ausgefüllt werden, wenn keines der Felder :values ausgefüllt wurde.","validation.same":":attribute und :other müssen übereinstimmen.","validation.size.array":":attribute muss genau :size Elemente haben.","validation.size.file":":attribute muss :size Kilobyte groß sein.","validation.size.numeric":":attribute muss gleich :size sein.","validation.size.string":":attribute muss :size Zeichen lang sein.","validation.starts_with":":attribute muss mit einem der folgenden Anfänge aufweisen: :values","validation.string":":attribute muss ein String sein.","validation.timezone":"Das :attribute Feld muss eine gültige Zeitzone sein.","validation.unique":":attribute ist bereits vergeben.","validation.uploaded":":attribute konnte nicht hochgeladen werden.","validation.url":"Das :attribute Feld muss eine gültige URL aufweisen.","validation.uuid":":attribute muss ein UUID sein.","validation.single":"Bei Verwendung von :attribute muss es der einzige Parameter in diesem Anfragetext sein","validation.onlyCustomOtpWithUri":"Der uri Parameter muss allein oder nur in Kombination mit dem 'custom_otp' Parameter angegeben werden","validation.IsValidRegex":"The :attribute must be a valid regex pattern.","validation.custom.icon.image":"Unterstützte Formate sind jpeg, png, bmp, gif, svg oder webp.","validation.custom.qrcode.image":"Unterstützte Formate sind jpeg, png, bmp, gif, svg oder webp.","validation.custom.uri.regex":"Das :attribute Feld enthält kein gültiges otpauth uri.","validation.custom.otp_type.in":"Das :attribute Feld wird nicht unterstützt.","validation.custom.email.exists":"Kein Konto mit dieser E-Mail gefunden.","validation.custom.email.ComplyWithEmailRestrictionPolicy":"Diese E-Mail-Adresse entspricht nicht den Registrierungsrichtlinien","validation.custom.email.IsValidEmailList":"Alle E-Mails müssen gültig und durch eine Pipe getrennt sein","validation.custom.secret.isBase32Encoded":"Das :attribute Feld muss einen Base32 kodierten String enthalten.","validation.custom.account.regex":"Das :attribute Feld darf keinen Doppelpunkt enthalten.","validation.custom.service.regex":"Das :attribute Feld darf keinen Doppelpunkt enthalten.","validation.custom.label.required":"Der URI muss ein Label haben.","validation.custom.ids.regex":"IDs müssen durch Komma getrennt werden, ohne Komma am Ende."};export{e as default}; diff --git a/public/build/assets/php_zh-BLzLFTvm.js b/public/build/assets/php_zh-Co42ifwQ.js similarity index 81% rename from public/build/assets/php_zh-BLzLFTvm.js rename to public/build/assets/php_zh-Co42ifwQ.js index d763eb36..3b1992c9 100644 --- a/public/build/assets/php_zh-BLzLFTvm.js +++ b/public/build/assets/php_zh-Co42ifwQ.js @@ -1,4 +1,4 @@ -/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const t={"admin.admin":"管理员","admin.app_setup":"应用设置","admin.auth":"Auth","admin.registrations":"注册","admin.users":"用户","admin.users_legend":"管理此实例上的已注册用户,或创建新的用户。","admin.admin_settings":"管理员设置","admin.create_new_user":"创建新用户","admin.new_user":"新用户","admin.search_user_placeholder":"用户名、邮箱…","admin.quick_filters_colons":"快速筛选:","admin.user_created":"用户创建成功","admin.confirm.delete_user":"您确定要删除此用户吗?此操作无法恢复。","admin.confirm.request_password_reset":"您确定要重置此用户的密码吗?","admin.confirm.purge_password_reset_request":"您确定要撤销之前的请求吗?","admin.confirm.delete_account":"您确定要删除此用户吗?","admin.confirm.edit_own_account":"这是您自己的账户,确定要继续吗?","admin.confirm.change_admin_role":"这将严重影响此用户的权限,确定要继续吗?","admin.confirm.demote_own_account":"您将失去管理员权限,确定要继续吗?","admin.logs":"日志","admin.administration_legend":"下列设置将在全局范围内生效,且影响所有用户。","admin.user_management":"用户管理","admin.oauth_provider":"OAuth 提供方","admin.account_bound_to_x_via_oauth":"此账户通过 OAuth 与 :provider 账户绑定","admin.last_seen_on_date":"最近活跃::date","admin.registered_on_date":"注册于 :date","admin.updated_on_date":"更新于 :date","admin.access":"访问","admin.password_requested_on_t":"此用户已申请过密码重置 (申请时间 :datetime),但未完成重置密码的操作,且此前发送的密码重置链接仍然有效。此请求可能是由用户自己或其他管理员发起的。","admin.password_request_expired":"此用户的密码重置请求已超时,意味着此用户未在有效期内完成密码重置。此请求可能是由用户自己或其他管理员发起的。","admin.resend_email":"重新发送邮件","admin.resend_email_title":"重新发送密码重置邮件给用户","admin.resend_email_help":"使用 重新发送邮件 来向用户发送新的密码重置邮件,以便用户可以设置新的密码。 此操作不会更改当前的密码,且之前的重置申请都将被撤销。","admin.reset_password":"重置密码","admin.reset_password_help":"使用 重置密码 来强制重置密码 (将会使用临时密码来覆盖用户当前的密码),以便用户可以设置新密码。此操作会撤销之前的重置申请。","admin.reset_password_title":"重置用户密码","admin.password_successfully_reset":"密码重置成功","admin.user_has_x_active_pat":":count 个有效的令牌","admin.user_has_x_security_devices":":count 个安全设备 (通行密钥)","admin.revoke_all_pat_for_user":"吊销用户的所有令牌","admin.revoke_all_devices_for_user":"吊销用户的所有安全设备","admin.danger_zone":"危险选项","admin.delete_this_user_legend":"此用户所有的 2FA 数据将与此账户被一同删除。","admin.this_is_not_soft_delete":"数据将被永久删除,此操作无法恢复。","admin.delete_this_user":"删除此用户","admin.user_role_updated":"用户权限已更新","admin.pats_succesfully_revoked":"用户的令牌已成功吊销。","admin.security_devices_succesfully_revoked":"用户的安全设备已成功吊销。","admin.variables":"环境变量","admin.cache_cleared":"缓存已清除","admin.cache_optimized":"缓存已优化","admin.check_now":"立即检查","admin.view_on_github":"在 GitHub 上查看","admin.x_is_available":"新版本 :version 可用!","admin.successful_login_on":'成功登录于 :login_at',"admin.successful_logout_on":'成功退出于 :login_at',"admin.failed_login_on":'登录失败于 :login_at',"admin.viewed_on":'查看 :login_at',"admin.last_accesses":"最近访问","admin.see_full_log":"显示完整日志","admin.browser_on_platform":":platform 的 :browser","admin.access_log_has_more_entries":"访问日志包含更多条目。","admin.access_log_legend_for_user":"用户 :username 的完整访问日志","admin.show_last_month_log":"显示上个月的条目","admin.show_three_months_log":"显示最近 3 个月的条目","admin.show_six_months_log":"显示最近 6 个月的条目","admin.show_one_year_log":"显示上一年的条目","admin.sort_by_date_asc":"倒序显示最近访问","admin.sort_by_date_desc":"顺序显示最近访问","admin.single_sign_on":"Single Sign-On (SSO)","admin.forms.use_encryption.label":"保护敏感数据","admin.forms.use_encryption.help":"敏感数据、2FA 秘钥和邮箱地址会以加密形式储存在数据库中。请务必备份您在 .env 中设置的 APP_KEY 的值 (或备份整个 .env 文件)。如果此密钥丢失,那么已加密的数据将无法解密。","admin.forms.restrict_registration.label":"限制注册","admin.forms.restrict_registration.help":"只允许范围内的邮箱地址进行注册,下列的两条规则可以同时使用。SSO 注册流程不受此限制的影响。","admin.forms.restrict_list.label":"过滤列表","admin.forms.restrict_list.help":'仅允许此列表中的邮箱进行注册,用管道符 "|" 来分隔多个地址。',"admin.forms.restrict_rule.label":"过滤规则","admin.forms.restrict_rule.help":"仅允许匹配正则表达式的邮箱地址进行注册","admin.forms.disable_registration.label":"关闭注册","admin.forms.disable_registration.help":"防止新用户注册。除非被覆盖 (见下文)。此设置也会影响到 SSO 的注册流程,所以新用户将无法通过 SSO 登录","admin.forms.enable_sso.label":"Enable SSO","admin.forms.enable_sso.help":"允许访客通过单点登录的方式,使用外部 ID 进行身份验证","admin.forms.use_sso_only.label":"Use SSO only","admin.forms.use_sso_only.help":"Make SSO the only available method to log in to 2FAuth. Password login and Webauthn are then disabled for regular users. Administrators are not affected by this restriction.","admin.forms.keep_sso_registration_enabled.label":"保持启用 SSO 注册","admin.forms.keep_sso_registration_enabled.help":"在注册已禁用时允许新用户通过 SSO 登录","admin.forms.is_admin.label":"管理员","admin.forms.is_admin.help":"授予用户管理员权限。管理员有权管理整个应用,如调整 “设置” 和管理其他用户,但管理员无法对不属于他们的 2FA 创建密码。","admin.forms.test_email.label":"测试送信配置","admin.forms.test_email.help":"发送测试邮件来验证送信配置是否正确。如果发送邮件的配置不正确,用户将无法请求重置密码。","admin.forms.test_email.email_will_be_send_to_x":'邮件将被发送到 :email',"admin.forms.health_endpoint.label":"Health endpoint","admin.forms.health_endpoint.help":"URL you can visit to check the health of this 2FAuth instance. This URL can be used to set up a Docker HEALTHCHECK or a Kubernetes HTTPS Liveness probe.","admin.forms.cache_management.label":"缓存管理","admin.forms.cache_management.help":"某些情况下需要清除缓存,例如更改了环境变量,或更新了应用。您可以在此处进行缓存清理。","auth.failed":"登录信息错误","auth.password":"密码错误","auth.throttle":"您尝试登录的次数过多,请 :seconds 秒后再试。","auth.sign_out":"退出","auth.sign_in":"登录","auth.sign_in_using":"登录方式:","auth.if_administrator":"Administrator?","auth.sign_in_here":"You can sign without SSO","auth.or_continue_with":"您也可以使用:","auth.password_login_and_webauthn_are_disabled":"Password login and WebAuthn are disabled.","auth.sign_in_using_sso":"Pick an SSO provider to sign in with:","auth.no_provider":"no provider","auth.no_sso_provider_or_provider_is_missing":"Provider is missing?","auth.see_how_to_enable_sso":"See how to enable a provider","auth.sign_in_using_security_device":"使用安全设备登录","auth.login_and_password":"用户名和密码","auth.register":"注册","auth.welcome_to_2fauth":"欢迎使用 2FAuth","auth.autolock_triggered":"自动锁定已触发","auth.autolock_triggered_punchline":"自动锁定已触发,您已被自动退出登录。","auth.already_authenticated":"您已登录,请先退出登录。","auth.authentication":"身份认证","auth.maybe_later":"以后再说","auth.user_account_controlled_by_proxy":"此账户由身份代理提供。
请在身份代理中进行管理。","auth.auth_handled_by_proxy":"账户验证已被身份代理接管,下列设置已被禁用。
请在身份代理中进行管理。","auth.sso_only_x_settings_are_disabled":"Authentication is restricted to SSO only, :auth_method is disabled","auth.confirm.logout":"您确定要退出吗?","auth.confirm.revoke_device":"您确定要删除此设备吗?","auth.confirm.delete_account":"您确定要删除您的账户吗?","auth.webauthn.security_device":"安全设备","auth.webauthn.security_devices":"安全设备","auth.webauthn.security_devices_legend":"您可以用来登录 2FAuth 的认证设备,例如安全密钥 (如 Yubikey) 或具有生物识别能力的智能手机 (如 Apple FaceID / TouchID)","auth.webauthn.enhance_security_using_webauthn":`您可以启用 WebAuthn 身份验证来增强您 2FAuth 账户的安全性。

+/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */const t={"admin.admin":"管理员","admin.app_setup":"应用设置","admin.auth":"鉴权","admin.registrations":"注册","admin.users":"用户","admin.users_legend":"管理此实例上的已注册用户,或创建新的用户。","admin.admin_settings":"管理员设置","admin.create_new_user":"创建新用户","admin.new_user":"新用户","admin.search_user_placeholder":"用户名、邮箱…","admin.quick_filters_colons":"快速筛选:","admin.user_created":"用户创建成功","admin.confirm.delete_user":"您确定要删除此用户吗?此操作无法恢复。","admin.confirm.request_password_reset":"您确定要重置此用户的密码吗?","admin.confirm.purge_password_reset_request":"您确定要撤销之前的请求吗?","admin.confirm.delete_account":"您确定要删除此用户吗?","admin.confirm.edit_own_account":"这是您自己的账户,确定要继续吗?","admin.confirm.change_admin_role":"这将严重影响此用户的权限,确定要继续吗?","admin.confirm.demote_own_account":"您将失去管理员权限,确定要继续吗?","admin.logs":"日志","admin.administration_legend":"下列设置将在全局范围内生效,且影响所有用户。","admin.user_management":"用户管理","admin.oauth_provider":"OAuth 提供方","admin.account_bound_to_x_via_oauth":"此账户通过 OAuth 与 :provider 账户绑定","admin.last_seen_on_date":"最近活跃::date","admin.registered_on_date":"注册于 :date","admin.updated_on_date":"更新于 :date","admin.access":"访问","admin.password_requested_on_t":"此用户已申请过密码重置 (申请时间 :datetime),但未完成重置密码的操作,且此前发送的密码重置链接仍然有效。此请求可能是由用户自己或其他管理员发起的。","admin.password_request_expired":"此用户的密码重置请求已超时,意味着此用户未在有效期内完成密码重置。此请求可能是由用户自己或其他管理员发起的。","admin.resend_email":"重新发送邮件","admin.resend_email_title":"重新发送密码重置邮件给用户","admin.resend_email_help":"使用 重新发送邮件 来向用户发送新的密码重置邮件,以便用户可以设置新的密码。 此操作不会更改当前的密码,且之前的重置申请都将被撤销。","admin.reset_password":"重置密码","admin.reset_password_help":"使用 重置密码 来强制重置密码 (将会使用临时密码来覆盖用户当前的密码),以便用户可以设置新密码。此操作会撤销之前的重置申请。","admin.reset_password_title":"重置用户密码","admin.password_successfully_reset":"密码重置成功","admin.user_has_x_active_pat":":count 个有效的令牌","admin.user_has_x_security_devices":":count 个安全设备 (通行密钥)","admin.revoke_all_pat_for_user":"吊销用户的所有令牌","admin.revoke_all_devices_for_user":"吊销用户的所有安全设备","admin.danger_zone":"危险选项","admin.delete_this_user_legend":"此用户所有的 2FA 数据将与此账户被一同删除。","admin.this_is_not_soft_delete":"数据将被永久删除,此操作无法恢复。","admin.delete_this_user":"删除此用户","admin.user_role_updated":"用户权限已更新","admin.pats_succesfully_revoked":"用户的令牌已成功吊销。","admin.security_devices_succesfully_revoked":"用户的安全设备已成功吊销。","admin.variables":"环境变量","admin.cache_cleared":"缓存已清除","admin.cache_optimized":"缓存已优化","admin.check_now":"立即检查","admin.view_on_github":"在 GitHub 上查看","admin.x_is_available":"新版本 :version 可用!","admin.successful_login_on":'成功登录于 :login_at',"admin.successful_logout_on":'成功退出于 :login_at',"admin.failed_login_on":'登录失败于 :login_at',"admin.viewed_on":'查看 :login_at',"admin.last_accesses":"最近访问","admin.see_full_log":"显示完整日志","admin.browser_on_platform":":platform 的 :browser","admin.access_log_has_more_entries":"访问日志包含更多条目。","admin.access_log_legend_for_user":"用户 :username 的完整访问日志","admin.show_last_month_log":"显示上个月的条目","admin.show_three_months_log":"显示最近 3 个月的条目","admin.show_six_months_log":"显示最近 6 个月的条目","admin.show_one_year_log":"显示上一年的条目","admin.sort_by_date_asc":"倒序显示最近访问","admin.sort_by_date_desc":"顺序显示最近访问","admin.single_sign_on":"单点登录(SSO)","admin.forms.use_encryption.label":"保护敏感数据","admin.forms.use_encryption.help":"敏感数据、2FA 秘钥和邮箱地址会以加密形式储存在数据库中。请务必备份您在 .env 中设置的 APP_KEY 的值 (或备份整个 .env 文件)。如果此密钥丢失,那么已加密的数据将无法解密。","admin.forms.restrict_registration.label":"限制注册","admin.forms.restrict_registration.help":"只允许范围内的邮箱地址进行注册,下列的两条规则可以同时使用。SSO 注册流程不受此限制的影响。","admin.forms.restrict_list.label":"过滤列表","admin.forms.restrict_list.help":'仅允许此列表中的邮箱进行注册,用管道符 "|" 来分隔多个地址。',"admin.forms.restrict_rule.label":"过滤规则","admin.forms.restrict_rule.help":"仅允许匹配正则表达式的邮箱地址进行注册","admin.forms.disable_registration.label":"关闭注册","admin.forms.disable_registration.help":"防止新用户注册。除非被覆盖 (见下文)。此设置也会影响到 SSO 的注册流程,所以新用户将无法通过 SSO 登录","admin.forms.enable_sso.label":"启用 SSO","admin.forms.enable_sso.help":"允许访客通过单点登录的方式,使用外部 ID 进行身份验证","admin.forms.use_sso_only.label":"仅使用 SSO","admin.forms.use_sso_only.help":"Make SSO the only available method to log in to 2FAuth. Password login and Webauthn are then disabled for regular users. Administrators are not affected by this restriction.","admin.forms.keep_sso_registration_enabled.label":"保持启用 SSO 注册","admin.forms.keep_sso_registration_enabled.help":"在注册已禁用时允许新用户通过 SSO 登录","admin.forms.is_admin.label":"管理员","admin.forms.is_admin.help":"授予用户管理员权限。管理员有权管理整个应用,如调整 “设置” 和管理其他用户,但管理员无法对不属于他们的 2FA 创建密码。","admin.forms.test_email.label":"测试送信配置","admin.forms.test_email.help":"发送测试邮件来验证送信配置是否正确。如果发送邮件的配置不正确,用户将无法请求重置密码。","admin.forms.test_email.email_will_be_send_to_x":'邮件将被发送到 :email',"admin.forms.health_endpoint.label":"Health endpoint","admin.forms.health_endpoint.help":"URL you can visit to check the health of this 2FAuth instance. This URL can be used to set up a Docker HEALTHCHECK or a Kubernetes HTTPS Liveness probe.","admin.forms.cache_management.label":"缓存管理","admin.forms.cache_management.help":"某些情况下需要清除缓存,例如更改了环境变量,或更新了应用。您可以在此处进行缓存清理。","auth.failed":"登录信息错误","auth.password":"密码错误","auth.throttle":"您尝试登录的次数过多,请 :seconds 秒后再试。","auth.sign_out":"退出","auth.sign_in":"登录","auth.sign_in_using":"登录方式:","auth.if_administrator":"Administrator?","auth.sign_in_here":"You can sign without SSO","auth.or_continue_with":"您也可以使用:","auth.password_login_and_webauthn_are_disabled":"Password login and WebAuthn are disabled.","auth.sign_in_using_sso":"Pick an SSO provider to sign in with:","auth.no_provider":"no provider","auth.no_sso_provider_or_provider_is_missing":"Provider is missing?","auth.see_how_to_enable_sso":"See how to enable a provider","auth.sign_in_using_security_device":"使用安全设备登录","auth.login_and_password":"用户名和密码","auth.register":"注册","auth.welcome_to_2fauth":"欢迎使用 2FAuth","auth.autolock_triggered":"自动锁定已触发","auth.autolock_triggered_punchline":"自动锁定已触发,您已被自动退出登录。","auth.already_authenticated":"您已登录,请先退出登录。","auth.authentication":"身份认证","auth.maybe_later":"以后再说","auth.user_account_controlled_by_proxy":"此账户由身份代理提供。
请在身份代理中进行管理。","auth.auth_handled_by_proxy":"账户验证已被身份代理接管,下列设置已被禁用。
请在身份代理中进行管理。","auth.sso_only_x_settings_are_disabled":"Authentication is restricted to SSO only, :auth_method is disabled","auth.confirm.logout":"您确定要退出吗?","auth.confirm.revoke_device":"您确定要删除此设备吗?","auth.confirm.delete_account":"您确定要删除您的账户吗?","auth.webauthn.security_device":"安全设备","auth.webauthn.security_devices":"安全设备","auth.webauthn.security_devices_legend":"您可以用来登录 2FAuth 的认证设备,例如安全密钥 (如 Yubikey) 或具有生物识别能力的智能手机 (如 Apple FaceID / TouchID)","auth.webauthn.enhance_security_using_webauthn":`您可以启用 WebAuthn 身份验证来增强您 2FAuth 账户的安全性。

WebAuthn 允许您使用受信任的设备 (如 Yubikeys 或具有生物识别功能的智能手机) 来安全、快捷地进行登录验证。`,"auth.webauthn.use_security_device_to_sign_in":"若要使用您的某个安全设备进行身份验证,请插入您的密钥设备,并摘下口罩或手套。","auth.webauthn.lost_your_device":"设备已遗失?","auth.webauthn.recover_your_account":"恢复您的账号","auth.webauthn.account_recovery":"恢复账号","auth.webauthn.recovery_punchline":"2FAuth 将向此邮箱发送账户恢复链接。请点击邮件中的链接,并跟随引导操作。

为了保证安全性,请务必在您自己的设备上进行操作。","auth.webauthn.send_recovery_link":"发送恢复链接","auth.webauthn.account_recovery_email_sent":"账号恢复邮件已发送!","auth.webauthn.disable_all_security_devices":"禁用所有安全设备","auth.webauthn.disable_all_security_devices_help":"将吊销您所有的安全设备。若某个设备已遗失或不再安全,请点击此选项。","auth.webauthn.register_a_new_device":"注册新设备","auth.webauthn.register_a_device":"注册设备","auth.webauthn.device_successfully_registered":"设备注册成功","auth.webauthn.device_revoked":"设备吊销成功","auth.webauthn.revoking_a_device_is_permanent":"设备吊销后无法恢复","auth.webauthn.recover_account_instructions":"为了恢复您的账户,2FAuth 将会重置部分 Webauthn 相关的设置,以便您可以使用邮箱和密码进行登录。","auth.webauthn.invalid_recovery_token":"恢复令牌无效","auth.webauthn.webauthn_login_disabled":"Webauthn 登录已被禁用","auth.webauthn.invalid_reset_token":"此密码重置令牌无效","auth.webauthn.rename_device":"重命名设备","auth.webauthn.my_device":"我的设备","auth.webauthn.unknown_device":"未知设备","auth.webauthn.use_webauthn_only.label":"仅允许 WebAuthn","auth.webauthn.use_webauthn_only.help":`将 WebAuthn 设为 2FAuth 的唯一鉴权方式。若要发挥 WebAuth 的最佳安全性,推荐启用此选项。

当设备丢失时, 您可以重置此选项来恢复您的账户,并使用您的电子邮件和密码来登录。

请注意! 此选项启用后仍会显示邮箱和密码的登录界面,但尝试登录时永远会提示 “身份验证失败”。`,"auth.webauthn.need_a_security_device_to_enable_options":"若要启用下列选项,请添加 1 个 WebAuthn 设备。","auth.webauthn.options":"选项","auth.forms.name":"用户名","auth.forms.login":"登录","auth.forms.webauthn_login":"使用 WebAuthn 登录","auth.forms.sso_login":"SSO login","auth.forms.email":"邮箱","auth.forms.password":"密码","auth.forms.reveal_password":"显示密码","auth.forms.hide_password":"隐藏密码","auth.forms.confirm_password":"再次确认密码","auth.forms.new_password":"新密码","auth.forms.confirm_new_password":"再次确认新密码","auth.forms.dont_have_account_yet":"还没有账户?","auth.forms.already_register":"已经注册?","auth.forms.authentication_failed":"验证失败","auth.forms.forgot_your_password":"忘记密码?","auth.forms.request_password_reset":"重置密码","auth.forms.reset_your_password":"重置您的密码","auth.forms.reset_password":"重置密码","auth.forms.disabled_in_demo":"此功能在演示模式下被禁用","auth.forms.sso_only_form_restricted_to_admin":"Regular users must sign in with SSO. Other methods are for administrators only.","auth.forms.current_password.label":"当前密码","auth.forms.current_password.help":"输入您当前的密码以确认是您本人","auth.forms.change_password":"修改密码","auth.forms.send_password_reset_link":"发送密码重置链接","auth.forms.password_successfully_reset":"密码重置成功","auth.forms.edit_account":"编辑账户","auth.forms.profile_saved":"个人资料更新成功!","auth.forms.welcome_to_demo_app_use_those_credentials":"欢迎来到 2FAuth 的演示站点。

您可以使用邮箱 demo@2fauth.app 和密码 demo 来登录。","auth.forms.welcome_to_testing_app_use_those_credentials":"欢迎来到 2FAuth 的测试实例。

您可以使用邮箱 testing@2fauth.app 和密码 password 来登录。","auth.forms.register_punchline":"欢迎使用 2FAuth
您需要一个账号才能继续,请先完成注册。","auth.forms.reset_punchline":"2FAuth 将向此邮箱发送密码重置链接,请点击邮件中的链接设置新密码。","auth.forms.name_this_device":"命名此设备","auth.forms.delete_account":"删除账户","auth.forms.delete_your_account":"删除您的账户","auth.forms.delete_your_account_and_reset_all_data":"您所有的 2FA 数据将与此账户被一同删除,此操作无法恢复。","auth.forms.reset_your_password_to_delete_your_account":"如果您经常使用 SSO 登录,您可以在退出登录后,使用 “重置密码” 功能获取密码来填写此表格中的对应项目。","auth.forms.deleting_2fauth_account_does_not_impact_provider":"删除 2FAuth 账户不会影响您的外部 SSO 账户。","auth.forms.user_account_successfully_deleted":"账号删除成功","auth.forms.has_lower_case":"包含小写字母","auth.forms.has_upper_case":"包含大写字母","auth.forms.has_special_char":"包含特殊字符","auth.forms.has_number":"包含数字","auth.forms.is_long_enough":"至少 8 位","auth.forms.mandatory_rules":"必须","auth.forms.optional_rules_you_should_follow":"建议 (更安全)","auth.forms.caps_lock_is_on":"大写锁定已打开","auth.sso_providers.unknown":"unknown","auth.sso_providers.github":"Github","auth.sso_providers.openid":"OpenID","commons.cancel":"取消","commons.update":"更新","commons.copy":"复制","commons.copy_to_clipboard":"复制到剪贴板","commons.copied_to_clipboard":"已复制","commons.profile":"个人资料","commons.edit":"编辑","commons.delete":"删除","commons.disable":"禁用","commons.enable":"启用","commons.create":"创建","commons.save":"保存","commons.close":"关闭","commons.clear":"清空","commons.clear_search":"清除搜索结果","commons.demo_do_not_post_sensitive_data":"这是一个演示应用,请不要上传任何敏感数据","commons.testing_do_not_post_sensitive_data":"这是一个测试应用,请不要上传任何敏感数据","commons.x_selected":"已选择 :count 个","commons.name":"名称","commons.manage":"管理","commons.done":"完成","commons.new":"新建","commons.back":"返回","commons.move":"移动","commons.export":"导出","commons.all":"全部","commons.check_all":"全选","commons.select_all":"全选","commons.clear_selection":"清除选择","commons.sort_descending":"降序排列","commons.sort_ascending":"升序排序","commons.rename":"重命名","commons.new_name":"新名称","commons.options":"选项","commons.reload":"刷新","commons.refresh":"刷新","commons.data_refreshed_to_reflect_server_changes":"数据已与服务器同步","commons.generate":"生成","commons.generating_otp":"正在生成 OTP","commons.open_in_browser":"在浏览器中打开","commons.continue":"继续","commons.discard":"放弃","commons.about":"关于","commons.usefull_links":"实用网站","commons.environment":"环境变量","commons.credits":"鸣谢","commons.2fauth_teaser":"本网页 App 可助您管理两步验证 (2FA) 账户,并生成对应的验证码","commons.made_with":"基于","commons.ui_icons_by":"UI 图标来自","commons.logos_by":"Logo 来自","commons.search":"搜索​​​​","commons.resources":"资源","commons.check_for_update":"检查更新","commons.check_for_update_help":"自动检查更新 (每周一次)。当在 Github 上发现 2FAuth 的新版本时会发出更新提醒","commons.you_are_up_to_date":"已是最新版","commons.2fauth_description":"本网页 App 可助您管理两步验证 (2FA) 账户,并生成对应的验证码","commons.image_of_qrcode_to_scan":"要扫描的二维码图像","commons.file":"文件","commons.or":"或","commons.close_the_x_page":"关闭 {pagetitle} 页","commons.submit":"提交","commons.default":"默认值","commons.back_to_home":"返回首页","commons.nothing":"无","commons.no_result":"无结果","commons.information":"信息","commons.send":"发送","commons.optimize":"优化","commons.IP":"IP 地址","commons.browser":"浏览器","commons.operating_system_short":"系统版本","commons.no_entry_yet":"暂无记录","commons.time":"时间","commons.ip_address":"IP 地址","commons.device":"设备","commons.one_month":"1 个月","commons.x_month":":x 个月","commons.one_year":"1 年","errors.resource_not_found":"找不到资源","errors.error_occured":"发生错误:","errors.refresh":"刷新","errors.no_valid_otp":"此二维码中没有有效的 OTP 字段","errors.something_wrong_with_server":"服务器发生内部错误","errors.Unable_to_decrypt_uri":"无法解密 uri","errors.not_a_supported_otp_type":"不支持此 OTP 格式","errors.cannot_create_otp_without_secret":"无法在无密码的情况下创建一个 OTP","errors.data_of_qrcode_is_not_valid_URI":"此二维码的数据不是有效的 OTP Auth URI。此二维码包含:","errors.wrong_current_password":"当前密码错误,更改已取消","errors.error_during_encryption":"加密失败,您的数据库仍处于未保护状态。","errors.error_during_decryption":"解密失败,您的数据库仍处于保护状态。这通常是因为某个或多个账户的加密数据的完整性存在问题而导致的。","errors.qrcode_cannot_be_read":"二维码无效","errors.too_many_ids":"查询参数中包含太多 ID,最多允许 100 个","errors.delete_user_setting_only":"只能删除由用户创建的设置","errors.indecipherable":"*无法解析*","errors.cannot_decipher_secret":"无法解密,可能是因为 2FAuth 的 .env 文件中 APP_KEY 值的设置错误,或存储在数据库中的数据已损坏。","errors.https_required":"需要 HTTPS","errors.browser_does_not_support_webauthn":"您的设备不支持 Webauthn,请尝试换用新版浏览器并重试。","errors.aborted_by_user":"被用户中止","errors.security_device_already_registered":"设备已被注册过","errors.not_allowed_operation":"不允许此操作","errors.no_authenticator_support_specified_algorithms":"此算法没有任何身份验证器支持","errors.authenticator_missing_discoverable_credential_support":"身份验证器暂不兼容可识别凭据","errors.authenticator_missing_user_verification_support":"身份验证器暂不兼容用户验证","errors.unknown_error":"未知错误","errors.security_error_check_rpid":"安全错误
请检查您的 WEBAUTHN_ID 环境变量","errors.2fauth_has_not_a_valid_domain":"2FAuth 的域名无效","errors.user_id_not_between_1_64":"用户 ID 需为 1 至 64 个字符内","errors.no_entry_was_of_type_public_key":"没有类型为 “公钥” 的条目","errors.unsupported_with_reverseproxy":"Not applicable when using an auth proxy or SSO","errors.unsupported_with_sso_only":"This authentication method is for administrators only. Users must log in with SSO.","errors.user_deletion_failed":"账户删除失败,数据未被删除","errors.auth_proxy_failed":"身份代理认证失败","errors.auth_proxy_failed_legend":"已为 2FAuth 配置了前置的身份代理,但身份代理并没有返回正确的请求头,请检查您的配置并重试。","errors.invalid_x_migration":"无效或不兼容的 :appname 数据","errors.invalid_2fa_data":"无效的 2FA 数据","errors.unsupported_migration":"不兼容的数据格式","errors.unsupported_otp_type":"不兼容的 OTP 类型","errors.encrypted_migration":"无法读取,数据可能已被加密","errors.no_logo_found_for_x":"没有为 :service 找到可用的 Logo","errors.file_upload_failed":"文件上传失败","errors.unauthorized":"无权限","errors.unauthorized_legend":"您无权查看此资源或执行此操作","errors.cannot_delete_the_only_admin":"无法删除唯一的管理员账户","errors.cannot_demote_the_only_admin":"无法降级此唯一的管理员账户","errors.error_during_data_fetching":"💀 获取数据时出错","errors.check_failed_try_later":"检查失败,请稍后重试","errors.sso_disabled":"SSO 已禁用","errors.sso_bad_provider_setup":"您未在 .env 文件中正确配置此 SSO 提供方","errors.sso_failed":"SSO 验证被拒绝","errors.sso_no_register":"已停用注册","errors.sso_email_already_used":"已存在相同邮箱的账户,但不匹配您的外部账户 ID 。如果您已使用此邮箱在 2FAuth 上注册过,请不要使用 SSO。","errors.account_managed_by_external_provider":"由外部提供方管理的账户","errors.data_cannot_be_refreshed_from_server":"无法从服务器刷新数据","errors.no_pwd_reset_for_this_user_type":"无法为此用户重置密码","errors.cannot_detect_qrcode_in_image":"未在图像中检测到二维码,请裁切图像后再试","errors.cannot_decode_detected_qrcode":"二维码已识别,但解码失败,请裁切或锐化图像后再试","errors.qrcode_has_invalid_checksum":"二维码的校验码错误","errors.no_readable_qrcode":"没有可识别的二维码","groups.groups":"分组","groups.create_group":"新建分组","groups.show_group_selector":"显示分组筛选","groups.hide_group_selector":"隐藏分组筛选","groups.select_accounts_to_show":"选择要显示的账户分组","groups.x_accounts":":count 个账户","groups.manage_groups":"管理分组","groups.active_group":"最近更新","groups.manage_groups_legend":"您可以创建并按分组的形式来整理您的账户。无论账户处于哪个组内,都将在 “全部” 分组中显示。","groups.deleting_group_does_not_delete_accounts":"删除分组不会删除账户","groups.move_selected_to":"移动所选项到","groups.move_selected_to_group":"将所选移入分组中","groups.no_group":"没有分组","groups.change_group":"更改分组","groups.group_successfully_created":"分组创建成功","groups.group_name_saved":"分组名称已保存","groups.group_successfully_deleted":"分组删除成功","groups.forms.new_group":"新建分组","groups.forms.new_name":"新名称","groups.forms.rename_group":"重命名分组","groups.confirm.delete":"您确定要删除此分组吗?","languages.browser_preference":"跟随浏览器语言","languages.en":"English (英语)","languages.fr":"Français (法语)","languages.de":"Deutsch (德语)","languages.es":"Español (西班牙语)","languages.zh":"中文 (简体中文)","languages.ru":"Русский (俄语)","languages.bg":"Български (保加利亚语)","languages.ja":"日本語 (日语)","languages.hi":"हिंदी (印地语)","languages.tr":"Türkçe (土耳其语)","notifications.hello":"您好","notifications.hello_user":"您好,:username,","notifications.regards":"此致","notifications.test_email_settings.subject":"2FAuth 测试邮件","notifications.test_email_settings.reason":"之所以您会收到这封邮件,是因为您请求了一封测试邮件来验证您 2FAuth 的电子邮件送信配置。","notifications.test_email_settings.success":"恭喜您,功能正常 :)","notifications.new_device.subject":"来自新设备的访问","notifications.new_device.resume":"一台新设备刚被添加到您的 2FAuth 账户上。","notifications.new_device.connection_details":"这是本次事件的相关信息","notifications.new_device.recommandations":"如果是您操作的,您可以忽略此告警。如果您怀疑您的账户有任何可疑活动,请立即更改您的密码。","notifications.failed_login.subject":"2FAuth 登录失败","notifications.failed_login.resume":"您的 2FAuth 账户触发了一次登录失败。","notifications.failed_login.connection_details":"这是本次事件的相关信息","notifications.failed_login.recommandations":"如果是您操作的,您可以忽略此告警。如果持续有失败的登录尝试,您应立即通知 2FAuth 的管理员去检查相关的安全设置,并对此攻击者采取措施。","pagination.previous":"« 上一页","pagination.next":"下一页 »","passwords.reset":"密码重置成功!","passwords.sent":"密码重置邮件已发送!","passwords.throttled":"请稍候再试。","passwords.token":"密码重置令牌无效。","passwords.user":"找不到此邮箱对应的用户。","passwords.password":"密码至少为 8 位,且两次输入的内容必须相同。","settings.settings":"设置","settings.preferences":"偏好设置","settings.account":"账户","settings.oauth":"OAuth","settings.webauthn":"WebAuthn","settings.tokens":"令牌","settings.options":"选项","settings.user_preferences":"用户偏好","settings.admin_settings":"管理员设置","settings.confirm.revoke":"您确定要吊销此令牌吗?","settings.you_are_administrator":"您是管理员","settings.account_linked_to_sso_x_provider":"您当前是通过 :provider 登录的,因此无法在此处更改信息,请回到 :provider 进行操作。","settings.general":"通用","settings.security":"安全","settings.notifications":"通知","settings.profile":"配置文件","settings.change_password":"更改密码","settings.personal_access_tokens":"个人访问令牌","settings.token_legend":"任何应用都能够通过个人访问令牌来与 2Fauth API 进行鉴权。您需要在第三方应用的请求头中,提供此令牌作为 Bearer 令牌。","settings.generate_new_token":"生成新令牌","settings.revoke":"吊销","settings.token_revoked":"已成功吊销令牌","settings.revoking_a_token_is_permanent":"令牌吊销后无法恢复","settings.make_sure_copy_token":"请确保您已复制个人访问令牌!此令牌仅展示这一次。","settings.data_input":"数据录入","settings.forms.edit_settings":"编辑设置","settings.forms.setting_saved":"设置已保存","settings.forms.new_token":"新建令牌","settings.forms.some_translation_are_missing":"发现有词条缺少翻译吗?","settings.forms.help_translate_2fauth":"协助翻译 2FAuth!","settings.forms.language.label":"语言","settings.forms.language.help":"2FAuth 用户界面的显示语言。以下仅列出完成翻译的语言,请选择的一个语言来覆盖当前的设置。","settings.forms.timezone.label":"时区","settings.forms.timezone.help":"设置本 App 中所有日期与时间的时区","settings.forms.show_otp_as_dot.label":'隐藏 OTP 验证码',"settings.forms.show_otp_as_dot.help":"使用星号来遮挡明文验证码。启用此功能不会影响复制和粘贴功能。","settings.forms.reveal_dotted_otp.label":'显示被星号遮挡的 OTP 验证码',"settings.forms.reveal_dotted_otp.help":"临时允许验证码以明文显示","settings.forms.close_otp_on_copy.label":'复制后关闭 OTP 验证码',"settings.forms.close_otp_on_copy.help":"点击某个验证码即可复制并隐藏显示","settings.forms.auto_close_timeout.label":'自动关闭 OTP 验证码',"settings.forms.auto_close_timeout.help":"超时后自动隐藏明文显示的验证码。如果您忘记退出验证码界面,此功能可以避免非必要的验证码刷新请求。","settings.forms.clear_search_on_copy.label":"复制后清空搜索框","settings.forms.clear_search_on_copy.help":"复制验证码后立即清空搜索框","settings.forms.sort_case_sensitive.label":"按大小写排序","settings.forms.sort_case_sensitive.help":"选中时,强制 “排序” 功能以大小写敏感的方式对账户进行排序","settings.forms.copy_otp_on_display.label":'当 OTP 显示时复制',"settings.forms.copy_otp_on_display.help":'当验证码显示时立即复制。由于浏览器的限制,仅能复制第一个 TOTP 验证码,后续刷新的无法自动复制。',"settings.forms.use_basic_qrcode_reader.label":"使用简版二维码扫描器","settings.forms.use_basic_qrcode_reader.help":"如果你在扫描二维码时遇到问题,此选项可以切换到更简单但更可靠的二维码扫描器","settings.forms.display_mode.label":"显示模式","settings.forms.display_mode.help":"选择以列表或网格的方式显示所有的账户","settings.forms.password_format.label":"密码格式","settings.forms.password_format.help":"分段显示验证码,提高可读性并且便于记忆","settings.forms.pair":"两位一组","settings.forms.pair_legend":"以两位为一组进行分隔","settings.forms.trio_legend":"以三位为一组进行分隔","settings.forms.half_legend":"平均拆分位两组","settings.forms.trio":"三位一组","settings.forms.half":"对半分组","settings.forms.grid":"网格","settings.forms.list":"列表","settings.forms.theme.label":"主题","settings.forms.theme.help":"强制一个特定主题,或跟随系统 / 浏览器的设置","settings.forms.light":"亮色","settings.forms.dark":"暗色","settings.forms.automatic":"自动","settings.forms.show_accounts_icons.label":"显示图标","settings.forms.show_accounts_icons.help":"在主视图中显示应用图标","settings.forms.get_official_icons.label":"获取官方图标","settings.forms.get_official_icons.help":"在添加账户时,尝试获取 2FA 提供方的官方图标","settings.forms.auto_lock.label":"自动锁定","settings.forms.auto_lock.help":"在不活跃时自动退出登录。当使用身份代理,或没有配置自定义注销 URL 时无效。","settings.forms.default_group.label":"默认分组","settings.forms.default_group.help":"新创建的账户所关联的分组","settings.forms.view_default_group_on_copy.label":"在复制后显示默认分组","settings.forms.view_default_group_on_copy.help":"复制 OTP 验证码后总是返回到默认分组","settings.forms.auto_save_qrcoded_account.label":"自动保存账户","settings.forms.auto_save_qrcoded_account.help":"扫描或上传二维码后,新账户会被自动录入,无需点击 ”保存“ 按钮。","settings.forms.useDirectCapture.label":"直接录入","settings.forms.useDirectCapture.help":"决定是否要在您录入时弹出录入模式选单,或者直接使用默认的录入模式","settings.forms.defaultCaptureMode.label":"默认录入模式","settings.forms.defaultCaptureMode.help":"直接录入模式启用时所使用的默认录入模式","settings.forms.remember_active_group.label":"记住分组筛选器","settings.forms.remember_active_group.help":"记住上次筛选出的分组,并在下次访问时展示","settings.forms.otp_generation.label":"显示验证码","settings.forms.otp_generation.help":'设置 OTPs 验证码的显示方式和时间。
',"settings.forms.notify_on_new_auth_device.label":"来自新设备时","settings.forms.notify_on_new_auth_device.help":"当新设备首次登录时发送邮件通知","settings.forms.notify_on_failed_login.label":"登录失败时","settings.forms.notify_on_failed_login.help":"每次登录失败时都发送邮件通知","settings.forms.otp_generation_on_request":"点击 / 单击账户后","settings.forms.otp_generation_on_request_legend":"在独立页面中显示","settings.forms.otp_generation_on_request_title":"点击账户后,在独立页面中打开并获取验证码","settings.forms.otp_generation_on_home":"始终","settings.forms.otp_generation_on_home_legend":"全部在主页中显示","settings.forms.otp_generation_on_home_title":"所有验证码都在主页中显示,不做任何操作","settings.forms.never":"从不","settings.forms.on_otp_copy":"复制验证码后","settings.forms.1_minutes":"1 分钟后","settings.forms.2_minutes":"2 分钟后","settings.forms.5_minutes":"5 分钟后","settings.forms.10_minutes":"10 分钟后","settings.forms.15_minutes":"15 分钟后","settings.forms.30_minutes":"30 分钟后","settings.forms.1_hour":"1 小时后","settings.forms.1_day":"1 天后","settings.forms.livescan":"扫描二维码","settings.forms.upload":"上传二维码","settings.forms.advanced_form":"高级表单","titles.404":"找不到项目","titles.start":"新账户","titles.capture":"扫描二维码","titles.accounts":"账户","titles.createAccount":"创建账户","titles.importAccounts":"导入账户","titles.editAccount":"编辑账户","titles.showQRcode":"二维码形式的账户","titles.groups":"分组","titles.createGroup":"创建分组","titles.editGroup":"编辑分组","titles.settings.options":"选项","titles.settings.account":"用户账户","titles.settings.oauth.tokens":"OAuth 令牌","titles.settings.oauth.generatePAT":"新建个人令牌","titles.settings.webauthn.editCredential":"编辑设备","titles.settings.webauthn.devices":"WebAuthn 设备","titles.login":"登录","titles.register":"注册","titles.autolock":"自动锁定","titles.password.request":"重置密码","titles.password.reset":"新密码","titles.webauthn.lost":"恢复账号","titles.webauthn.recover":"注册新设备","titles.flooded":"请求数过多","titles.genericError":"错误","titles.about":"关于","titles.admin.appSetup":"应用设置","titles.admin.users":"用户管理","titles.admin.createUser":"创建用户","titles.admin.manageUser":"管理用户","titles.admin.logs.access":"访问日志","twofaccounts.service":"服务","twofaccounts.account":"账户","twofaccounts.icon":"图标","twofaccounts.icon_to_illustrate_the_account":"账户对应的图标","twofaccounts.remove_icon":"移除图标","twofaccounts.no_account_here":"无 2FA 账户!","twofaccounts.add_first_account":"选择一个添加方法,创建您的第一个账户","twofaccounts.use_full_form":"或通过填写表单创建","twofaccounts.add_one":"添加一个","twofaccounts.show_qrcode":"显示二维码","twofaccounts.no_service":"- 无服务 -","twofaccounts.account_created":"账户创建成功","twofaccounts.account_updated":"账户更新成功","twofaccounts.accounts_deleted":"账户删除成功","twofaccounts.accounts_moved":"账户移动成功","twofaccounts.export_selected_to_json":"将所选账号以 JSON 格式导出","twofaccounts.reveal":"显示","twofaccounts.forms.service.placeholder":"服务名称","twofaccounts.forms.account.placeholder":"账户名称","twofaccounts.forms.new_account":"新建账户","twofaccounts.forms.edit_account":"编辑账户","twofaccounts.forms.otp_uri":"OTP Uri","twofaccounts.forms.scan_qrcode":"扫描二维码","twofaccounts.forms.upload_qrcode":"上传二维码","twofaccounts.forms.use_advanced_form":"使用高级表单","twofaccounts.forms.prefill_using_qrcode":"使用二维码来填写","twofaccounts.forms.use_qrcode.val":"使用二维码","twofaccounts.forms.use_qrcode.title":"使用二维码来自动填写表单","twofaccounts.forms.unlock.val":"解锁","twofaccounts.forms.unlock.title":"解锁 (注意安全风险)","twofaccounts.forms.lock.val":"锁定","twofaccounts.forms.lock.title":"锁定","twofaccounts.forms.choose_image":"上传","twofaccounts.forms.i_m_lucky":"手气不错","twofaccounts.forms.i_m_lucky_legend":"“手气不错” 功能可以尝试获取此服务的官方图标。若要提高成功率,请在 “服务名称” 栏中以英文输入服务名。(测试中的功能)","twofaccounts.forms.test":"测试","twofaccounts.forms.group.label":"Group","twofaccounts.forms.group.help":"The group to which the account is to be assigned","twofaccounts.forms.secret.label":"密钥","twofaccounts.forms.secret.help":"用于生成安全码的密钥","twofaccounts.forms.plain_text":"纯文本","twofaccounts.forms.otp_type.label":'选择要创建的 OTP 令牌类型',"twofaccounts.forms.otp_type.help":"TOTP,HOTP 或 Steam OTP","twofaccounts.forms.digits.label":"码长","twofaccounts.forms.digits.help":"生成的验证码位数","twofaccounts.forms.algorithm.label":"算法","twofaccounts.forms.algorithm.help":"验证码的加密算法","twofaccounts.forms.period.label":"周期","twofaccounts.forms.period.placeholder":"默认为 30","twofaccounts.forms.period.help":"验证码的有效期 (秒)","twofaccounts.forms.counter.label":"计数器","twofaccounts.forms.counter.placeholder":"默认为 0","twofaccounts.forms.counter.help":"计数器的初始值","twofaccounts.forms.counter.help_lock":"如果计数器设置错误,可能会导致此验证码与账户校验失败,如果您不了解此功能,请勿随意编辑。您可以点击 “锁定” 图标来解锁编辑,但请务必小心。","twofaccounts.forms.image.label":"图像","twofaccounts.forms.image.placeholder":"http://...","twofaccounts.forms.image.help":"图像 URL,用作账户图标","twofaccounts.forms.options_help":"如果您不了解下列选项,请将对应选项留空来使用默认配置。","twofaccounts.forms.alternative_methods":"备选方法","twofaccounts.forms.spaces_are_ignored":"无用的空格将被自动删除","twofaccounts.stream.live_scan_cant_start":"无法启动扫描 :(","twofaccounts.stream.need_grant_permission.reason":"2FAuth 没有权限访问您的相机","twofaccounts.stream.need_grant_permission.solution":"2FAuth 需要您的授权才能使用此设备上的相机。如果您已点击过 “拒绝”,且您的浏览器没有再次提示您进行授权,请查找浏览器的文档以了解如何重新授权。","twofaccounts.stream.need_grant_permission.click_camera_icon":"通常情况下,您可以点击浏览器地址栏中 (或旁边) 的相机图标来继续。","twofaccounts.stream.not_readable.reason":"扫描启动失败","twofaccounts.stream.not_readable.solution":"摄像头是否已被占用?请确保没有其他应用正在使用您的摄像头,并再试一次","twofaccounts.stream.no_cam_on_device.reason":"此设备上没有摄像头","twofaccounts.stream.no_cam_on_device.solution":"或许您忘了连接摄像头","twofaccounts.stream.secured_context_required.reason":"需要 secure 字段","twofaccounts.stream.secured_context_required.solution":"扫描需要通过 HTTPS 协议通信。如果您是在电脑上运行 2FAuth 实例,请不要使用除了本地外的其他虚拟主机","twofaccounts.stream.https_required":"摄像机需要 HTTPS","twofaccounts.stream.camera_not_suitable.reason":"已安装的摄像头不适用","twofaccounts.stream.camera_not_suitable.solution":"请使用其他摄像头或更换设备","twofaccounts.stream.stream_api_not_supported.reason":"此浏览器不支持 Stream API","twofaccounts.stream.stream_api_not_supported.solution":"请换用新版浏览器","twofaccounts.confirm.delete":"您确定要删除此账户吗?","twofaccounts.confirm.cancel":"将放弃所有更改,确定要继续吗?","twofaccounts.confirm.discard":"您确定要丢弃此账户吗?","twofaccounts.confirm.discard_all":"您确定要丢弃所有账户吗?","twofaccounts.confirm.discard_duplicates":"您确定要丢弃所有重复账户吗?","twofaccounts.import.import":"导入","twofaccounts.import.to_import":"导入","twofaccounts.import.import_legend":"2FAuth 支持从各类 2FA 应用导入数据。","twofaccounts.import.import_legend_afterpart":"使用这些应用的 “导出” 功能来获取迁移资源,例如二维码或 JSON 文件,然后在 2FAuth 中导入。","twofaccounts.import.upload":"上传","twofaccounts.import.scan":"扫描","twofaccounts.import.supported_formats_for_qrcode_upload":"支持格式:jpg、jpeg、png、bmp、gif、svg 或 webp","twofaccounts.import.supported_formats_for_file_upload":"支持格式:json,2fas 或纯文本","twofaccounts.import.expected_format_for_direct_input":"应为:一个包含 otpauth URI 的列表,每行一条","twofaccounts.import.supported_migration_formats":"支持的迁移格式","twofaccounts.import.qr_code":"二维码","twofaccounts.import.text_file":"文本文件","twofaccounts.import.direct_input":"直接输入","twofaccounts.import.plain_text":"纯文本","twofaccounts.import.parsing_data":"正在解析数据…","twofaccounts.import.issuer":"签发方","twofaccounts.import.imported":"已导入","twofaccounts.import.failure":"失败","twofaccounts.import.x_valid_accounts_found":"找到 :count 个有效账户","twofaccounts.import.submitted_data_parsed_now_accounts_are_awaiting_import":"在导入的数据中找到了下列 2FA 账户,且没有被添加到 2FAuth 过。","twofaccounts.import.use_buttons_to_save_or_discard":"点击亮起的按钮,即可选择丢弃这些账户,或将其保存到您的 2FA 列表中。","twofaccounts.import.import_all":"全部导入","twofaccounts.import.import_this_account":"导入此账户","twofaccounts.import.discard_all":"全部丢弃","twofaccounts.import.discard_duplicates":"丢弃重复项","twofaccounts.import.discard_this_account":"丢弃此账户","twofaccounts.import.generate_a_test_password":"生成测试密码","twofaccounts.import.possible_duplicate":"已存在相同数据的账户","twofaccounts.import.invalid_account":"- 无效账户 -","twofaccounts.import.invalid_service":"- 无效服务 -","twofaccounts.import.do_not_set_password_or_encryption":"如果您需要从其他 2FA 应用导出数据到 2FAuth,请务必在导出前关闭加密保护,否则 2FAuth 将无法解密数据。","validation.accepted":"您必须接受 :attribute。","validation.accepted_if":"当 :other 为 :value 时,必须允许 :attribute 。","validation.active_url":":attribute 不是一个有效的网址。","validation.after":":attribute 必须要晚于 :date。","validation.after_or_equal":":attribute 必须要等于 :date 或更晚。","validation.alpha":":attribute 只能包含字母。","validation.alpha_dash":":attribute 只能包含字母、 数字、减号和下划线。","validation.alpha_num":":attribute 只能包含字母和数字","validation.array":":attribute 必须是一个数组。","validation.before":":attribute 必须要早于 :date。","validation.before_or_equal":":attribute 必须要等于 :date 或更早。","validation.between.array":":attribute 必须只有 :min - :max 个单元。","validation.between.file":":attribute 必须介于 :min - :max KB 之间。","validation.between.numeric":":attribute 必须介于 :min - :max 之间。","validation.between.string":":attribute 必须介于 :min - :max 个字符之间。","validation.boolean":":attribute 必须为布尔值。","validation.confirmed":":attribute 两次输入不一致。","validation.current_password":"密码错误","validation.date":":attribute 不是一个有效的日期。","validation.date_equals":":attribute 必须要等于 :date。","validation.date_format":":attribute 的格式必须为 :format。","validation.declined":"必须拒绝 :attribute. ","validation.declined_if":"当 :other 是 :value 时,:attribute 必须被拒绝.","validation.different":":attribute 和 :other 必须不同。","validation.digits":":attribute 必须是 :digits 位数字。","validation.digits_between":":attribute 必须是介于 :min 和 :max 位的数字。","validation.dimensions":":attribute 图片尺寸不正确。","validation.distinct":":attribute 已经存在。","validation.doesnt_end_with":":attribute 不能以这些值结尾::values。","validation.doesnt_start_with":":attribute 不能以这些值开头::values。","validation.email":":attribute 不是一个合法的邮箱。","validation.ends_with":":attribute 必须以 :values 为结尾。","validation.enum":"选中的 :attribute 无效。","validation.exists":":attribute 不存在。","validation.file":":attribute 必须是文件。","validation.filled":":attribute 不能为空。","validation.gt.array":":attribute 必须多于 :value 个元素。","validation.gt.file":":attribute 必须大于 :value KB。","validation.gt.numeric":":attribute 必须大于 :value。","validation.gt.string":":attribute 必须多于 :value 个字符。","validation.gte.array":":attribute 必须多于或等于 :value 个元素。","validation.gte.file":":attribute 必须大于或等于 :value KB。","validation.gte.numeric":":attribute 必须大于或等于 :value。","validation.gte.string":":attribute 必须大于或等于 :value 个字符。","validation.image":":attribute 必须是图片。","validation.in":"已选的属性 :attribute 无效。","validation.in_array":":attribute 必须在 :other 中。","validation.integer":":attribute 必须是整数。","validation.ip":":attribute 必须是正确的 IP 地址。","validation.ipv4":":attribute 必须是正确的 IPv4 地址。","validation.ipv6":":attribute 必须是正确的 IPv6 地址。","validation.json":":attribute 必须是正确的 JSON 字符串。","validation.lt.array":":attribute 必须少于 :value 个元素。","validation.lt.file":":attribute 必须小于 :value KB。","validation.lt.numeric":":attribute 必须小于 :value。","validation.lt.string":":attribute 必须少于 :value 个字符。","validation.lte.array":":attribute 必须少于或等于 :value 个元素。","validation.lte.file":":attribute 必须小于或等于 :value KB。","validation.lte.numeric":":attribute 必须小于或等于 :value。","validation.lte.string":":attribute 必须小于或等于 :value 个字符。","validation.mac_address":":attribute 必须是正确的 MAC 地址。","validation.max.array":":attribute 必须少于 :max 项。","validation.max.file":":attribute 必须小于 :max KB。","validation.max.numeric":":attribute 必须小于 :max。","validation.max.string":":attribute 必须少于 :max 个字符。","validation.max_digits":":attribute 必须少于 :max 位。","validation.mimes":":attribute 必须是一个 :values 类型的文件。","validation.mimetypes":":attribute 必须是一个 :values 类型的文件。","validation.min.array":":attribute 至少有 :min 个单元。","validation.min.file":":attribute 大小不能小于 :min KB。","validation.min.numeric":":attribute 必须大于等于 :min。","validation.min.string":":attribute 至少为 :min 个字符。","validation.min_digits":":attribute 必须多于 :min 位。","validation.multiple_of":":attribute 必须是 :value 的倍数。","validation.not_in":"已选的属性 :attribute 非法。","validation.not_regex":":attribute 的格式错误。","validation.numeric":":attribute 必须是一个数字。","validation.password.letters":":attribute 至少要包含一个字母。","validation.password.mixed":":attribute 至少要包含一个大写字母和一个小写字母。","validation.password.numbers":":attribute 至少要包含一个数字。","validation.password.symbols":":attribute 至少要包含一个符号。","validation.password.uncompromised":"输入的 :attribute 已在数据泄露中出现过。请选择其他的 :attribute。","validation.present":":attribute 必须存在。","validation.prohibited":"已禁止 :attribute 字段。","validation.prohibited_if":"当 :other 为 :value 时,:attribute 字段被禁止。","validation.prohibited_unless":"除非 :other 为 :values,否则 :attribute 字段会被禁止。","validation.prohibits":":attribute 字段禁止出现 :other。","validation.regex":":attribute 格式不正确。","validation.required":":attribute 不能为空。","validation.required_array_keys":":attribute 字段必须包含: :values。","validation.required_if":"当 :other 为 :value 时 :attribute 不能为空。","validation.required_if_accepted":"当 :other 存在时,:attribute 不能为空。","validation.required_unless":"当 :other 不为 :values 时 :attribute 不能为空。","validation.required_with":"当 :values 存在时 :attribute 不能为空。","validation.required_with_all":"当 :values 存在时 :attribute 不能为空。","validation.required_without":"当 :values 不存在时 :attribute 不能为空。","validation.required_without_all":"当 :values 都不存在时 :attribute 不能为空。","validation.same":":attribute 和 :other 必须相同。","validation.size.array":":attribute 必须为 :size 个单元。","validation.size.file":":attribute 大小必须为 :size KB。","validation.size.numeric":":attribute 大小必须为 :size。","validation.size.string":":attribute 必须是 :size 个字符。","validation.starts_with":":attribute 必须以 :values 为开头。","validation.string":":attribute 必须是一个字符串。","validation.timezone":":attribute 必须是一个有效的时区。","validation.unique":":attribute 已经存在。","validation.uploaded":":attribute 上传失败。","validation.url":":attribute 必须是有效的 URL。","validation.uuid":":attribute 必须是有效的 UUID。","validation.single":"当使用 :attribute 时,请求的数据包中只能包含这一种参数。","validation.onlyCustomOtpWithUri":"“uri” 参数必须单独提供,或与 “custom_otp” 参数同时提供。","validation.IsValidRegex":"The :attribute must be a valid regex pattern.","validation.custom.icon.image":"仅支持 jpeg、png、bmp、gif、svg 或 webp 格式。","validation.custom.qrcode.image":"仅支持 jpeg、png、bmp、gif、svg 或 webp 格式。","validation.custom.uri.regex":":attribute 不是有效的 otpauth uri。","validation.custom.otp_type.in":"不支持 :attribute。","validation.custom.email.exists":"未找到与此邮箱匹配的账户。","validation.custom.email.ComplyWithEmailRestrictionPolicy":"此邮箱地址不允许注册","validation.custom.email.IsValidEmailList":"所有邮箱地址必须是有效的,并用管道符隔开","validation.custom.secret.isBase32Encoded":":attribute 必须是 Base32 编码的字符串。","validation.custom.account.regex":":attribute 不能包含冒号。","validation.custom.service.regex":":attribute 不能包含冒号。","validation.custom.label.required":"必须未 url 分配一个标签。","validation.custom.ids.regex":"ID 必须以逗号分隔,且不能以逗号结尾。"};export{t as default}; diff --git a/public/build/assets/webauthnService-CtkX6mue.js b/public/build/assets/webauthnService-3N-iRQ3u.js similarity index 98% rename from public/build/assets/webauthnService-CtkX6mue.js rename to public/build/assets/webauthnService-3N-iRQ3u.js index cffd3a14..a8f34a01 100644 --- a/public/build/assets/webauthnService-CtkX6mue.js +++ b/public/build/assets/webauthnService-3N-iRQ3u.js @@ -1 +1 @@ -var h=Object.defineProperty;var w=(t,r,e)=>r in t?h(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e;var c=(t,r,e)=>(w(t,typeof r!="symbol"?r+"":r,e),e);import{a4 as f}from"./app-CYV6HkYG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */class y{constructor(){c(this,"controller")}createNewAbortSignal(){if(this.controller){const e=new Error("Cancelling existing WebAuthn API call for new one");e.name="AbortError",this.controller.abort(e)}const r=new AbortController;return this.controller=r,r.signal}}const d=new y;function g(t){return t==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(t)}function _(t,r){var n,a;const{publicKey:e}=r;if(t.name==="AbortError"){if(r.signal instanceof AbortSignal)return{phrase:"errors.aborted_by_user",type:"is-warning"}}else if(t.name==="ConstraintError"){if(((n=e.authenticatorSelection)==null?void 0:n.requireResidentKey)===!0)return{phrase:"errors.authenticator_missing_discoverable_credential_support",type:"is-danger"};if(((a=e.authenticatorSelection)==null?void 0:a.userVerification)==="required")return{phrase:"errors.authenticator_missing_user_verification_support",type:"is-danger"}}else{if(t.name==="InvalidStateError")return{phrase:"errors.security_device_already_registered",type:"is-danger"};if(t.name==="NotAllowedError")return{phrase:"errors.not_allowed_operation",type:"is-danger"};if(t.name==="NotSupportedError")return e.pubKeyCredParams.filter(u=>u.type==="public-key").length===0?{phrase:"errors.no_entry_was_of_type_public_key",type:"is-danger"}:{phrase:"errors.no_authenticator_support_specified_algorithms",type:"is-danger"};if(t.name==="SecurityError"){const o=window.location.hostname;if(g(o)){if(e.rp.id!==o)return{phrase:"errors.security_error_check_rpid",type:"is-danger"}}else return{phrase:"errors.2fauth_has_not_a_valid_domain",type:"is-danger"}}else if(t.name==="TypeError"){if(e.user.id.byteLength<1||e.user.id.byteLength>64)return{phrase:"errors.user_id_not_between_1_64",type:"is-danger"}}else if(t.name==="UnknownError")return{phrase:"errors.unknown_error",type:"is-danger"}}return{phrase:"errors.unknown_error",type:"is-danger"}}function m(t,r){const{publicKey:e}=r;if(t.name==="AbortError"){if(r.signal instanceof AbortSignal)return{phrase:"errors.aborted_by_user",type:"is-warning"}}else{if(t.name==="NotAllowedError")return{phrase:"errors.not_allowed_operation",type:"is-danger"};if(t.name==="SecurityError"){const n=window.location.hostname;if(g(n)){if(e.rpId!==n)return{phrase:"errors.security_error_check_rpid",type:"is-danger"}}else return{phrase:"errors.2fauth_has_not_a_valid_domain",type:"is-danger"}}else if(t.name==="UnknownError")return{phrase:"errors.unknown_error",type:"is-danger"}}return{phrase:"errors.unknown_error",type:"is-danger"}}const p=f("web");class s{async register(){let r={webauthn:!0,type:"is-danger",message:""};if(!window.isSecureContext)return r.message="errors.https_required",Promise.reject(r);if(!s.supportsWebAuthn)return r.message="errors.browser_does_not_support_webauthn",Promise.reject(r);const e=await p.post("/webauthn/register/options").then(i=>i.data);let a={publicKey:s.parseIncomingServerOptions(e)};a.signal=d.createNewAbortSignal();let o;try{o=await navigator.credentials.create(a)}catch(i){const l=_(i,a);return Promise.reject({webauthn:!0,type:l.type,message:l.phrase})}const u=s.parseOutgoingCredentials(o);return p.post("/webauthn/register",u,{returnError:!0})}async authenticate(r){if(!window.isSecureContext)return err.message="errors.https_required",Promise.reject(err);if(!s.supportsWebAuthn)return err.message="errors.browser_does_not_support_webauthn",Promise.reject(err);const e=await p.post("/webauthn/login/options",{email:r}).then(i=>i.data);let a={publicKey:s.parseIncomingServerOptions(e)};a.signal=d.createNewAbortSignal();const o=await navigator.credentials.get(a).catch(i=>{const l=m(i,a);return Promise.reject({webauthn:!0,type:l.type,message:l.phrase})});let u=s.parseOutgoingCredentials(o);return u.email=r,p.post("/webauthn/login",u,{returnError:!0})}static parseIncomingServerOptions(r){return r.challenge=s.uint8Array(r.challenge),"user"in r&&(r.user={...r.user,id:s.uint8Array(r.user.id)}),["excludeCredentials","allowCredentials"].filter(e=>e in r).forEach(e=>{r[e]=r[e].map(n=>({...n,id:s.uint8Array(n.id)}))}),r}static parseOutgoingCredentials(r){let e={id:r.id,type:r.type,rawId:s.arrayToBase64String(r.rawId),response:{}};return["clientDataJSON","attestationObject","authenticatorData","signature","userHandle"].filter(n=>n in r.response).forEach(n=>e.response[n]=s.arrayToBase64String(r.response[n])),e}static uint8Array(r,e=!1){return Uint8Array.from(e?atob(r):s.base64UrlDecode(r),n=>n.charCodeAt(0))}static arrayToBase64String(r){return btoa(String.fromCharCode(...new Uint8Array(r)))}static base64UrlDecode(r){r=r.replace(/-/g,"+").replace(/_/g,"/");const e=r.length%4;if(e){if(e===1)throw new Error("InvalidLengthError: Input base64url string is the wrong length to determine padding");r+=new Array(5-e).join("=")}return atob(r)}static supportsWebAuthn(){return(window==null?void 0:window.PublicKeyCredential)!==void 0&&typeof window.PublicKeyCredential=="function"}}const C=new s;export{C as w}; +var h=Object.defineProperty;var w=(t,r,e)=>r in t?h(t,r,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[r]=e;var c=(t,r,e)=>(w(t,typeof r!="symbol"?r+"":r,e),e);import{a4 as f}from"./app-CeOdx_TG.js";/*! 2FAuth version 5.3.0 - Copyright (c) 2024 Bubka - https://github.com/Bubka/2FAuth */class y{constructor(){c(this,"controller")}createNewAbortSignal(){if(this.controller){const e=new Error("Cancelling existing WebAuthn API call for new one");e.name="AbortError",this.controller.abort(e)}const r=new AbortController;return this.controller=r,r.signal}}const d=new y;function g(t){return t==="localhost"||/^([a-z0-9]+(-[a-z0-9]+)*\.)+[a-z]{2,}$/i.test(t)}function _(t,r){var n,a;const{publicKey:e}=r;if(t.name==="AbortError"){if(r.signal instanceof AbortSignal)return{phrase:"errors.aborted_by_user",type:"is-warning"}}else if(t.name==="ConstraintError"){if(((n=e.authenticatorSelection)==null?void 0:n.requireResidentKey)===!0)return{phrase:"errors.authenticator_missing_discoverable_credential_support",type:"is-danger"};if(((a=e.authenticatorSelection)==null?void 0:a.userVerification)==="required")return{phrase:"errors.authenticator_missing_user_verification_support",type:"is-danger"}}else{if(t.name==="InvalidStateError")return{phrase:"errors.security_device_already_registered",type:"is-danger"};if(t.name==="NotAllowedError")return{phrase:"errors.not_allowed_operation",type:"is-danger"};if(t.name==="NotSupportedError")return e.pubKeyCredParams.filter(u=>u.type==="public-key").length===0?{phrase:"errors.no_entry_was_of_type_public_key",type:"is-danger"}:{phrase:"errors.no_authenticator_support_specified_algorithms",type:"is-danger"};if(t.name==="SecurityError"){const o=window.location.hostname;if(g(o)){if(e.rp.id!==o)return{phrase:"errors.security_error_check_rpid",type:"is-danger"}}else return{phrase:"errors.2fauth_has_not_a_valid_domain",type:"is-danger"}}else if(t.name==="TypeError"){if(e.user.id.byteLength<1||e.user.id.byteLength>64)return{phrase:"errors.user_id_not_between_1_64",type:"is-danger"}}else if(t.name==="UnknownError")return{phrase:"errors.unknown_error",type:"is-danger"}}return{phrase:"errors.unknown_error",type:"is-danger"}}function m(t,r){const{publicKey:e}=r;if(t.name==="AbortError"){if(r.signal instanceof AbortSignal)return{phrase:"errors.aborted_by_user",type:"is-warning"}}else{if(t.name==="NotAllowedError")return{phrase:"errors.not_allowed_operation",type:"is-danger"};if(t.name==="SecurityError"){const n=window.location.hostname;if(g(n)){if(e.rpId!==n)return{phrase:"errors.security_error_check_rpid",type:"is-danger"}}else return{phrase:"errors.2fauth_has_not_a_valid_domain",type:"is-danger"}}else if(t.name==="UnknownError")return{phrase:"errors.unknown_error",type:"is-danger"}}return{phrase:"errors.unknown_error",type:"is-danger"}}const p=f("web");class s{async register(){let r={webauthn:!0,type:"is-danger",message:""};if(!window.isSecureContext)return r.message="errors.https_required",Promise.reject(r);if(!s.supportsWebAuthn)return r.message="errors.browser_does_not_support_webauthn",Promise.reject(r);const e=await p.post("/webauthn/register/options").then(i=>i.data);let a={publicKey:s.parseIncomingServerOptions(e)};a.signal=d.createNewAbortSignal();let o;try{o=await navigator.credentials.create(a)}catch(i){const l=_(i,a);return Promise.reject({webauthn:!0,type:l.type,message:l.phrase})}const u=s.parseOutgoingCredentials(o);return p.post("/webauthn/register",u,{returnError:!0})}async authenticate(r){if(!window.isSecureContext)return err.message="errors.https_required",Promise.reject(err);if(!s.supportsWebAuthn)return err.message="errors.browser_does_not_support_webauthn",Promise.reject(err);const e=await p.post("/webauthn/login/options",{email:r}).then(i=>i.data);let a={publicKey:s.parseIncomingServerOptions(e)};a.signal=d.createNewAbortSignal();const o=await navigator.credentials.get(a).catch(i=>{const l=m(i,a);return Promise.reject({webauthn:!0,type:l.type,message:l.phrase})});let u=s.parseOutgoingCredentials(o);return u.email=r,p.post("/webauthn/login",u,{returnError:!0})}static parseIncomingServerOptions(r){return r.challenge=s.uint8Array(r.challenge),"user"in r&&(r.user={...r.user,id:s.uint8Array(r.user.id)}),["excludeCredentials","allowCredentials"].filter(e=>e in r).forEach(e=>{r[e]=r[e].map(n=>({...n,id:s.uint8Array(n.id)}))}),r}static parseOutgoingCredentials(r){let e={id:r.id,type:r.type,rawId:s.arrayToBase64String(r.rawId),response:{}};return["clientDataJSON","attestationObject","authenticatorData","signature","userHandle"].filter(n=>n in r.response).forEach(n=>e.response[n]=s.arrayToBase64String(r.response[n])),e}static uint8Array(r,e=!1){return Uint8Array.from(e?atob(r):s.base64UrlDecode(r),n=>n.charCodeAt(0))}static arrayToBase64String(r){return btoa(String.fromCharCode(...new Uint8Array(r)))}static base64UrlDecode(r){r=r.replace(/-/g,"+").replace(/_/g,"/");const e=r.length%4;if(e){if(e===1)throw new Error("InvalidLengthError: Input base64url string is the wrong length to determine padding");r+=new Array(5-e).join("=")}return atob(r)}static supportsWebAuthn(){return(window==null?void 0:window.PublicKeyCredential)!==void 0&&typeof window.PublicKeyCredential=="function"}}const C=new s;export{C as w}; diff --git a/public/build/manifest.json b/public/build/manifest.json index bbe96aad..5be489d5 100644 --- a/public/build/manifest.json +++ b/public/build/manifest.json @@ -1,58 +1,58 @@ { - "_AccessLogViewer-QcCOFAQ5.js": { - "file": "assets/AccessLogViewer-QcCOFAQ5.js", + "_AccessLogViewer-D5ku7YyO.js": { + "file": "assets/AccessLogViewer-D5ku7YyO.js", "name": "AccessLogViewer", "imports": [ - "_SearchBox-BN15Yvrb.js", + "_SearchBox-DXIAZhpY.js", "resources/js/app.js", - "_Spinner-DAB1mDqh.js" + "_Spinner-BwxI0ALn.js" ] }, - "_AdminTabs-Bl1-NjaF.js": { - "file": "assets/AdminTabs-Bl1-NjaF.js", + "_AdminTabs-CH16Y5aI.js": { + "file": "assets/AdminTabs-CH16Y5aI.js", "name": "AdminTabs", "imports": [ "resources/js/app.js" ] }, - "_CopyButton-CDpmfULX.js": { - "file": "assets/CopyButton-CDpmfULX.js", + "_CopyButton-jPP7GkVs.js": { + "file": "assets/CopyButton-jPP7GkVs.js", "name": "CopyButton", "imports": [ "resources/js/app.js" ] }, - "_Form-DWTCaq3y.js": { - "file": "assets/Form-DWTCaq3y.js", + "_Form-BSfNB4q6.js": { + "file": "assets/Form-BSfNB4q6.js", "name": "Form", "imports": [ "resources/js/app.js" ] }, - "_OtpDisplay-rOo0JVMb.js": { - "file": "assets/OtpDisplay-rOo0JVMb.js", + "_OtpDisplay-CU1C9yFz.js": { + "file": "assets/OtpDisplay-CU1C9yFz.js", "name": "OtpDisplay", "imports": [ "resources/js/app.js", - "_Spinner-DAB1mDqh.js" + "_Spinner-BwxI0ALn.js" ] }, - "_QrContentDisplay-BGd7upKu.js": { - "file": "assets/QrContentDisplay-BGd7upKu.js", + "_QrContentDisplay-CxQyxV0P.js": { + "file": "assets/QrContentDisplay-CxQyxV0P.js", "name": "QrContentDisplay", "imports": [ "resources/js/app.js" ] }, - "_SearchBox-BN15Yvrb.js": { - "file": "assets/SearchBox-BN15Yvrb.js", + "_SearchBox-DXIAZhpY.js": { + "file": "assets/SearchBox-DXIAZhpY.js", "name": "SearchBox", "imports": [ "resources/js/app.js" ] }, - "_SettingTabs-QG_9mr1s.js": { - "file": "assets/SettingTabs-QG_9mr1s.js", + "_SettingTabs-CH0cOPVM.js": { + "file": "assets/SettingTabs-CH0cOPVM.js", "name": "SettingTabs", "imports": [ "resources/js/app.js" @@ -62,8 +62,8 @@ "file": "assets/Spinner-DQLRB1dd.css", "src": "_Spinner-!~{00N}~.js" }, - "_Spinner-DAB1mDqh.js": { - "file": "assets/Spinner-DAB1mDqh.js", + "_Spinner-BwxI0ALn.js": { + "file": "assets/Spinner-BwxI0ALn.js", "name": "Spinner", "imports": [ "resources/js/app.js" @@ -72,29 +72,29 @@ "assets/Spinner-DQLRB1dd.css" ] }, - "_appSettingsUpdater-CrpPSh5Y.js": { - "file": "assets/appSettingsUpdater-CrpPSh5Y.js", + "_appSettingsUpdater-Dgw-hmnk.js": { + "file": "assets/appSettingsUpdater-Dgw-hmnk.js", "name": "appSettingsUpdater", "imports": [ "resources/js/app.js" ] }, - "_bus-9R_lUvV0.js": { - "file": "assets/bus-9R_lUvV0.js", + "_bus-Sx3kCjbz.js": { + "file": "assets/bus-Sx3kCjbz.js", "name": "bus", "imports": [ "resources/js/app.js" ] }, - "_webauthnService-CtkX6mue.js": { - "file": "assets/webauthnService-CtkX6mue.js", + "_webauthnService-3N-iRQ3u.js": { + "file": "assets/webauthnService-3N-iRQ3u.js", "name": "webauthnService", "imports": [ "resources/js/app.js" ] }, "resources/js/app.js": { - "file": "assets/app-CYV6HkYG.js", + "file": "assets/app-CeOdx_TG.js", "name": "app", "src": "resources/js/app.js", "isEntry": true, @@ -155,7 +155,7 @@ ] }, "resources/js/views/About.vue": { - "file": "assets/About-BZhNTSAg.js", + "file": "assets/About-XlOmnkHo.js", "name": "About", "src": "resources/js/views/About.vue", "isDynamicEntry": true, @@ -164,7 +164,7 @@ ] }, "resources/js/views/Error.vue": { - "file": "assets/Error-B64Etrkn.js", + "file": "assets/Error-D63gl45e.js", "name": "Error", "src": "resources/js/views/Error.vue", "isDynamicEntry": true, @@ -173,277 +173,277 @@ ] }, "resources/js/views/Start.vue": { - "file": "assets/Start-mHRwuU4_.js", + "file": "assets/Start-Db0pVskV.js", "name": "Start", "src": "resources/js/views/Start.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js", - "_bus-9R_lUvV0.js" + "_Form-BSfNB4q6.js", + "_bus-Sx3kCjbz.js" ] }, "resources/js/views/admin/AppSetup.vue": { - "file": "assets/AppSetup-CX11T-H5.js", + "file": "assets/AppSetup-CRogn-UO.js", "name": "AppSetup", "src": "resources/js/views/admin/AppSetup.vue", "isDynamicEntry": true, "imports": [ - "_AdminTabs-Bl1-NjaF.js", + "_AdminTabs-CH16Y5aI.js", "resources/js/app.js", - "_appSettingsUpdater-CrpPSh5Y.js", - "_CopyButton-CDpmfULX.js" + "_appSettingsUpdater-Dgw-hmnk.js", + "_CopyButton-jPP7GkVs.js" ] }, "resources/js/views/admin/Auth.vue": { - "file": "assets/Auth-CmKqXT21.js", + "file": "assets/Auth-C0J9t2T1.js", "name": "Auth", "src": "resources/js/views/admin/Auth.vue", "isDynamicEntry": true, "imports": [ - "_AdminTabs-Bl1-NjaF.js", + "_AdminTabs-CH16Y5aI.js", "resources/js/app.js", - "_appSettingsUpdater-CrpPSh5Y.js" + "_appSettingsUpdater-Dgw-hmnk.js" ] }, "resources/js/views/admin/Users.vue": { - "file": "assets/Users-DjvKWsO3.js", + "file": "assets/Users-CVnBSsgh.js", "name": "Users", "src": "resources/js/views/admin/Users.vue", "isDynamicEntry": true, "imports": [ - "_AdminTabs-Bl1-NjaF.js", + "_AdminTabs-CH16Y5aI.js", "resources/js/app.js", - "_Spinner-DAB1mDqh.js", - "_SearchBox-BN15Yvrb.js" + "_Spinner-BwxI0ALn.js", + "_SearchBox-DXIAZhpY.js" ] }, "resources/js/views/admin/logs/Access.vue": { - "file": "assets/Access-BUEH-HbX.js", + "file": "assets/Access-DPUU_q_e.js", "name": "Access", "src": "resources/js/views/admin/logs/Access.vue", "isDynamicEntry": true, "imports": [ - "_AccessLogViewer-QcCOFAQ5.js", + "_AccessLogViewer-D5ku7YyO.js", "resources/js/app.js", - "_bus-9R_lUvV0.js", - "_SearchBox-BN15Yvrb.js", - "_Spinner-DAB1mDqh.js" + "_bus-Sx3kCjbz.js", + "_SearchBox-DXIAZhpY.js", + "_Spinner-BwxI0ALn.js" ] }, "resources/js/views/admin/users/Create.vue": { - "file": "assets/Create-ISEYWR5R.js", + "file": "assets/Create-Ppjik0Rc.js", "name": "Create", "src": "resources/js/views/admin/users/Create.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js" + "_Form-BSfNB4q6.js" ] }, "resources/js/views/admin/users/Manage.vue": { - "file": "assets/Manage-D6-VL252.js", + "file": "assets/Manage-C0NOcaRv.js", "name": "Manage", "src": "resources/js/views/admin/users/Manage.vue", "isDynamicEntry": true, "imports": [ - "_CopyButton-CDpmfULX.js", - "_AccessLogViewer-QcCOFAQ5.js", + "_CopyButton-jPP7GkVs.js", + "_AccessLogViewer-D5ku7YyO.js", "resources/js/app.js", - "_bus-9R_lUvV0.js", - "_SearchBox-BN15Yvrb.js", - "_Spinner-DAB1mDqh.js" + "_bus-Sx3kCjbz.js", + "_SearchBox-DXIAZhpY.js", + "_Spinner-BwxI0ALn.js" ] }, "resources/js/views/auth/Login.vue": { - "file": "assets/Login-Dvi0IpzI.js", + "file": "assets/Login-BBynD8CC.js", "name": "Login", "src": "resources/js/views/auth/Login.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js", - "_webauthnService-CtkX6mue.js" + "_Form-BSfNB4q6.js", + "_webauthnService-3N-iRQ3u.js" ] }, "resources/js/views/auth/Register.vue": { - "file": "assets/Register-BU18ipdH.js", + "file": "assets/Register-BeDlGULg.js", "name": "Register", "src": "resources/js/views/auth/Register.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js", - "_webauthnService-CtkX6mue.js" + "_Form-BSfNB4q6.js", + "_webauthnService-3N-iRQ3u.js" ] }, "resources/js/views/auth/RequestReset.vue": { - "file": "assets/RequestReset-Cwf_djX8.js", + "file": "assets/RequestReset-63WcW87C.js", "name": "RequestReset", "src": "resources/js/views/auth/RequestReset.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js" + "_Form-BSfNB4q6.js" ] }, "resources/js/views/auth/password/Reset.vue": { - "file": "assets/Reset-C9UQ-9Xw.js", + "file": "assets/Reset-BCtRvP_c.js", "name": "Reset", "src": "resources/js/views/auth/password/Reset.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js" + "_Form-BSfNB4q6.js" ] }, "resources/js/views/auth/webauthn/Recover.vue": { - "file": "assets/Recover-CE1NgbrS.js", + "file": "assets/Recover-ClJ3s80u.js", "name": "Recover", "src": "resources/js/views/auth/webauthn/Recover.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js" + "_Form-BSfNB4q6.js" ] }, "resources/js/views/groups/CreateUpdate.vue": { - "file": "assets/CreateUpdate-D5u6vBmO.js", + "file": "assets/CreateUpdate-Bcq5-Ipn.js", "name": "CreateUpdate", "src": "resources/js/views/groups/CreateUpdate.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js", - "_bus-9R_lUvV0.js" + "_Form-BSfNB4q6.js", + "_bus-Sx3kCjbz.js" ] }, "resources/js/views/groups/Groups.vue": { - "file": "assets/Groups-D5oaRkip.js", + "file": "assets/Groups-CB6BkpLO.js", "name": "Groups", "src": "resources/js/views/groups/Groups.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_bus-9R_lUvV0.js" + "_bus-Sx3kCjbz.js" ] }, "resources/js/views/settings/Account.vue": { - "file": "assets/Account-bVws_VSU.js", + "file": "assets/Account-D0Vo1CDM.js", "name": "Account", "src": "resources/js/views/settings/Account.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js", - "_SettingTabs-QG_9mr1s.js" + "_Form-BSfNB4q6.js", + "_SettingTabs-CH0cOPVM.js" ] }, "resources/js/views/settings/Credentials/Edit.vue": { - "file": "assets/Edit-7XxRGrC1.js", + "file": "assets/Edit-C69CLEW0.js", "name": "Edit", "src": "resources/js/views/settings/Credentials/Edit.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js" + "_Form-BSfNB4q6.js" ] }, "resources/js/views/settings/OAuth.vue": { - "file": "assets/OAuth-BS_ppCvb.js", + "file": "assets/OAuth-dgZCcWlL.js", "name": "OAuth", "src": "resources/js/views/settings/OAuth.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js", - "_SettingTabs-QG_9mr1s.js", - "_Spinner-DAB1mDqh.js" + "_Form-BSfNB4q6.js", + "_SettingTabs-CH0cOPVM.js", + "_Spinner-BwxI0ALn.js" ] }, "resources/js/views/settings/Options.vue": { - "file": "assets/Options-OR5uIyQb.js", + "file": "assets/Options-D3fDNCvX.js", "name": "Options", "src": "resources/js/views/settings/Options.vue", "isDynamicEntry": true, "imports": [ - "_SettingTabs-QG_9mr1s.js", + "_SettingTabs-CH0cOPVM.js", "resources/js/app.js" ] }, "resources/js/views/settings/WebAuthn.vue": { - "file": "assets/WebAuthn-C_jvKAY0.js", + "file": "assets/WebAuthn-C8Ep1BLK.js", "name": "WebAuthn", "src": "resources/js/views/settings/WebAuthn.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_SettingTabs-QG_9mr1s.js", - "_webauthnService-CtkX6mue.js", - "_Spinner-DAB1mDqh.js" + "_SettingTabs-CH0cOPVM.js", + "_webauthnService-3N-iRQ3u.js", + "_Spinner-BwxI0ALn.js" ] }, "resources/js/views/twofaccounts/Accounts.vue": { - "file": "assets/Accounts-Dd3ykjhR.js", + "file": "assets/Accounts-BKgJPgW4.js", "name": "Accounts", "src": "resources/js/views/twofaccounts/Accounts.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_OtpDisplay-rOo0JVMb.js", - "_SearchBox-BN15Yvrb.js", - "_bus-9R_lUvV0.js", - "_Spinner-DAB1mDqh.js" + "_OtpDisplay-CU1C9yFz.js", + "_SearchBox-DXIAZhpY.js", + "_bus-Sx3kCjbz.js", + "_Spinner-BwxI0ALn.js" ] }, "resources/js/views/twofaccounts/Capture.vue": { - "file": "assets/Capture-CfKxVMuO.js", + "file": "assets/Capture-CjOu-0oN.js", "name": "Capture", "src": "resources/js/views/twofaccounts/Capture.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js", - "_Spinner-DAB1mDqh.js", - "_QrContentDisplay-BGd7upKu.js", - "_bus-9R_lUvV0.js" + "_Form-BSfNB4q6.js", + "_Spinner-BwxI0ALn.js", + "_QrContentDisplay-CxQyxV0P.js", + "_bus-Sx3kCjbz.js" ] }, "resources/js/views/twofaccounts/CreateUpdate.vue": { - "file": "assets/CreateUpdate-qewMO0ZY.js", + "file": "assets/CreateUpdate-CPvMgltX.js", "name": "CreateUpdate", "src": "resources/js/views/twofaccounts/CreateUpdate.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js", - "_OtpDisplay-rOo0JVMb.js", - "_QrContentDisplay-BGd7upKu.js", - "_bus-9R_lUvV0.js", - "_Spinner-DAB1mDqh.js" + "_Form-BSfNB4q6.js", + "_OtpDisplay-CU1C9yFz.js", + "_QrContentDisplay-CxQyxV0P.js", + "_bus-Sx3kCjbz.js", + "_Spinner-BwxI0ALn.js" ] }, "resources/js/views/twofaccounts/Import.vue": { - "file": "assets/Import-CZR4vcnj.js", + "file": "assets/Import-DzQrPeG3.js", "name": "Import", "src": "resources/js/views/twofaccounts/Import.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Form-DWTCaq3y.js", - "_OtpDisplay-rOo0JVMb.js", - "_Spinner-DAB1mDqh.js", - "_bus-9R_lUvV0.js" + "_Form-BSfNB4q6.js", + "_OtpDisplay-CU1C9yFz.js", + "_Spinner-BwxI0ALn.js", + "_bus-Sx3kCjbz.js" ] }, "resources/js/views/twofaccounts/QRcode.vue": { - "file": "assets/QRcode-0D9Ppru-.js", + "file": "assets/QRcode-BY72oBwO.js", "name": "QRcode", "src": "resources/js/views/twofaccounts/QRcode.vue", "isDynamicEntry": true, "imports": [ "resources/js/app.js", - "_Spinner-DAB1mDqh.js" + "_Spinner-BwxI0ALn.js" ] }, "resources/lang/php_ar.json": { @@ -459,7 +459,7 @@ "isDynamicEntry": true }, "resources/lang/php_de.json": { - "file": "assets/php_de-CNLq-YHx.js", + "file": "assets/php_de-BNdlHPsO.js", "name": "php_de", "src": "resources/lang/php_de.json", "isDynamicEntry": true @@ -555,7 +555,7 @@ "isDynamicEntry": true }, "resources/lang/php_zh.json": { - "file": "assets/php_zh-BLzLFTvm.js", + "file": "assets/php_zh-Co42ifwQ.js", "name": "php_zh", "src": "resources/lang/php_zh.json", "isDynamicEntry": true