import{j as a,r as P}from"./vendor-react-C630P38J.js";import{cf as N,C as g,c as M,Q as I,bj as _,bt as $,d as E,aa as U,H as k,bk as L,dt as V,$ as K,aJ as Y,aK as q,ak as F,ah as O,ar as Q,cB as z}from"./feature-order-CyMOR5ND.js";import{u as p}from"./vendor-i18n-D_F5k183.js";import{d as v,i as S}from"./vendor-utils-Cb1MAKRV.js";import{B as A}from"./useMyReviewableList-fnDTscqv.js";import{E as y,d as G,o as H,p as W,j as J,m as X}from"./vendor-fxts-IS4CCBC4.js";import{u as Z}from"./vendor-query-BjC2S-sR.js";import{u as ee}from"./vendor-rhf-CXRF5ML7.js";const se=(e,s)=>{switch(e){case"PC":return s("PC");case"MOBILE_WEB":return s("모바일웹");case"MOBILE_APP":return s("앱");default:return null}},ae=(e,s)=>{const t=e.map(n=>se(n,s)).filter(n=>!!n).join(", ");return t?`${s("사용 가능 플랫폼")} - ${t}`:""},te=(e,s)=>{if(e.variant==="mypage"){const{coupon:n}=e,o=ae(n.usablePlatforms,s);return{additionalDetailLabels:o?[o]:[],cartCouponUsable:n.cartCouponUsable,couponName:n.couponName,couponType:n.couponType,discountAmt:n.discountAmt,discountRate:n.discountRate,issueYmdt:n.issueYmdt,maxDiscountAmt:n.maxDiscountAmt,maxSalePrice:n.maxSalePrice,minSalePrice:n.minSalePrice,productCouponUsable:n.productCouponUsable,skipsAccumulation:n.skipsAccumulation,useDays:-1,useEndYmdt:n.useEndYmdt}}const{coupon:t}=e;return{additionalDetailLabels:[],cartCouponUsable:t.discountInfo.useCartCoupon,couponName:t.couponName,couponType:t.couponType,discountAmt:t.discountInfo.discountAmt,discountRate:t.discountInfo.discountRate,maxDiscountAmt:t.discountInfo.maxDiscountAmt,maxSalePrice:t.useConstraint.maxSalePrice,minSalePrice:t.useConstraint.minSalePrice,productCouponUsable:t.discountInfo.useProductCoupon,skipsAccumulation:t.discountInfo.skippedAccumulationAmt,useDays:t.useConstraint.useDays,useEndYmdt:t.useConstraint.useEndYmdt}},ne=(e,s)=>e.discountAmt?`${N(e.discountAmt).format()} 할인`:e.maxDiscountAmt>0?`${e.discountRate}% 할인 (${s("최대")} ${N(e.maxDiscountAmt).format()})`:`${e.discountRate}% 할인`,oe=(e,s)=>{switch(e){case"PRODUCT":return s("상품 쿠폰");case"CART":return s("주문 쿠폰");case"CART_DELIVERY":return s("배송비 쿠폰");case"GIFT":return s("기프트 쿠폰");default:return""}},ie=(e,s)=>{const t=[];return e.couponType==="PRODUCT"&&!e.cartCouponUsable&&t.push(s("주문쿠폰 사용불가")),(e.couponType==="CART"||e.couponType==="CART_DELIVERY")&&!e.productCouponUsable&&t.push(s("상품쿠폰 사용불가")),e.skipsAccumulation&&t.push(s("적립금 사용 불가")),t},re=(e,s)=>e.minSalePrice?e.maxSalePrice?s("{{minSalePrice}} 이상 {{maxSalePrice}} 이하 구매시 사용 가능",{minSalePrice:g(e.minSalePrice).format(),maxSalePrice:g(e.maxSalePrice).format()}):s("{{minSalePrice}} 이상 구매시 사용 가능",{minSalePrice:g(e.minSalePrice).format()}):e.maxSalePrice?s("{{maxSalePrice}} 이하 구매시 사용 가능",{maxSalePrice:g(e.maxSalePrice).format()}):s("사용 제한없음"),le=(e,s)=>{if(e.useEndYmdt)return s("{{useEndYmdt}}까지 사용가능",{useEndYmdt:v(e.useEndYmdt).format("YYYY.MM.DD")});if(e.useDays===-1)return s("제한없음");if(e.useDays===31)return s("월말까지 사용가능");if(e.useDays===0)return s("당일만 사용가능");if(e.useDays&&e.useDays>0)return s("{{expireDate}}까지 사용 가능",{expireDate:v().add(e.useDays,"day").format("YYYY.MM.DD")})},ue=(e,s)=>{const t=e.issueYmdt?`${v(e.issueYmdt).format("YYYY.MM.DD")} 발급`:void 0,n=le(e,s);return[{id:"priceConstraint",values:[re(e,s)]},...t?[{id:"issueDate",values:[t]}]:[],...n?[{id:"dateConstraint",values:[n]}]:[],...ie(e,s).map(o=>({id:`restriction-${o}`,tone:"restriction",values:[o]})),...e.additionalDetailLabels.map(o=>({id:`additional-${o}`,values:[o]}))]},ce=(e,s)=>{const t=te(e,s);return{benefitLabel:ne(t,s),details:ue(t,s),title:t.couponName,typeLabel:oe(t.couponType,s)}};var de="piankq0",me="piankq1",pe="piankq2",Ce="piankq3",fe="piankq4",xe="piankq5",be="piankq6",ve="piankq7",he="piankq9",ge="piankqb",ye="piankqc",je="piankqd",De="piankqe",Se="piankqf",Pe="piankqg",Ne="piankqh",Ae="piankqi";const Ee=e=>{const{t:s}=p(),{actionSlot:t,className:n,disabled:o=!1,leftSlot:d,onSelect:l,overlayLabel:C}=e,{benefitLabel:f,details:c,title:m,typeLabel:j}=ce(e,s),x=!!l&&!o,b=!!t,D=u=>{!x||u.key!=="Enter"&&u.key!==" "||(u.preventDefault(),l==null||l())};return a.jsxs("li",{className:de,"data-has-action":b?"true":"false","data-disabled":o?"true":"false",children:[a.jsxs("div",{className:M(me,n),"data-has-action":b?"true":"false","data-disabled":o?"true":"false",children:[a.jsxs("div",{className:pe,"data-has-action":b?"true":"false","data-selectable":l?"true":"false",role:l?"button":void 0,tabIndex:x?0:l?-1:void 0,"aria-disabled":l?o:void 0,onClick:x?l:void 0,onKeyDown:D,children:[d&&a.jsx("div",{className:Ce,onClick:u=>{u.stopPropagation()},onKeyDown:u=>{u.stopPropagation()},children:d}),a.jsx("div",{className:fe,children:a.jsx("div",{className:xe,children:a.jsxs("div",{className:ve,children:[a.jsxs("div",{className:be,children:[a.jsx(A,{tone:"orange",variant:"soft",children:f}),a.jsx(A,{tone:"dark",children:j})]}),a.jsx("div",{className:he,children:a.jsx("h2",{className:ge,children:m})})]})})})]}),t&&a.jsx("div",{className:Ne,children:t}),C&&a.jsx("div",{className:Ae,children:a.jsx("span",{children:C})})]}),a.jsx("ul",{className:ye,children:c.map(u=>u.values.length===0?null:a.jsx("li",{className:je,children:a.jsx("ul",{className:De,children:u.values.map(i=>a.jsx("li",{children:a.jsx("p",{className:u.tone==="restriction"?Pe:Se,children:i})},i))})},u.id))})]})};var ke="_1bhamr40",Le="_1bhamr41";const Ye=({coupon:e,onCouponDownloadClick:s})=>{const t=v().isAfter(e.dateInfo.issueEndYmdt),n=e.couponStatus.issuableCnt===0,o=!t&&!n&&e.downloadable;if(e.imageUrl)return a.jsx("li",{className:ke,children:a.jsx(I,{src:e.imageUrl,style:{cursor:o?"pointer":"not-allowed"},onClick:()=>{o&&s(e.couponNo)}})});const d={...e,useConstraint:{...e.useConstraint,limitPayTypes:[e.useConstraint.limitPayType]}};return a.jsx(Ee,{coupon:d,variant:"download",disabled:!o,actionSlot:a.jsx("button",{type:"button",className:Le,disabled:!o,onClick:()=>s(e.couponNo),children:a.jsx(_,{size:24})})})};var qe="_1bqs31t0",we="_1bqs31t1",Te="_1bqs31t2",Re="_1bqs31t3",Be="_1bqs31t4",Me="_1bqs31t5",Ie="_1bqs31t6";const w=({eventCouponDownloadData:e})=>{const{t:s}=p(),{couponInfo:t,onCouponDownloadClick:n}=e;return a.jsxs("div",{className:qe,children:[a.jsx("div",{className:we,children:a.jsx("ul",{className:Te,children:t.coupons.map(o=>a.jsx(Ye,{coupon:o,onCouponDownloadClick:n},o.couponNo))})}),a.jsx($,{type:"single",rootClassName:Re,triggerClassName:Be,contentClassName:Me,items:[{value:"coupon-guide",header:a.jsx("span",{children:s("쿠폰 유의사항 보기")}),content:a.jsx("div",{className:Ie,dangerouslySetInnerHTML:{__html:t.guideImageUrl}})}]})]})},T=({eventCouponDownloadData:e})=>{const{t:s}=p();return a.jsx(E,{tone:"dark",disabled:!e.isAllCouponDownloadable||e.isIssueByEventNoPending,onClick:e.onAllCouponDownloadClick,children:a.jsx("span",{children:s(e.couponStatusTitle)})})},R=({close:e,couponInfo:s,eventNo:t})=>{const n=U(),{t:o}=p(),{openDialog:d,openAsyncDialog:l,openLoginDialog:C}=k(),f=Z(),{issue:{mutate:c},issueByEventNo:{mutate:m,isPending:j}}=L(),x=P.useMemo(()=>y(i=>i.downloadable,s.coupons),[s.coupons]),b=P.useMemo(()=>{const i=G("coupons",s);return y(r=>v().isAfter(r.dateInfo.issueEndYmdt),i)?"쿠폰 발급 기간 종료":y(r=>r.couponStatus.issuableCnt===0,i)?"쿠폰 수량 소진":y(r=>!r.downloadable,i)?"쿠폰 받기 완료":"쿠폰 모두 받기"},[s]),D=i=>{if(!n){C();return}c({couponNo:i},{onSuccess:async({data:r})=>{await l({message:o("{{couponName}} 쿠폰을 발급받았습니다.",{couponName:r.couponName})}),f.invalidateQueries({predicate:h=>H(h.queryKey[0],[...V.all,...K.all]),refetchType:"all"})},onError:r=>{var h;d({message:S(r)?(h=r.response)==null?void 0:h.data.message:"알 수 없는 오류가 발생했습니다."})}})},u=()=>{if(!n){C();return}m({eventNo:t},{onSuccess:async({data:i})=>{await l({message:i.issuedCoupons.length>0?"쿠폰이 발급됐어요.
마이페이지>쿠폰에서 확인하세요.":"쿠폰 발급에 실패했습니다.",description:i.issueFailCoupons.length>0?``:""}),e()},onError:i=>{var r;d({message:S(i)?(r=i.response)==null?void 0:r.data.message:"알 수 없는 오류가 발생했습니다."})}})};return{couponInfo:s,couponStatusTitle:b,isAllCouponDownloadable:x,isCouponSectionVisible:s.coupons.length>0,isIssueByEventNoPending:j,onAllCouponDownloadClick:u,onCouponDownloadClick:D}},He=({couponInfo:e,eventNo:s,...t})=>{const{t:n}=p(),o=R({close:t.close,couponInfo:e,eventNo:s});return o.isCouponSectionVisible?a.jsx(Y,{...t,type:"fullscreen",title:n("쿠폰"),footerButtonList:[a.jsx(T,{eventCouponDownloadData:o})],children:a.jsx(w,{eventCouponDownloadData:o})}):null},We=({couponInfo:e,eventNo:s,...t})=>{const{t:n}=p(),o=R({close:t.close,couponInfo:e,eventNo:s});return o.isCouponSectionVisible?a.jsx(q,{...t,title:n("쿠폰"),footerButtonList:[a.jsx(T,{eventCouponDownloadData:o})],children:a.jsx(w,{eventCouponDownloadData:o})}):null};var _e="_799ru30",$e="_799ru31";const B=()=>{const{t:e}=p(),{openDialog:s}=k(),{handleSubmit:t,register:n,formState:{errors:o}}=ee({defaultValues:{promotionCode:""}}),{issueByPromotionCode:{mutate:d,isPending:l}}=L(),C=t(async({promotionCode:f})=>{d({promotionCode:f},{onSuccess:c=>{var m;(m=c==null?void 0:c.data)!=null&&m.couponIssueNo&&s({message:e("쿠폰이 발급되었습니다")})},onError:c=>{var m;s({message:S(c)?(m=c.response)==null?void 0:m.data.message:e("알 수 없는 오류가 발생했습니다.")})}})});return a.jsxs("form",{className:_e,onSubmit:C,children:[a.jsxs(F,{children:[a.jsx(O,{id:"promotionCode",placeholder:e("쿠폰 번호를 입력해주세요."),...n("promotionCode",{required:e("쿠폰 번호를 입력해주세요.")})}),a.jsx(Q,{name:"promotionCode",errors:o}),a.jsx(z,{children:e("소지하신 쿠폰에 기재된 인증번호를 입력해 주세요.")})]}),a.jsx("div",{className:$e,children:a.jsx(E,{tone:"dark",type:"submit",disabled:l,children:e("등록")})})]})},Je=e=>a.jsx(Y,{...e,children:a.jsx(B,{})}),Xe=e=>{const{t:s}=p();return a.jsx(q,{...e,isMobile:!1,title:s("쿠폰등록"),children:a.jsx(B,{})})};export{Je as C,He as E,Xe as a,Ee as b,We as c};