1import{r as a,c as e,o as l,a3 as s,a4 as c,D as r,E as t,W as n,I as o,u as i,F as p,P as u,L as d,j as y,O as _,J as v,Y as k,M as m}from"./vue-vendor-Bw9FB4GB.js";import{u as f}from"./i18n-BHrxWlsI.js";import{l as w}from"./index-BQlCnue0.js";import{g,d as b,e as h}from"./subscription-DSJtz4FJ.js";import{_ as P,t as C,E as $,s as S,S as x,u as A}from"./index-CsrWnaU6.js";import{u as N}from"./useDevice-CG4K0oq9.js";import{g as O,a as D,f as j}from"./packDisplay-B4iX3oip.js";import"./auth0-1J-6ldl2.js";import"./utils-C7MzJQS2.js";const U={key:0,class:"pack-paywall__secondary-panel"},M={key:0,class:"pack-paywall__secondary-handle"},B=["src"],I={class:"secondary-offer-card"},T={class:"secondary-offer-card__name"},E={class:"secondary-offer-card__price"},q=["src"],F={class:"secondary-offer-card__progress-track"},K={class:"secondary-offer-card__countdown","aria-label":"Offer countdown"},L=["disabled"],G={class:"pack-paywall__secondary-title"},R={class:"secondary-retention__timer","aria-label":"Offer countdown"},V={class:"secondary-retention__status"},W=["src"],J={class:"secondary-retention__status-content"},z={class:"secondary-retention__progress-track"},H=["disabled"],Y={key:1,class:"pack-paywall__panel"},X=["src"],Z={class:"pack-paywall__hero"},Q={key:0,class:"pack-paywall__copy"},aa={key:1,class:"pack-paywall__copy"},ea={key:2,class:"pack-paywall__copy"},la={class:"pack-card"},sa={class:"pack-card__name"},ca={class:"pack-card__price-row"},ra={key:0,class:"pack-card__old-price"},ta={class:"pack-card__price"},na={class:"pack-paywall__benefits"},oa={class:"benefit"},ia=["src"],pa={class:"benefit"},ua=["src"],da=["disabled"],ya=P({__name:"PackPaywall",props:{balance:{type:Number,default:0},requiredCredits:{type:Number,default:4},pack:{type:Object,required:!0},experimentKey:{type:String,default:""},group:{type:String,default:""},pendingUploadState:{type:Object,default:null},isDebug:{type:Boolean,default:!1},title:{type:String,default:""},description:{type:String,default:""},secondaryOfferStage:{type:String,default:""},expiresAt:{type:Number,default:0}},emits:["close","confirm"],setup(P,{emit:ya}){const{isPC:_a}=N(),{t:va}=f(),ka=P,ma=ya,fa=a(!1),wa=a(Date.now());let ga,ba,ha=!1;const Pa=e(()=>ka.pack?.packageCode||""),Ca=e(()=>O(Pa.value)||O(ka.pack)),$a=e(()=>!!Ca.value),Sa=e(()=>{const a=String(Ca.value?.priceCurrency||"USD").toUpperCase();return D(a)}),xa=e(()=>Number(Ca.value?.priceAmount||0)/100),Aa=e(()=>`${Sa.value}${xa.value.toFixed(2)}`),Na=e(()=>Ca.value?.originalAmount?j(Ca.value.originalAmount,Ca.value.priceCurrency):""),Oa=e(()=>Ca.value?.savePercent||0),Da=e(()=>va("modal.packPaywall.packageName",{count:Ca.value?.creditsAmount||0})),ja=e(()=>Math.max(0,Number(ka.requiredCredits||0)-Number(ka.balance||0))),Ua=e(()=>Number(ka.balance||0)<=0),Ma=e(()=>ka.title||va(Ua.value?"modal.packPaywall.outOfCredits":"modal.packPaywall.notEnoughCredits")),Ba=e(()=>["intro","retention"].includes(ka.secondaryOfferStage)),Ia=e(()=>Math.max(0,Math.ceil((ka.expiresAt-wa.value)/1e3))),Ta=e(()=>{const a=Math.floor(Ia.value/60),e=Ia.value%60;return`${String(a).padStart(2,"0")}:${String(e).padStart(2,"0")}`}),Ea=e(()=>Ta.value.split(":")[0]),qa=e(()=>Ta.value.split(":")[1]),Fa=e(()=>Math.min(100,Math.max(0,Ia.value/180*100))),Ka=e(()=>Ba.value?`secondary_${ka.secondaryOfferStage}`:"primary"),La=e(()=>({paywall_type:Ka.value,package_code:Pa.value,price_amount:xa.value,price_currency:String(Ca.value?.priceCurrency||"usd").toLowerCase(),credits_amount:Number(Ca.value?.creditsAmount||0),required_credits:Number(ka.requiredCredits||0),balance:Number(ka.balance||0),experiment_key:ka.experimentKey,group:ka.group})),Ga=(a,e={})=>{C(a,{...La.value,...e})},Ra=(a={})=>{Ga("pack_paywall_close",a),ma("close",a)};l(()=>{Ga("pack_paywall_open"),Ba.value&&(ba=window.setInterval(()=>{wa.value=Date.now(),!ha&&ka.expiresAt>0&&wa.value>=ka.expiresAt&&(ha=!0,window.clearInterval(ba),Ra({expired:!0}))},1e3))}),s(()=>{ba&&window.clearInterval(ba)});const Va=async()=>{Ga("pack_paywall_checkout_start",{payment_method:"stripe_checkout"});const a=new URL(window.location.href);a.searchParams.delete("session_id"),a.searchParams.delete("cancel"),ka.pendingUploadState&&S(x.PEND
1ING_PACK_CHECKOUT_UPLOAD,{...ka.pendingUploadState,timestamp:Date.now(),packPaywallContext:La.value});const e=a.toString(),l=await h({successUrl:e,cancelUrl:e,packageCode:Pa.value});return!!l?.url&&(window.location.href=l.url,!0)},Wa=async()=>{await A().fetchBalance(),$.success(va("modal.packPaywall.creditsAdded")),Ga("pack_purchase_success",{payment_method:"saved_payment_method"}),ma("confirm",{purchased:!0,packageCode:Pa.value,experimentKey:ka.experimentKey,group:ka.group})},Ja=async()=>{if(!fa.value&&$a.value&&!ka.isDebug){fa.value=!0,Ga("pack_paywall_continue");try{const a=await g();if(a?.hasDefaultPaymentMethod){const a=await b({packageCode:Pa.value});return void(await(async a=>a?.success?(await Wa(),!0):a?.requiresAction?(async a=>{if(!a)return $.error(va("modal.packPaywall.paymentTryAnotherMethod")),!1;const e=await(ga||(ga=w("pk_live_51SJ7vmB2SdYRbjiHVi8FVE1uioccazDnPGXI6FaEmvRbaWd6xe41NuO9TuDnRky1sKzOqR7FcgcWsU6cvEx5MZn600x9I61ogl")),ga);if(!e)return $.error(va("modal.packPaywall.unableToLoadVerification")),!1;const{error:l,paymentIntent:s}=await e.confirmCardPayment(a);return l?($.error(va("modal.packPaywall.paymentVerificationFailed")),!1):"succeeded"===s?.status?(await Wa(),!0):($.error(va("modal.packPaywall.paymentTryAnotherMethod")),!1)})(a.clientSecret):!(!a?.requiresNewPaymentMethod||!(await Va()))||($.error(va("modal.packPaywall.paymentTryAnotherMethod")),!1))(a))}await Va()||$.error(va("modal.packPaywall.unableToStartCheckout"))}catch(a){if(console.error("è´ä¹° pack 失败:",a),419===a?.code)return void Ra();$.error(va("modal.packPaywall.paymentFailed"))}finally{fa.value=!1}}};return(a,e)=>{const l=c("i18n-t");return t(),r("div",{class:m(["pack-paywall",{"pack-paywall--secondary-offer":Ba.value}]),onClick:e[5]||(e[5]=k(a=>Ra(),["self"]))},[Ba.value?(t(),r("div",U,[i(_a)?n("",!0):(t(),r("div",M)),o("div",{class:"pack-paywall__close",onClick:e[0]||(e[0]=a=>Ra())},[o("img",{src:i(_a)?a.$cdn("close"):a.$cdn("close_grey"),class:"pack-paywall__close-icon"},null,8,B)]),"intro"===P.secondaryOfferStage?(t(),r(p,{key:1},[e[9]||(e[9]=o("h2",{class:"pack-paywall__secondary-title"},"Before you go -",-1)),e[10]||(e[10]=o("p",{class:"pack-paywall__secondary-copy"},"Just need a couple images? Get a smaller pack.",-1)),o("div",I,[e[8]||(e[8]=o("span",{class:"secondary-offer-card__badge"},"Lowest price",-1)),o("p",T,u(Da.value),1),o("p",E,u(Aa.value),1),o("div",{class:"secondary-offer-card__timer",style:d({backgroundImage:`url(${a.$cdn("Bikini/secondary/bg")})`})},[o("img",{src:a.$cdn("Bikini/secondary/icon"),alt:""},null,8,q),e[7]||(e[7]=o("span",{class:"secondary-offer-card__timer-label"},"This offer disappears in",-1)),o("span",F,[o("span",{class:"secondary-offer-card__progress-fill",style:d({width:`${Fa.value}%`})},null,4)]),o("strong",K,[o("span",null,u(Ea.value),1),e[6]||(e[6]=o("i",null,":",-1)),o("span",null,u(qa.value),1)])],4)]),o("button",{class:"secondary-offer__continue",type:"button",disabled:fa.value,onClick:Ja},u(fa.value?"Processing...":`Continue · ${Aa.value}`),9,L),o("button",{class:"secondary-offer__skip",type:"button",onClick:e[1]||(e[1]=a=>Ra())},"No thanks")],64)):(t(),r(p,{key:2},[o("span",G,"Give up your "+u(Aa.value)+" pack?",1),e[13]||(e[13]=o("p",{class:"pack-paywall__secondary-copy"},"Almost gone - buy now and finish your image.",-1)),o("div",R,[o("span",null,u(Ea.value),1),e[11]||(e[11]=o("i",null,":",-1)),o("span",null,u(qa.value),1)]),o("div",V,[o("img",{class:"secondary-retention__status-icon",src:a.$cdn("Bikini/secondary/icon"),alt:""},null,8,W),o("div",J,[e[12]||(e[12]=o("div",{class:"secondary-retention__expiry"},[o("span",null,"Then it's gone for good")],-1)),o("div",z,[o("span",{class:"secondary-retention__progress-fill",style:d({width:`${Fa.value}%`})},null,4)])])]),o("button",{class:"secondary-offer__continue",type:"button",disabled:fa.value,onClick:Ja},u(fa.value?"Processing...":`Buy now · ${Aa.value}`),9,H),o("button",{class:"secondary-offer__skip",type:"button",onClick:e[2]||(e[2]=a=>Ra())},"Give it up")],64))])):(t(),r("div",Y,[o("div",{class:"pack-paywall__close",onClick:e[3]||(e[3]=a=>Ra())},[o("img",{src:i(_a)?a.$cdn("close"):a.$cdn("close_grey"),class:"pack-
1paywall__close-icon"},null,8,X)]),o("div",Z,[o("p",null,u(Ma.value),1)]),P.description?(t(),r("p",Q,u(P.description),1)):Ua.value?(t(),r("p",aa,u(a.$t("modal.packPaywall.topUpToKeepCreating")),1)):(t(),r("p",ea,[y(l,{keypath:"modal.packPaywall.shortCredits",tag:"span"},{balance:v(()=>[o("strong",null,u(P.balance),1)]),short:v(()=>[o("strong",null,u(ja.value),1)]),_:1}),e[14]||(e[14]=o("br",null,null,-1)),_(" "+u(a.$t("modal.packPaywall.topUpToUnlock")),1)])),o("div",la,[o("div",sa,u(Da.value),1),o("div",ca,[Na.value?(t(),r("span",ra,u(Na.value),1)):n("",!0),o("span",ta,u(Aa.value),1)]),Oa.value?(t(),r("div",{key:0,class:"save-badge",style:d({backgroundImage:`url(${a.$cdn("Bikini/discount")})`})},[o("span",null,u(a.$t("modal.packPaywall.todayOnlySave",{percent:Oa.value})),1)],4)):n("",!0)]),o("div",na,[o("div",oa,[o("img",{src:a.$cdn("Bikini/PhotosStayPrivate2"),class:"benefit__icon"},null,8,ia),o("span",null,u(a.$t("modal.packPaywall.photosStayPrivate")),1)]),e[15]||(e[15]=o("span",{class:"pack-paywall__divider"},null,-1)),o("div",pa,[o("img",{src:a.$cdn("Bikini/NeverExpires"),class:"benefit__icon"},null,8,ua),o("span",null,u(a.$t("modal.packPaywall.neverExpires")),1)])]),o("button",{class:"pack-paywall__continue",type:"button",disabled:fa.value,onClick:Ja},u(fa.value?a.$t("modal.packPaywall.processing"):a.$t("modal.packPaywall.continueWithPrice",{price:Aa.value})),9,da),o("button",{class:"pack-paywall__skip",type:"button",onClick:e[4]||(e[4]=a=>Ra())},u(a.$t("modal.packPaywall.skipDiscount")),1)]))],2)}}},[["__scopeId","data-v-78c7f3c7"]]);export{ya as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.