1import{_ as C}from"./_TeY7avl.js";import{_ as te}from"./XUMAnCCm.js";import{_ as Pe}from"./DSago7zB.js";import{_ as Re}from"./DAvRA8n7.js";import{_ as Me}from"./DiMATqUO.js";import{u as Ae}from"./X3twHqHW.js";import{e as Y,j as v,o,w as s,b as t,f as e,a as d,k as F,d as i,y as Ee,i as T,h as G,O as Ue,c as g,t as y,F as D,r as M,n as Fe,K as Q,W as m}from"./D2aBaYCh.js";import{_ as le,a as ie,b as Ke,d as se,c as O,e as re}from"./BdbVRZja.js";import{E as Le}from"./DXC55dl2.js";import{C as je}from"./FAUWSOd9.js";import{S as Ie}from"./jRoo9D20.js";import{T as Oe,u as Te,g as Ne,a as qe,F as ae,A as ne}from"./B5pWQq0U.js";import{R as ze}from"./DW2B_-Zh.js";import{S as Be,_ as He}from"./BF_s8dqy.js";import{a as Je,b as B,c as Ge,d as Qe,e as oe,_ as Ye}from"./BDnxoV0s.js";import{_ as ue,a as de,b as me,c as ce,d as pe}from"./Bb_cvoc-.js";import{F as We,a as Xe}from"./DWgPj57q.js";import{_ as Ze,a as et,b as tt,c as st,d as at}from"./CV80t7uv.js";import{_ as nt}from"./hLujHJJh.js";import{_ as ot}from"./BFRx4GjS.js";import{_ as lt,a as it,b as rt}from"./CyKarPmH.js";import{_ as ut,a as dt,b as mt,c as ct}from"./BxBh8gDk.js";import{_ as pt,a as _t}from"./DMMLyKhy.js";import{_ as ft}from"./1vL5Og7n.js";import{u as _e}from"./Ds_1C-Xk.js";import{u as H}from"./Dt3MCdMV.js";import{u as vt}from"./DSU85pbA.js";import{u as gt}from"./BfXCc6J4.js";import{C as bt}from"./KAGayM4L.js";import{C as xt}from"./DvgU3qHA.js";import{C as yt}from"./CQuTLo_P.js";import{R as kt}from"./mqemsiRn.js";import{C as Ct,a as $t}from"./D5B6DzHh.js";import{C as wt}from"./O1XqtwN6.js";import{C as St}from"./DH9hYNFk.js";import{u as ht}from"./BE1u7KBh.js";import"./BSVju-9X.js";import"./B_LYIUCK.js";import"./ChviPwxD.js";import"./D2ltdv55.js";import"./69vNnjgr.js";import"./CDX_H2b7.js";import"./C_jnh2hx.js";import"./_lQnYn91.js";import"./BPAl-OSZ.js";import"./8gyaHsCQ.js";import"./FUKBWQwh.js";import"./DKZOPE58.js";import"./CHIgUVhi.js";import"./ChOKVcqp.js";import"./C6Y-ieo6.js";import"./B7iN_SNJ.js";import"./DrevJgg3.js";import"./vi2mB--f.js";import"./D3VWVCOu.js";import"./B-DFnFy7.js";import"./CHs1IB-k.js";import"./DJl8XXE2.js";import"./C-E83dC9.js";import"./DhenvKde.js";import"./CjlqfVHq.js";import"./R63fu-Ty.js";import"./N9UflkqM.js";import"./BJ7eJWA3.js";import"./kRIii9yh.js";import"./BWKZ7RMD.js";const Dt=Y({__name:"TableSubscriptionMenu",props:{subscription:{}},emits:["edit","delete","restore"],setup($,{emit:k}){const w=k;function _(S){navigator.clipboard.writeText(S),Ee.success("Email copied â
")}return(S,r)=>(o(),v(e(re),null,{default:s(()=>[t(e(le),{"as-child":""},{default:s(()=>[t(e(C),{variant:"ghost",class:"w-8 h-8 p-0"},{default:s(()=>[r[4]||(r[4]=d("span",{class:"sr-only"},"Open menu",-1)),t(e(Le),{class:"w-4 h-4"})]),_:1})]),_:1}),t(e(ie),{align:"end"},{default:s(()=>[t(e(Ke),null,{default:s(()=>[...r[5]||(r[5]=[i("Actions",-1)])]),_:1}),t(e(se)),t(e(O),{onClick:r[0]||(r[0]=c=>_($.subscription.email))},{default:s(()=>[t(e(je),{class:"w-2 h-2 mr-1"}),r[6]||(r[6]=i(" Copy Email ",-1))]),_:1}),t(e(O),{onClick:r[1]||(r[1]=c=>w("edit",$.subscription))},{default:s(()=>[t(e(Ie),{class:"w-2 h-2 mr-1"}),r[7]||(r[7]=i(" Edit ",-1))]),_:1}),t(e(se)),t(e(O),{class:"text-red-600",onClick:r[2]||(r[2]=c=>w("delete",$.subscription))},{default:s(()=>[t(e(Oe),{class:"w-2 h-2 mr-1"}),r[8]||(r[8]=i(" Delete ",-1))]),_:1}),$.subscription.deleted_at?(o(),v(e(O),{key:0,class:"text-green-600",onClick:r[3]||(r[3]=c=>w("restore",$.subscription))},{default:s(()=>[t(e(ze),{class:"w-2 h-2 mr-1"}),r[9]||(r[9]=i(" Restore ",-1))]),_:1})):F("",!0)]),_:1})]),_:1}))}}),Vt=Object.assign(Dt,{__name:"CustomDashboardSubscriptionsTableSubscriptionMenu"}),J=["subscriptions"];function Pt(){const $=H("create",{entity:"Subscription",queryKey:J,url:()=>"/api/subscriptions"}),k=H("update",{entity:"Subscription",queryKey:J,url:(_,S)=>`/api/subscriptions/${S.id}`}),w=H("delete",{entity:"Subscription",queryKey:J,url:(_,S)=>`/api/subscriptions/${S.id}`});return{create:$,update:k,remove:w}}const Rt={key:0,class:"space-y-4"},Mt={class:"flex justify-between gap-2 w-full"},At={class:"capitalize"},Et={class:"text-xs text-muted-foreground"},Ut={key:1,class:"text-sm text-muted-foreground border rounded-md px-3 py-2"},Ft={key:2,class:"text-sm text-muted-foreground border rounded-md px-3 py-2"},Kt={key:1,class:"text-sm text-muted-foreground"},j="manage-subscription",Lt=Y({__name:"DialogManageSubscription",setup($){const{data:k,isLoading:w}=vt(),_=T(()=>k.value??[]),{data:S,isLoading:r}=gt(),c=T(()=>S.value??[]),{isOpenRef:V,getPayloadRef:K,close:P}=_e(),E=V(j),A=K(j),L=G(!1),h=T(()=>A.value?.mode??"create"),f=G({user_id:null,plan_id:null,duration_days:void 0,status:"active",starts_at:null,ends_at:null});Ue(()=>A.value,R=>{if(R?.subscription){const a=R.subscription;f.value={user_id:a.user?.id,plan_id:a.plan?.id,duration_days:void 0,status:a.status,starts_at:a.starts_at,ends_at:a.ends_at}}},{immediate:!0});const{create:N,update:q,remove:p}=Pt();async function n(){h.value==="create"&&await N.mutateAsync({payload:f.value}),h.value==="edit"&&await q.mutateAsync({id:A.value.subscription.id,payload:f.value}),P(j)}async function b(){await p.mutateAsync({id:A.value.subscription.id}),P(j)}return(R,a)=>{const l=tt,x=st,fe=et,z=ot,I=C,ve=it,ge=dt,be=pt,xe=_t,ye=ct,ke=mt,Ce=ut,$e=rt,we=lt,W=me,X=de,U=pe,Z=ce,ee=ue,Se=ft,he=nt,De=Ze,Ve=at;return o(),v(Ve,{open:e(E),"onUpdate:open":a[5]||(a[5]=u=>Q(E)?E.value=u:null)},{default:s(()=>[t(De,{class:"max-w-md"},{default:s(()=>[t(fe,null,{default:s(()=>[t(l,null,{default:s(()=>[i(y(h.value==="create"?"Create Subscription":h.value==="edit"?"Edit Subscription":"Delete Subscription"),1)]),_:1}),t(x,null,{default:s(()=>[...a[6]||(a[6]=[i(" Statistik views harian untuk. ",-1)])]),_:1})]),_:1}),h.value!=="delete"?(o(),g("div",Rt,[t(z,{for:"user_id",class:"mb-2"},{default:s(()=>[...a[7]||(a[7]=[i("Nama Lengkap",-1)])]),_:1}),t(we,{open:L.value,"onUpdate:open":a[0]||(a[0]=u=>L.value=u)},{default:s(()=>[t(ve,{"as-child":""},{default:s(()=>[t(I,{variant:"outline",role:"combobox",class:"w-full justify-between"},{default:s(()=>[d("span",null,y(_.value.find(u=>u.id===f.value.user_id)?.name??"Pilih User"),1),t(e(bt),{class:"ml-2 h-4 w-4 opacity-50"})]),_:1})]),_:1}),t($e,{class:"w-[--radix-popover-trigger-width] p-0",align:"start"},{default:s(()=>[t(Ce,null,{default:s(()=>[t(ge,{placeholder:"Cari user..."}),t(ke,null,{default:s(()=>[e(w)?F("",!0):(o(),v(be,{key:0},{default:s(()=>[...a[8]||(a[8]=[i(" User tidak ditemukan. ",-1)])]),_:1})),t(ye,null,{default:s(()=>[(o(!0),g(D,null,M(_.value,u=>(o(),v(xe,{key:u.id,value:String(u.id),onSelect:()=>{f.value.user_id=u.id,L.value=!1}},{default:s(()=>[t(e(xt),{class:Fe(["mr-2 h-4 w-4",f.value.user_id===u.id?"opacity-100":"opacity-0"])},null,8,["class"]),i(" "+y(u.name),1)]),_:2},1032,["value","onSelect"]))),128))]),_:1})]),_:1})]),_:1})]),_:1})]),_:1},8,["open"]),t(z,{for:"plan_id"},{default:s(()=>[...a[9]||(a[9]=[i("Plan",-1)])]),_:1}),c.value.length?(o(),v(ee,{key:0,"model-value":f.value.plan_id!==null?String(f.value.plan_id):void 0,"onUpdate:modelValue":a[1]||(a[1]=u=>f.value.plan_id=Number(u))},{default:s(()=>[t(X,{class:"w-full justify-between"},{default:s(()=>[t(W,{placeholder:"Pilih Plan"})]),_:1}),t(Z,null,{default:s(()=>[(o(!0),g(D,null,M(c.value,u=>(o(),v(U,{key:u.id,value:String(u.id)},{default:s(()=>[d("div",Mt,[d("span",At,y(u.name),1),d("span",Et,y(u.price===0?"Free":`Rp ${u.price.toLocaleStr
1ing()}`),1)])]),_:2},1032,["value"]))),128))]),_:1})]),_:1},8,["model-value"])):e(r)?(o(),g("div",Ft," Loading plan... ")):(o(),g("div",Ut," No plan available ")),d("div",null,[t(z,{for:"duration_days"},{default:s(()=>[...a[10]||(a[10]=[i("Durasi (hari)",-1)])]),_:1}),t(Se,{type:"number",min:"1",placeholder:"Kosongkan untuk default plan",modelValue:f.value.duration_days,"onUpdate:modelValue":a[2]||(a[2]=u=>f.value.duration_days=u),modelModifiers:{number:!0}},null,8,["modelValue"]),a[11]||(a[11]=d("p",{class:"text-xs text-muted-foreground mt-1"}," Jika dikosongkan, sistem akan menggunakan durasi dari plan. ",-1))]),t(ee,{modelValue:f.value.status,"onUpdate:modelValue":a[3]||(a[3]=u=>f.value.status=u)},{default:s(()=>[t(X,null,{default:s(()=>[t(W)]),_:1}),t(Z,null,{default:s(()=>[t(U,{value:"active"},{default:s(()=>[...a[12]||(a[12]=[i("Active",-1)])]),_:1}),t(U,{value:"inactive"},{default:s(()=>[...a[13]||(a[13]=[i("Inactive",-1)])]),_:1}),t(U,{value:"pending"},{default:s(()=>[...a[14]||(a[14]=[i("Pending",-1)])]),_:1}),t(U,{value:"expired"},{default:s(()=>[...a[15]||(a[15]=[i("Expired",-1)])]),_:1}),t(U,{value:"cancelled"},{default:s(()=>[...a[16]||(a[16]=[i("Canceled",-1)])]),_:1})]),_:1})]),_:1},8,["modelValue"])])):(o(),g("div",Kt," Are you sure you want to delete this subscription? ")),t(he,null,{default:s(()=>[t(I,{variant:"outline",onClick:a[4]||(a[4]=u=>e(P)(j))},{default:s(()=>[...a[17]||(a[17]=[i(" Cancel ",-1)])]),_:1}),h.value==="delete"?(o(),v(I,{key:0,variant:"destructive",onClick:b},{default:s(()=>[...a[18]||(a[18]=[i(" Delete ",-1)])]),_:1})):(o(),v(I,{key:1,onClick:n},{default:s(()=>[...a[19]||(a[19]=[i(" Save ",-1)])]),_:1}))]),_:1})]),_:1})]),_:1},8,["open"])}}}),jt=Object.assign(Lt,{__name:"CustomDashboardSubscriptionsDialogManageSubscription"}),It={class:"relative flex justify-between"},Ot={class:"flex items-center justify-end"},Tt={class:"rounded-md border p-4"},Nt={class:"w-full space-y-4"},qt={class:"flex gap-2 items-center justify-between"},zt={class:"flex gap-2"},Bt={class:"flex gap-2"},Ht={class:"flex items-center gap-2"},Jt={key:0},Gt={key:1},Qt={class:"rounded-md border"},Yt={key:2,class:"flex items-center justify-between mt-4"},Wt={class:"flex items-center gap-2"},Xt={class:"flex-1 text-sm text-muted-foreground"},Zt={class:"flex items-center space-x-2"},es={class:"text-sm"},ts={__name:"CustomDashboardSubscriptionsIndexSubscription",props:{roles:Array},setup($){const{open:k}=_e();function w(){k("manage-subscription",{mode:"create",subscription:null})}const{data:_,isLoading:S,isError:r,page:c,perPage:V,search:K,filters:P,changeSort:E,refetch:A}=Ae({endpoint:"/api/subscriptions",queryKey:["subscriptions","user"],defaultPerPage:10,defaultSort:{column:"created_at",direction:"desc"}}),L=T(()=>_.value?.data??[]),h=[{accessorKey:"no",header:()=>m("div",{class:"text-center"},"No"),cell:({row:p})=>m("div",{class:"text-center"},(c.value-1)*V.value+p.index+1)},{accessorKey:"user.name",header:()=>m(C,{variant:"ghost",onClick:()=>E("user.name")},()=>["User",m(ne,{class:"ml-2 h-4 w-4"})]),cell:({row:p})=>{const n=p.original;return m("div",{class:"flex flex-col"},[m("span",{class:"font-medium"},n.user?.name),m("span",{class:"text-xs text-muted-foreground"},n.user?.email)])}},{accessorKey:"plan.name",header:()=>m(C,{variant:"ghost",onClick:()=>E("plan.name")},()=>["Plan",m(ne,{class:"ml-2 h-4 w-4"})]),cell:({row:p})=>{const n=p.original.plan;return m(te,{variant:"outline",class:{gratis:"bg-slate-500/10 text-slate-600 border-slate-500",umkm:"bg-sky-500/10 text-sky-600 border-sky-500",perusahaan:"bg-green-500/10 text-green-600 border-green-500",custom:"bg-purple-500/10 text-purple-600 border-purple-500"}[n?.slug]??""},()=>n?.name)}},{accessorKey:"status",header:()=>m("div",{class:"text-center"},"Status"),cell:({row:p})=>{const n=p.getValue("status"),b={active:{text:"Active",class:"bg-green-500/10 text-green-600"},inactive:{text:"Inactive",class:"bg-grey-500/10 text-grey-600"},pending:{text:"Pending",class:"bg-amber-500/10 text-amber-600"},expired:{text:"Expired",class:"bg-slate-500/10 text-slate-600"},cancelled:{text:"Cancelled",class:"bg-red-500/10 text-red-600"}},R=b[n]??b.pending;return m("div",{class:"text-center"},m(te,{variant:"outline",class:R.class},()=>R.text))}},{accessorKey:"starts_at",header:()=>m("div",{class:"text-center"}
1,"Period"),cell:({row:p})=>{const{starts_at:n,ends_at:b}=p.original;return m("div",{class:"text-center text-xs"},[m("div",n??"-"),m("div",{class:"text-muted-foreground"},b??"-")])}},{accessorKey:"midtrans_order_id",header:"Order ID",cell:({row:p})=>m("div",{class:"font-mono text-xs"},p.getValue("midtrans_order_id")??"-")},{accessorKey:"created_at",header:()=>m("div",{class:"text-end"},"Created"),cell:({row:p})=>m("div",{class:"text-end text-sm"},p.getValue("created_at"))},{id:"actions",cell:({row:p})=>{const n=p.original;return m(Vt,{subscription:n,onEdit:b=>{k("manage-subscription",{mode:"edit",subscription:b})},onDelete:b=>{k("manage-subscription",{mode:"delete",subscription:b})},onRestore:b=>{k("manage-subscription",{mode:"restore",subscription:b})}})}}],f=Te({data:L,columns:h,getCoreRowModel:qe(),getFilteredRowModel:Ne(),manualPagination:!0,manualSorting:!0}),N=G([{label:"Active",value:"active"},{label:"Suspend",value:"suspend"}]),q=()=>{Object.keys(P.value).forEach(p=>delete P.value[p]),A()};return(p,n)=>{const b=Pe,R=Re,a=Me;return o(),g(D,null,[d("div",null,[t(jt)]),d("div",It,[d("div",null,[t(b,{title:"Subcriptions",description:"Manage your users and permission settings"})]),d("div",Ot,[t(e(C),{onClick:w,size:"sm",class:"items-center"},{default:s(()=>[t(e(yt),{class:"w-4 h-4 mr-2"}),n[7]||(n[7]=i(" Add Subcription ",-1))]),_:1})])]),d("div",Tt,[d("div",Nt,[d("div",qt,[d("div",zt,[t(R,{modelValue:e(K),"onUpdate:modelValue":n[0]||(n[0]=l=>Q(K)?K.value=l:null),placeholder:"Filter search..."},null,8,["modelValue"]),t(We,{title:"Status",options:N.value,"filter-key":"deleted_at",filters:e(P)},null,8,["options","filters"]),Object.keys(e(P)).length>0?(o(),v(e(C),{key:0,variant:"ghost",class:"h-8 px-2 text-red-500 lg:px-3",onClick:q},{default:s(()=>[n[8]||(n[8]=i(" Reset ",-1)),t(e(kt),{class:"ml-2 h-3 w-3"})]),_:1})):F("",!0)]),d("div",Bt,[d("div",Ht,[n[9]||(n[9]=d("span",{class:"text-sm"},"perPage:",-1)),t(e(ue),{modelValue:e(V),"onUpdate:modelValue":n[1]||(n[1]=l=>Q(V)?V.value=l:null),onChange:n[2]||(n[2]=l=>{c.value=1,e(A)()})},{default:s(()=>[t(e(de),{size:"sm",class:"h-6 w-17.5"},{default:s(()=>[t(e(me),{placeholder:`${e(f).getState().pagination.pageSize}`},null,8,["placeholder"])]),_:1}),t(e(ce),{side:"top"},{default:s(()=>[(o(),g(D,null,M([5,10,20,30,40,50],l=>t(e(pe),{key:l,value:`${l}`},{default:s(()=>[i(y(l),1)]),_:2},1032,["value"])),64))]),_:1})]),_:1},8,["modelValue"])]),t(e(re),null,{default:s(()=>[t(e(le),{"as-child":""},{default:s(()=>[t(e(C),{variant:"outline",size:"sm",class:"ml-auto hidden h-8 lg:flex"},{default:s(()=>[t(e(Be),{class:"mr-2 h-4 w-4"}),n[10]||(n[10]=i(" View ",-1))]),_:1})]),_:1}),t(e(ie),{align:"end"},{default:s(()=>[(o(!0),g(D,null,M(e(f).getAllColumns().filter(l=>l.getCanHide()),l=>(o(),v(e(He),{key:l.id,"model-value":l.getIsVisible(),"onUpdate:modelValue":x=>l.toggleVisibility(!!x)},{default:s(()=>[i(y(l.id),1)]),_:2},1032,["model-value","onUpdate:modelValue"]))),128))]),_:1})]),_:1})])]),e(S)?(o(),g("div",Jt,"Loading...")):e(r)?(o(),g("div",Gt,"Error fetching users")):F("",!0),d("div",Qt,[t(e(Ye),null,{default:s(()=>[t(e(Je),null,{default:s(()=>[(o(!0),g(D,null,M(e(f).getHeaderGroups(),l=>(o(),v(e(B),{key:l.id},{default:s(()=>[(o(!0),g(D,null,M(l.headers,x=>(o(),v(e(Ge),{key:x.id},{default:s(()=>[x.isPlaceholder?F("",!0):(o(),v(e(ae),{key:0,render:x.column.columnDef.header,props:x.getContext()},null,8,["render","props"]))]),_:2},1024))),128))]),_:2},1024))),128))]),_:1}),t(e(Qe),null,{default:s(()=>[e(f).getRowModel().rows?.length?(o(!0),g(D,{key:0},M(e(f).getRowModel().rows,l=>(o(),v(e(B),{key:l.id,"data-state":l.getIsSelected()&&"selected"},{default:s(()=>[(o(!0),g(D,null,M(l.getVisibleCells(),x=>(o(),v(e(oe),{key:x.id},{default:s(()=>[t(e(ae),{render:x.column.columnDef.cell,props:x.getContext()},null,8,["render","props"])]),_:2},1024))),128))]),_:2},1032,["data-state"]))),128)):(o(),v(e(B),{key:1},{default:s(()=>[t(e(oe),{colspan:h.length,class:"h-24 text-center"},{default:s(()=>[t(a,{title:"Filter tidak ditemukan",description:"Filter yang kamu minta tidak ditemukan.",icon:e(Xe)},null,8,["icon"])]),_:1},8,["colspan"])]),_:1}))]),_:1})]),_:1})]),e(_)?(o(),g("div",Yt,[d("div",Wt,[d("div",Xt," Result : "+y(e(_)?.meta?.from??(e(c)-1)*e(V)+1)+" to "+y(e(_)?.meta?.to??Math.min(e(c)*e(V),e(_)?.meta?.total??0))+" of "+y(e(_)?.meta?.total??0)+" row(s). ",1)]),d("div",Zt,[t(e(C),{variant:"outline",class:"h-8 w-8 p-0",disabled:e(c)<=1,onClick:n[3]||(n[3]=l=>c.value=1)},{default:s(()=>[t(e(Ct),{class:"h-4 w-4"})]),_:1},8,["disabled"]),t(e(C),{variant:"outline",class:"h-8 w-8 p-0",disabled:e(c)<=1,onClick:n[4]||(n[4]=l=>c.value--)},{default:s(()=>[t(e(wt),{class:"h-4 w-4"})]),_:1},8,["disabled"]),d("span",es," Page "+y(e(c))+" of "+y(e(_)?.meta?.last_page),1),t(e(C),{variant:"outline",class:"h-8 w-8 p-0",disabled:e(c)>=e(_)?.meta?.last_page,onClick:n[5]||(n[5]=l=>c.value++)},{default:s(()=>[t(e(St),{class:"h-4 w-4"})]),_:1},8,["disabled"]),t(e(C),{variant:"outline",class:"h-8 w-8 p-0",disabled:e(c)>=e(_)?.meta?.last_page,onClick:n[6]||(n[6]=l=>c.value=e(_)?.meta?.last_page)},{default:s(()=>[t(e($t),{class:"h-4 w-4"})]),_:1},8,["disabled"])])])):F("",!0)])])],64)}}},_a=Y({__name:"index",setup($){return ht("Subscription","Ringkasan singkat users subscription."),(k,w)=>{const _=ts;return o(),v(_)}}});
1export{_a as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.