@particle-network/auth-core-modal
Version:
Auth Core provides MPC (Multi-Party Computation)-based threshold signatures.
502 lines (501 loc) • 33 kB
JavaScript
"use client";
import{a as le}from"./chunk-TX7RTUXA.js";import{a as Ee}from"./chunk-BRNWLP7Y.js";import{a as Se}from"./chunk-FZ52HJ5J.js";import{a as ae}from"./chunk-FEQ55Y6S.js";import{b as ie}from"./chunk-J7QRBMDL.js";import{a as _e}from"./chunk-5CZ6V5XL.js";import{C as ne,H as re,g as xe,h as be,i as ue,j as ye,k as ve,l as we,m as Ce,n as Te,o as Ne,p as ke,q as de,qa as Pe,r as Ie,s as Ae,ta as se,u as te,w as he,x as Le}from"./chunk-ZJXZXTA4.js";import"./chunk-L535NPP3.js";import{LoadingOutlined as ko}from"@ant-design/icons";import{AuthType as a,getConnectCaptcha as Io,isNullish as Ao,requireNotNullish as Lo}from"@particle-network/auth-core";import{Image as _o}from"antd";import y,{useEffect as fe,useMemo as Eo,useState as K}from"react";import{useTranslation as So}from"react-i18next";var ce="data:image/png;base64,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";import{ApiError as Me,getCloudflareTurnstileResponse as Ke,isApiError as Ze}from"@particle-network/auth-core";import{useInterval as Re}from"ahooks";import{Button as Fe}from"antd";import eo from"lodash/throttle.js";import L,{useCallback as oo,useEffect as to,useMemo as no,useRef as io,useState as D}from"react";import{useTranslation as ro}from"react-i18next";var je=`.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 ao(B){let{sendCaptcha:l,setShowInputCaptcha:v,account:x,loginWithAccount:i,chain:s}=B,[C,N]=D(!1),{themeType:_,language:u}=re(),[E,d]=D(""),{loginHandler:k}=ne(),[p,h]=D(!1),[S,r]=D(!1),[T,b]=D(!1),[I,j]=D(!1),[M,W]=D(!1),{authCoreModal:O}=se(),{t:P}=ro(),$=ae(),J=io(null),H=/^\d{6}$/,[U,z]=D(1e3),[F,o]=D(60);Re(()=>{if(F>0){let t=F-1;o(t),t===0&&z(void 0)}},U);let m=()=>{o(60),z(1e3)},g=()=>{x.includes("@")?e({email:x}):Ke({theme:_,language:u,getContainer:()=>O.rootBody}).then(t=>{e({phone:x,cf_turnstile_response:t})}).catch(()=>{$.error(P("error.server_20112"))})},e=t=>{l(t).then(()=>{m(),W(!1),j(!1)}).catch(()=>{o(0),z(void 0)})},n=t=>{r(!1);let f=t,Y=/^[0-9]+$/g;f.length===0?(r(!1),h(!0)):Y.test(f)?(h(!1),r(!1)):(h(!1),r(!0))},A=t=>{h(!1),r(!1),b(!1),t=t||E,!(p||S)&&(H.test(t)?X(t):((t.length>0&&t.length<6||!H.test(t))&&(r(!0),h(!1)),t.length===0&&(r(!1),h(!0))))},Z=async t=>{if(I)return;N(!0);let f;x.includes("@")?f={code:t,email:x,chain:s}:f={code:t,phone:x,chain:s};try{await k(f,!1)}catch(Y){R(Y)}},R=t=>{if(N(!1),Ze(t)){let f=t.error_code;f===Me.InvalidCode?b(!0):f===Me.ResendCode&&(j(!0),W(!0))}},ee=t=>{n(t),d(t),h(!1),r(!1),b(!1),j(!1),H.test(t)&&X(t)},X=oo(eo(t=>{Z(t)},1e3,{leading:!0,trailing:!1}),[]),Ye=()=>{var f;(f=document.getElementsByClassName("input-code-item")[Math.min(E.length,5)])==null||f.focus()},Qe=no(()=>{let t=[p?P("login.enter_captcha"):"",S?P("login.captcha_input_error"):"",T?P("login.invalid_code"):"",I?P("login.please_send_again"):""].map(f=>f.trim()).filter(f=>!!f).join(",");return t.includes(",")?t+".":t},[p,S,T,I]);return to(()=>{var Y;let t=document.getElementsByClassName("react-input-code"),f=oe=>oe.preventDefault();return(Y=t[0])==null||Y.addEventListener("contextmenu",f),()=>{var oe;(oe=t[0])==null||oe.removeEventListener("contextmenu",f)}},[]),L.createElement("div",{className:"captcha-box"},L.createElement("style",null,je),L.createElement("div",{className:"captcha-form"},L.createElement("div",{className:"input-code-content"},L.createElement("div",{onClick:Ye},L.createElement(Ee,{containerClassName:"react-input-code",inputClassName:"input-code-item",allowedCharacters:"numeric",length:6,ref:J,placeholder:" ",onChange:ee})))),L.createElement("div",{className:"error-tip"},Qe),L.createElement("div",{className:"btn-box"},L.createElement(Fe,{type:"primary",htmlType:"submit",className:"primary-antd-btn submit-btn",onClick:()=>A(),disabled:M,loading:C},P("common.confirm")),L.createElement(Fe,{className:"get-btn",disabled:F>0,type:"link",onClick:g},P("login.send_again")," ",F>0?`(${F}s)`:""),!i&&L.createElement("div",{className:"back-box",onClick:()=>{v(!1)}},L.createElement(ie,{className:"arrow1-icon",name:"arrow1_icon"}),L.createElement("span",null,P("login.back")))))}var Be=ao;import{Button as so,Form as pe,Input as co}from"antd";import w,{useEffect as po,useRef as De,useState as ge}from"react";import{useTranslation as mo}from"react-i18next";var Q=`.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 .ant-form-item-explain-error {
position: absolute;
}
.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 uo(B){let{t:l}=mo(),{sendCaptcha:v,setShowInputCaptcha:x,account:i,supportAuthTypes:s,loginWithAccount:C}=B,[N]=pe.useForm(),[_,u]=ge(!1),[E,d]=ge(!1),[k,p]=ge(!1),h=De(null),S=De(null);po(()=>{C&&i&&v&&(N.setFieldsValue({email:i}),r(i))},[]);let r=b=>{S.current.focus(),b?te.test(b)?T(b):u(!0):(d(!0),u(!1))},T=b=>{p(!0),v({email:b}).then(I=>{x(I)}).catch(()=>{p(!1)})};return w.createElement(w.Fragment,null,w.createElement("style",null,Q),w.createElement("div",{className:"login-style"},w.createElement(pe,{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(pe.Item,{name:"email",label:"",className:"form-item",initialValue:i!=null&&i.includes("@")?i:""},w.createElement(co,{className:"email-input",placeholder:l("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("login.email_format_error")),w.createElement("div",{className:"error-tip"},E&&l("login.input_email_holder")),w.createElement(pe.Item,{className:"form-item"},w.createElement(so,{type:"primary",htmlType:"submit",className:"primary-antd-btn submit-btn",loading:k},l("login.get_captcha"))),!C&&s.length>0&&w.createElement("div",{className:"login-or"},w.createElement("div",{className:"or-line"}),l("login.or"),w.createElement("div",{className:"or-line"})))))}var ze=uo;import{DownOutlined as ho}from"@ant-design/icons";import{getCloudflareTurnstileResponse as go}from"@particle-network/auth-core";import{Button as fo,Form as me,Input as xo}from"antd";import He from"country-flag-icons/unicode";import{isValidPhoneNumber as Ue,parsePhoneNumber as Ve,parsePhoneNumberWithError as bo}from"libphonenumber-js/max";import c,{useEffect as qe,useRef as We,useState as G}from"react";import{useTranslation as yo}from"react-i18next";function vo(B){let{t:l}=yo(),{sendCaptcha:v,setShowInputCaptcha:x,account:i,supportAuthTypes:s,loginWithAccount:C}=B,[N,_]=G(!1),{themeType:u,language:E}=re(),[d,k]=G(["United States","us","1"]),[p]=me.useForm(),h=We(),{authCoreModal:S}=Pe(),[r,T]=G(!1),[b,I]=G(!1),[j,M]=G(!1),W=ae(),O=We(null),[P,$]=G();qe(()=>{if(N)return document.addEventListener("click",J,!0),()=>{document.removeEventListener("click",J,!0)}},[N]),qe(()=>{let o;if(i&&!i.includes("@")&&Ue(i)){let m=Ve(i),g=m.countryCallingCode.toString(),e=m.country;if(p.setFieldsValue({phone:m.nationalNumber}),g&&e){let n=le.filter(A=>A[2].toString()===g&&A[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=le.find(n=>n[1].toUpperCase()===e))}o&&k(o),C&&i&&v&&Ue(i)&&U(i,o?o[1].toUpperCase():void 0)},[]);let J=o=>{setTimeout(()=>{var m;(m=h.current)!=null&&m.contains(o.target)||_(!1)})},H=(o,m,g=!0)=>{if(!o&&g){I(!0);return}if((o==null?void 0:o.length)===1){T(!0);return}return he(o,m)?(T(!1),!0):(T(!0),!1)},U=(o,m)=>{if(O.current.focus(),!o){I(!0);return}if(o.length===1){T(!0);return}if(m||(m=d[1].toUpperCase()),he(o,m)){let g=m.toUpperCase(),e=Ve(o,g).format("E.164");$(e),M(!0),go({theme:u,language:E,getContainer:()=>S.rootBody}).then(n=>{z(n,e)}).catch(()=>{M(!1),W.error(l("error.server_20112"))})}else T(!0)},z=(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 bo(i).nationalNumber}catch{}return""};return c.createElement(c.Fragment,null,c.createElement("style",null,Q),c.createElement("div",{className:"login-style"},N&&c.createElement("div",{className:"select-country",ref:h},le.map((o,m)=>c.createElement("div",{key:m,className:"country-item",onClick:()=>{k(o),_(!1),setTimeout(()=>{let g=p.getFieldsValue().phone;g&&H(g,o[1].toUpperCase(),!1)})}},c.createElement("div",{className:"country-box"},c.createElement("div",{className:"country-flag"},He(`${o[1]}`)),c.createElement("span",{className:"country-name"},o[0])),c.createElement("div",{className:"country-code"},"+"+o[2])))),c.createElement(me,{name:"login-form",onFinish:o=>U(o.phone,void 0),className:"form-box",requiredMark:!1,form:p,labelCol:{style:{textAlign:"left"}}},c.createElement("div",{className:"phone-box"},c.createElement("div",{className:"phone-select",defaultValue:`+${d[2]}`,onClick:()=>{j||_(!0)}},He(`${d[1]}`),c.createElement(ho,{className:"down-more"})),c.createElement("div",{className:"country-code"},"+",d[2]),c.createElement(me.Item,{name:"phone",label:"",className:"form-item",getValueFromEvent:o=>o.target.value.replace(/\D+/g,""),initialValue:F()},c.createElement(xo,{type:"text",className:"phone-input",placeholder:l("login.mobile_number")||void 0,ref:O,onChange:()=>{T(!1),I(!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")}}))),c.createElement("div",{className:"error-tip"},r&&l("login.phone_format_error")),c.createElement("div",{className:"error-tip"},b&&l("login.input_phone_holder")),c.createElement(me.Item,{className:"form-item"},c.createElement(fo,{type:"primary",htmlType:"submit",className:"primary-antd-btn submit-btn",loading:j},l("login.get_captcha")))),!C&&s.length>0&&c.createElement("div",{className:"login-or"},c.createElement("div",{className:"or-line"}),l("login.or"),c.createElement("div",{className:"or-line"}))))}var Oe=vo;import{AuthType as V}from"@particle-network/auth-core";import q,{useMemo as wo,useState as Co}from"react";var To=B=>{let{supportAuthTypes:l,preferredAuthType:v,onPreferredAuthTypeChange:x,thirdpartyAuthLogin:i}=B,[s,C]=Co(!0),N=d=>{i(d)},_=d=>{x==null||x(d)},u={email:ue,phone:de,facebook:ye,google:we,apple:xe,twitter:Ae,discord:be,github:ve,twitch:Ie,microsoft:Ne,linkedin:Te,jwt:Ce,telegram:Se,passkeys:ke},E=wo(()=>{let d=l,k=d.includes(V.email)&&d.includes(V.phone),p=[];k&&(v===V.phone?p.push(q.createElement("img",{key:"email-login",src:ue,alt:"",onClick:()=>_(V.email)})):p.push(q.createElement("img",{key:"phone-login",src:de,alt:"",onClick:()=>_(V.phone)})));let h=d.filter(r=>r!==V.email&&r!==V.phone);p.push(...h.map(r=>q.createElement("img",{key:`${r}-login`,src:u[r],alt:"",onClick:()=>N(r)})));let S=q.createElement("div",{key:"collapse-login",className:"collapse-login-icon",onClick:()=>C(!s),"data-is-collapse":s},q.createElement(ie,{className:"collapse-icon",name:"collapse_icon"}));return p.length>5&&p.splice(4,0,S),s&&p.splice(5,p.length-5),p},[s,v,l]);return q.createElement("div",{className:"change-login-mode","data-collapse":!!s},q.createElement("div",{className:"change-social"},E))},$e=To;var Je=`.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 Po(B){var z,F,o,m,g;let{email:l,phone:v,authorization:x,chain:i}=B||{},{modalOptions:s,setLoginAuthorization:C}=se(),{socialAuthLogin:N}=ne(),_=()=>{var A,Z,R,ee,X;let e=(Z=(A=s.authTypes)==null?void 0:A.indexOf(a.phone))!=null?Z:-1,n=(ee=(R=s.authTypes)==null?void 0:R.indexOf(a.email))!=null?ee:-1;return!Ao(v)&&(e>=0||!((X=s.authTypes)!=null&&X.length))||!l&&(e>=0&&n<0||e>=0&&n>=0&&e<n)?a.phone:a.email},[u,E]=K(_()),{t:d}=So(),[k,p]=K(""),[h,S]=K(!1),[r,T]=K(!1),[b,I]=K(s.authTypes||[]),j=e=>{S(e)};fe(()=>{document.documentElement.setAttribute("data-login-type",u||"")},[u]),fe(()=>{if(r)I([]);else{let e=Object.values(a).filter(n=>n!==a.jwt&&n!==a.telegram);if(!s.authTypes)I(e);else{let n=s.authTypes.filter(A=>A!==a.jwt&&A!==a.telegram&&e.includes(A));!n.includes(a.email)&&!n.includes(a.phone)&&n.length>0&&n.unshift(a.email),n.length===1&&(n[0]===a.email||n[0]===a.phone)&&(n.length=0),I(n)}}},[r,s.authTypes]),fe(()=>{C(x?{authorization:x,chain:Lo(i)}:void 0),W()},[]);let M=async e=>(p("email"in e&&e.email?e.email:e.phone),await Io(e).then(A=>A)),W=()=>{if(l&&u===a.email)te.test(l)&&(T(!0),p(l));else if(v&&u===a.phone){let e=Le(v);e&&(T(!0),p(e))}},O=e=>{E(e),N({socialType:e,prompt:"select_account",authorization:x,chain:i})},P=()=>{if(h)return y.createElement(Be,{sendCaptcha:M,setShowInputCaptcha:j,account:k,loginWithAccount:r,chain:i});if(u===a.email)return y.createElement(ze,{sendCaptcha:M,setShowInputCaptcha:j,setLoginType:$,account:l||k,supportAuthTypes:b,loginWithAccount:!!l||r});if(u===a.phone)return y.createElement(Oe,{sendCaptcha:M,setShowInputCaptcha:j,setLoginType:$,account:v||k,supportAuthTypes:b,loginWithAccount:!!v||r})},$=e=>{E(e)},J=e=>e===a.jwt?"JWT":e.titleCase(),H=e=>e===a.jwt||e===a.telegram?d("login.create_wallet"):d("login.social_login").format(J(e)),U=Eo(()=>{var n;let e=(n=s.customStyle)==null?void 0:n.logo;return e||(e=ce),e||""},[(z=s.customStyle)==null?void 0:z.logo]);return y.createElement("div",{className:"login-container-box"},y.createElement("style",null,Q),y.createElement("style",null,Je),y.createElement("div",{className:"wrap"},y.createElement("div",{className:"login-logo"},y.createElement(_o,{className:"product-logo",preview:!1,height:64,src:U,key:U,placeholder:y.createElement("div",{className:"placeholder-wrap"},y.createElement(ko,{style:{fontSize:24},spin:!0})),fallback:ce,onError:e=>{e.currentTarget.src=ce}})),y.createElement("div",{className:"login-header0"},(o=(F=s.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===a.email||u===a.phone?(g=(m=s.customStyle)==null?void 0:m.subtitle)!=null?g:d("login.to_continue").format("App"):y.createElement("div",{className:"third-party-des"},H(u))),P(),!h&&!r&&(u===a.email||u===a.phone)&&y.createElement($e,{supportAuthTypes:b,preferredAuthType:u,onPreferredAuthTypeChange:E,thirdpartyAuthLogin:O})),y.createElement(_e,{className:"footer-box-v2"}))}var Kt=Po;export{Kt as default};