import{aP as L,d as g,j as e,G as r,aQ as w,t as y,I as J,aj as $,ak as R,n as K,a9 as O,k as v,T as h,R as oe,aR as V,aS as Q,c as U,D as T,E as k,aT as ie,aU as ae,aV as t,aL as M,o as le,aW as de,ap as me,aX as ce,aY as Z,aZ as F,U as ue,a_ as he,a$ as xe,b0 as X,b1 as be,b2 as pe,Z as ge,aq as fe}from"../index.Crez7j-Y.bundle.js";import{u as je,a as Ce,A as _e}from"./useSMSVerificationHooks.BJCJukD2.bundle.js";import{d as q,a as ee}from"./VisibilityOff.BrXGwV_2.bundle.js";import{E as Ee}from"./EmailDomain.C1PoEq5k.bundle.js";const P={MALL_INTRODUCTION:"MALL_INTRODUCTION",USE:"USE",E_COMMERCE:"E_COMMERCE",PI_PROCESS:"PI_PROCESS",PI_COLLECTION_AND_USE_REQUIRED:"PI_COLLECTION_AND_USE_REQUIRED",PI_COLLECTION_AND_USE_OPTIONAL:"PI_COLLECTION_AND_USE_OPTIONAL",PI_PROCESS_CONSIGNMENT:"PI_PROCESS_CONSIGNMENT",PI_THIRD_PARTY_PROVISION:"PI_THIRD_PARTY_PROVISION",PI_COLLECTION_AND_USE_FOR_GUEST_ON_ARTICLE:"PI_COLLECTION_AND_USE_FOR_GUEST_ON_ARTICLE",ACCESS_GUIDE:"ACCESS_GUIDE",WITHDRAWAL_GUIDE:"WITHDRAWAL_GUIDE",PI_SELLER_PROVISION:"PI_SELLER_PROVISION",PI_COLLECTION_AND_USE_ON_ORDER:"PI_COLLECTION_AND_USE_ON_ORDER",ORDER_INFO_AGREE:"ORDER_INFO_AGREE",CLEARANCE_INFO_COLLECTION_AND_USE:"CLEARANCE_INFO_COLLECTION_AND_USE",TRANSFER_AGREE:"TRANSFER_AGREE",REGULAR_PAYMENT_USE:"REGULAR_PAYMENT_USE",AUTO_APPROVAL_USE:"AUTO_APPROVAL_USE",PI_LIQUOR_PURCHASE_PROVISION:"PI_LIQUOR_PURCHASE_PROVISION",PI_RESTOCK_NOTICE:"PI_RESTOCK_NOTICE",PI_14_AGE:"PI_14_AGE"};function Ie(){var l,c,p,N,I,_;const{register:n,formState:{errors:s},trigger:o}=L(),[i,f]=g.useState(!1),j=g.useCallback(()=>{f(m=>!m)},[]),[d,x]=g.useState(!1),b=g.useCallback(()=>{x(m=>!m)},[]);return e.jsxs(e.Fragment,{children:[e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(w,{variant:"body",fontWeight:500,children:"비밀번호"})}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(y,{size:"small",fullWidth:!0,variant:"outlined",...n("passwordForm.password"),onChange:m=>{n("passwordForm.password").onChange(m),o(["passwordForm.password","passwordForm.passwordConfirm"])},type:i?"text":"password",autoComplete:"new-password",InputProps:{sx:{p:0},endAdornment:e.jsx(J,{sx:{position:"absolute",right:10},onClick:j,onMouseDown:m=>m.preventDefault(),children:i?e.jsx(q,{}):e.jsx(ee,{})})},error:!!((l=s.passwordForm)!=null&&l.password),helperText:(p=(c=s.passwordForm)==null?void 0:c.password)==null?void 0:p.message})}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(w,{variant:"body",fontWeight:500,children:"비밀번호 확인"})}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(y,{size:"small",fullWidth:!0,variant:"outlined",...n("passwordForm.passwordConfirm"),onChange:m=>{n("passwordForm.passwordConfirm").onChange(m),o("passwordForm.passwordConfirm")},type:d?"text":"password",autoComplete:"new-password-confirm",InputProps:{sx:{p:0},endAdornment:e.jsx(J,{sx:{position:"absolute",right:10},onClick:b,onMouseDown:m=>m.preventDefault(),children:d?e.jsx(q,{}):e.jsx(ee,{})})},error:!!((N=s.passwordForm)!=null&&N.passwordConfirm),helperText:(_=(I=s.passwordForm)==null?void 0:I.passwordConfirm)==null?void 0:_.message})})]})}function Ae(){var G,z,Y,B;const{register:n,formState:{errors:s},setValue:o,watch:i,control:f}=L(),{isVerified:j,setIsVerified:d,isEditing:x,setIsEditing:b,isVerificationPending:l,remainingTime:c,onSendVerifyCode:p,onCodeVerification:N,onCancelVerification:I}=je(),_=i("mobileNo"),[m,C]=g.useState(_||""),a=A=>{C(A.target.value)},[u,E]=g.useState(""),S=A=>{E(A.target.value)};g.useEffect(()=>{_&&(C(_),d(!0))},[_,d]);const D=()=>{b(!0),d(!1)},W=()=>{C(""),I()},se=async()=>{await p(Q.Enum.JOIN,i("memberName"),m)},te=()=>{N(Q.Enum.JOIN,m,u,()=>{E(""),o("mobileNo",m),b(!1)})},{handleChangeEmailDomain:re,selectedDomain:ne}=Ce();return e.jsxs(e.Fragment,{children:[e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(w,{variant:"body",fontWeight:500,children:"이름"})}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(y,{...n("memberName"),size:"small",fullWidth:!0,variant:"outlined",placeholder:"이름을 입력해주세요.",error:!!s.memberName,helperText:(G=s.memberName)==null?void 0:G.message})}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(w,{variant:"body",fontWeight:500,children:"이메일 주소"})}),e.jsxs(r,{container:!0,columnSpacing:1,pt:1,children:[e.jsx(r,{item:!0,desktop:8,mobile:8,children:e.jsx(y,{...n("email"),size:"small",fullWidth:!0,variant:"outlined",placeholder:"이메일 주소를 입력해주세요.",error:!!s.email,helperText:(z=s.email)==null?void 0:z.message})}),e.jsx(r,{item:!0,desktop:4,mobile:4,children:e.jsxs($,{size:"small",fullWidth:!0,variant:"outlined",displayEmpty:!0,name:"domain",value:ne,onChange:re,sx:{color:"#777777"},children:[e.jsx(R,{value:"",children:"직접 입력"}),Ee.map(A=>e.jsx(R,{value:A,children:A},A))]})})]}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(w,{variant:"body",fontWeight:500,children:"휴대폰 번호"})}),e.jsxs(r,{container:!0,columnSpacing:1,pt:1,children:[e.jsx(r,{item:!0,desktop:9,mobile:6,children:e.jsx(y,{value:m,size:"small",fullWidth:!0,variant:"outlined",onChange:a,error:!!s.mobileNo,helperText:(Y=s.mobileNo)==null?void 0:Y.message,disabled:!x||l,placeholder:"휴대폰 번호를 입력해주세요.",sx:{bgcolor:!x||l?K:"transparent"}})}),e.jsx(r,{item:!0,desktop:3,mobile:6,children:x?e.jsx(e.Fragment,{children:l?e.jsxs(e.Fragment,{children:[e.jsx(O,{fullWidth:!0,variant:"outlined",color:"error",onClick:W,sx:{borderColor:v},children:e.jsx(h,{variant:"button",children:"취소"})}),e.jsx(h,{component:"p",variant:"body",align:"center",color:oe,children:"".concat(c,"초")})]}):e.jsx(O,{fullWidth:!0,variant:"outlined",color:"error",onClick:se,sx:{borderColor:v},children:e.jsx(h,{variant:"button",children:"인증번호 발송"})})}):e.jsx(e.Fragment,{children:e.jsx(O,{fullWidth:!0,variant:"outlined",color:"error",onClick:D,sx:{borderColor:v},children:e.jsx(h,{variant:"button",children:"휴대폰번호 인증"})})})})]}),e.jsxs(r,{container:!0,columnSpacing:1,mt:1,children:[e.jsx(r,{item:!0,desktop:9,mobile:6,children:e.jsx(y,{size:"small",fullWidth:!0,variant:"outlined",placeholder:"인증번호를 입력해주세요.",value:u,onChange:S,disabled:!l,sx:{bgcolor:l?"transparent":K}})}),e.jsx(r,{item:!0,desktop:3,mobile:6,children:l?e.jsx(O,{fullWidth:!0,variant:"outlined",color:"error",onClick:te,sx:{borderColor:v},disabled:!l||j,children:e.jsx(h,{variant:"button",children:"인증코드 확인"})}):e.jsx(O,{fullWidth:!0,variant:"outlined",color:"error",onClick:W,sx:{borderColor:v},disabled:!x,children:e.jsx(h,{variant:"button",children:"취소"})})})]}),e.jsx(r,{item:!0,desktop:6,mobile:6,children:e.jsx(h,{variant:"body",fontWeight:500,children:"생년월일"})}),e.jsx(r,{item:!0,desktop:6,mobile:6,children:e.jsx(h,{variant:"body",fontWeight:500,children:"성별"})}),e.jsxs(r,{container:!0,columnSpacing:1,pt:1,children:[e.jsx(r,{item:!0,desktop:6,mobile:6,children:e.jsx(y,{...n("birthday"),size:"small",fullWidth:!0,variant:"outlined",placeholder:"8자리로 입력해주세요. ex) 19890116",error:!!s.birthday,helperText:(B=s.birthday)==null?void 0:B.message})}),e.jsx(r,{item:!0,desktop:6,mobile:6,children:e.jsx(V,{name:"sex",control:f,render:({field:A})=>{var H;return e.jsxs($,{...A,size:"small",fullWidth:!0,displayEmpty:!0,variant:"outlined",value:(H=A.value)!=null?H:"",sx:{color:"#777777"},children:[e.jsx(R,{value:"",children:"선택안함"}),e.jsx(R,{value:"M",children:"남자"}),e.jsx(R,{value:"F",children:"여자"})]})}})})]})]})}function Ne(n){const{watch:s,setValue:o}=L(),i=s("joinTermsAgreements");return{toggleJoinTerm:(d,x)=>{const b=d.target.value;x?o("joinTermsAgreements",[...i,b],{shouldValidate:!0}):o("joinTermsAgreements",i.filter(l=>l!==b),{shouldValidate:!0})},toggleAllJoinTerm:(d,x)=>{x?o("joinTermsAgreements",n,{shouldValidate:!0}):o("joinTermsAgreements",[],{shouldValidate:!0})}}}function Se({requiredTerms:n,joinTermsAgreements:s}){var m;const{toggleAllJoinTerm:o,toggleJoinTerm:i}=Ne(s),{watch:f,formState:{errors:j}}=L(),d=f("joinTermsAgreements"),[x,b]=g.useState(!1),[l,c]=g.useState(""),[p,N]=g.useState(""),I=g.useCallback((C,a)=>{N(C),c(a),b(!0)},[]),_=g.useCallback(()=>{b(!1)},[]);return e.jsxs(e.Fragment,{children:[e.jsxs(r,{item:!0,desktop:12,mobile:12,mt:4,children:[e.jsx(h,{variant:"body",fontWeight:500,children:"약관동의"}),e.jsxs(r,{item:!0,desktop:12,mobile:12,pt:1,children:[e.jsx(U,{component:"section",sx:{border:"1px solid #777777",color:"#777777",p:1},children:e.jsx(T,{control:e.jsx(k,{name:"allPolicyAgree",checked:d.length===s.length,onChange:o}),label:e.jsx(h,{children:"아래 필수 약관에 모두 동의합니다."})})}),e.jsx(ie,{error:!0,children:(m=j.joinTermsAgreements)==null?void 0:m.message})]}),e.jsx(r,{item:!0,desktop:12,mobile:12,textAlign:"left",px:1,children:e.jsx(T,{control:e.jsx(k,{value:P.PI_14_AGE,checked:d.includes(P.PI_14_AGE),onChange:i,sx:{py:0}}),label:e.jsx(h,{variant:"body",children:"[필수] 만 14세 이상입니다."})})}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsxs(U,{display:"flex",justifyContent:"space-between",px:1,children:[e.jsx(T,{control:e.jsx(k,{value:P.USE,checked:d.includes(P.USE),onChange:i,sx:{py:0}}),label:e.jsx(h,{variant:"body",children:"[필수] 이용약관"})}),e.jsx(O,{sx:{py:0},variant:"text",onClick:()=>{var C;return I("[필수] 이용약관",(C=n==null?void 0:n.use.contents)!=null?C:"")},children:"보기"})]})}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsxs(U,{display:"flex",justifyContent:"space-between",px:1,children:[e.jsx(T,{control:e.jsx(k,{value:P.PI_COLLECTION_AND_USE_REQUIRED,checked:d.includes(P.PI_COLLECTION_AND_USE_REQUIRED),onChange:i,sx:{py:0}}),label:e.jsx(h,{variant:"body",children:"[필수] 개인정보 수집/이용"})}),e.jsx(O,{sx:{py:0},variant:"text",onClick:()=>{var C;return I("[필수] 개인정보 수집/이용",(C=n==null?void 0:n.pi_collection_and_use_required.contents)!=null?C:"")},children:"보기"})]})})]}),e.jsx(ae,{isOpen:x,handleClose:_,termContent:String(l),termTitle:p})]})}const ye=n=>t.object({memberId:t.string().min(1,{message:"필수 입력값 입니다."}).regex(/^[a-zA-Z0-9]+$/,{message:"아이디는 영문, 숫자만 입력 가능합니다"}),memberName:t.string().min(1,{message:"필수 입력값 입니다."}),email:t.string().min(1,{message:"필수 입력값 입니다."}).regex(/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/,{message:"올바른 이메일 형식이 아닙니다."}),mobileNo:t.string().min(1,{message:"휴대폰 인증을 진행해주세요."}),passwordForm:t.object({password:t.string({message:"필수 입력값입니다."}).min(1,{message:"필수 입력값 입니다."}).refine(s=>/^(?=.*[0-9])(?=.*[!@#$%^&*])[A-Za-z0-9!@#$%^&*]{8,20}$/.test(s!=null?s:""),{message:"비밀번호는 영문자,숫자,특수문자(!@#$%^&*)를 포함하여 8~20자로 입력해주세요."}),passwordConfirm:t.string()}).refine(s=>s.password===s.passwordConfirm,{message:"비밀번호가 일치하지 않습니다.",path:["passwordConfirm"]}),birthday:t.string().nullable().refine(s=>{if(!s)return!0;if(!/^(19|20)\d\d(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])$/.test(s))return!1;const o=M(s,"YYYYMMDD",!0);return!(!o.isValid()||o.format("YYYYMMDD")!==s)},{message:"올바른 생년월일 형식이 아닙니다."}).refine(s=>{if(!s)return!0;const o=M(s,"YYYYMMDD",!0),i=M();let f=i.diff(o,"year");const j=i.month()-o.month(),d=i.date()-o.date();return(j<0||j===0&&d<0)&&f--,f>=14},{message:"만 14세 이상만 가입이 가능합니다."}),sex:t.string().nullable(),address:t.string().nullable(),detailAddress:t.string().nullable(),zipCd:t.string().nullable(),directMailAgreed:t.boolean(),smsAgreed:t.boolean(),joinTermsAgreements:t.array(t.string()).refine(s=>s?n.every(o=>s.includes(o)):!1,{message:"필수 약관에 모두 동의해주세요."}),lastName:t.string().nullable(),firstName:t.string().nullable(),city:t.string().nullable(),businessName:t.string().nullable(),countryCd:t.string().nullable(),smsAuthKey:t.string().nullable(),pushNotificationAgreed:t.boolean().nullable(),additionalInfo:t.string().nullable(),nickname:t.string().nullable(),customTermsNos:t.array(t.string()).nullable(),state:t.string().nullable(),jibunDetailAddress:t.string().nullable(),certificated:t.boolean().nullable(),jibunAddress:t.string().nullable(),refundBank:t.string().nullable(),currentPassword:t.string().nullable(),refundBankDepositorName:t.string().nullable(),telephoneNo:t.string().nullable(),refundBankAccount:t.string().nullable()});function Oe(n){const s=le(),{createProfileAPI:o,getProfileMemberIdExistAPI:i,getProfileEmailExistAPI:f}=de(),j=me({mutationFn:a=>o(a),onSuccess:()=>{F("정상적으로 가입되었습니다.","success"),s(ue.LOGIN)},onError:()=>F("회원가입 도중 에러가 발생했습니다. 페이지를 새로고침 해주세요.","error")}),d=g.useMemo(()=>ye(n),[n]),x=ce({resolver:he(d),defaultValues:{memberId:void 0,memberName:"",email:"",mobileNo:"",birthday:"",sex:"",address:"",detailAddress:"",zipCd:"",directMailAgreed:!0,smsAgreed:!0,passwordForm:{password:void 0,passwordConfirm:void 0},joinTermsAgreements:[],lastName:null,firstName:null,city:null,businessName:null,countryCd:null,smsAuthKey:null,pushNotificationAgreed:null,additionalInfo:null,nickname:null,customTermsNos:null,state:null,jibunDetailAddress:null,certificated:null,jibunAddress:null,refundBank:null,currentPassword:null,refundBankDepositorName:null,telephoneNo:null,refundBankAccount:null}}),{watch:b,setError:l,clearErrors:c,trigger:p}=x,N=g.useCallback(Z(async(a,u,E)=>{if(a)try{(await i(a)).exist?u("memberId",{type:"manual",message:"이미 사용중인 아이디입니다."}):E("memberId")}catch(S){u("memberId",{type:"manual",message:"아이디 중복 확인 중 오류가 발생했습니다."})}},200),[i]),I=g.useCallback(Z(async(a,u,E)=>{if(a)try{(await f(a)).exist?u("email",{type:"manual",message:"이미 사용중인 이메일입니다."}):E("email")}catch(S){u("email",{type:"manual",message:"이메일 중복 확인 중 오류가 발생했습니다."})}},200),[f]);g.useEffect(()=>{const a=b(async(u,{name:E})=>{E==="memberId"&&u.memberId&&await p("memberId")&&N(u.memberId,l,c),E==="email"&&u.email&&await p("email")&&I(u.email,l,c)});return()=>a.unsubscribe()},[b,p,N,I]);const _=async a=>(await i(a)).exist?(l("memberId",{type:"manual",message:"이미 사용중인 아이디입니다."}),!1):(c("memberId"),!0),m=async a=>(await f(a)).exist?(l("email",{type:"manual",message:"이미 사용중인 이메일입니다."}),!1):(c("email"),!0);return{methods:x,onSubmitAsync:async a=>{try{const u=a.memberId?await _(a.memberId):!0,E=a.email?await m(a.email):!0;if(u&&E){const{passwordForm:S,...D}=a;await j.mutateAsync({...D,password:S.password})}}catch(u){F("회원가입 도중 에러가 발생했습니다. 페이지를 새로고침 해주세요.","error")}}}}function Pe({requiredTerms:n,isPending:s}){var l;const o=n?Object.entries(n).filter(([c,p])=>p.used===!0).map(([c])=>c.toUpperCase()):[],{methods:i,onSubmitAsync:f}=Oe(o),{register:j,control:d,handleSubmit:x,formState:{errors:b}}=i;return e.jsx(xe,{...i,children:e.jsx("form",{onSubmit:x(f),children:e.jsxs(r,{container:!0,rowSpacing:1,children:[e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(w,{variant:"body",fontWeight:500,children:"아이디"})}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(y,{...j("memberId"),error:!!b.memberId,helperText:(l=b.memberId)==null?void 0:l.message,size:"small",fullWidth:!0,variant:"outlined"})}),e.jsx(Ie,{}),e.jsx(Ae,{}),e.jsx(_e,{}),e.jsx(Se,{requiredTerms:n,joinTermsAgreements:o}),e.jsx(r,{item:!0,desktop:12,textAlign:"left",children:e.jsx(h,{variant:"body",children:"이벤트 수신 동의 안내문구"})}),e.jsx(r,{item:!0,desktop:12,mobile:12,px:1,children:e.jsx(X,{children:e.jsx(V,{name:"directMailAgreed",control:d,render:({field:{value:c,...p}})=>e.jsx(T,{control:e.jsx(k,{...p,checked:c,sx:{py:0}}),label:e.jsx(h,{variant:"body",children:"[선택] 이메일 수신 동의"})})})})}),e.jsx(r,{item:!0,desktop:12,mobile:12,px:1,children:e.jsx(X,{children:e.jsx(V,{name:"smsAgreed",control:d,render:({field:{value:c,...p}})=>e.jsx(T,{control:e.jsx(k,{...p,checked:c,sx:{py:0}}),label:e.jsx(h,{variant:"body",children:"[선택] SMS 수신 동의"})})})})}),e.jsx(r,{item:!0,desktop:12,textAlign:"left",mt:1,mb:3,children:e.jsx(h,{variant:"body",children:"※ 고객 상담 등 원활한 정보 제공을 위해 이메일 주소 및 휴대폰 번호는 정확히 기입하셔야 합니다."})}),e.jsx(r,{item:!0,desktop:12,mobile:12,children:e.jsx(O,{fullWidth:!0,type:"submit",variant:"contained",color:"black",sx:{py:1.5},children:e.jsx(h,{variant:"button",children:"회원가입"})})})]})})})}function ve(){const{data:n,isPending:s}=be(pe.options);return e.jsxs(ge,{maxWidth:600,gap:3,children:[e.jsx(r,{desktop:12,mobile:12,children:e.jsx(fe,{title:"회원가입"})}),e.jsx(r,{desktop:12,mobile:11,mx:"auto",children:e.jsx(Pe,{requiredTerms:n,isPending:s})})]})}export{ve as default};