UNPKG

@particle-network/authkit

Version:

Auth Core provides MPC (Multi-Party Computation)-based threshold signatures.

499 lines (498 loc) 32.9 kB
"use client"; import{a as De}from"./chunk-YV2QPNMZ.mjs";import{a as ge}from"./chunk-UD6Q2AOH.mjs";import{a as ze}from"./chunk-HDJHX24S.mjs";import{a as W,b as Be,c as ue,k as de,m as he,n as K}from"./chunk-NSWCC5PG.mjs";import{a as ce}from"./chunk-BM7ICTT2.mjs";import{a as Fe}from"./chunk-ZTTU2K7E.mjs";import"./chunk-UXH6IVHO.mjs";import"./chunk-GYYKKPHD.mjs";import"./chunk-3RRPQ2DX.mjs";import{A as Ne,B as ke,C as be,D as Ae,E as Ie,F as Pe,G as Le,H as _e,I as Se,J as Ee,K as ye,L as je,M as Me,U as se,V as pe,Y as me,h as H,l as ae,m as Ce,r as U,w as le,y as xe,z as Te}from"./chunk-H6TXMQRA.mjs";import"./chunk-C7OWFSST.mjs";import{AuthType as l,getConnectCaptcha as Co,isNullish as To,requireNotNullish as No}from"@particle-network/auth-core";import y,{useEffect as we,useMemo as ko,useState as oe}from"react";var fe="data:image/png;base64,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";import{ApiError as Ue,getCloudflareTurnstileResponse as to,isApiError as no}from"@particle-network/auth-core";import io from"ahooks/es/useInterval";import ro from"lodash/throttle.js";import P,{useCallback as ao,useEffect as lo,useMemo as so,useRef as co,useState as z}from"react";var He=`.captcha-box { text-align: center; } .captcha-box .error-tip { position: absolute; left: calc((100% - 316px) / 2); text-align: left; margin-top: 5px; font-weight: 400; font-size: 12px; line-height: 19px; color: var(--error-color); width: 100%; } .captcha-box .get-btn { width: 316px; padding: 0; margin-top: 14px; border: none; font-weight: 400; font-size: 16px; line-height: 19px; color: var(--text-color); background-color: transparent !important; box-shadow: none; } .captcha-box .get-btn[disabled] { font-weight: 400 !important; color: var(--secondary-text-color); opacity: 1 !important; } @media (max-width: 380px) { .captcha-box .get-btn { width: 90vw; } } @media (min-width: 600px) { .captcha-box .get-btn { width: calc(90 * var(--vw)); } } .captcha-box .submit-btn { width: 322px; margin-top: 38px; } .captcha-box .btn-box { display: flex; flex-direction: column; align-items: center; } .captcha-box .back-box { position: relative; left: -4px; display: flex; justify-content: center; align-items: center; height: 19px; margin-top: 60px; margin-bottom: 30px; font-weight: 400; font-size: 16px; line-height: 19px; color: var(--accent-color); cursor: pointer; gap: 8px; } .captcha-box .back-box img { width: 9.42px; margin-right: 7px; } .captcha-box .back-box svg { position: relative; top: -1px; color: var(--accent-color); } .captcha-box .captcha-title { position: absolute; top: 14px; left: 0; right: 0; font-weight: 600; font-size: 18px; text-align: center; color: var(--text-color); } .captcha-box .captcha-form { padding-top: 44px; max-width: 316px; margin: auto; } .captcha-box .captcha-form .input-code-content { position: relative; } `;function po(B){let{sendCaptcha:s,setShowInputCaptcha:v,account:x,loginWithAccount:i,chain:c}=B,[C,N]=z(!1),{themeType:L,language:u}=me(),[_,d]=z(""),{loginHandler:k}=se(),[p,h]=z(!1),[S,r]=z(!1),[T,b]=z(!1),[A,j]=z(!1),[M,J]=z(!1),{authCoreModal:Y}=ae(),{t:E}=U(),Q=pe(),G=co(null),V=/^\d{6}$/,[q,D]=z(1e3),[F,o]=z(60);io(()=>{if(F>0){let t=F-1;o(t),t===0&&D(void 0)}},q);let m=()=>{o(60),D(1e3)},g=()=>{x.includes("@")?e({email:x}):to({theme:L,language:u,getContainer:()=>Y.rootBody}).then(t=>{e({phone:x,cf_turnstile_response:t})}).catch(()=>{Q.error(E("error.server_20112"))})},e=t=>{s(t).then(()=>{m(),J(!1),j(!1)}).catch(()=>{o(0),D(void 0)})},n=t=>{r(!1);let f=t,X=/^[0-9]+$/g;f.length===0?(r(!1),h(!0)):X.test(f)?(h(!1),r(!1)):(h(!1),r(!0))},I=t=>{h(!1),r(!1),b(!1),t=t||_,!(p||S)&&(V.test(t)?ee(t):((t.length>0&&t.length<6||!V.test(t))&&(r(!0),h(!1)),t.length===0&&(r(!1),h(!0))))},te=async t=>{if(A)return;N(!0);let f;x.includes("@")?f={code:t,email:x,chain:c}:f={code:t,phone:x,chain:c};try{await k(f,!1)}catch(X){ne(X)}},ne=t=>{if(N(!1),no(t)){let f=t.error_code;f===Ue.InvalidCode?b(!0):f===Ue.ResendCode&&(j(!0),J(!0))}},ie=t=>{n(t),d(t),h(!1),r(!1),b(!1),j(!1),V.test(t)&&ee(t)},ee=ao(ro(t=>{te(t)},1e3,{leading:!0,trailing:!1}),[]),Ze=()=>{var f;(f=document.getElementsByClassName("input-code-item")[Math.min(_.length,5)])==null||f.focus()},Re=so(()=>{let t=[p?E("login.enter_captcha"):"",S?E("login.captcha_input_error"):"",T?E("login.invalid_code"):"",A?E("login.please_send_again"):""].map(f=>f.trim()).filter(f=>!!f).join(",");return t.includes(",")?t+".":t},[p,S,T,A,E]);return lo(()=>{var X;let t=document.getElementsByClassName("react-input-code"),f=re=>re.preventDefault();return(X=t[0])==null||X.addEventListener("contextmenu",f),()=>{var re;(re=t[0])==null||re.removeEventListener("contextmenu",f)}},[]),P.createElement("div",{className:"captcha-box"},P.createElement("style",null,H(He)),P.createElement("div",{className:"captcha-form"},P.createElement("div",{className:"input-code-content"},P.createElement("div",{onClick:Ze},P.createElement(ze,{containerClassName:"react-input-code",inputClassName:"input-code-item",allowedCharacters:"numeric",length:6,ref:G,placeholder:" ",onChange:ie})))),P.createElement("div",{className:"error-tip"},Re),P.createElement("div",{className:"btn-box"},P.createElement(W,{type:"primary",htmlType:"submit",className:"primary-antd-btn submit-btn",onClick:()=>I(),disabled:M,loading:C},E("common.confirm")),P.createElement(W,{className:"get-btn",disabled:F>0,type:"link",onClick:g},E("login.send_again")," ",F>0?`(${F}s)`:""),!i&&P.createElement("div",{className:"back-box",onClick:()=>{v(!1)}},P.createElement(ce,{className:"arrow1-icon",name:"arrow1_icon"}),P.createElement("span",null,E("login.back")))))}var Ve=po;import w,{useEffect as uo,useRef as qe,useState as ve}from"react";var Z=`.login-style .form-item { margin-bottom: 0; } .login-header0 { display: flex; justify-content: center; align-items: center; width: 100%; height: 26px; margin-top: 26px; font-weight: 600; font-size: 22px; line-height: 22px; text-align: center; color: var(--text-color); } .login-header0 img { position: absolute; left: 0; margin-left: 16px; } @media (max-height: 610px) { .login-header0 { margin-top: 18px; } } .login-des { width: 100%; height: 23px; margin-top: 7px; font-weight: 400; font-size: 16px; line-height: 19px; text-align: center; color: var(--secondary-text-color); } .form-box { display: flex; flex-direction: column; align-items: center; width: 100%; padding-top: 44px; } .form-box .form-item { display: flex; flex-direction: column; width: 100%; text-align: center; } .form-box .email-box { width: 316px; max-width: 90vw; height: 47px; line-height: 47px; display: flex; justify-content: center; align-items: center; background-color: var(--input-background-color); border-radius: var(--primary-btn-border-radius); font-size: 15px; border: 1px solid var(--input-background-color); overflow: hidden; } @media (min-width: 600px) { .form-box .email-box { max-width: calc(90 * var(--vw)); } } .form-box .email-box[data-focus='true'] { border: 1px solid var(--accent-color); } .form-box .email-box .email-input { width: 316px; max-width: 90vw; height: 47px; padding: 4px 13px; border: 1px solid var(--input-background-color); border-radius: var(--primary-btn-border-radius); font-size: 15px; line-height: 47px; color: var(--text-color); background-color: var(--input-background-color); } @media (min-width: 600px) { .form-box .email-box .email-input { max-width: calc(90 * var(--vw)); } } .form-box .phone-box { display: flex; justify-content: center; align-items: center; width: 316px; max-width: 90vw; height: 47px; border: 1px solid var(--input-background-color); border-radius: var(--primary-btn-border-radius); overflow: hidden; font-size: 15px; line-height: 47px; background-color: var(--input-background-color); } .form-box .phone-box[data-focus='true'] { border: 1px solid var(--accent-color); } .form-box .phone-box .phone-select { display: flex; flex-shrink: 0; justify-content: center; align-items: center; width: 60px; height: 47px; padding-left: 8px; font-weight: 500; font-size: 15px; color: var(--text-color); cursor: pointer; border-right: 1px solid var(--input-border-color); } .form-box .phone-box .phone-select .down-more { margin-left: 8px; font-size: 10px; } .form-box .phone-box .country-code { display: flex; flex-shrink: 0; align-items: center; height: 47px; margin: 0 8px; line-height: 47px; color: var(--text-color); } .form-box .phone-box .phone-input { flex-shrink: 1; width: 100%; height: 47px; padding: 0; border: none !important; border-radius: 0; outline: none; font-size: 15px; line-height: 47px; color: var(--text-color); background-color: transparent; box-shadow: none; } .form-box .phone-box .phone-input:focus { border: none !important; box-shadow: none !important; } @media (min-width: 600px) { .form-box .phone-box { max-width: calc(90 * var(--vw)); } } .form-box .phone-input, .form-box .email-input { height: 37px; line-height: 37px; width: 85%; overflow: hidden; border-color: var(--input-background-color) !important; } .form-box .phone-input:-webkit-autofill, .form-box .email-input:-webkit-autofill, .form-box .phone-input:-webkit-autofill:hover, .form-box .email-input:-webkit-autofill:hover, .form-box .phone-input:-webkit-autofill:focus, .form-box .email-input:-webkit-autofill:focus { -webkit-text-fill-color: var(--text-color) !important; -webkit-box-shadow: 0 0 0 150px var(--input-background-color) inset !important; } .form-box .phone-input::-ms-reveal, .form-box .email-input::-ms-reveal, .form-box .phone-input::-ms-clear, .form-box .email-input::-ms-clear { display: none; } .form-box .phone-input:focus, .form-box .email-input:focus { color: var(--text-color, #000) !important; border-color: var(--input-background-color) !important; } .form-box .error-tip { position: absolute; margin-top: 51px; font-weight: 400; font-size: 12px; line-height: 19px; color: var(--error-color); width: 316px; left: calc((100% - 316px) / 2); text-align: left; } .form-box .submit-btn { width: 316px; max-width: 90vw; margin-top: 35px; } @media (min-width: 600px) { .form-box .submit-btn { max-width: calc(90 * var(--vw)); } } @media (max-height: 610px) { .form-box { padding-top: 20px; } } .login-or { display: flex; justify-content: center; align-items: center; width: 100%; height: 13px; margin: 35px 0; font-weight: 500; font-size: 11px; line-height: 22px; white-space: nowrap; color: var(--secondary-text-color); gap: 15px; } .login-or .or-line { width: 143px; border-top: 1px solid var(--icon-border-color); } @media (max-height: 610px) { .login-or { margin: 18px 0; } } .change-login-mode { display: flex; justify-content: center; width: 100%; } .change-login-mode .change-social { display: flex; flex-wrap: wrap; justify-content: center; width: 315px; height: 106px; } .change-login-mode .change-social .first-way { margin: 5px 10px; } .change-login-mode .change-social img { width: 43px; height: 43px; margin: 5px 10px; border: 1px solid var(--icon-border-color); border-radius: 50%; background: #fff; cursor: pointer; } .change-login-mode .change-social img:hover { opacity: var(--hover-opacity); } .change-login-mode .change-social .collapse-login-icon { display: flex; justify-content: center; align-items: center; width: 43px; height: 43px; margin: 5px 10px; border-radius: 50%; font-size: 24px; color: grey; transform: rotate(180deg); cursor: pointer; } .change-login-mode .change-social .collapse-login-icon[data-is-collapse='false'] { transform: rotate(0deg); } .change-login-mode .change-social .collapse-login-icon svg { width: 43px; height: 43px; color: #b4b6c6; } .change-login-mode .change-social .collapse-login-icon svg circle { fill: var(--bg-color-2); } .change-login-mode .change-social .collapse-login-icon:hover { opacity: var(--hover-opacity); } .select-country { position: absolute; z-index: 1000; width: 316px; max-width: 90vw; height: 291px; margin-top: 96px; left: 50%; transform: translateX(-50%); margin-left: 0; border: 0; border: 1px solid var(--input-background-color); border-radius: var(--card-border-radius); overflow: auto; overflow-x: hidden; background-color: var(--input-background-color); } .select-country::-webkit-scrollbar { display: none; width: 0; } .select-country .country-item { display: flex; justify-content: space-between; align-items: center; width: 100%; height: 46px; border-bottom: 1px solid var(--card-unclickable-background-color); cursor: pointer; } .select-country .country-item:hover { background-color: var(--card-unclickable-background-color); } .select-country .country-item .country-box { display: flex; align-items: center; } .select-country .country-item .country-name { font-weight: 500; font-size: 14px; color: var(--text-color); } .select-country .country-item .country-code { margin-right: 15px; font-weight: 500; font-size: 14px; color: var(--secondary-text-color); } .select-country .country-item .country-flag { margin-right: 10px; margin-left: 15px; } @media (min-width: 600px) { .select-country { max-width: calc(90 * var(--vw)); } } `;function ho(B){let{t:s}=U(),{sendCaptcha:v,setShowInputCaptcha:x,account:i,supportAuthTypes:c,loginWithAccount:C}=B,[N]=de(),[L,u]=ve(!1),[_,d]=ve(!1),[k,p]=ve(!1),h=qe(null),S=qe(null);uo(()=>{C&&i&&v&&(N.setFieldsValue({email:i}),r(i))},[]);let r=b=>{S.current.focus(),b?le.test(b)?T(b):u(!0):(d(!0),u(!1))},T=b=>{p(!0),v({email:b}).then(A=>{x(A)}).catch(()=>{p(!1)})};return w.createElement(w.Fragment,null,w.createElement("style",null,H(Z)),w.createElement("div",{className:"login-style"},w.createElement(he,{name:"login-form",onFinish:b=>r(b.email.trim()),className:"form-box",requiredMark:!1,form:N,labelCol:{style:{textAlign:"left"}}},w.createElement("div",{className:"email-box",ref:h},w.createElement(K,{name:"email",label:"",className:"form-item",initialValue:i!=null&&i.includes("@")?i:""},w.createElement(ue,{className:"email-input",placeholder:s("login.email_address")||void 0,ref:S,onChange:()=>{u(!1),d(!1)},readOnly:C,onFocus:()=>{h.current.setAttribute("data-focus","true")},onBlur:()=>{h.current.removeAttribute("data-focus")}}))),w.createElement("div",{className:"error-tip"},L&&s("login.email_format_error")),w.createElement("div",{className:"error-tip"},_&&s("login.input_email_holder")),w.createElement(K,{className:"form-item"},w.createElement(W,{type:"primary",htmlType:"submit",className:"primary-antd-btn submit-btn",loading:k},s("login.get_captcha"))),!C&&c.length>0&&w.createElement("div",{className:"login-or"},w.createElement("div",{className:"or-line"}),s("login.or"),w.createElement("div",{className:"or-line"})))))}var We=ho;import{getCloudflareTurnstileResponse as go}from"@particle-network/auth-core";import $e from"country-flag-icons/unicode";import{isValidPhoneNumber as Oe,parsePhoneNumber as Je,parsePhoneNumberWithError as fo}from"libphonenumber-js/min";import a,{useEffect as Ye,useRef as Qe,useState as R}from"react";function xo(B){let{t:s}=U(),{sendCaptcha:v,setShowInputCaptcha:x,account:i,supportAuthTypes:c,loginWithAccount:C}=B,[N,L]=R(!1),{themeType:u,language:_}=me(),[d,k]=R(["United States","us","1"]),[p]=de(),h=Qe(null),{authCoreModal:S}=Ce(),[r,T]=R(!1),[b,A]=R(!1),[j,M]=R(!1),J=pe(),Y=Qe(null),[E,Q]=R();Ye(()=>{if(N)return document.addEventListener("click",G,!0),()=>{document.removeEventListener("click",G,!0)}},[N]),Ye(()=>{let o;if(i&&!i.includes("@")&&Oe(i)){let m=Je(i),g=m.countryCallingCode.toString(),e=m.country;if(p.setFieldsValue({phone:m.nationalNumber}),g&&e){let n=ge.filter(I=>I[2].toString()===g&&I[1].toLowerCase()===e.toLowerCase());n&&n.length>0&&(o=n[n.length-1])}}if(!o){let g=(navigator.languages&&navigator.languages.length?navigator.languages[0]:navigator.language).split("-"),e=g.length>1?g[1]:g[0];e&&e.length>0&&(o=ge.find(n=>n[1].toUpperCase()===e))}o&&k(o),C&&i&&v&&Oe(i)&&q(i,o?o[1].toUpperCase():void 0)},[]);let G=o=>{setTimeout(()=>{var m;(m=h.current)!=null&&m.contains(o.target)||L(!1)})},V=(o,m,g=!0)=>{if(!o&&g){A(!0);return}if((o==null?void 0:o.length)===1){T(!0);return}return xe(o,m)?(T(!1),!0):(T(!0),!1)},q=(o,m)=>{if(Y.current.focus(),!o){A(!0);return}if(o.length===1){T(!0);return}if(m||(m=d[1].toUpperCase()),xe(o,m)){let g=m.toUpperCase(),e=Je(o,g).format("E.164");Q(e),M(!0),go({theme:u,language:_,getContainer:()=>S.rootBody}).then(n=>{D(n,e)}).catch(()=>{M(!1),J.error(s("error.server_20112"))})}else T(!0)},D=(o,m)=>{M(!0),v({phone:m,cf_turnstile_response:o}).then(g=>{x(g)}).catch(()=>{M(!1)})},F=()=>{try{if(i!=null&&i.includes("@"))return"";if((i==null?void 0:i.length)>0)return fo(i).nationalNumber}catch{}return""};return a.createElement(a.Fragment,null,a.createElement("style",null,H(Z)),a.createElement("div",{className:"login-style"},N&&a.createElement("div",{className:"select-country",ref:h},ge.map((o,m)=>a.createElement("div",{key:m,className:"country-item",onClick:()=>{k(o),L(!1),setTimeout(()=>{let g=p.getFieldsValue().phone;g&&V(g,o[1].toUpperCase(),!1)})}},a.createElement("div",{className:"country-box"},a.createElement("div",{className:"country-flag"},$e(`${o[1]}`)),a.createElement("span",{className:"country-name"},o[0])),a.createElement("div",{className:"country-code"},"+"+o[2])))),a.createElement(he,{name:"login-form",onFinish:o=>q(o.phone,void 0),className:"form-box",requiredMark:!1,form:p,labelCol:{style:{textAlign:"left"}}},a.createElement("div",{className:"phone-box"},a.createElement("div",{className:"phone-select",defaultValue:`+${d[2]}`,onClick:()=>{j||L(!0)}},$e(`${d[1]}`),a.createElement("svg",{className:"down-more",viewBox:"64 64 896 896",width:"1em",height:"1em",fill:"currentColor"},a.createElement("path",{d:"M884 256h-75c-5.1 0-9.9 2.5-12.9 6.6L512 654.2 227.9 262.6c-3-4.1-7.8-6.6-12.9-6.6h-75c-6.5 0-10.3 7.4-6.5 12.7l352.6 486.1c12.8 17.6 39 17.6 51.7 0l352.6-486.1c3.9-5.3.1-12.7-6.4-12.7z"}))),a.createElement("div",{className:"country-code"},"+",d[2]),a.createElement(K,{name:"phone",label:"",className:"form-item",getValueFromEvent:o=>o.target.value.replace(/\D+/g,""),initialValue:F()},a.createElement(ue,{type:"text",className:"phone-input",placeholder:s("login.mobile_number")||void 0,ref:Y,onChange:()=>{T(!1),A(!1)},readOnly:C,onFocus:()=>{var o;(o=document.querySelector(".phone-box"))==null||o.setAttribute("data-focus","true")},onBlur:()=>{var o;(o=document.querySelector(".phone-box"))==null||o.removeAttribute("data-focus")}}))),a.createElement("div",{className:"error-tip"},r&&s("login.phone_format_error")),a.createElement("div",{className:"error-tip"},b&&s("login.input_phone_holder")),a.createElement(K,{className:"form-item"},a.createElement(W,{type:"primary",htmlType:"submit",className:"primary-antd-btn submit-btn",loading:j},s("login.get_captcha")))),!C&&c.length>0&&a.createElement("div",{className:"login-or"},a.createElement("div",{className:"or-line"}),s("login.or"),a.createElement("div",{className:"or-line"}))))}var Ge=xo;import{AuthType as $}from"@particle-network/auth-core";import O,{useMemo as bo,useState as yo}from"react";var vo=B=>{let{supportAuthTypes:s,preferredAuthType:v,onPreferredAuthTypeChange:x,thirdpartyAuthLogin:i}=B,[c,C]=yo(!0),N=d=>{i(d)},L=d=>{x==null||x(d)},u={email:be,phone:ye,facebook:Ae,google:Pe,apple:Ne,twitter:Me,discord:ke,github:Ie,twitch:je,microsoft:Se,linkedin:_e,jwt:Le,telegram:De,passkeys:Ee},_=bo(()=>{let d=s,k=d.includes($.email)&&d.includes($.phone),p=[];k&&(v===$.phone?p.push(O.createElement("img",{key:"email-login",src:be,alt:"",onClick:()=>L($.email)})):p.push(O.createElement("img",{key:"phone-login",src:ye,alt:"",onClick:()=>L($.phone)})));let h=d.filter(r=>r!==$.email&&r!==$.phone);p.push(...h.map(r=>O.createElement("img",{key:`${r}-login`,src:u[r],alt:"",onClick:()=>N(r)})));let S=O.createElement("div",{key:"collapse-login",className:"collapse-login-icon",onClick:()=>C(!c),"data-is-collapse":c},O.createElement(ce,{className:"collapse-icon",name:"collapse_icon"}));return p.length>5&&p.splice(4,0,S),c&&p.splice(5,p.length-5),p},[c,v,s]);return O.createElement("div",{className:"change-login-mode","data-collapse":!!c},O.createElement("div",{className:"change-social"},_))},Xe=vo;var Ke=`.login-container-box { position: relative; z-index: 1; width: 100%; height: 100%; overflow: hidden; display: flex; flex-direction: column; } .login-container-box .wrap { position: relative; width: 100%; height: 100%; padding-bottom: 40px; overflow-y: auto; padding-top: 56px; flex: 1; } @media (max-width: 600px) { .login-container-box .wrap { padding-top: 7vh; } } .login-container-box .wrap .login-logo { display: flex; justify-content: center; align-items: center; height: 64px; line-height: 1.5715; } .login-container-box .wrap .login-logo .product-logo { max-width: 100%; height: 64px; object-fit: contain; } .login-container-box .wrap .placeholder-wrap { display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; } .login-container-box .footer-box { position: absolute; bottom: 10px; margin: 0; text-align: center; } @media only screen and (max-height: 300px) { .login-container-box .footer-box { position: absolute; top: unset; bottom: 10px; margin-bottom: 0; } } [data-login-type='facebook'][data-hash='#/login'] .footer-box, [data-login-type='google'][data-hash='#/login'] .footer-box { position: absolute !important; } `;function Ao(B){var D,F,o,m,g;let{email:s,phone:v,authorization:x,chain:i}=B||{},{modalOptions:c,setLoginAuthorization:C}=ae(),{socialAuthLogin:N}=se(),L=()=>{var I,te,ne,ie,ee;let e=(te=(I=c.authTypes)==null?void 0:I.indexOf(l.phone))!=null?te:-1,n=(ie=(ne=c.authTypes)==null?void 0:ne.indexOf(l.email))!=null?ie:-1;return!To(v)&&(e>=0||!((ee=c.authTypes)!=null&&ee.length))||!s&&(e>=0&&n<0||e>=0&&n>=0&&e<n)?l.phone:l.email},[u,_]=oe(L()),{t:d}=U(),[k,p]=oe(""),[h,S]=oe(!1),[r,T]=oe(!1),[b,A]=oe(c.authTypes||[]),j=e=>{S(e)};we(()=>{document.documentElement.setAttribute("data-login-type",u||"")},[u]),we(()=>{if(r)A([]);else{let e=Object.values(l).filter(n=>n!==l.jwt&&n!==l.telegram);if(!c.authTypes)A(e);else{let n=c.authTypes.filter(I=>I!==l.jwt&&I!==l.telegram&&e.includes(I));!n.includes(l.email)&&!n.includes(l.phone)&&n.length>0&&n.unshift(l.email),n.length===1&&(n[0]===l.email||n[0]===l.phone)&&(n.length=0),A(n)}}},[r,c.authTypes]),we(()=>{C(x?{authorization:x,chain:No(i)}:void 0),J()},[]);let M=async e=>(p("email"in e&&e.email?e.email:e.phone),await Co(e).then(I=>I)),J=()=>{if(s&&u===l.email)le.test(s)&&(T(!0),p(s));else if(v&&u===l.phone){let e=Te(v);e&&(T(!0),p(e))}},Y=e=>{_(e),N({socialType:e,prompt:"select_account",authorization:x,chain:i})},E=()=>{if(h)return y.createElement(Ve,{sendCaptcha:M,setShowInputCaptcha:j,account:k,loginWithAccount:r,chain:i});if(u===l.email)return y.createElement(We,{sendCaptcha:M,setShowInputCaptcha:j,setLoginType:Q,account:s||k,supportAuthTypes:b,loginWithAccount:!!s||r});if(u===l.phone)return y.createElement(Ge,{sendCaptcha:M,setShowInputCaptcha:j,setLoginType:Q,account:v||k,supportAuthTypes:b,loginWithAccount:!!v||r})},Q=e=>{_(e)},G=e=>e===l.jwt?"JWT":e.titleCase(),V=e=>e===l.jwt||e===l.telegram?d("login.create_wallet"):d("login.social_login").format(G(e)),q=ko(()=>{var n;let e=(n=c.customStyle)==null?void 0:n.logo;return e||(e=fe),e||""},[(D=c.customStyle)==null?void 0:D.logo]);return y.createElement("div",{className:"login-container-box"},y.createElement("style",null,Z),y.createElement("style",null,H(Ke)),y.createElement("div",{className:"wrap"},y.createElement("div",{className:"login-logo"},y.createElement(Be,{className:"product-logo",height:64,src:q,key:q,placeholder:y.createElement("div",{className:"placeholder-wrap"},y.createElement("span",{className:"p-loading-spinner",style:{fontSize:24}})),fallback:fe,onError:e=>{e.currentTarget.src=fe}})),y.createElement("div",{className:"login-header0"},(o=(F=c.customStyle)==null?void 0:F.projectName)!=null?o:d("common.particle_auth")),h?y.createElement("div",{className:"login-des"},k):y.createElement("div",{className:"login-des"},u===l.email||u===l.phone?(g=(m=c.customStyle)==null?void 0:m.subtitle)!=null?g:d("login.to_continue").format("App"):y.createElement("div",{className:"third-party-des"},V(u))),E(),!h&&!r&&(u===l.email||u===l.phone)&&y.createElement(Xe,{supportAuthTypes:b,preferredAuthType:u,onPreferredAuthTypeChange:_,thirdpartyAuthLogin:Y})),y.createElement(Fe,{className:"footer-box-v2"}))}var $t=Ao;export{$t as default};