|
1
|
|
-import{r as d,e as v,o as u,a as s,c as _,w as a,u as g,b,d as c,F as U,g as Z,k as be,h as _e,i as fe,j as he,t as m,f as h,Z as F,S as ge,E as ye,n as ve,R as we}from"./chunks/vue.esm-bundler.js?ver=1.6.1";import{T as Se,_ as Ce,B as ke}from"./chunks/Badge.js?ver=1.6.1";import{P as Re,_ as $e}from"./chunks/Empty.js?ver=1.6.1";import{t}from"./chunks/Translator.js?ver=1.6.1";import{d as Te,S as Be,_ as ie,b as Pe,c as Fe,a as Le,A as Ve}from"./chunks/Activity.js?ver=1.6.1";import{_ as J}from"./chunks/_plugin-vue_export-helper.js?ver=1.6.1";import{ae as Ee,cr as De,cn as Me,p as se,u as Ne,cs as Ae,ct as Oe,d as E,r as xe,E as $,b as Ie}from"./chunks/index.js?ver=1.6.1";import{C as T,a as B,b as P}from"./chunks/CardBody.js?ver=1.6.1";import{a as ne,e as Ue,L as He,d as ze,f as Ye}from"./chunks/OrderCustomerInformation.js?ver=1.6.1";import{S as le}from"./chunks/Str.js?ver=1.6.1";import{p as je}from"./chunks/UserCan.js?ver=1.6.1";import{_ as ae}from"./chunks/DynamicIcon.js?ver=1.6.1";import{n as H}from"./chunks/Notify.js?ver=1.6.1";import{_ as qe}from"./chunks/NotFound.js?ver=1.6.1";import{A as Q}from"./chunks/Arr.js?ver=1.6.1";import{g as We}from"./chunks/common.js?ver=1.6.1";import"./chunks/Model.js?ver=1.6.1";import"./chunks/Rest.js?ver=1.6.1";import"./chunks/vue-router.js?ver=1.6.1";import"./chunks/Url.js?ver=1.6.1";import"./chunks/dayjs.min.js?ver=1.6.1";import"./chunks/timezone.js?ver=1.6.1";import"./chunks/index3.js?ver=1.6.1";import"./chunks/IconButton.js?ver=1.6.1";import"./chunks/Utils.js?ver=1.6.1";import"./chunks/TransitionAccordion.js?ver=1.6.1";import"./chunks/CurrencyFormatter.js?ver=1.6.1";import"./chunks/BundleProducts.js?ver=1.6.1";import"./chunks/Asset.js?ver=1.6.1";import"./chunks/AddressComponent2.js?ver=1.6.1";import"./chunks/Animation.js?ver=1.6.1";import"./chunks/productService.js?ver=1.6.1";const Ge={class:"fct-subscriptions-route-wrap"},Qe=Object.assign({name:"SubscriptionsRoute"},{__name:"SubscriptionsRoute",setup(e){return(i,l)=>{const r=d("router-view");return u(),v("div",Ge,[s(r)])}}});class Ze extends Se{getTabs(){return{all:t("All"),active:t("Active"),trialing:t("Trialing"),pending:t("Pending"),intended:t("Intended"),expired:t("Expired"),canceled:t("Canceled")}}getToggleableColumns(){return[{label:t("Order ID"),value:"order_id"},{label:t("Next Billing Date"),value:"next_billing_date"},{label:t("Collection Method"),value:"collection_method"},{label:t("Bills Count"),value:"bills_count"},{label:t("Customer"),value:"customer"},{label:t("Payment Method"),value:"payment_method"}]}getSortableColumns(){return[{label:t("Subscription ID"),value:"id"},{label:t("Next Billing Date"),value:"next_billing_date"},{label:t("Bills Count"),value:"bill_count"},{label:t("Created At"),value:"created_at"},{label:t("Status"),value:"status"}]}getSearchHint(){return t("by id, order id, status, payment method, customer name, or product.")}getFetchUrl(){return"subscriptions"}parseResponse(i){return i.data}getTableName(){return"subscriptions"}with(){return["admin_subscription_list"]}}function Je(e){return Ze.init(e)}const Ke={class:"table-cell"},Xe={class:"table-cell"},et={class:"table-cell"},tt={class:"table-cell"},st={class:"table-cell"},it={class:"table-cell"},nt={class:"table-cell"},lt={class:"table-cell"},at={class:"table-cell"},ot={class:"table-cell"},rt={class:"table-cell"},ct={__name:"SubscriptionsLoader",props:{nextPageCount:{type:Number,default:0},subscriptionTable:{type:Object,default:()=>({})}},setup(e){const i=e,l=Array.from({length:i.nextPageCount},(r,n)=>n+1);return(r,n)=>{const o=d("el-table-column"),p=d("el-skeleton-item"),w=d("el-table"),C=d("el-skeleton");return u(),_(C,{animated:""},{template:a(()=>[s(w,{data:g(l),class:"w-full compact-table responsive"},{empty:a(()=>n[0]||(n[0]=[])),default:a(()=>[b("",!0),s(o,{label:r.$t("ID"),width:"100"},{default:a(()=>[c("div",Ke,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),s(o,{label:r.$t("Customer"),width:"150"},{default:a(()=>[c("div",Xe,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),s(o,{label:r.$t("Product"),width:"360","show-overflow-tooltip":""},{default:a(()=>[c("div",et,[s(p,{variant:"p",class:"w-3/5"})])]),_:1},8,["label"]),s(o,{label:r.$t("Status"),width:"120"},{default:a(()=>[c("div",tt,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),s(o,{label:r.$t("Billing"),width:"230"},{default:a(()=>[c("div",st,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),s(o,{label:r.$t("Created At"),width:"130"},{default:a(()=>[c("div",it,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),e.subscriptionTable.data.columns.indexOf("next_billing_date")!==-1?(u(),_(o,{key:1,label:r.$t("Next Billing Date"),width:"160"},{default:a(()=>[c("div",nt,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):b("",!0),e.subscriptionTable.data.columns.indexOf("collection_method")!==-1?(u(),_(o,{key:2,label:r.$t("Collection Method"),width:"160"},{default:a(()=>[c("div",lt,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):b("",!0),e.subscriptionTable.data.columns.indexOf("bills_count")!==-1?(u(),_(o,{key:3,label:r.$t("Bills Count"),width:"100"},{default:a(()=>[c("div",at,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):b("",!0),e.subscriptionTable.data.columns.indexOf("payment_method")!==-1?(u(),_(o,{key:4,label:r.$t("Payment Method"),width:"150"},{default:a(()=>[c("div",ot,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):b("",!0),e.subscriptionTable.data.columns.indexOf("order_id")!==-1?(u(),_(o,{key:5,label:r.$t("Order ID"),width:"100"},{default:a(()=>[c("div",rt,[s(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):b("",!0)]),_:1},8,["data"])]),_:1})}}},dt={},ut={class:"px-4 py-3"},mt={class:"grid grid-cols-3 gap-5 mt-5"};function pt(e,i){const l=d("el-skeleton-item"),r=d("el-skeleton");return u(),_(r,{animated:""},{template:a(()=>[c("div",ut,[(u(),v(U,null,Z(2,n=>c("div",{key:n,class:"flex items-center justify-between mb-3"},[s(l,{varient:"p",class:"w-1/2"}),s(l,{varient:"p",class:"w-[100px]"})])),64)),c("div",mt,[(u(),v(U,null,Z(3,n=>c("div",{key:n},[s(l,{varient:"p",class:"w-1/2"}),s(l,{varient:"p",class:"w-[100px]"})])),64))])])]),_:1})}const bt=J(dt,[["render",pt]]),_t={class:"fct-all-subscriptions-page fct-layout-width"},ft={class:"fct-all-subscriptions-wrap"},ht={key:1},gt={__name:"AllSubscriptions",setup(e){const i=Je({instance:be()}),l=_e(!1),r=()=>{l.value=window.innerWidth<768};return fe(()=>{r(),window.addEventListener("resize",r)}),he(()=>{window.removeEventListener("resize",r)}),(n,o)=>(u(),v("div",_t,[s(Re,{title:n.$t("Subscriptions")},null,8,["title"]),c("div",ft,[s(Ce,{table:g(i),classicTabStyle:!0,"has-mobile-slot":!0},{mobile:a(()=>[g(i).isLoading()?(u(),_(bt,{key:0})):b("",!0),g(i).isLoading()?b("",!0):(u(),_(Be,{key:1,subscriptions:g(i).getTableData(),columns:g(i).data.columns},null,8,["subscriptions","columns"]))]),default:a(()=>[g(i).isLoading()?(u(),_(ct,{key:0,subscriptionTable:g(i),"next-page-count":g(i).nextPageCount},null,8,["subscriptionTable","next-page-count"])):(u(),v("div",ht,[s(Te,{subscriptions:g(i).getTableData(),columns:g(i).data.columns},null,8,["subscriptions","columns"])]))]),_:1},8,["table"])])]))}},yt={class:"dialog-footer"},vt={name:"CancelSubscription",props:["subscription","orderId","modelValue"],data(){return{cancelReason:"customer_request",cancelling:!1,otherReason:""}},computed:{updatedModelValue:{get(){return this.modelValue},set(e){this.modelValue=e}},otherReasonError(){return this.cancelReason==="other"&&this.otherReason.trim()===""?t("Please enter a reason"):""}},methods:{cancelSubscription(){if(this.cancelling=!0,this.cancelReason==="other"){if(this.otherReason.trim()===""){this.$notify.error(t("Please enter a reason")),this.cancelling=!1;return}this.cancelReason=this.otherReason}this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/cancel`,{cancel_reason:this.cancelReason}).then(e=>{this.cancelling=!0,this.$notify({type:"success",title:t("Success"),message:t("Subscription canceled successfully")}),this.$emit("reload")}).catch(e=>{var i;this.cancelling=!0,e.status_code=="422"?H.validationErrors(e):H.error((i=e.data)==null?void 0:i.message)}).finally(()=>{this.cancelling=!1,this.cancelSubscriptionModal=!1})}}},wt=Object.assign(vt,{setup(e){return(i,l)=>{const r=d("el-option"),n=d("el-select"),o=d("el-form-item"),p=d("el-input"),w=d("el-form"),C=d("el-button"),S=d("el-dialog");return u(),_(S,{"model-value":i.updatedModelValue,loading:i.cancelling,title:g(t)("Cancel Subscription"),width:"500"},{footer:a(()=>[c("div",yt,[s(C,{onClick:l[2]||(l[2]=y=>i.$emit("close"))},{default:a(()=>[h(m(g(t)("Cancel")),1)]),_:1}),s(C,{loading:i.cancelling,type:"warning",onClick:i.cancelSubscription},{default:a(()=>[h(m(g(t)("Cancel Subscription")),1)]),_:1},8,["loading","onClick"])])]),default:a(()=>[s(w,{"label-position":"top"},{default:a(()=>[c("div",null,m(g(t)("Are you sure to cancel the subscription?")),1),l[3]||(l[3]=c("br",null,null,-1)),s(o,{label:g(t)("Cancellation reason"),required:""},{default:a(()=>[s(n,{modelValue:i.cancelReason,"onUpdate:modelValue":l[0]||(l[0]=y=>i.cancelReason=y)},{default:a(()=>[s(r,{label:g(t)("Refunded"),value:"refunded"},null,8,["label"]),s(r,{label:g(t)("Customer request"),value:"customer_request"},null,8,["label"]),s(r,{label:g(t)("Completed (EOT)"),value:"completed"},null,8,["label"]),s(r,{label:g(t)("Fraudulent"),value:"fraudulent"},null,8,["label"]),s(r,{label:g(t)("Other"),value:"other"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),i.cancelReason==="other"?(u(),_(o,{key:0,label:g(t)("Other Reason"),required:"",error:i.otherReasonError},{default:a(()=>[s(p,{modelValue:i.otherReason,"onUpdate:modelValue":l[1]||(l[1]=y=>i.otherReason=y)},null,8,["modelValue"])]),_:1},8,["label","error"])):b("",!0)]),_:1,__:[3]})]),_:1},8,["model-value","loading","title"])}}}),St={name:"SubscriptionDetails",components:{CancelSubscription:wt,ConvertedTime:ie,CopyToClipboard:ne,CardContainer:P,CardBody:B,CardHeader:T,DynamicIcon:ae,Refresh:xe,Delete:E,VideoPause:Oe,VideoPlay:Ae,Edit:Ne,Promotion:se,Document:Me,CreditCard:De,CircleClose:Ee},props:["subscription","orderId","reminderPermissions"],emits:["reload","fetchOrder"],data(){return{loadingState:{fetch:!1,pause:!1,resume:!1,cancel:!1,edit:!1,save:!1,sendReminder:!1,createRenewal:!1,skipRenewal:!1,chargeNow:!1},cancelSubscriptionModal:!1,editSubscriptionModal:!1,editForm:{recurring_total:0,bill_times:0,billing_interval:"monthly",status:"active",next_billing_date:""}}},computed:{Str(){return le},billTimesMin(){return 0},isStoreBilled(){var e;return["manual","system"].includes((e=this.subscription)==null?void 0:e.collection_method)},hasPendingRenewal(){var e,i;return this.isStoreBilled&&!!((i=(e=this.subscription)==null?void 0:e.permissions)!=null&&i.hasPendingRenewal)},isSystemSubscription(){var e;return((e=this.subscription)==null?void 0:e.collection_method)==="system"},skipBadgeTooltip(){var l;const e=(l=this.subscription)==null?void 0:l.last_skipped_period;if(!e)return t("An admin skipped the next billing period.");const i=e.actor_name||t("an admin");return e.reason?t("Skipped by %1$s. Billing resumes on the date shown. Reason: %2$s",i,e.reason):t("Skipped by %1$s. Billing resumes on the date shown.",i)},createRenewalLabel(){return this.isSystemSubscription?t("Charge Next Renewal Now"):t("Create Renewal Now")},createRenewalIcon(){return this.isSystemSubscription?"CreditCard":"Document"},billingTypeBadge(){var i;const e=(i=this.subscription)==null?void 0:i.collection_method;return e==="manual"?{label:t("Manual"),type:"warning",description:t("Customer must pay each renewal manually — no auto-charge.")}:e==="system"?{label:t("System"),type:"success",class:"fct-billing-badge--system",description:t("Auto-charged by the store on schedule, using the saved payment method.")}:{label:t("Automatic"),type:"success",description:t("Billed and managed entirely by the payment gateway.")}},chargeStateAlert(){var n;const e=(n=this.subscription)==null?void 0:n.system_charge_state;if(!e)return null;if(e.status==="processing")return{type:"info",title:t("Automatic charge processing"),description:t("The renewal charge was submitted and is awaiting confirmation from the payment provider.")};if(!e.last_error)return null;const i=e.attempts,l=e.max_attempts||e.attempts;let r;return e.next_retry_at?r=t("Attempt %1$s of %2$s failed: %3$s — next automatic retry: %4$s (GMT).",i,l,e.last_error,e.next_retry_at):e.exhausted==="yes"?r=t("Attempt %1$s of %2$s failed: %3$s — no further automatic retries, the customer must pay manually.",i,l,e.last_error):r=t("Attempt %1$s of %2$s failed: %3$s",i,l,e.last_error),{type:"warning",title:t("Automatic charge failed"),description:r}},permissions(){var r;const e=((r=this.subscription)==null?void 0:r.permissions)||{},i=je.resolve({permission:"subscriptions/manage"}),l=this.reminderPermissions||{};return{canFetch:i&&!!e.canFetch,canEdit:i&&!!e.canEdit,canPause:i&&!!e.canPause,canResume:i&&!!e.canResume,canAdminReactivate:i&&!!e.canAdminReactivate,canCancel:i&&!!e.canCancel,canCreateRenewal:i&&!!e.canCreateRenewal,canSkipRenewal:i&&!!e.canSkipRenewal,canChargeNow:i&&!!e.canChargeNow,canSendReminder:!!(l.canSendRenewal||l.canSendTrialEnd)}},reminderLabel(){return(this.reminderPermissions||{}).canSendTrialEnd?t("Send Trial End Reminder"):t("Send Renewal Reminder")},reminderEvent(){return(this.reminderPermissions||{}).canSendTrialEnd?"subscription_trial_end_reminder":"subscription_renewal_reminder"},paymentMethod(){var e;return((e=this.subscription)==null?void 0:e.current_payment_method)||""},showNextBillingDate(){var i;const e=(((i=this.subscription)==null?void 0:i.status)||"").toLowerCase();return e==="active"||e==="trialing"}},methods:{handleSubscriptionAction(e){e==="fetch_subscription"?this.confirmFetch():e==="edit_subscription"?this.confirmEdit():e==="pause_subscription"?this.confirmPause():e==="resume_subscription"?this.confirmResume():e==="reactivate_subscription"?this.confirmReactivate():e==="cancel_subscription"?this.confirmCancel():e==="send_reminder"?this.confirmSendReminder():e==="create_renewal"?this.confirmCreateRenewal():e==="skip_renewal"?this.confirmSkipRenewal():e==="charge_now"&&this.confirmChargeNow()},confirmFetch(){var e;!this.subscription.vendor_subscription_id&&((e=this.order)==null?void 0:e.payment_method)!=="offline_payment"||$.confirm(t("Fetch from remote and update the subscription?"),t("Warning"),{type:"warning",icon:F(E),cancelButtonText:t("Back"),confirmButtonText:t("Fetch subscription!"),beforeClose:async(i,l,r)=>{var n,o;if(i==="confirm")try{l.confirmButtonLoading=!0,this.loadingState.fetch=!0,await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/fetch`,{data:{vendor_charge_id:this.subscription.vendor_subscription_id}}),this.$notify({type:"success",title:t("Success"),message:t("Subscription fetched successfully")}),this.$emit("reload")}catch(p){this.$notify({type:"error",title:t("Error"),message:t(((o=(n=p.response)==null?void 0:n.data)==null?void 0:o.message)||"Failed to fetch subscription")})}finally{l.confirmButtonLoading=!1,this.loadingState.fetch=!1,r()}else r()}})},async confirmPause(){var e,i;if(this.isStoreBilled){this.loadingState.pause=!0;try{await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/pause`,{data:{reason:"Paused by admin"}}),this.$notify({type:"success",title:t("Success"),message:t("Subscription paused successfully")}),this.$emit("reload")}catch(l){this.$notify({type:"error",title:t("Error"),message:t(((i=(e=l.response)==null?void 0:e.data)==null?void 0:i.message)||"Failed to pause subscription")})}finally{this.loadingState.pause=!1}return}this.subscription.vendor_subscription_id&&$.prompt(t("Pause the active subscription?"),t("Warning"),{type:"warning",icon:F(E),inputPlaceholder:t("Enter reason for pausing"),inputPattern:/.+/,inputErrorMessage:t("Reason is required"),cancelButtonText:t("Back"),confirmButtonText:t("Pause Subscription!"),beforeClose:async(l,r,n)=>{var o,p;if(l==="confirm")try{r.confirmButtonLoading=!0,this.loadingState.pause=!0,await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/pause`,{data:{vendor_subscription_id:this.subscription.vendor_subscription_id,reason:r.inputValue}}),this.$notify({type:"success",title:t("Success"),message:t("Subscription paused successfully")}),this.$emit("reload")}catch(w){this.$notify({type:"error",title:t("Error"),message:t(((p=(o=w.response)==null?void 0:o.data)==null?void 0:p.message)||"Failed to pause subscription")})}finally{r.confirmButtonLoading=!1,this.loadingState.pause=!1,n()}else n()}})},async confirmResume(){var e,i;if(this.isStoreBilled){this.loadingState.resume=!0;try{await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/resume`,{data:{reason:"Resumed by admin"}}),this.$notify({type:"success",title:t("Success"),message:t("Subscription resumed successfully")}),this.$emit("reload")}catch(l){this.$notify({type:"error",title:t("Error"),message:t(((i=(e=l.response)==null?void 0:e.data)==null?void 0:i.message)||"Failed to resume subscription")})}finally{this.loadingState.resume=!1}return}this.subscription.vendor_subscription_id&&$.prompt(t("Resume the paused subscription?"),t("Warning"),{type:"warning",icon:F(E),inputPlaceholder:t("Enter reason for resuming"),inputPattern:/.+/,inputErrorMessage:t("Reason is required"),cancelButtonText:t("Back"),confirmButtonText:t("Resume Subscription!"),beforeClose:async(l,r,n)=>{var o,p;if(l==="confirm")try{r.confirmButtonLoading=!0,this.loadingState.resume=!0,await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/resume`,{data:{vendor_subscription_id:this.subscription.vendor_subscription_id,reason:r.inputValue}}),this.$notify({type:"success",title:t("Success"),message:t("Subscription resumed successfully")}),this.$emit("reload")}catch(w){this.$notify({type:"error",title:t("Error"),message:t(((p=(o=w.response)==null?void 0:o.data)==null?void 0:p.message)||"Failed to resume subscription")})}finally{r.confirmButtonLoading=!1,this.loadingState.resume=!1,n()}else n()}})},confirmEdit(){this.editForm={recurring_total:this.subscription.recurring_total/100,bill_times:this.subscription.bill_times,billing_interval:this.subscription.billing_interval||"monthly",status:this.subscription.status,next_billing_date:this.subscription.next_billing_date},this.editSubscriptionModal=!0},async confirmSaveSubscription(){var l,r,n;try{await $.confirm(t("Are you sure you want to update this subscription? This will affect all future renewals."),t("Confirm Update"),{type:"warning",icon:F(E),cancelButtonText:t("Cancel"),confirmButtonText:t("Yes, Update")})}catch{return}const e=((l=this.subscription)==null?void 0:l.bill_count)||0,i=this.editForm.bill_times;if(i>0&&i<e){this.$notify({type:"error",title:t("Validation Error"),message:t("Bill times cannot be less than the number of payments already made (%1$s).",e)});return}this.loadingState.save=!0;try{await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/update`,{data:this.editForm}),this.$notify({type:"success",title:t("Success"),message:t("Subscription updated successfully")}),this.editSubscriptionModal=!1,this.$emit("reload")}catch(o){this.$notify({type:"error",title:t("Error"),message:t(((n=(r=o.response)==null?void 0:r.data)==null?void 0:n.message)||"Failed to update subscription")})}finally{this.loadingState.save=!1}},confirmCancel(){this.cancelSubscriptionModal=!0},confirmSendReminder(){const e=this.reminderLabel;$.confirm(t("Are you sure you want to send this reminder email now?"),e,{type:"info",icon:F(se),cancelButtonText:t("Cancel"),confirmButtonText:t("Send Now"),beforeClose:async(i,l,r)=>{var n;if(i==="confirm")try{l.confirmButtonLoading=!0,this.loadingState.sendReminder=!0;const o=await this.$post("email-notification/send-manual-reminder",{event:this.reminderEvent,entity_id:this.subscription.id});this.$notify({type:"success",title:t("Success"),message:o.message||t("Reminder sent successfully")})}catch(o){this.$notify({type:"error",title:t("Error"),message:((n=o.data)==null?void 0:n.message)||t("Failed to send reminder")})}finally{l.confirmButtonLoading=!1,this.loadingState.sendReminder=!1,r()}else r()}})},async confirmCreateRenewal(){const e=this.isSystemSubscription;try{await $.confirm(e?t("Create the next renewal and charge it now? One attempt runs immediately; a decline falls back to automatic retries."):t("Create a renewal now for the upcoming billing period?"),e?t("Charge Next Renewal Now"):t("Create Renewal Now"),{type:e?"warning":"info",cancelButtonText:t("Cancel"),confirmButtonText:e?t("Create & Charge"):t("Create Renewal"),beforeClose:async(i,l,r)=>{var n,o;if(i==="confirm")try{l.confirmButtonLoading=!0,this.loadingState.createRenewal=!0;const p=await this.$post(`orders/${this.orderId}/subscriptions/${this.subscription.id}/create-renewal`),w=p==null?void 0:p.status;this.$notify({type:w==="failed"?"warning":"success",title:w==="failed"?t("Charge Failed"):t("Success"),message:t((p==null?void 0:p.message)||(e?"Charge attempt completed":"Renewal created successfully"))}),this.$emit("reload")}catch(p){this.$notify({type:"error",title:t("Error"),message:t(((o=(n=p.response)==null?void 0:n.data)==null?void 0:o.message)||(e?"Failed to charge the renewal":"Failed to create renewal"))})}finally{l.confirmButtonLoading=!1,this.loadingState.createRenewal=!1,r()}else r()}})}catch{}},async confirmChargeNow(){var l,r;const e=((r=(l=this.subscription)==null?void 0:l.billingInfo)==null?void 0:r.details)||{},i=e.brand&&e.last_4?t("%1$s ****%2$s",e.brand,e.last_4):t("the saved payment method");try{await $.confirm(t("Charge the open renewal order to %1$s now? One attempt will run immediately.",i),t("Charge Now"),{type:"warning",cancelButtonText:t("Cancel"),confirmButtonText:t("Charge Now"),beforeClose:async(n,o,p)=>{var w,C;if(n==="confirm")try{o.confirmButtonLoading=!0,this.loadingState.chargeNow=!0;const S=await this.$post(`orders/${this.orderId}/subscriptions/${this.subscription.id}/charge-now`),y=S==null?void 0:S.status;this.$notify({type:y==="failed"?"warning":"success",title:y==="failed"?t("Charge Failed"):t("Success"),message:t((S==null?void 0:S.message)||"Charge attempt completed")}),this.$emit("reload")}catch(S){this.$notify({type:"error",title:t("Error"),message:t(((C=(w=S.response)==null?void 0:w.data)==null?void 0:C.message)||"Failed to run the charge attempt")})}finally{o.confirmButtonLoading=!1,this.loadingState.chargeNow=!1,p()}else p()}})}catch{}},async confirmSkipRenewal(){const e=(()=>{const i=this.subscription;if(!(i!=null&&i.next_billing_date))return"";const l={daily:1,weekly:7,monthly:30,quarterly:90,half_yearly:182,yearly:365}[i.billing_interval]||30,r=new Date(String(i.next_billing_date).replace(" ","T"));if(isNaN(r.getTime()))return"";r.setDate(r.getDate()+l);const n=new Date;for(;r<=n;)r.setDate(r.getDate()+l);return r.toLocaleDateString()})();try{await $.prompt(e?t("Skip the next billing period? The following renewal order will be created around %1$s.",e):t("Skip the next billing period? The next_billing_date will advance one interval into the future."),t("Skip Next Period"),{type:"warning",cancelButtonText:t("Cancel"),confirmButtonText:t("Skip Next Period"),inputType:"textarea",inputPlaceholder:t("Reason (optional) — shown in the timeline and audit trail"),inputValidator:()=>!0,beforeClose:async(i,l,r)=>{var n,o;if(i==="confirm")try{l.confirmButtonLoading=!0,this.loadingState.skipRenewal=!0;const p=await this.$post(`orders/${this.orderId}/subscriptions/${this.subscription.id}/skip-renewal`,{reason:(l.inputValue||"").trim()});this.$notify({type:"success",title:t("Success"),message:p.message||t("Billing period skipped successfully")}),this.$emit("reload")}catch(p){this.$notify({type:"error",title:t("Error"),message:t(((o=(n=p.response)==null?void 0:n.data)==null?void 0:o.message)||"Failed to skip period")})}finally{l.confirmButtonLoading=!1,this.loadingState.skipRenewal=!1,r()}else r()}})}catch{}},confirmReactivate(){!this.subscription.vendor_subscription_id&&!this.isStoreBilled||$.confirm(t("Reactivate the canceled subscription?"),t("Warning"),{type:"warning",icon:F(E),cancelButtonText:t("Back"),confirmButtonText:t("Reactivate Subscription!"),beforeClose:async(e,i,l)=>{var r,n;if(e==="confirm")try{i.confirmButtonLoading=!0,this.loadingState.reactivate=!0,await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/reactivate`,{data:{vendor_subscription_id:this.subscription.vendor_subscription_id}}),this.$notify({type:"success",title:t("Success"),message:t("Subscription reactivated successfully")}),this.$emit("reload")}catch(o){this.$notify({type:"error",title:t("Error"),message:t(((n=(r=o.response)==null?void 0:r.data)==null?void 0:n.message)||"Failed to reactivate subscription")})}finally{i.confirmButtonLoading=!1,this.loadingState.reactivate=!1,l()}else l()}})}}},Ct={class:"fct-card-header-title is-small inline-flex items-center gap-2"},kt={class:"more-btn"},Rt={class:"text-red-600"},$t={class:"fct-single-subscription-pricing-table"},Tt={class:"fct-single-subscription-details"},Bt={class:"fct-single-subscription-details-label"},Pt=["innerHTML"],Ft={class:"fct-single-subscription-details-label"},Lt={class:"fct-single-subscription-details-value"},Vt={key:0},Et={key:1,class:"flex items-center gap-2.5"},Dt={class:"fct-single-subscription-details-label"},Mt={class:"fct-single-subscription-details-value"},Nt={key:0},At={class:"fct-single-subscription-details-label"},Ot={class:"fct-single-subscription-details-value"},xt={class:"fct-single-subscription-details-label"},It={class:"fct-single-subscription-details-value"},Ut={class:"fct-single-subscription-details-label"},Ht={class:"fct-single-subscription-details-value"},zt={key:1},Yt={class:"fct-single-subscription-details-label"},jt={class:"fct-single-subscription-details-value"},qt={key:1,class:"fct-vendor-ids"},Wt={key:0},Gt={class:"fct-vendor-ids__label"},Qt={class:"fct-vendor-ids__value"},Zt=["href"],Jt={key:1,class:"fct-vendor-ids__text"},Kt={key:1},Xt={class:"fct-vendor-ids__label"},es={class:"fct-vendor-ids__value"},ts={class:"fct-vendor-ids__text"},ss={class:"text-xs text-gray-500 mt-1"},is={key:0},ns={class:"dialog-footer"};function ls(e,i,l,r,n,o){const p=d("el-tag"),w=d("el-tooltip"),C=d("DynamicIcon"),S=d("Refresh"),y=d("el-icon"),k=d("el-dropdown-item"),z=d("Edit"),L=d("VideoPause"),A=d("VideoPlay"),Y=d("Delete"),V=d("Promotion"),j=d("CircleClose"),q=d("CreditCard"),O=d("el-dropdown-menu"),W=d("el-dropdown"),G=d("CardHeader"),D=d("el-alert"),M=d("ConvertedTime"),x=d("CopyToClipboard"),oe=d("CardBody"),re=d("CancelSubscription"),K=d("el-input-number"),N=d("el-form-item"),R=d("el-option"),X=d("el-select"),ce=d("el-date-picker"),de=d("el-form"),ee=d("el-button"),ue=d("el-dialog"),me=d("CardContainer"),pe=ge("loading");return u(),_(me,null,{default:a(()=>[s(G,{border_bottom:"",title_size:"small"},{title:a(()=>[c("h2",Ct,[h(m(e.$t("Subscription Details"))+" ",1),s(w,{content:o.billingTypeBadge.description,placement:"top-start",effect:"dark"},{default:a(()=>[s(p,{type:o.billingTypeBadge.type,class:ve(o.billingTypeBadge.class),size:"small",effect:"light",round:""},{default:a(()=>[h(m(o.billingTypeBadge.label),1)]),_:1},8,["type","class"])]),_:1},8,["content"])])]),default:a(()=>[o.permissions.canFetch||o.permissions.canEdit||o.permissions.canPause||o.permissions.canResume||o.permissions.canAdminReactivate||o.permissions.canCancel||o.permissions.canSendReminder||o.permissions.canCreateRenewal||o.permissions.canSkipRenewal||o.permissions.canChargeNow?(u(),_(W,{key:0,trigger:"click",class:"fct-more-option-wrap","popper-class":"fct-dropdown",onCommand:i[0]||(i[0]=f=>o.handleSubscriptionAction(f))},{dropdown:a(()=>[s(O,null,{default:a(()=>[o.permissions.canFetch?(u(),_(k,{key:0,command:"fetch_subscription"},{default:a(()=>[s(y,null,{default:a(()=>[s(S)]),_:1}),h(" "+m(e.$t("Sync from gateway -"))+" "+m(o.paymentMethod),1)]),_:1})):b("",!0),o.permissions.canEdit?(u(),_(k,{key:1,command:"edit_subscription"},{default:a(()=>[s(y,null,{default:a(()=>[s(z)]),_:1}),h(" "+m(e.$t("Edit Subscription")),1)]),_:1})):b("",!0),o.permissions.canPause?(u(),_(k,{key:2,command:"pause_subscription",disabled:n.loadingState.pause},{default:a(()=>[s(y,null,{default:a(()=>[s(L)]),_:1}),h(" "+m(e.$t("Pause Subscription")),1)]),_:1},8,["disabled"])):b("",!0),o.permissions.canResume?(u(),_(k,{key:3,command:"resume_subscription",disabled:n.loadingState.resume},{default:a(()=>[s(y,null,{default:a(()=>[s(A)]),_:1}),h(" "+m(e.$t("Resume Subscription")),1)]),_:1},8,["disabled"])):b("",!0),o.permissions.canAdminReactivate?(u(),_(k,{key:4,command:"reactivate_subscription",disabled:n.loadingState.reactivate},{default:a(()=>[s(y,null,{default:a(()=>[s(A)]),_:1}),h(" "+m(e.$t("Reactivate Subscription")),1)]),_:1},8,["disabled"])):b("",!0),o.permissions.canCancel?(u(),_(k,{key:5,command:"cancel_subscription"},{default:a(()=>[s(y,null,{default:a(()=>[s(Y)]),_:1}),c("span",Rt,m(e.$t("Cancel Subscription")),1)]),_:1})):b("",!0),o.permissions.canSendReminder?(u(),_(k,{key:6,command:"send_reminder",disabled:n.loadingState.sendReminder},{default:a(()=>[s(y,null,{default:a(()=>[s(V)]),_:1}),h(" "+m(o.reminderLabel),1)]),_:1},8,["disabled"])):b("",!0),o.permissions.canCreateRenewal?(u(),_(k,{key:7,command:"create_renewal",disabled:n.loadingState.createRenewal},{default:a(()=>[s(y,null,{default:a(()=>[(u(),_(ye(o.createRenewalIcon)))]),_:1}),h(" "+m(o.createRenewalLabel),1)]),_:1},8,["disabled"])):b("",!0),o.permissions.canSkipRenewal?(u(),_(k,{key:8,command:"skip_renewal",disabled:n.loadingState.skipRenewal},{default:a(()=>[s(y,null,{default:a(()=>[s(j)]),_:1}),h(" "+m(e.$t("Skip Next Period")),1)]),_:1},8,["disabled"])):b("",!0),o.permissions.canChargeNow?(u(),_(k,{key:9,command:"charge_now",disabled:n.loadingState.chargeNow},{default:a(()=>[s(y,null,{default:a(()=>[s(q)]),_:1}),h(" "+m(e.$t("Charge Now")),1)]),_:1},8,["disabled"])):b("",!0)]),_:1})]),default:a(()=>[c("span",kt,[s(C,{name:"More"})])]),_:1})):b("",!0)]),_:1}),s(oe,null,{default:a(()=>{var f,I,te;return[o.chargeStateAlert?(u(),_(D,{key:0,type:o.chargeStateAlert.type,title:o.chargeStateAlert.title,description:o.chargeStateAlert.description,closable:!1,"show-icon":"",class:"mb-4"},null,8,["type","title","description"])):b("",!0),c("div",$t,[c("p",null,m(e.$t("Product Name")),1),c("h3",null,m(l.subscription.display_item_name),1)]),c("ul",Tt,[c("li",null,[c("div",Bt,m(e.$t("Billing Cycle")),1),c("div",{class:"fct-single-subscription-details-value",innerHTML:l.subscription.payment_info},null,8,Pt)]),c("li",null,[c("div",Ft,m(e.$t("Active Payment Gateway")),1),c("div",Lt,[l.subscription.current_payment_method?(u(),v("div",Et,[c("span",null,m(o.Str.headline(l.subscription.current_payment_method)),1)])):(u(),v("span",Vt,"----"))])]),c("li",null,[c("div",Dt,m(e.$t("Initial Purchase ID")),1),c("div",Mt," #"+m(l.subscription.parent_order_id),1)]),l.subscription.bill_times>0?(u(),v("li",Nt,[c("div",At,m(e.$t("Installment Progress")),1),c("div",Ot,m(l.subscription.bill_count)+" / "+m(l.subscription.bill_times),1)])):b("",!0),c("li",null,[c("div",xt,m(e.$t("Auto-cancellation")),1),c("div",It,m(l.subscription.expire_at?l.subscription.expire_at:"---"),1)]),c("li",null,[c("div",Ut,m(e.$t("Started")),1),c("div",Ht,[s(M,{"date-time":l.subscription.created_at,withTime:!1},null,8,["date-time"])])]),o.showNextBillingDate?(u(),v("li",zt,[c("div",Yt,m(e.$t("Next renewal")),1),c("div",jt,[h(m(e.formatNumber(l.subscription.recurring_total))+" on ",1),s(M,{"date-time":l.subscription.next_billing_date,withTime:!1},null,8,["date-time"]),l.subscription.has_pending_skip?(u(),_(w,{key:0,content:o.skipBadgeTooltip,placement:"top",effect:"dark",trigger:["hover","focus"]},{default:a(()=>[s(p,{type:"warning",size:"small",effect:"light",round:"",class:"fct-skip-badge",tabindex:"0",role:"note","aria-label":o.skipBadgeTooltip},{default:a(()=>[h(m(e.$t("Period skipped")),1)]),_:1},8,["aria-label"])]),_:1},8,["content"])):b("",!0)])])):b("",!0)]),l.subscription.vendor_subscription_id||(f=l.subscription)!=null&&f.vendor_customer_id?(u(),v("div",qt,[l.subscription.vendor_subscription_id?(u(),v("div",Wt,[c("div",Gt,m(e.$t("Vendor Subscription ID")),1),c("div",Qt,[l.subscription.url?(u(),v("a",{key:0,href:l.subscription.url,target:"_blank",class:"fct-vendor-ids__link"},m(l.subscription.vendor_subscription_id),9,Zt)):(u(),v("span",Jt,m(l.subscription.vendor_subscription_id),1)),s(x,{text:l.subscription.vendor_subscription_id,showMode:"basic_copy_btn",tooltipText:"Copy"},null,8,["text"])])])):b("",!0),(I=l.subscription)!=null&&I.vendor_customer_id?(u(),v("div",Kt,[c("div",Xt,m(e.$t("Vendor Customer ID")),1),c("div",es,[c("span",ts,m(l.subscription.vendor_customer_id),1),s(x,{text:(te=l.subscription)==null?void 0:te.vendor_customer_id,showMode:"basic_copy_btn",tooltipText:"Copy"},null,8,["text"])])])):b("",!0),i[11]||(i[11]=c("div",null,null,-1))])):b("",!0)]}),_:1}),s(re,{subscription:l.subscription,orderId:l.orderId,onClose:i[1]||(i[1]=f=>n.cancelSubscriptionModal=!1),modelValue:n.cancelSubscriptionModal,"onUpdate:modelValue":i[2]||(i[2]=f=>n.cancelSubscriptionModal=f),onReload:i[3]||(i[3]=f=>e.$emit("reload")),onCancelSubscription:o.confirmCancel},null,8,["subscription","orderId","modelValue","onCancelSubscription"]),s(ue,{modelValue:n.editSubscriptionModal,"onUpdate:modelValue":i[10]||(i[10]=f=>n.editSubscriptionModal=f),title:e.$t("Edit Subscription"),width:"500px","close-on-click-modal":!1},{footer:a(()=>[c("span",ns,[s(ee,{onClick:i[9]||(i[9]=f=>n.editSubscriptionModal=!1)},{default:a(()=>[h(m(e.$t("Cancel")),1)]),_:1}),s(ee,{type:"primary",onClick:o.confirmSaveSubscription,loading:n.loadingState.save},{default:a(()=>[h(m(e.$t("Save Changes")),1)]),_:1},8,["onClick","loading"])])]),default:a(()=>[s(D,{type:"warning",closable:!1,"show-icon":"",class:"mb-4"},{default:a(()=>[h(m(e.$t("Editing this subscription will update the details for all future renewals.")),1)]),_:1}),o.hasPendingRenewal?(u(),_(D,{key:0,type:"info",closable:!1,"show-icon":"",class:"mb-4"},{default:a(()=>[h(m(e.$t("A renewal invoice is already pending; it will be updated to the new amount.")),1)]),_:1})):b("",!0),we((u(),_(de,{model:n.editForm,"label-width":"140px"},{default:a(()=>[s(N,{label:e.$t("Next Renewal Amount")},{default:a(()=>[s(K,{modelValue:n.editForm.recurring_total,"onUpdate:modelValue":i[4]||(i[4]=f=>n.editForm.recurring_total=f),precision:2,min:0,step:.01,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"])]),_:1},8,["label"]),s(N,{label:e.$t("Billing Times")},{default:a(()=>{var f;return[s(K,{modelValue:n.editForm.bill_times,"onUpdate:modelValue":i[5]||(i[5]=I=>n.editForm.bill_times=I),min:o.billTimesMin,step:1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue","min"]),c("div",ss,[h(m(e.$t("0 = Unlimited (renew indefinitely)"))+" ",1),((f=l.subscription)==null?void 0:f.bill_count)>0?(u(),v("span",is," — "+m(e.$t("must be 0 or"))+" ≥ "+m(l.subscription.bill_count)+" ("+m(e.$t("payments made"))+")",1)):b("",!0)])]}),_:1},8,["label"]),s(N,{label:e.$t("Billing Interval")},{default:a(()=>[s(X,{modelValue:n.editForm.billing_interval,"onUpdate:modelValue":i[6]||(i[6]=f=>n.editForm.billing_interval=f),style:{width:"100%"}},{default:a(()=>[s(R,{label:e.$t("Daily"),value:"daily"},null,8,["label"]),s(R,{label:e.$t("Weekly"),value:"weekly"},null,8,["label"]),s(R,{label:e.$t("Monthly"),value:"monthly"},null,8,["label"]),s(R,{label:e.$t("Quarterly"),value:"quarterly"},null,8,["label"]),s(R,{label:e.$t("Half Yearly"),value:"half_yearly"},null,8,["label"]),s(R,{label:e.$t("Yearly"),value:"yearly"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),s(N,{label:e.$t("Status")},{default:a(()=>[s(X,{modelValue:n.editForm.status,"onUpdate:modelValue":i[7]||(i[7]=f=>n.editForm.status=f),style:{width:"100%"}},{default:a(()=>[s(R,{label:e.$t("Active"),value:"active"},null,8,["label"]),s(R,{label:e.$t("Paused"),value:"paused"},null,8,["label"]),s(R,{label:e.$t("Trialing"),value:"trialing"},null,8,["label"]),s(R,{label:e.$t("Past Due"),value:"past_due"},null,8,["label"]),s(R,{label:e.$t("Expired"),value:"expired"},null,8,["label"]),s(R,{label:e.$t("Completed"),value:"completed"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),s(N,{label:e.$t("Next Billing Date")},{default:a(()=>[s(ce,{modelValue:n.editForm.next_billing_date,"onUpdate:modelValue":i[8]||(i[8]=f=>n.editForm.next_billing_date=f),type:"datetime",placeholder:e.$t("Select date"),format:"YYYY-MM-DD HH:mm","value-format":"YYYY-MM-DD HH:mm:ss",style:{width:"100%"}},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["model"])),[[pe,n.loadingState.edit]])]),_:1},8,["modelValue","title"])]),_:1})}const as=J(St,[["render",ls],["__scopeId","data-v-fb03a9f8"]]),os={class:"fct-single-order-loader-wrap fct-layout-width"},rs={class:"single-page-header fct-page-loader-header min-h-18 flex items-start justify-between"},cs={class:"single-page-body"},ds={class:"fct-single-order"},us={class:"fct-single-order-main"},ms={class:"fct-single-order-aside"},ps={class:"fct-admin-sidebar"},bs={props:{loading:{type:Boolean,default:!1}}},_s=Object.assign(bs,{__name:"SingleSubscriptionLoader",setup(e){return(i,l)=>{const r=d("el-skeleton-item"),n=d("el-skeleton");return u(),v("div",os,[c("div",rs,[s(n,{animated:"",class:"flex flex-col items-start gap-2"},{template:a(()=>[s(r,{class:"max-w-180"}),s(r,{class:"max-w-[100px]"})]),_:1})]),c("div",cs,[c("div",ds,[c("div",us,[s(P,{class:"overflow-hidden"},{default:a(()=>[s(T,{border_bottom:"",title:i.$t("Subscription Details")},null,8,["title"]),s(B,{class:"grid gap-5 grid-cols-[repeat(auto-fit,minmax(200px,1fr))]"},{default:a(()=>[(u(),v(U,null,Z(9,o=>s(n,{key:o,animated:!0},{template:a(()=>[c("div",null,[s(r,{variant:"p",class:"w-full"}),s(r,{variant:"p",style:{width:"50%"}})])]),_:2},1024)),64))]),_:1})]),_:1}),s(P,{class:"overflow-hidden"},{default:a(()=>[s(T,{border_bottom:"",title:i.$t("Related Orders")},null,8,["title"]),s(B,null,{default:a(()=>[s(n,{animated:"",rows:3})]),_:1})]),_:1}),s(P,{class:"overflow-hidden"},{default:a(()=>[s(T,{border_bottom:"",title:i.$t("Related Licenses")},null,8,["title"]),s(B,null,{default:a(()=>[s(n,{animated:"",rows:3})]),_:1})]),_:1})]),c("div",ms,[c("div",ps,[s(P,null,{default:a(()=>[s(T,{title:i.$t("Subscription Plan"),border_bottom:"",title_size:"small"},null,8,["title"]),s(B,null,{default:a(()=>[s(n,{animated:"",rows:2})]),_:1})]),_:1}),s(P,null,{default:a(()=>[s(T,{title:i.$t("Customer Details"),border_bottom:"",title_size:"small"},null,8,["title"]),s(B,null,{default:a(()=>[s(n,{animated:"",rows:3})]),_:1})]),_:1}),s(P,null,{default:a(()=>[s(T,{title:i.$t("Labels"),border_bottom:"",title_size:"small"},null,8,["title"]),s(B,null,{default:a(()=>[s(n,{animated:"",rows:1})]),_:1})]),_:1})])])])])])}}}),fs={name:"SingleSubscription",components:{Activity:Ve,ChangeOrderCustomer:Ye,DynamicIcon:ae,ConvertedTime:ie,Badge:ke,NotFound:qe,SingleSubscriptionLoader:_s,SubscriptionDetails:as,Labels:ze,LicenseTable:He,Empty:$e,CopyToClipboard:ne,CardContainer:P,CardBody:B,CardHeader:T,OrdersTable:Le,CustomerPurchaseValue:Fe,OrderCustomerInformation:Ue,OrdersTableMobile:Pe},props:["subscription_id"],data(){return{notFound:{show:!1,message:"",buttonText:"",route:""},subscription:{},loading:!1,parentOrderLoading:!0,error:null,ArrowRight:F(Ie),parentOrder:null,selectedLabels:[],changeCustomer:!1,reminderPermissions:{}}},computed:{Str(){return le},subscriptionStatus(){var e;return(e=this.subscription)==null?void 0:e.status},visibleRelatedOrders(){var e;return(((e=this.subscription)==null?void 0:e.related_orders)||[]).filter(i=>!(i.type==="renewal"&&Number(i.total_amount)===0))}},watch:{subscription_id:{handler(e,i){this.fetchSubscription()}}},mounted(){this.fetchSubscription()},methods:{translate:t,getCardBrand:We,fetchSubscription(){this.notFound.show=!1,this.loading=!0,this.$get("subscriptions/"+this.subscription_id).then(e=>{this.subscription=e.subscription,this.selectedLabels=e.selected_labels,this.reminderPermissions=e.reminder_permissions||{},this.getParentOrder()}).catch(e=>{var i;e.code==="fluent_cart_entity_not_found"?(this.notFound.show=!0,this.notFound.buttonText=Q.get(e,"data.buttonText"),this.notFound.message=Q.get(e,"data.message"),this.notFound.route=Q.get(e,"data.route")):e.status_code=="422"?H.validationErrors(e):H.error((i=e.data)==null?void 0:i.message)}).finally(()=>{this.loading=!1})},getParentOrder(){var e;this.$get("orders/"+((e=this.subscription)==null?void 0:e.parent_order_id)).then(i=>{this.parentOrder=i.order}).finally(()=>{this.parentOrderLoading=!1})},reload(){window.location.reload()},handleCommand(e){e==="change_customer"&&(this.changeCustomer=!0)}}},hs={key:1,class:"fct-single-subscription-page"},gs={key:1,class:"fct-single-order-wrapper fct-layout-width"},ys={class:"single-page-header flex items-start justify-between"},vs={class:"single-page-header-title-wrap"},ws={class:"single-page-header-status-wrap"},Ss={class:"pt-2 text-xs text-system-mid dark:text-gray-300"},Cs={class:"single-page-body"},ks={class:"fct-single-subscription"},Rs={class:"fct-single-subscription-main"},$s={class:"fct-single-subscription-aside"},Ts={class:"fct-admin-sidebar"},Bs={class:"fct-admin-sidebar"};function Ps(e,i,l,r,n,o){var M;const p=d("NotFound"),w=d("SingleSubscriptionLoader"),C=d("el-breadcrumb-item"),S=d("el-breadcrumb"),y=d("Badge"),k=d("ConvertedTime"),z=d("SubscriptionDetails"),L=d("CardHeader"),A=d("OrdersTable"),Y=d("OrdersTableMobile"),V=d("CardContainer"),j=d("LicenseTable"),q=d("Activity"),O=d("CardBody"),W=d("el-skeleton"),G=d("OrderCustomerInformation"),D=d("Labels");return u(),v(U,null,[n.notFound.show?(u(),_(p,{key:0,"button-text":n.notFound.buttonText,message:n.notFound.message,route:n.notFound.route},null,8,["button-text","message","route"])):b("",!0),n.notFound.show===!1?(u(),v("div",hs,[n.loading?(u(),_(w,{key:0})):b("",!0),!n.loading&&n.subscription.id?(u(),v("div",gs,[c("div",ys,[c("div",null,[c("div",vs,[s(S,{"separator-icon":n.ArrowRight},{default:a(()=>[s(C,{to:{name:"all_subscriptions"}},{default:a(()=>[h(m(e.$t("Subscriptions")),1)]),_:1}),s(C,null,{default:a(()=>[h("#"+m(l.subscription_id),1)]),_:1})]),_:1},8,["separator-icon"]),c("div",ws,[s(y,{status:o.subscriptionStatus},null,8,["status"])])]),c("div",Ss,[s(k,{"date-time":n.subscription.created_at,"with-time":""},null,8,["date-time"])])]),i[2]||(i[2]=c("div",{class:"fct-btn-group sm"},null,-1))]),c("div",Cs,[c("div",ks,[c("div",Rs,[s(z,{subscription:n.subscription,orderId:(M=n.parentOrder)==null?void 0:M.id,reminderPermissions:n.reminderPermissions,onFetchOrder:i[0]||(i[0]=x=>e.$emit("fetchSubscription")),onReload:i[1]||(i[1]=x=>o.reload())},null,8,["subscription","orderId","reminderPermissions"]),o.visibleRelatedOrders.length?(u(),_(V,{key:0,class:"overflow-hidden"},{default:a(()=>[s(L,{class:"pb-4",title:e.$t("Related Orders")+" ("+o.visibleRelatedOrders.length+")",title_size:"small"},null,8,["title"]),s(A,{class:"hide-on-mobile",orders:o.visibleRelatedOrders,columns:["type"]},null,8,["orders"]),s(Y,{class:"show-on-mobile fct-single-subscription-orders-mobile",orders:o.visibleRelatedOrders,columns:["type"]},null,8,["orders"])]),_:1})):b("",!0),n.subscription.licenses?(u(),_(V,{key:1,class:"overflow-hidden"},{default:a(()=>[s(L,{class:"pb-4",title:e.$t("Related Licenses"),title_size:"small"},null,8,["title"]),s(j,{licenses:n.subscription.licenses,columns:[]},null,8,["licenses"])]),_:1})):b("",!0),n.subscription.activities&&n.subscription.activities.length?(u(),_(V,{key:2,class:"overflow-hidden mb-0"},{default:a(()=>[s(L,{title:e.$t("Activity"),title_size:"small",border_bottom:""},null,8,["title"]),s(O,null,{default:a(()=>[s(q,{activities:n.subscription.activities},null,8,["activities"])]),_:1})]),_:1})):b("",!0)]),c("div",$s,[c("div",Ts,[n.parentOrderLoading?(u(),_(V,{key:0},{default:a(()=>[s(L,{title:e.$t("Subscription Plan"),title_size:"small",border_bottom:""},null,8,["title"]),s(O,null,{default:a(()=>[s(W,{rows:3,animated:!0})]),_:1})]),_:1})):b("",!0)]),c("div",Bs,[n.subscription.customer?(u(),_(G,{key:0,subscription:n.subscription,shouldEnableEditing:!0},null,8,["subscription"])):b("",!0),s(D,{"bind-to-id":n.subscription.id,"bind-to-type":"Subscription",selectedLabels:n.selectedLabels,shouldEnableEditing:!0,"onUpdate:updateLabel":()=>{}},null,8,["bind-to-id","selectedLabels"])])])])])])):b("",!0)])):b("",!0)],64)}const Fs=J(fs,[["render",Ps]]);window.fluent_cart_admin.hooks.addFilter("fluent_cart_routes","fluent_all_subscriptions",function(e){return e.subscription_route={name:"subscriptions",path:"/subscriptions",component:Qe,children:[{name:"all_subscriptions",path:"",component:gt,meta:{active_menu:"subscriptions",title:t("Subscriptions")}},{name:"view_subscription",path:":subscription_id/view",component:Fs,props:!0,meta:{active_menu:"subscriptions",title:t("View Subscription")}}]},e}); |
|
1
|
+import{r as c,e as S,o as u,a as i,c as b,w as o,u as f,b as _,d,F as N,g as J,k as he,h as ae,i as ge,j as ye,f as h,t as m,Z as T,U as ve,E as we,n as Se,I as Ce}from"./chunks/vue.esm-bundler.js?ver=1.6.5";import{T as ke,_ as $e,B as Ie}from"./chunks/Badge.js?ver=1.6.5";import{P as Ve}from"./chunks/Empty.js?ver=1.6.5";import{t as s}from"./chunks/Translator.js?ver=1.6.5";import{d as Re,S as Te,_ as ce,b as Be,c as Fe,a as Pe,A as Ee}from"./chunks/Activity.js?ver=1.6.5";import{_ as K}from"./chunks/_plugin-vue_export-helper.js?ver=1.6.5";import{a as De,ad as Le,cq as Me,cm as xe,p as re,q as de,cr as Ae,cs as Ne,d as A,r as Oe,E as V,b as Ue}from"./chunks/index.js?ver=1.6.5";import{_ as ee}from"./chunks/DynamicIcon.js?ver=1.6.5";import{u as ze,_ as He,b as ue,f as Ye,L as je,e as qe,g as We}from"./chunks/OrderCustomerInformation.js?ver=1.6.5";import{_ as Ge,p as Qe}from"./chunks/UserCan.js?ver=1.6.5";import{C as B,a as F,b as P}from"./chunks/CardBody.js?ver=1.6.5";import{S as X}from"./chunks/Str.js?ver=1.6.5";import{d as Ze}from"./chunks/dayjs.min.js?ver=1.6.5";import"./chunks/Utils.js?ver=1.6.5";import{n as j}from"./chunks/Notify.js?ver=1.6.5";import{f as Je,r as Xe}from"./chunks/CurrencyFormatter.js?ver=1.6.5";import{_ as Ke}from"./chunks/NotFound.js?ver=1.6.5";import{A as Z}from"./chunks/Arr.js?ver=1.6.5";import{g as et}from"./chunks/common.js?ver=1.6.5";import"./chunks/Model.js?ver=1.6.5";import"./chunks/Rest.js?ver=1.6.5";import"./chunks/vue-router.js?ver=1.6.5";import"./chunks/Url.js?ver=1.6.5";import"./chunks/timezone.js?ver=1.6.5";import"./chunks/index3.js?ver=1.6.5";import"./chunks/IconButton.js?ver=1.6.5";import"./chunks/TransitionAccordion.js?ver=1.6.5";import"./chunks/BundleProducts.js?ver=1.6.5";import"./chunks/preload-helper.js?ver=1.6.5";import"./chunks/Animation.js?ver=1.6.5";import"./chunks/Asset.js?ver=1.6.5";import"./chunks/AddressComponent2.js?ver=1.6.5";import"./chunks/productService.js?ver=1.6.5";import"./chunks/weekOfYear.js?ver=1.6.5";const tt={class:"fct-subscriptions-route-wrap"},st=Object.assign({name:"SubscriptionsRoute"},{__name:"SubscriptionsRoute",setup(e){return(t,l)=>{const r=c("router-view");return u(),S("div",tt,[i(r)])}}});class it extends ke{getTabs(){return{all:s("All"),active:s("Active"),trialing:s("Trialing"),pending:s("Pending"),intended:s("Intended"),expired:s("Expired"),canceled:s("Canceled")}}getToggleableColumns(){return[{label:s("Order ID"),value:"order_id"},{label:s("Next Billing Date"),value:"next_billing_date"},{label:s("Collection Method"),value:"collection_method"},{label:s("Bills Count"),value:"bills_count"},{label:s("Customer"),value:"customer"},{label:s("Payment Method"),value:"payment_method"}]}getSearchHint(){return s("by id, order id, status, payment method, customer name, or product.")}getFetchUrl(){return"subscriptions"}parseResponse(t){return t.data}getTableName(){return"subscriptions"}with(){return["admin_subscription_list"]}}function nt(e){return it.init(e)}const ot={class:"table-cell"},lt={class:"table-cell"},at={class:"table-cell"},rt={class:"table-cell"},dt={class:"table-cell"},ct={class:"table-cell"},ut={class:"table-cell"},mt={class:"table-cell"},pt={class:"table-cell"},_t={class:"table-cell"},bt={class:"table-cell"},ft={__name:"SubscriptionsLoader",props:{nextPageCount:{type:Number,default:0},subscriptionTable:{type:Object,default:()=>({})}},setup(e){const t=e,l=Array.from({length:t.nextPageCount},(r,n)=>n+1);return(r,n)=>{const a=c("el-table-column"),p=c("el-skeleton-item"),w=c("el-table"),C=c("el-skeleton");return u(),b(C,{animated:""},{template:o(()=>[i(w,{data:f(l),class:"w-full compact-table responsive"},{empty:o(()=>n[0]||(n[0]=[])),default:o(()=>[_("",!0),i(a,{label:r.$t("ID"),width:"100"},{default:o(()=>[d("div",ot,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),i(a,{label:r.$t("Customer"),width:"150"},{default:o(()=>[d("div",lt,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),i(a,{label:r.$t("Product"),width:"360","show-overflow-tooltip":""},{default:o(()=>[d("div",at,[i(p,{variant:"p",class:"w-3/5"})])]),_:1},8,["label"]),i(a,{label:r.$t("Status"),width:"120"},{default:o(()=>[d("div",rt,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),i(a,{label:r.$t("Billing"),width:"230"},{default:o(()=>[d("div",dt,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),i(a,{label:r.$t("Created At"),width:"130"},{default:o(()=>[d("div",ct,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"]),e.subscriptionTable.data.columns.indexOf("next_billing_date")!==-1?(u(),b(a,{key:1,label:r.$t("Next Billing Date"),width:"160"},{default:o(()=>[d("div",ut,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):_("",!0),e.subscriptionTable.data.columns.indexOf("collection_method")!==-1?(u(),b(a,{key:2,label:r.$t("Collection Method"),width:"160"},{default:o(()=>[d("div",mt,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):_("",!0),e.subscriptionTable.data.columns.indexOf("bills_count")!==-1?(u(),b(a,{key:3,label:r.$t("Bills Count"),width:"100"},{default:o(()=>[d("div",pt,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):_("",!0),e.subscriptionTable.data.columns.indexOf("payment_method")!==-1?(u(),b(a,{key:4,label:r.$t("Payment Method"),width:"150"},{default:o(()=>[d("div",_t,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):_("",!0),e.subscriptionTable.data.columns.indexOf("order_id")!==-1?(u(),b(a,{key:5,label:r.$t("Order ID"),width:"100"},{default:o(()=>[d("div",bt,[i(p,{variant:"p",class:"w-4/5"})])]),_:1},8,["label"])):_("",!0)]),_:1},8,["data"])]),_:1})}}},ht={},gt={class:"px-4 py-3"},yt={class:"grid grid-cols-3 gap-5 mt-5"};function vt(e,t){const l=c("el-skeleton-item"),r=c("el-skeleton");return u(),b(r,{animated:""},{template:o(()=>[d("div",gt,[(u(),S(N,null,J(2,n=>d("div",{key:n,class:"flex items-center justify-between mb-3"},[i(l,{varient:"p",class:"w-1/2"}),i(l,{varient:"p",class:"w-[100px]"})])),64)),d("div",yt,[(u(),S(N,null,J(3,n=>d("div",{key:n},[i(l,{varient:"p",class:"w-1/2"}),i(l,{varient:"p",class:"w-[100px]"})])),64))])])]),_:1})}const wt=K(ht,[["render",vt]]),St={class:"fct-all-subscriptions-page fct-layout-width"},Ct={class:"fct-all-subscriptions-wrap"},kt={key:1},$t={__name:"AllSubscriptions",setup(e){const t=nt({instance:he()}),l=ae(!1),r=ae(!1),n=(C=!0)=>{const y=t.buildQueryParams();return C||(delete y.active_view,delete y.filter_type,delete y.search,delete y.advanced_filters),y},a=ze({entity:"subscriptions",buildParams:()=>n(),buildAllParams:()=>n(!1),filenamePrefix:"subscriptions-export"}),p=({scope:C,columns:y,modules:v,format:k})=>{const R=C==="current_page"?t.getTableData().map(I=>I.id).filter(Boolean):[];a.startExport({scope:C,ids:R,columns:y,modules:v,format:k})},w=()=>{l.value=window.innerWidth<768};return ge(()=>{w(),window.addEventListener("resize",w)}),ye(()=>{window.removeEventListener("resize",w)}),(C,y)=>{const v=c("el-icon"),k=c("el-button"),R=c("el-dropdown-item"),I=c("el-dropdown-menu"),L=c("el-dropdown");return u(),S("div",St,[i(Ve,{title:C.$t("Subscriptions")},{action:o(()=>[i(Ge,{permission:"subscriptions/export"},{default:o(()=>[i(L,{trigger:"click","popper-class":"fct-dropdown",placement:"bottom-end"},{dropdown:o(()=>[i(I,null,{default:o(()=>[i(R,{onClick:y[0]||(y[0]=M=>r.value=!0)},{default:o(()=>[i(ee,{name:"Download"}),h(" "+m(f(s)("Export Subscriptions")),1)]),_:1})]),_:1})]),default:o(()=>[i(k,null,{default:o(()=>[h(m(f(s)("More actions"))+" ",1),i(v,null,{default:o(()=>[i(f(De))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["title"]),d("div",Ct,[i($e,{table:f(t),classicTabStyle:!0,"has-mobile-slot":!0},{mobile:o(()=>[f(t).isLoading()?(u(),b(wt,{key:0})):_("",!0),f(t).isLoading()?_("",!0):(u(),b(Te,{key:1,subscriptions:f(t).getTableData(),columns:f(t).data.columns},null,8,["subscriptions","columns"]))]),default:o(()=>[f(t).isLoading()?(u(),b(ft,{key:0,subscriptionTable:f(t),"next-page-count":f(t).nextPageCount},null,8,["subscriptionTable","next-page-count"])):(u(),S("div",kt,[i(Re,{subscriptions:f(t).getTableData(),columns:f(t).data.columns},null,8,["subscriptions","columns"])]))]),_:1},8,["table"])]),i(He,{modelValue:r.value,"onUpdate:modelValue":y[1]||(y[1]=M=>r.value=M),title:f(s)("Export Subscriptions"),"current-page-count":f(t).getTableData().length,"total-count":f(t).data.paginate.total,"item-label-singular":f(s)("subscription"),"item-label-plural":f(s)("subscriptions"),"has-active-filter":!!f(t).isFiltering(),"export-state":f(a),onExport:p},null,8,["modelValue","title","current-page-count","total-count","item-label-singular","item-label-plural","has-active-filter","export-state"])])}}},It={class:"dialog-footer"},Vt={name:"CancelSubscription",props:["subscription","orderId","modelValue"],data(){return{cancelReason:"customer_request",cancelling:!1,otherReason:""}},computed:{updatedModelValue:{get(){return this.modelValue},set(e){this.modelValue=e}},otherReasonError(){return this.cancelReason==="other"&&this.otherReason.trim()===""?s("Please enter a reason"):""}},methods:{cancelSubscription(){if(this.cancelling=!0,this.cancelReason==="other"){if(this.otherReason.trim()===""){this.$notify.error(s("Please enter a reason")),this.cancelling=!1;return}this.cancelReason=this.otherReason}this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/cancel`,{cancel_reason:this.cancelReason}).then(e=>{this.cancelling=!0,this.$notify({type:"success",title:s("Success"),message:s("Subscription canceled successfully")}),this.$emit("reload")}).catch(e=>{var t;this.cancelling=!0,e.status_code=="422"?j.validationErrors(e):j.error((t=e.data)==null?void 0:t.message)}).finally(()=>{this.cancelling=!1,this.cancelSubscriptionModal=!1})}}},Rt=Object.assign(Vt,{setup(e){return(t,l)=>{const r=c("el-option"),n=c("el-select"),a=c("el-form-item"),p=c("el-input"),w=c("el-form"),C=c("el-button"),y=c("el-dialog");return u(),b(y,{"model-value":t.updatedModelValue,loading:t.cancelling,title:f(s)("Cancel Subscription"),width:"500"},{footer:o(()=>[d("div",It,[i(C,{onClick:l[2]||(l[2]=v=>t.$emit("close"))},{default:o(()=>[h(m(f(s)("Cancel")),1)]),_:1}),i(C,{loading:t.cancelling,type:"warning",onClick:t.cancelSubscription},{default:o(()=>[h(m(f(s)("Cancel Subscription")),1)]),_:1},8,["loading","onClick"])])]),default:o(()=>[i(w,{"label-position":"top"},{default:o(()=>[d("div",null,m(f(s)("Are you sure to cancel the subscription?")),1),l[3]||(l[3]=d("br",null,null,-1)),i(a,{label:f(s)("Cancellation reason"),required:""},{default:o(()=>[i(n,{modelValue:t.cancelReason,"onUpdate:modelValue":l[0]||(l[0]=v=>t.cancelReason=v)},{default:o(()=>[i(r,{label:f(s)("Refunded"),value:"refunded"},null,8,["label"]),i(r,{label:f(s)("Customer request"),value:"customer_request"},null,8,["label"]),i(r,{label:f(s)("Completed (EOT)"),value:"completed"},null,8,["label"]),i(r,{label:f(s)("Fraudulent"),value:"fraudulent"},null,8,["label"]),i(r,{label:f(s)("Other"),value:"other"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),t.cancelReason==="other"?(u(),b(a,{key:0,label:f(s)("Other Reason"),required:"",error:t.otherReasonError},{default:o(()=>[i(p,{modelValue:t.otherReason,"onUpdate:modelValue":l[1]||(l[1]=v=>t.otherReason=v)},null,8,["modelValue"])]),_:1},8,["label","error"])):_("",!0)]),_:1,__:[3]})]),_:1},8,["model-value","loading","title"])}}}),Tt={name:"SubscriptionDetails",components:{CancelSubscription:Rt,ConvertedTime:ce,CopyToClipboard:ue,CardContainer:P,CardBody:F,CardHeader:B,DynamicIcon:ee,Refresh:Oe,Delete:A,VideoPause:Ne,VideoPlay:Ae,Edit:de,Promotion:re,Document:xe,CreditCard:Me,CircleClose:Le},props:["subscription","orderId","reminderPermissions"],emits:["reload","fetchOrder"],data(){return{loadingState:{fetch:!1,pause:!1,resume:!1,cancel:!1,edit:!1,save:!1,sendReminder:!1,createRenewal:!1,skipRenewal:!1,chargeNow:!1,verifyVendorIds:!1,saveVendorIds:!1},cancelSubscriptionModal:!1,editSubscriptionModal:!1,editForm:{recurring_total:0,bill_times:0,billing_interval:"monthly",status:"active",next_billing_date:""},vendorIdsModal:!1,vendorIdsForm:{vendor_subscription_id:"",vendor_customer_id:""},vendorIdsVerification:null}},computed:{Str(){return X},billTimesMin(){return 0},isStoreBilled(){var e;return["manual","system"].includes((e=this.subscription)==null?void 0:e.collection_method)},hasPendingRenewal(){var e,t;return this.isStoreBilled&&!!((t=(e=this.subscription)==null?void 0:e.permissions)!=null&&t.hasPendingRenewal)},isSystemSubscription(){var e;return((e=this.subscription)==null?void 0:e.collection_method)==="system"},skipBadgeTooltip(){var l;const e=(l=this.subscription)==null?void 0:l.last_skipped_period;if(!e)return s("An admin skipped the next billing period.");const t=e.actor_name||s("an admin");return e.reason?s("Skipped by %1$s. Billing resumes on the date shown. Reason: %2$s",t,e.reason):s("Skipped by %1$s. Billing resumes on the date shown.",t)},createRenewalLabel(){return this.isSystemSubscription?s("Charge Next Renewal Now"):s("Create Renewal Now")},createRenewalIcon(){return this.isSystemSubscription?"CreditCard":"Document"},billingTypeBadge(){var t;const e=(t=this.subscription)==null?void 0:t.collection_method;return e==="manual"?{label:s("Manual"),type:"warning",description:s("Customer must pay each renewal manually — no auto-charge.")}:e==="system"?{label:s("System"),type:"success",class:"fct-billing-badge--system",description:s("Auto-charged by the store on schedule, using the saved payment method.")}:{label:s("Automatic"),type:"success",description:s("Billed and managed entirely by the payment gateway.")}},chargeStateAlert(){var n;const e=(n=this.subscription)==null?void 0:n.system_charge_state;if(!e)return null;if(e.status==="processing")return{type:"info",title:s("Automatic charge processing"),description:s("The renewal charge was submitted and is awaiting confirmation from the payment provider.")};if(!e.last_error)return null;const t=e.attempts,l=e.max_attempts||e.attempts;let r;return e.next_retry_at?r=s("Attempt %1$s of %2$s failed: %3$s — next automatic retry: %4$s (GMT).",t,l,e.last_error,e.next_retry_at):e.exhausted==="yes"?r=s("Attempt %1$s of %2$s failed: %3$s — no further automatic retries, the customer must pay manually.",t,l,e.last_error):r=s("Attempt %1$s of %2$s failed: %3$s",t,l,e.last_error),{type:"warning",title:s("Automatic charge failed"),description:r}},vendorIdsChanged(){return this.vendorIdsForm.vendor_subscription_id!==(this.subscription.vendor_subscription_id||"")||this.vendorIdsForm.vendor_customer_id!==(this.subscription.vendor_customer_id||"")},permissions(){var r;const e=((r=this.subscription)==null?void 0:r.permissions)||{},t=Qe.resolve({permission:"subscriptions/manage"}),l=this.reminderPermissions||{};return{canFetch:t&&!!e.canFetch,canEdit:t&&!!e.canEdit,canEditVendorIds:t&&!!e.canEditVendorIds,canVerifyVendorIds:t&&!!e.canVerifyVendorIds,canPause:t&&!!e.canPause,canResume:t&&!!e.canResume,canAdminReactivate:t&&!!e.canAdminReactivate,canCancel:t&&!!e.canCancel,canCreateRenewal:t&&!!e.canCreateRenewal,canSkipRenewal:t&&!!e.canSkipRenewal,canChargeNow:t&&!!e.canChargeNow,canSendReminder:!!(l.canSendRenewal||l.canSendTrialEnd)}},reminderLabel(){return(this.reminderPermissions||{}).canSendTrialEnd?s("Send Trial End Reminder"):s("Send Renewal Reminder")},reminderEvent(){return(this.reminderPermissions||{}).canSendTrialEnd?"subscription_trial_end_reminder":"subscription_renewal_reminder"},paymentMethod(){var t,l;const e=((t=this.subscription)==null?void 0:t.current_payment_method)||"";return((l=this.subscription)==null?void 0:l.payment_method_title)||(e?X.headline(e.replace(/_/g,"-")):"")},showNextBillingDate(){var t;const e=(((t=this.subscription)==null?void 0:t.status)||"").toLowerCase();return e==="active"||e==="trialing"}},watch:{vendorIdsForm:{deep:!0,handler(){this.vendorIdsVerification=null}}},methods:{handleSubscriptionAction(e){e==="fetch_subscription"?this.confirmFetch():e==="edit_subscription"?this.confirmEdit():e==="edit_vendor_ids"?this.confirmEditVendorIds():e==="pause_subscription"?this.confirmPause():e==="resume_subscription"?this.confirmResume():e==="reactivate_subscription"?this.confirmReactivate():e==="cancel_subscription"?this.confirmCancel():e==="send_reminder"?this.confirmSendReminder():e==="create_renewal"?this.confirmCreateRenewal():e==="skip_renewal"?this.confirmSkipRenewal():e==="charge_now"&&this.confirmChargeNow()},confirmFetch(){var e;!this.subscription.vendor_subscription_id&&((e=this.order)==null?void 0:e.payment_method)!=="offline_payment"||V.confirm(s("Fetch from remote and update the subscription?"),s("Warning"),{type:"warning",icon:T(A),cancelButtonText:s("Back"),confirmButtonText:s("Fetch subscription!"),beforeClose:async(t,l,r)=>{var n,a;if(t==="confirm")try{l.confirmButtonLoading=!0,this.loadingState.fetch=!0,await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/fetch`,{data:{vendor_charge_id:this.subscription.vendor_subscription_id}}),this.$notify({type:"success",title:s("Success"),message:s("Subscription fetched successfully")}),this.$emit("reload")}catch(p){this.$notify({type:"error",title:s("Error"),message:s(((a=(n=p.response)==null?void 0:n.data)==null?void 0:a.message)||"Failed to fetch subscription")})}finally{l.confirmButtonLoading=!1,this.loadingState.fetch=!1,r()}else r()}})},async confirmPause(){var e,t;if(this.isStoreBilled){this.loadingState.pause=!0;try{await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/pause`,{data:{reason:"Paused by admin"}}),this.$notify({type:"success",title:s("Success"),message:s("Subscription paused successfully")}),this.$emit("reload")}catch(l){this.$notify({type:"error",title:s("Error"),message:s(((t=(e=l.response)==null?void 0:e.data)==null?void 0:t.message)||"Failed to pause subscription")})}finally{this.loadingState.pause=!1}return}this.subscription.vendor_subscription_id&&V.prompt(s("Pause the active subscription?"),s("Warning"),{type:"warning",icon:T(A),inputPlaceholder:s("Enter reason for pausing"),inputPattern:/.+/,inputErrorMessage:s("Reason is required"),cancelButtonText:s("Back"),confirmButtonText:s("Pause Subscription!"),beforeClose:async(l,r,n)=>{var a,p;if(l==="confirm")try{r.confirmButtonLoading=!0,this.loadingState.pause=!0,await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/pause`,{data:{vendor_subscription_id:this.subscription.vendor_subscription_id,reason:r.inputValue}}),this.$notify({type:"success",title:s("Success"),message:s("Subscription paused successfully")}),this.$emit("reload")}catch(w){this.$notify({type:"error",title:s("Error"),message:s(((p=(a=w.response)==null?void 0:a.data)==null?void 0:p.message)||"Failed to pause subscription")})}finally{r.confirmButtonLoading=!1,this.loadingState.pause=!1,n()}else n()}})},async confirmResume(){var e,t;if(this.isStoreBilled){this.loadingState.resume=!0;try{await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/resume`,{data:{reason:"Resumed by admin"}}),this.$notify({type:"success",title:s("Success"),message:s("Subscription resumed successfully")}),this.$emit("reload")}catch(l){this.$notify({type:"error",title:s("Error"),message:s(((t=(e=l.response)==null?void 0:e.data)==null?void 0:t.message)||"Failed to resume subscription")})}finally{this.loadingState.resume=!1}return}this.subscription.vendor_subscription_id&&V.prompt(s("Resume the paused subscription?"),s("Warning"),{type:"warning",icon:T(A),inputPlaceholder:s("Enter reason for resuming"),inputPattern:/.+/,inputErrorMessage:s("Reason is required"),cancelButtonText:s("Back"),confirmButtonText:s("Resume Subscription!"),beforeClose:async(l,r,n)=>{var a,p;if(l==="confirm")try{r.confirmButtonLoading=!0,this.loadingState.resume=!0,await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/resume`,{data:{vendor_subscription_id:this.subscription.vendor_subscription_id,reason:r.inputValue}}),this.$notify({type:"success",title:s("Success"),message:s("Subscription resumed successfully")}),this.$emit("reload")}catch(w){this.$notify({type:"error",title:s("Error"),message:s(((p=(a=w.response)==null?void 0:a.data)==null?void 0:p.message)||"Failed to resume subscription")})}finally{r.confirmButtonLoading=!1,this.loadingState.resume=!1,n()}else n()}})},confirmEdit(){this.editForm={recurring_total:this.subscription.recurring_total/100,bill_times:this.subscription.bill_times,billing_interval:this.subscription.billing_interval||"monthly",status:this.subscription.status,next_billing_date:this.subscription.next_billing_date},this.editSubscriptionModal=!0},async confirmSaveSubscription(){var l,r,n;try{await V.confirm(s("Are you sure you want to update this subscription? This will affect all future renewals."),s("Confirm Update"),{type:"warning",icon:T(A),cancelButtonText:s("Cancel"),confirmButtonText:s("Yes, Update")})}catch{return}const e=((l=this.subscription)==null?void 0:l.bill_count)||0,t=this.editForm.bill_times;if(t>0&&t<e){this.$notify({type:"error",title:s("Validation Error"),message:s("Bill times cannot be less than the number of payments already made (%1$s).",e)});return}this.loadingState.save=!0;try{await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/update`,{data:this.editForm}),this.$notify({type:"success",title:s("Success"),message:s("Subscription updated successfully")}),this.editSubscriptionModal=!1,this.$emit("reload")}catch(a){this.$notify({type:"error",title:s("Error"),message:s(((n=(r=a.response)==null?void 0:r.data)==null?void 0:n.message)||"Failed to update subscription")})}finally{this.loadingState.save=!1}},confirmEditVendorIds(){this.vendorIdsForm={vendor_subscription_id:this.subscription.vendor_subscription_id||"",vendor_customer_id:this.subscription.vendor_customer_id||""},this.vendorIdsVerification=null,this.vendorIdsModal=!0},invalidVendorId(e){return!!e&&!/^[a-zA-Z0-9_.-]+$/.test(e)},async verifyVendorIds(){var e;if(!this.loadingState.verifyVendorIds){this.vendorIdsVerification=null,this.loadingState.verifyVendorIds=!0;try{const t=await this.$post(`orders/${this.orderId}/subscriptions/${this.subscription.id}/verify-vendor-ids`,{data:this.vendorIdsForm}),l=(t==null?void 0:t.verification)||{},r=[l.status,l.amount?`${l.amount} ${l.currency||""}`.trim():"",l.customer_id?`${s("customer")}: ${l.customer_id}`:""].filter(Boolean);this.vendorIdsVerification={ok:!0,summary:r.join(" · ")}}catch(t){this.vendorIdsVerification={ok:!1,message:((e=t==null?void 0:t.data)==null?void 0:e.message)||s("Could not verify this ID at the payment gateway.")}}finally{this.loadingState.verifyVendorIds=!1}}},async confirmSaveVendorIds(){var e;if(this.invalidVendorId(this.vendorIdsForm.vendor_subscription_id)||this.invalidVendorId(this.vendorIdsForm.vendor_customer_id)){this.$notify({type:"error",title:s("Validation Error"),message:s("Vendor IDs may only contain letters, numbers, dots, dashes and underscores.")});return}try{await V.confirm(s("Are you sure you want to change the vendor IDs? Future renewals and gateway webhooks will use the new IDs."),s("Confirm Update"),{type:"warning",icon:T(de),cancelButtonText:s("Cancel"),confirmButtonText:s("Yes, Update")})}catch{return}this.loadingState.saveVendorIds=!0;try{await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/vendor-ids`,{data:this.vendorIdsForm}),this.$notify({type:"success",title:s("Success"),message:s("Vendor IDs updated successfully")}),this.vendorIdsModal=!1,this.$emit("reload")}catch(t){this.$notify({type:"error",title:s("Error"),message:((e=t==null?void 0:t.data)==null?void 0:e.message)||s("Failed to update vendor IDs")})}finally{this.loadingState.saveVendorIds=!1}},confirmCancel(){this.cancelSubscriptionModal=!0},confirmSendReminder(){const e=this.reminderLabel;V.confirm(s("Are you sure you want to send this reminder email now?"),e,{type:"info",icon:T(re),cancelButtonText:s("Cancel"),confirmButtonText:s("Send Now"),beforeClose:async(t,l,r)=>{var n;if(t==="confirm")try{l.confirmButtonLoading=!0,this.loadingState.sendReminder=!0;const a=await this.$post("email-notification/send-manual-reminder",{event:this.reminderEvent,entity_id:this.subscription.id});this.$notify({type:"success",title:s("Success"),message:a.message||s("Reminder sent successfully")})}catch(a){this.$notify({type:"error",title:s("Error"),message:((n=a.data)==null?void 0:n.message)||s("Failed to send reminder")})}finally{l.confirmButtonLoading=!1,this.loadingState.sendReminder=!1,r()}else r()}})},async confirmCreateRenewal(){const e=this.isSystemSubscription;try{await V.confirm(e?s("Create the next renewal and charge it now? One attempt runs immediately; a decline falls back to automatic retries."):s("Create a renewal now for the upcoming billing period?"),e?s("Charge Next Renewal Now"):s("Create Renewal Now"),{type:e?"warning":"info",cancelButtonText:s("Cancel"),confirmButtonText:e?s("Create & Charge"):s("Create Renewal"),beforeClose:async(t,l,r)=>{var n,a;if(t==="confirm")try{l.confirmButtonLoading=!0,this.loadingState.createRenewal=!0;const p=await this.$post(`orders/${this.orderId}/subscriptions/${this.subscription.id}/create-renewal`),w=p==null?void 0:p.status;this.$notify({type:w==="failed"?"warning":"success",title:w==="failed"?s("Charge Failed"):s("Success"),message:s((p==null?void 0:p.message)||(e?"Charge attempt completed":"Renewal created successfully"))}),this.$emit("reload")}catch(p){this.$notify({type:"error",title:s("Error"),message:s(((a=(n=p.response)==null?void 0:n.data)==null?void 0:a.message)||(e?"Failed to charge the renewal":"Failed to create renewal"))})}finally{l.confirmButtonLoading=!1,this.loadingState.createRenewal=!1,r()}else r()}})}catch{}},async confirmChargeNow(){var l,r;const e=((r=(l=this.subscription)==null?void 0:l.billingInfo)==null?void 0:r.details)||{},t=e.brand&&e.last_4?s("%1$s ****%2$s",e.brand,e.last_4):s("the saved payment method");try{await V.confirm(s("Charge the open renewal order to %1$s now? One attempt will run immediately.",t),s("Charge Now"),{type:"warning",cancelButtonText:s("Cancel"),confirmButtonText:s("Charge Now"),beforeClose:async(n,a,p)=>{var w,C;if(n==="confirm")try{a.confirmButtonLoading=!0,this.loadingState.chargeNow=!0;const y=await this.$post(`orders/${this.orderId}/subscriptions/${this.subscription.id}/charge-now`),v=y==null?void 0:y.status;this.$notify({type:v==="failed"?"warning":"success",title:v==="failed"?s("Charge Failed"):s("Success"),message:s((y==null?void 0:y.message)||"Charge attempt completed")}),this.$emit("reload")}catch(y){this.$notify({type:"error",title:s("Error"),message:s(((C=(w=y.response)==null?void 0:w.data)==null?void 0:C.message)||"Failed to run the charge attempt")})}finally{a.confirmButtonLoading=!1,this.loadingState.chargeNow=!1,p()}else p()}})}catch{}},async confirmSkipRenewal(){const e=(()=>{const t=this.subscription;if(!(t!=null&&t.next_billing_date))return"";const l={daily:1,weekly:7,monthly:30,quarterly:90,half_yearly:182,yearly:365}[t.billing_interval]||30,r=new Date(String(t.next_billing_date).replace(" ","T"));if(isNaN(r.getTime()))return"";r.setDate(r.getDate()+l);const n=new Date;for(;r<=n;)r.setDate(r.getDate()+l);return Ze(r).locale(Je()).format(Xe("date"))})();try{await V.prompt(e?s("Skip the next billing period? The following renewal order will be created around %1$s.",e):s("Skip the next billing period? The next_billing_date will advance one interval into the future."),s("Skip Next Period"),{type:"warning",cancelButtonText:s("Cancel"),confirmButtonText:s("Skip Next Period"),inputType:"textarea",inputPlaceholder:s("Reason (optional) — shown in the timeline and audit trail"),inputValidator:()=>!0,beforeClose:async(t,l,r)=>{var n,a;if(t==="confirm")try{l.confirmButtonLoading=!0,this.loadingState.skipRenewal=!0;const p=await this.$post(`orders/${this.orderId}/subscriptions/${this.subscription.id}/skip-renewal`,{reason:(l.inputValue||"").trim()});this.$notify({type:"success",title:s("Success"),message:p.message||s("Billing period skipped successfully")}),this.$emit("reload")}catch(p){this.$notify({type:"error",title:s("Error"),message:s(((a=(n=p.response)==null?void 0:n.data)==null?void 0:a.message)||"Failed to skip period")})}finally{l.confirmButtonLoading=!1,this.loadingState.skipRenewal=!1,r()}else r()}})}catch{}},confirmReactivate(){!this.subscription.vendor_subscription_id&&!this.isStoreBilled||V.confirm(s("Reactivate the canceled subscription?"),s("Warning"),{type:"warning",icon:T(A),cancelButtonText:s("Back"),confirmButtonText:s("Reactivate Subscription!"),beforeClose:async(e,t,l)=>{var r,n;if(e==="confirm")try{t.confirmButtonLoading=!0,this.loadingState.reactivate=!0,await this.$put(`orders/${this.orderId}/subscriptions/${this.subscription.id}/reactivate`,{data:{vendor_subscription_id:this.subscription.vendor_subscription_id}}),this.$notify({type:"success",title:s("Success"),message:s("Subscription reactivated successfully")}),this.$emit("reload")}catch(a){this.$notify({type:"error",title:s("Error"),message:s(((n=(r=a.response)==null?void 0:r.data)==null?void 0:n.message)||"Failed to reactivate subscription")})}finally{t.confirmButtonLoading=!1,this.loadingState.reactivate=!1,l()}else l()}})}}},Bt={class:"fct-card-header-title is-small inline-flex items-center gap-2"},Ft={class:"more-btn"},Pt={class:"text-red-600"},Et={class:"fct-single-subscription-pricing-table"},Dt={class:"fct-single-subscription-details"},Lt={class:"fct-single-subscription-details-label"},Mt=["innerHTML"],xt={class:"fct-single-subscription-details-label"},At={class:"fct-single-subscription-details-value"},Nt={key:0},Ot={key:1,class:"flex items-center gap-2.5"},Ut={class:"fct-single-subscription-details-label"},zt={class:"fct-single-subscription-details-value"},Ht={key:0},Yt={class:"fct-single-subscription-details-label"},jt={class:"fct-single-subscription-details-value"},qt={class:"fct-single-subscription-details-label"},Wt={class:"fct-single-subscription-details-value"},Gt={class:"fct-single-subscription-details-label"},Qt={class:"fct-single-subscription-details-value"},Zt={key:1},Jt={class:"fct-single-subscription-details-label"},Xt={class:"fct-single-subscription-details-value"},Kt={key:1,class:"fct-vendor-ids"},es={key:0},ts={class:"fct-vendor-ids__label"},ss={class:"fct-vendor-ids__value"},is=["href"],ns={key:1,class:"fct-vendor-ids__text"},os={key:1},ls={class:"fct-vendor-ids__label"},as={class:"fct-vendor-ids__value"},rs={class:"fct-vendor-ids__text"},ds={class:"text-xs text-gray-500 mt-1"},cs={key:0},us={class:"dialog-footer"},ms={class:"fct-vendor-ids-edit__row"},ps={class:"text-xs mt-1"},_s={class:"dialog-footer"};function bs(e,t,l,r,n,a){const p=c("el-tag"),w=c("el-tooltip"),C=c("DynamicIcon"),y=c("Refresh"),v=c("el-icon"),k=c("el-dropdown-item"),R=c("Edit"),I=c("VideoPause"),L=c("VideoPlay"),M=c("Delete"),x=c("Promotion"),q=c("CircleClose"),W=c("CreditCard"),z=c("el-dropdown-menu"),G=c("el-dropdown"),Q=c("CardHeader"),E=c("el-alert"),O=c("ConvertedTime"),H=c("CopyToClipboard"),me=c("CardBody"),pe=c("CancelSubscription"),te=c("el-input-number"),D=c("el-form-item"),$=c("el-option"),se=c("el-select"),_e=c("el-date-picker"),ie=c("el-form"),U=c("el-button"),ne=c("el-dialog"),oe=c("el-input"),be=c("CardContainer"),fe=ve("loading");return u(),b(be,null,{default:o(()=>[i(Q,{border_bottom:"",title_size:"small"},{title:o(()=>[d("h2",Bt,[h(m(e.$t("Subscription Details"))+" ",1),i(w,{content:a.billingTypeBadge.description,placement:"top-start",effect:"dark"},{default:o(()=>[i(p,{type:a.billingTypeBadge.type,class:Se(a.billingTypeBadge.class),size:"small",effect:"light",round:""},{default:o(()=>[h(m(a.billingTypeBadge.label),1)]),_:1},8,["type","class"])]),_:1},8,["content"])])]),default:o(()=>[a.permissions.canFetch||a.permissions.canEdit||a.permissions.canEditVendorIds||a.permissions.canPause||a.permissions.canResume||a.permissions.canAdminReactivate||a.permissions.canCancel||a.permissions.canSendReminder||a.permissions.canCreateRenewal||a.permissions.canSkipRenewal||a.permissions.canChargeNow?(u(),b(G,{key:0,trigger:"click",class:"fct-more-option-wrap","popper-class":"fct-dropdown",onCommand:t[0]||(t[0]=g=>a.handleSubscriptionAction(g))},{dropdown:o(()=>[i(z,null,{default:o(()=>[a.permissions.canFetch?(u(),b(k,{key:0,command:"fetch_subscription"},{default:o(()=>[i(v,null,{default:o(()=>[i(y)]),_:1}),h(" "+m(e.$t("Sync from gateway -"))+" "+m(a.paymentMethod),1)]),_:1})):_("",!0),a.permissions.canEdit?(u(),b(k,{key:1,command:"edit_subscription"},{default:o(()=>[i(v,null,{default:o(()=>[i(R)]),_:1}),h(" "+m(e.$t("Edit Subscription")),1)]),_:1})):_("",!0),a.permissions.canEditVendorIds?(u(),b(k,{key:2,command:"edit_vendor_ids"},{default:o(()=>[i(v,null,{default:o(()=>[i(R)]),_:1}),h(" "+m(e.$t("Edit Vendor IDs")),1)]),_:1})):_("",!0),a.permissions.canPause?(u(),b(k,{key:3,command:"pause_subscription",disabled:n.loadingState.pause},{default:o(()=>[i(v,null,{default:o(()=>[i(I)]),_:1}),h(" "+m(e.$t("Pause Subscription")),1)]),_:1},8,["disabled"])):_("",!0),a.permissions.canResume?(u(),b(k,{key:4,command:"resume_subscription",disabled:n.loadingState.resume},{default:o(()=>[i(v,null,{default:o(()=>[i(L)]),_:1}),h(" "+m(e.$t("Resume Subscription")),1)]),_:1},8,["disabled"])):_("",!0),a.permissions.canAdminReactivate?(u(),b(k,{key:5,command:"reactivate_subscription",disabled:n.loadingState.reactivate},{default:o(()=>[i(v,null,{default:o(()=>[i(L)]),_:1}),h(" "+m(e.$t("Reactivate Subscription")),1)]),_:1},8,["disabled"])):_("",!0),a.permissions.canCancel?(u(),b(k,{key:6,command:"cancel_subscription"},{default:o(()=>[i(v,null,{default:o(()=>[i(M)]),_:1}),d("span",Pt,m(e.$t("Cancel Subscription")),1)]),_:1})):_("",!0),a.permissions.canSendReminder?(u(),b(k,{key:7,command:"send_reminder",disabled:n.loadingState.sendReminder},{default:o(()=>[i(v,null,{default:o(()=>[i(x)]),_:1}),h(" "+m(a.reminderLabel),1)]),_:1},8,["disabled"])):_("",!0),a.permissions.canCreateRenewal?(u(),b(k,{key:8,command:"create_renewal",disabled:n.loadingState.createRenewal},{default:o(()=>[i(v,null,{default:o(()=>[(u(),b(we(a.createRenewalIcon)))]),_:1}),h(" "+m(a.createRenewalLabel),1)]),_:1},8,["disabled"])):_("",!0),a.permissions.canSkipRenewal?(u(),b(k,{key:9,command:"skip_renewal",disabled:n.loadingState.skipRenewal},{default:o(()=>[i(v,null,{default:o(()=>[i(q)]),_:1}),h(" "+m(e.$t("Skip Next Period")),1)]),_:1},8,["disabled"])):_("",!0),a.permissions.canChargeNow?(u(),b(k,{key:10,command:"charge_now",disabled:n.loadingState.chargeNow},{default:o(()=>[i(v,null,{default:o(()=>[i(W)]),_:1}),h(" "+m(e.$t("Charge Now")),1)]),_:1},8,["disabled"])):_("",!0)]),_:1})]),default:o(()=>[d("span",Ft,[i(C,{name:"More"})])]),_:1})):_("",!0)]),_:1}),i(me,null,{default:o(()=>{var g,Y,le;return[a.chargeStateAlert?(u(),b(E,{key:0,type:a.chargeStateAlert.type,title:a.chargeStateAlert.title,description:a.chargeStateAlert.description,closable:!1,"show-icon":"",class:"mb-4"},null,8,["type","title","description"])):_("",!0),d("div",Et,[d("p",null,m(e.$t("Product Name")),1),d("h3",null,m(l.subscription.display_item_name),1)]),d("ul",Dt,[d("li",null,[d("div",Lt,m(e.$t("Billing Cycle")),1),d("div",{class:"fct-single-subscription-details-value",innerHTML:l.subscription.payment_info},null,8,Mt)]),d("li",null,[d("div",xt,m(e.$t("Active Payment Gateway")),1),d("div",At,[l.subscription.current_payment_method?(u(),S("div",Ot,[d("span",null,m(a.paymentMethod),1)])):(u(),S("span",Nt,"----"))])]),d("li",null,[d("div",Ut,m(e.$t("Initial Purchase ID")),1),d("div",zt," #"+m(l.subscription.parent_order_id),1)]),l.subscription.bill_times>0?(u(),S("li",Ht,[d("div",Yt,m(e.$t("Installment Progress")),1),d("div",jt,m(l.subscription.bill_count)+" / "+m(l.subscription.bill_times),1)])):_("",!0),d("li",null,[d("div",qt,m(e.$t("Auto-cancellation")),1),d("div",Wt,m(l.subscription.expire_at?l.subscription.expire_at:"---"),1)]),d("li",null,[d("div",Gt,m(e.$t("Started")),1),d("div",Qt,[i(O,{"date-time":l.subscription.created_at,withTime:!1},null,8,["date-time"])])]),a.showNextBillingDate?(u(),S("li",Zt,[d("div",Jt,m(e.$t("Next renewal")),1),d("div",Xt,[h(m(e.formatNumberForOrder(l.subscription.recurring_total,l.subscription))+" on ",1),i(O,{"date-time":l.subscription.next_billing_date,withTime:!1},null,8,["date-time"]),l.subscription.has_pending_skip?(u(),b(w,{key:0,content:a.skipBadgeTooltip,placement:"top",effect:"dark",trigger:["hover","focus"]},{default:o(()=>[i(p,{type:"warning",size:"small",effect:"light",round:"",class:"fct-skip-badge",tabindex:"0",role:"note","aria-label":a.skipBadgeTooltip},{default:o(()=>[h(m(e.$t("Period skipped")),1)]),_:1},8,["aria-label"])]),_:1},8,["content"])):_("",!0)])])):_("",!0)]),l.subscription.vendor_subscription_id||(g=l.subscription)!=null&&g.vendor_customer_id?(u(),S("div",Kt,[l.subscription.vendor_subscription_id?(u(),S("div",es,[d("div",ts,m(e.$t("Vendor Subscription ID")),1),d("div",ss,[l.subscription.url?(u(),S("a",{key:0,href:l.subscription.url,target:"_blank",class:"fct-vendor-ids__link"},m(l.subscription.vendor_subscription_id),9,is)):(u(),S("span",ns,m(l.subscription.vendor_subscription_id),1)),i(H,{text:l.subscription.vendor_subscription_id,showMode:"basic_copy_btn",tooltipText:"Copy"},null,8,["text"])])])):_("",!0),(Y=l.subscription)!=null&&Y.vendor_customer_id?(u(),S("div",os,[d("div",ls,m(e.$t("Vendor Customer ID")),1),d("div",as,[d("span",rs,m(l.subscription.vendor_customer_id),1),i(H,{text:(le=l.subscription)==null?void 0:le.vendor_customer_id,showMode:"basic_copy_btn",tooltipText:"Copy"},null,8,["text"])])])):_("",!0),t[15]||(t[15]=d("div",null,null,-1))])):_("",!0)]}),_:1}),i(pe,{subscription:l.subscription,orderId:l.orderId,onClose:t[1]||(t[1]=g=>n.cancelSubscriptionModal=!1),modelValue:n.cancelSubscriptionModal,"onUpdate:modelValue":t[2]||(t[2]=g=>n.cancelSubscriptionModal=g),onReload:t[3]||(t[3]=g=>e.$emit("reload")),onCancelSubscription:a.confirmCancel},null,8,["subscription","orderId","modelValue","onCancelSubscription"]),i(ne,{modelValue:n.editSubscriptionModal,"onUpdate:modelValue":t[10]||(t[10]=g=>n.editSubscriptionModal=g),title:e.$t("Edit Subscription"),width:"500px","close-on-click-modal":!1},{footer:o(()=>[d("span",us,[i(U,{onClick:t[9]||(t[9]=g=>n.editSubscriptionModal=!1)},{default:o(()=>[h(m(e.$t("Cancel")),1)]),_:1}),i(U,{type:"primary",onClick:a.confirmSaveSubscription,loading:n.loadingState.save},{default:o(()=>[h(m(e.$t("Save Changes")),1)]),_:1},8,["onClick","loading"])])]),default:o(()=>[i(E,{type:"warning",closable:!1,"show-icon":"",class:"mb-4"},{default:o(()=>[h(m(e.$t("Editing this subscription will update the details for all future renewals.")),1)]),_:1}),a.hasPendingRenewal?(u(),b(E,{key:0,type:"info",closable:!1,"show-icon":"",class:"mb-4"},{default:o(()=>[h(m(e.$t("A renewal invoice is already pending; it will be updated to the new amount.")),1)]),_:1})):_("",!0),Ce((u(),b(ie,{model:n.editForm,"label-width":"140px"},{default:o(()=>[i(D,{label:e.$t("Next Renewal Amount")},{default:o(()=>[i(te,{modelValue:n.editForm.recurring_total,"onUpdate:modelValue":t[4]||(t[4]=g=>n.editForm.recurring_total=g),precision:2,min:0,step:.01,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue"])]),_:1},8,["label"]),i(D,{label:e.$t("Billing Times")},{default:o(()=>{var g;return[i(te,{modelValue:n.editForm.bill_times,"onUpdate:modelValue":t[5]||(t[5]=Y=>n.editForm.bill_times=Y),min:a.billTimesMin,step:1,"controls-position":"right",style:{width:"100%"}},null,8,["modelValue","min"]),d("div",ds,[h(m(e.$t("0 = Unlimited (renew indefinitely)"))+" ",1),((g=l.subscription)==null?void 0:g.bill_count)>0?(u(),S("span",cs," — "+m(e.$t("must be 0 or"))+" ≥ "+m(l.subscription.bill_count)+" ("+m(e.$t("payments made"))+")",1)):_("",!0)])]}),_:1},8,["label"]),i(D,{label:e.$t("Billing Interval")},{default:o(()=>[i(se,{modelValue:n.editForm.billing_interval,"onUpdate:modelValue":t[6]||(t[6]=g=>n.editForm.billing_interval=g),style:{width:"100%"}},{default:o(()=>[i($,{label:e.$t("Daily"),value:"daily"},null,8,["label"]),i($,{label:e.$t("Weekly"),value:"weekly"},null,8,["label"]),i($,{label:e.$t("Monthly"),value:"monthly"},null,8,["label"]),i($,{label:e.$t("Quarterly"),value:"quarterly"},null,8,["label"]),i($,{label:e.$t("Half Yearly"),value:"half_yearly"},null,8,["label"]),i($,{label:e.$t("Yearly"),value:"yearly"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),i(D,{label:e.$t("Status")},{default:o(()=>[i(se,{modelValue:n.editForm.status,"onUpdate:modelValue":t[7]||(t[7]=g=>n.editForm.status=g),style:{width:"100%"}},{default:o(()=>[i($,{label:e.$t("Active"),value:"active"},null,8,["label"]),i($,{label:e.$t("Paused"),value:"paused"},null,8,["label"]),i($,{label:e.$t("Trialing"),value:"trialing"},null,8,["label"]),i($,{label:e.$t("Past Due"),value:"past_due"},null,8,["label"]),i($,{label:e.$t("Expired"),value:"expired"},null,8,["label"]),i($,{label:e.$t("Completed"),value:"completed"},null,8,["label"])]),_:1},8,["modelValue"])]),_:1},8,["label"]),i(D,{label:e.$t("Next Billing Date")},{default:o(()=>[i(_e,{modelValue:n.editForm.next_billing_date,"onUpdate:modelValue":t[8]||(t[8]=g=>n.editForm.next_billing_date=g),type:"datetime",placeholder:e.$t("Select date"),format:"YYYY-MM-DD HH:mm","value-format":"YYYY-MM-DD HH:mm:ss",style:{width:"100%"}},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["model"])),[[fe,n.loadingState.edit]])]),_:1},8,["modelValue","title"]),i(ne,{modelValue:n.vendorIdsModal,"onUpdate:modelValue":t[14]||(t[14]=g=>n.vendorIdsModal=g),title:e.$t("Edit Vendor IDs"),width:"520px","close-on-click-modal":!1},{footer:o(()=>[d("span",_s,[i(U,{onClick:t[13]||(t[13]=g=>n.vendorIdsModal=!1)},{default:o(()=>[h(m(e.$t("Cancel")),1)]),_:1}),i(U,{type:"primary",onClick:a.confirmSaveVendorIds,loading:n.loadingState.saveVendorIds,disabled:!a.vendorIdsChanged},{default:o(()=>[h(m(e.$t("Save Changes")),1)]),_:1},8,["onClick","loading","disabled"])])]),default:o(()=>[i(E,{type:"warning",closable:!1,"show-icon":"",class:"mb-4"},{default:o(()=>[h(m(e.$t("Renewals, cancellations and incoming gateway webhooks all follow these IDs. Changing them does not change anything at the payment gateway — use this only to correct IDs that are already wrong.")),1)]),_:1}),i(ie,{model:n.vendorIdsForm,"label-position":"top"},{default:o(()=>[i(D,{label:e.$t("Vendor Subscription ID")},{default:o(()=>[d("div",ms,[i(oe,{modelValue:n.vendorIdsForm.vendor_subscription_id,"onUpdate:modelValue":t[11]||(t[11]=g=>n.vendorIdsForm.vendor_subscription_id=g),placeholder:e.$t("e.g. sub_4L7nezJXHW")},null,8,["modelValue","placeholder"]),a.permissions.canVerifyVendorIds?(u(),b(U,{key:0,onClick:a.verifyVendorIds,loading:n.loadingState.verifyVendorIds},{default:o(()=>[h(m(e.$t("Verify")),1)]),_:1},8,["onClick","loading"])):_("",!0)])]),_:1},8,["label"]),i(D,{label:e.$t("Vendor Customer ID")},{default:o(()=>[i(oe,{modelValue:n.vendorIdsForm.vendor_customer_id,"onUpdate:modelValue":t[12]||(t[12]=g=>n.vendorIdsForm.vendor_customer_id=g),placeholder:e.$t("e.g. cst_9GrdvYmPPn")},null,8,["modelValue","placeholder"])]),_:1},8,["label"])]),_:1},8,["model"]),n.vendorIdsVerification?(u(),b(E,{key:0,type:n.vendorIdsVerification.ok?"success":"error",closable:!1,"show-icon":"",class:"mb-4"},{default:o(()=>[n.vendorIdsVerification.ok?(u(),S(N,{key:0},[d("div",null,m(e.$t("Found at gateway"))+" — "+m(n.vendorIdsVerification.summary),1),d("div",ps,m(e.$t("This only proves the ID exists in the connected gateway account. Confirm it is the right customer before saving.")),1)],64)):(u(),S(N,{key:1},[h(m(n.vendorIdsVerification.message),1)],64))]),_:1},8,["type"])):_("",!0)]),_:1},8,["modelValue","title"])]),_:1})}const fs=K(Tt,[["render",bs],["__scopeId","data-v-a723e60e"]]),hs={class:"fct-single-order-loader-wrap fct-layout-width"},gs={class:"single-page-header fct-page-loader-header min-h-18 flex items-start justify-between"},ys={class:"single-page-body"},vs={class:"fct-single-order"},ws={class:"fct-single-order-main"},Ss={class:"fct-single-order-aside"},Cs={class:"fct-admin-sidebar"},ks={props:{loading:{type:Boolean,default:!1}}},$s=Object.assign(ks,{__name:"SingleSubscriptionLoader",setup(e){return(t,l)=>{const r=c("el-skeleton-item"),n=c("el-skeleton");return u(),S("div",hs,[d("div",gs,[i(n,{animated:"",class:"flex flex-col items-start gap-2"},{template:o(()=>[i(r,{class:"max-w-180"}),i(r,{class:"max-w-[100px]"})]),_:1})]),d("div",ys,[d("div",vs,[d("div",ws,[i(P,{class:"overflow-hidden"},{default:o(()=>[i(B,{border_bottom:"",title:t.$t("Subscription Details")},null,8,["title"]),i(F,{class:"grid gap-5 grid-cols-[repeat(auto-fit,minmax(200px,1fr))]"},{default:o(()=>[(u(),S(N,null,J(9,a=>i(n,{key:a,animated:!0},{template:o(()=>[d("div",null,[i(r,{variant:"p",class:"w-full"}),i(r,{variant:"p",style:{width:"50%"}})])]),_:2},1024)),64))]),_:1})]),_:1}),i(P,{class:"overflow-hidden"},{default:o(()=>[i(B,{border_bottom:"",title:t.$t("Related Orders")},null,8,["title"]),i(F,null,{default:o(()=>[i(n,{animated:"",rows:3})]),_:1})]),_:1}),i(P,{class:"overflow-hidden"},{default:o(()=>[i(B,{border_bottom:"",title:t.$t("Related Licenses")},null,8,["title"]),i(F,null,{default:o(()=>[i(n,{animated:"",rows:3})]),_:1})]),_:1})]),d("div",Ss,[d("div",Cs,[i(P,null,{default:o(()=>[i(B,{title:t.$t("Subscription Plan"),border_bottom:"",title_size:"small"},null,8,["title"]),i(F,null,{default:o(()=>[i(n,{animated:"",rows:2})]),_:1})]),_:1}),i(P,null,{default:o(()=>[i(B,{title:t.$t("Customer Details"),border_bottom:"",title_size:"small"},null,8,["title"]),i(F,null,{default:o(()=>[i(n,{animated:"",rows:3})]),_:1})]),_:1}),i(P,null,{default:o(()=>[i(B,{title:t.$t("Labels"),border_bottom:"",title_size:"small"},null,8,["title"]),i(F,null,{default:o(()=>[i(n,{animated:"",rows:1})]),_:1})]),_:1})])])])])])}}}),Is={name:"SingleSubscription",components:{Activity:Ee,ChangeOrderCustomer:We,DynamicIcon:ee,ConvertedTime:ce,Badge:Ie,NotFound:Ke,SingleSubscriptionLoader:$s,SubscriptionDetails:fs,Labels:qe,LicenseTable:je,CopyToClipboard:ue,CardContainer:P,CardBody:F,CardHeader:B,OrdersTable:Pe,CustomerPurchaseValue:Fe,OrderCustomerInformation:Ye,OrdersTableMobile:Be},props:["subscription_id"],data(){return{notFound:{show:!1,message:"",buttonText:"",route:""},subscription:{},loading:!1,parentOrderLoading:!0,error:null,ArrowRight:T(Ue),parentOrder:null,selectedLabels:[],changeCustomer:!1,reminderPermissions:{}}},computed:{Str(){return X},subscriptionStatus(){var e;return(e=this.subscription)==null?void 0:e.status},visibleRelatedOrders(){var e;return(((e=this.subscription)==null?void 0:e.related_orders)||[]).filter(t=>!(t.type==="renewal"&&Number(t.total_amount)===0))}},watch:{subscription_id:{handler(e,t){this.fetchSubscription()}}},mounted(){this.fetchSubscription()},methods:{translate:s,getCardBrand:et,fetchSubscription(){this.notFound.show=!1,this.loading=!0,this.$get("subscriptions/"+this.subscription_id).then(e=>{this.subscription=e.subscription,this.selectedLabels=e.selected_labels,this.reminderPermissions=e.reminder_permissions||{},this.getParentOrder()}).catch(e=>{var t;e.code==="fluent_cart_entity_not_found"?(this.notFound.show=!0,this.notFound.buttonText=Z.get(e,"data.buttonText"),this.notFound.message=Z.get(e,"data.message"),this.notFound.route=Z.get(e,"data.route")):e.status_code=="422"?j.validationErrors(e):j.error((t=e.data)==null?void 0:t.message)}).finally(()=>{this.loading=!1})},getParentOrder(){var e;this.$get("orders/"+((e=this.subscription)==null?void 0:e.parent_order_id)).then(t=>{this.parentOrder=t.order}).finally(()=>{this.parentOrderLoading=!1})},reload(){window.location.reload()},handleCommand(e){e==="change_customer"&&(this.changeCustomer=!0)}}},Vs={key:1,class:"fct-single-subscription-page"},Rs={key:1,class:"fct-single-order-wrapper fct-layout-width"},Ts={class:"single-page-header flex items-start justify-between"},Bs={class:"single-page-header-title-wrap"},Fs={class:"single-page-header-status-wrap"},Ps={class:"pt-2 text-xs text-system-mid dark:text-gray-300"},Es={class:"single-page-body"},Ds={class:"fct-single-subscription"},Ls={class:"fct-single-subscription-main"},Ms={class:"fct-single-subscription-aside"},xs={class:"fct-admin-sidebar"},As={class:"fct-admin-sidebar"};function Ns(e,t,l,r,n,a){var O;const p=c("NotFound"),w=c("SingleSubscriptionLoader"),C=c("el-breadcrumb-item"),y=c("el-breadcrumb"),v=c("Badge"),k=c("ConvertedTime"),R=c("SubscriptionDetails"),I=c("CardHeader"),L=c("OrdersTable"),M=c("OrdersTableMobile"),x=c("CardContainer"),q=c("LicenseTable"),W=c("Activity"),z=c("CardBody"),G=c("el-skeleton"),Q=c("OrderCustomerInformation"),E=c("Labels");return u(),S(N,null,[n.notFound.show?(u(),b(p,{key:0,"button-text":n.notFound.buttonText,message:n.notFound.message,route:n.notFound.route},null,8,["button-text","message","route"])):_("",!0),n.notFound.show===!1?(u(),S("div",Vs,[n.loading?(u(),b(w,{key:0})):_("",!0),!n.loading&&n.subscription.id?(u(),S("div",Rs,[d("div",Ts,[d("div",null,[d("div",Bs,[i(y,{"separator-icon":n.ArrowRight},{default:o(()=>[i(C,{to:{name:"all_subscriptions"}},{default:o(()=>[h(m(e.$t("Subscriptions")),1)]),_:1}),i(C,null,{default:o(()=>[h("#"+m(l.subscription_id),1)]),_:1})]),_:1},8,["separator-icon"]),d("div",Fs,[i(v,{status:a.subscriptionStatus},null,8,["status"])])]),d("div",Ps,[i(k,{"date-time":n.subscription.created_at,"with-time":""},null,8,["date-time"])])]),t[2]||(t[2]=d("div",{class:"fct-btn-group sm"},null,-1))]),d("div",Es,[d("div",Ds,[d("div",Ls,[i(R,{subscription:n.subscription,orderId:(O=n.parentOrder)==null?void 0:O.id,reminderPermissions:n.reminderPermissions,onFetchOrder:t[0]||(t[0]=H=>e.$emit("fetchSubscription")),onReload:t[1]||(t[1]=H=>a.reload())},null,8,["subscription","orderId","reminderPermissions"]),a.visibleRelatedOrders.length?(u(),b(x,{key:0,class:"overflow-hidden"},{default:o(()=>[i(I,{class:"pb-4",title:e.$t("Related Orders")+" ("+a.visibleRelatedOrders.length+")",title_size:"small"},null,8,["title"]),i(L,{class:"hide-on-mobile",orders:a.visibleRelatedOrders,columns:["type"]},null,8,["orders"]),i(M,{class:"show-on-mobile fct-single-subscription-orders-mobile",orders:a.visibleRelatedOrders,columns:["type"]},null,8,["orders"])]),_:1})):_("",!0),n.subscription.licenses?(u(),b(x,{key:1,class:"overflow-hidden"},{default:o(()=>[i(I,{class:"pb-4",title:e.$t("Related Licenses"),title_size:"small"},null,8,["title"]),i(q,{licenses:n.subscription.licenses,columns:[]},null,8,["licenses"])]),_:1})):_("",!0),n.subscription.activities&&n.subscription.activities.length?(u(),b(x,{key:2,class:"overflow-hidden mb-0"},{default:o(()=>[i(I,{title:e.$t("Activity"),title_size:"small",border_bottom:""},null,8,["title"]),i(z,null,{default:o(()=>[i(W,{activities:n.subscription.activities},null,8,["activities"])]),_:1})]),_:1})):_("",!0)]),d("div",Ms,[d("div",xs,[n.parentOrderLoading?(u(),b(x,{key:0},{default:o(()=>[i(I,{title:e.$t("Subscription Plan"),title_size:"small",border_bottom:""},null,8,["title"]),i(z,null,{default:o(()=>[i(G,{rows:3,animated:!0})]),_:1})]),_:1})):_("",!0)]),d("div",As,[n.subscription.customer?(u(),b(Q,{key:0,subscription:n.subscription,shouldEnableEditing:!0},null,8,["subscription"])):_("",!0),i(E,{"bind-to-id":n.subscription.id,"bind-to-type":"Subscription",selectedLabels:n.selectedLabels,shouldEnableEditing:!0,"onUpdate:updateLabel":()=>{}},null,8,["bind-to-id","selectedLabels"])])])])])])):_("",!0)])):_("",!0)],64)}const Os=K(Is,[["render",Ns]]);window.fluent_cart_admin.hooks.addFilter("fluent_cart_routes","fluent_all_subscriptions",function(e){return e.subscription_route={name:"subscriptions",path:"/subscriptions",component:st,children:[{name:"all_subscriptions",path:"",component:$t,meta:{active_menu:"subscriptions",title:s("Subscriptions")}},{name:"view_subscription",path:":subscription_id/view",component:Os,props:!0,meta:{active_menu:"subscriptions",title:s("View Subscription")}}]},e}); |