1const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/charts-vendor-fU6IkEZ_.js","assets/react-vendor-BGQ-fvu8.js","assets/lodash-vendor-0cI-KiNp.js"])))=>i.map(i=>d[i]); 2import{j as e,a as g}from"./react-vendor-BGQ-fvu8.js";import{h as re,D as N,bE as Ne,M as j,ah as P,T as ke,x as De,y as Se,bH as Be,i as we,ai as me,am as y,B as C,bv as Ee,at as Pe,o as K,cu as he,cF as _e,b2 as Ke,bP as q,cb as H,cG as V,br as Ie,cH as He,bL as se,cI as te,ao as ne,bp as xe,cJ as Fe,cj as Oe,bF as Ge,ay as Ue,cK as ae,b9 as Ve,R as qe,E as $e,bm as We}from"./main-BjGN4ckN.js";import{A as Ze}from"./AlbumCover-BZIy8u7L.js";import{E as Xe}from"./ExplicitBadge-BSn0glhQ.js";import{P as fe}from"./PlatformIcon-DjRAEyqy.js";import{L as Ye,S as Je}from"./ShareModal-BGl-twMz.js";import{G as Qe,u as et,a as tt,b as at,c as st}from"./useAnalyticsMinDate-CwFyeBJx.js";import{a as rt}from"./apollo-vendor-WdUFfbxi.js";import{S as nt}from"./share-9ZjrflWU.js";import{H as it}from"./HintCard-Cbvu2RVH.js";import{D as ot,M as je,G as b}from"./MetricsSection-BXYZ6WLG.js";import{A as Me}from"./arrow-right-BkQYzSlb.js";import{R as lt,C as dt,T as ct,X as ie,L as ut,Y as Le,B as Ce,a as oe,b as mt,c as ht}from"./charts-vendor-fU6IkEZ_.js";import{D as xt,b as ft,u as jt}from"./metric-DLtYymw_.js";import{b as bt,c as pt,t as gt,d as vt,a as yt}from"./utils-8DP6JM9P.js";import{a as Nt}from"./index-2O3D0dz8.js";import{u as kt,a as Dt,b as St,c as wt}from"./data-by-date-DACIhSC0.js";import{u as It}from"./invoice-DsV_pFLe.js";import{h as be}from"./member-BFA1hqhi.js";import{C as Mt,u as Lt}from"./useDateRange-Do_A0exP.js";import{E as Ct,U as pe}from"./useConnectionPage-BTbbEfwS.js";import"./lodash-vendor-0cI-KiNp.js";import"./CopyButton-DuLoF6R9.js";import"./use-clipboard-B2zikVH1.js";import"./index-DTx1yDun.js";import"./checkbox-CLy4ehUu.js";import"./useValueChanged-CApZTwHC.js";import"./useFeatureUsage-BA9zAMJc.js";import"./analytics-FvfVKYZ7.js";import"./useColumnFiltersState-DAK6h0ki.js";import"./download-file-Cvh8-FWX.js";import"./index-D1CuvHOY.js";import"./popover-0Z-4IRr6.js";import"./chevron-left-5-Gg-yzc.js";const At=[["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M8.35 2.69A10 10 0 0 1 21.3 15.65",key:"1pfsoa"}],["path",{d:"M19.08 19.08A10 10 0 1 1 4.92 4.92",key:"1ablyi"}]],zt=re("circle-off",At);const Tt=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],Rt=re("user-minus",Tt);const Bt=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}],["line",{x1:"19",x2:"19",y1:"8",y2:"14",key:"1bvyxn"}],["line",{x1:"22",x2:"16",y1:"11",y2:"11",key:"1shjgl"}]],Et=re("user-plus",Bt);function Pt(){const t=Ne({id:"afterSwitchHost"});return e.jsx("p",{className:"mb-4 text-sm text-muted-foreground",children:e.jsx(j,{id:"dashboard.hasRedirect",values:{link:a=>e.jsx("a",{href:t,target:"_blank",rel:"noreferrer noopener",className:"font-bold hover:underline",children:a})}})})}function _t(){return e.jsx("p",{className:"mb-4 text-sm text-warning-foreground",children:e.jsx(j,{id:"dashboard.noDistribution",values:{link:t=>e.jsx(P,{to:"/distribution",className:"font-bold hover:underline",children:t})}})})}function Kt({show:t}){return t?t.import?.status===N.Show.ImportStatus.hasRedirect?e.jsx("div",{children:e.jsx(Pt,{})}):t.distributions.length===0?e.jsx(_t,{}):null:null}function ge({title:t,url:a,children:s}){return e.jsxs(ke,{children:[e.jsx(De,{render:e.jsx("a",{className:"size-6",href:a,target:"_blank",rel:"noopener noreferrer"}),children:s}),e.jsx(Se,{children:t})]})}function Ht({externalLink:t}){return!t.url?null:t.type===N.Show.ExternalLink.custom?e.jsx(ge,{title:t.title||"",url:t.url,children:e.jsx(fe,{type:{type:t.type,variant:"external"},className:"size-6"})}):e.jsx(ge,{title:N.Show.ExternalLink.Title[t.type],url:t.url,children:e.jsx(fe,{type:{type:t.type,variant:"external"},className:"size-6"})})}function Ft({externalLinks:t}){return e.jsx("div",{className:"flex flex-row flex-wrap gap-1",children:t.map((a,s)=>e.jsx(Ht,{externalLink:a},s))})}function Ot(){return rt(Qe)}function Gt(){const{loading:t,data:a}=Ot(),s=Be(),r=we();if(t||!a)return e.jsx("div",{className:"mb-4 flex flex-col gap-4",children:e.jsxs(me,{className:"overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-4 p-4 md:p-5",children:[e.jsx(y,{className:"size-16 shrink-0 rounded-lg"}),e.jsxs("div",{className:"flex min-w-0 flex-1 items-center justify-between gap-4",children:[e.jsx(y,{className:"h-7 w-48"}),e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsx(y,{className:"h-8 w-20"}),e.jsx(y,{className:"h-8 w-20"})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 gap-6 p-4 md:grid-cols-2 md:p-5",children:[e.jsxs("div",{children:[e.jsx(y,{className:"mb-3 h-4 w-24"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{className:"size-8 rounded-full"}),e.jsx(y,{className:"size-8 rounded-full"}),e.jsx(y,{className:"size-8 rounded-full"})]})]}),e.jsxs("div",{children:[e.jsx(y,{className:"mb-3 h-4 w-24"}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(y,{className:"size-8 rounded-full"}),e.jsx(y,{className:"size-8 rounded-full"})]})]})]})]})});const n=a.studioShowFindOne;return e.jsxs("div",{className:"mb-4 flex flex-col gap-4",children:[e.jsxs(me,{className:"overflow-hidden",children:[e.jsxs("div",{className:"flex items-center gap-4 p-4 md:p-5",children:[e.jsx(Ze,{size:64,imageUrl:n.avatar,className:"shrink-0"}),e.jsxs("div",{className:"flex min-w-0 flex-1 items-center justify-between gap-4",children:[e.jsxs("div",{className:"flex min-w-0 items-center gap-2",children:[e.jsx("h1",{className:"truncate text-lg font-semibold",children:n.name}),n.explicit&&e.jsx(Xe,{})]}),e.jsxs("div",{className:"flex shrink-0 items-center gap-2",children:[e.jsxs(C,{variant:"outline",size:"sm",onClick:()=>{r.openShareModal({ga:{label:"Dashboard"}}),s.open()},className:"gap-1.5",children:[e.jsx(nt,{className:"size-4"}),e.jsx("span",{className:"hidden sm:inline",children:e.jsx(j,{id:"general.share"})})]}),e.jsxs(C,{nativeButton:!1,variant:"outline",size:"sm",render:e.jsx(P,{to:"/profile/edit"}),className:"gap-1.5",children:[e.jsx(Ee,{className:"size-4"}),e.jsx("span",{className:"hidden sm:inline",children:e.jsx(j,{id:"general.edit"})})]})]})]})]}),e.jsxs("div",{className:"grid grid-cols-1 gap-6 p-4 md:grid-cols-2 md:p-5",children:[e.jsxs("div",{children:[e.jsx("h2",{className:"mb-3 text-xs font-medium tracking-wide text-muted-foreground uppercase",children:e.jsx(Pe,{id:"listenPlatform",children:e.jsx(j,{id:"dashboard.listenPlatform"})})}),e.jsx(Ye,{type:"show",distributions:n.distributions,showId:n.id,showFirstory:!0})]}),e.jsxs("div",{children:[e.jsx("h2",{className:"mb-3 text-xs font-medium tracking-wide text-muted-foreground uppercase",children:e.jsx(j,{id:"dashboard.socialMedia"})}),n.externalLinks?.length?e.jsx(Ft,{externalLinks:n.externalLinks}):e.jsx("p",{className:"text-sm text-muted-foreground",children:e.jsx(j,{id:"dashboard.noSocialMedia"})})]})]})]}),e.jsx(Kt,{show:n}
2),e.jsx(Je,{type:"show",show:n,source:"Dashboard",open:s.isOpen,onClose:s.close})]})}function Ut({show:t,aggregate:a}){if(!(t.import?.status===N.Show.ImportStatus.success))return null;const r=a?.previousHostStarts;return e.jsx("div",{className:"mt-8",children:e.jsx(it,{icon:ot,action:e.jsxs(C,{nativeButton:!1,variant:"outline",size:"sm",render:e.jsx(P,{to:"/import-previous-stats"}),className:"gap-1.5",children:[e.jsx(j,{id:"general.view"}),e.jsx(Me,{className:"size-4"})]}),children:e.jsx("p",{className:"text-sm text-foreground",children:e.jsx(j,{id:r?"dashboard.hasImportPreviousHostData":"dashboard.startImportPreviousHostData",values:{starts:r,link:n=>e.jsx("span",{className:"font-medium text-primary",children:n})}})})})})}function _({loading:t,name:a,titleId:s,titleValues:r,children:n,viewDetailLink:l,learnMoreLink:d,learnMoreTooltipId:o}){const f=K(),u=we(),x=g.useCallback(()=>{u.dashboardViewMore({name:a})},[a,u]),m=g.useCallback(()=>{u.dashboardViewMore({name:`${a}_LearnMore`})},[a,u]),c=s?e.jsx(j,{id:s,values:r}):e.jsx(e.Fragment,{});return e.jsxs("div",{className:"group relative flex h-80 flex-col p-6",children:[e.jsx("div",{className:"mr-8 truncate text-sm text-muted-foreground",children:c}),t?e.jsxs("div",{className:"flex flex-1 flex-col gap-1",children:[e.jsx(y,{className:"h-8 w-32"}),e.jsx(y,{className:"h-4 w-24"}),e.jsx(y,{className:"h-[180px] w-full"})]}):e.jsx("div",{className:"flex flex-1 flex-col gap-1",children:n}),l&&e.jsxs(P,{className:"absolute right-3 bottom-2 hidden items-center justify-end group-hover:flex group-focus:flex",to:l,onClick:x,children:[e.jsx("span",{className:"text-xs text-muted-foreground underline",children:e.jsx(j,{id:"dashboard.viewDetail"})}),e.jsx(Me,{className:"size-4 text-muted-foreground"})]}),o&&e.jsxs(ke,{children:[e.jsx(De,{render:e.jsx("div",{className:"absolute top-2 right-2",children:d?e.jsx(C,{nativeButton:!1,variant:"ghost",size:"icon-sm",render:e.jsx("a",{href:d,target:"_blank",rel:"noreferrer noopener",children:e.jsx(he,{className:"size-4"})}),onClick:m}):e.jsx(C,{variant:"ghost",size:"icon-sm",children:e.jsx(he,{className:"size-4"})})})}),e.jsx(Se,{children:f.formatMessage({id:o})})]})]})}function Vt({active:t,payload:a,onTooltipChange:s}){return g.useEffect(()=>{if(!t||!a?.[0]?.payload)return s(null);s(a[0].payload)},[t,a,s]),null}function A({data:t,layout:a,Chart:s,children:r,renderInfoTitle:n,renderInfoSubtitle:l,...d}){const[o,f]=g.useState(null),u=g.useCallback(c=>{f(c)},[]),x=s||dt,m=e.jsxs(x,{data:t,layout:a,children:[e.jsx(ct,{content:e.jsx(Vt,{onTooltipChange:u})}),r]});return e.jsxs(_,{...d,children:[e.jsx("p",{className:"h-8 truncate text-2xl font-bold text-foreground",children:n?n(o):""}),e.jsx("p",{className:"h-4 truncate text-xs text-muted-foreground",children:l?l(o):""}),e.jsx(lt,{width:"100%",height:180,children:m})]})}function $({children:t,...a}){return e.jsx(_,{...a,children:e.jsx("div",{className:"flex-1",children:t})})}function le({titleId:t,children:a}){return e.jsx($,{titleId:t,children:e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3",children:[e.jsx("div",{className:"flex size-12 items-center justify-center rounded-full bg-primary-muted",children:e.jsx(zt,{className:"size-6 text-primary",strokeWidth:1.5})}),e.jsx("p",{className:"text-center text-sm text-muted-foreground",children:e.jsx(j,{id:"dashboard.noData"})}),a]})})}function E({titleId:t}){return e.jsx($,{titleId:t,children:e.jsx(xt,{})})}function w({data:t,dataKey:a,xAxisDataKey:s,loading:r,...n}){if(!t?.length&&r)return e.jsx(A,{loading:!0,...n});const l=t?.filter((o,f)=>f===0||f===t.length-1).map(o=>o?o[s]:null)||[],d=t?.map(o=>({...o,date:typeof o.date=="string"?o.date.substring(0,10):""}))||[];return e.jsxs(A,{data:d,...n,children:[e.jsx(ie,{dataKey:s,tick:{fontSize:12},tickSize:0,tickMargin:8,ticks:l,interval:"preserveStartEnd"}),e.jsx(ut,{dataKey:a,stroke:"var(--chart-1)",strokeWidth:"2",dot:!1})]})}function ve({benchmark:t,value:a,loading:s,...r}){const[n,l]=g.useState(!1),d=g.useRef();g.useEffect(()=>{async function u(){const x=await _e(()=>import("./charts-vendor-fU6IkEZ_.js").then(m=>m.w),__vite__mapDeps([0,1,2]));d.current=x.scaleLog().base(20),l(!0)}u()},[]);const o=K(),f=g.useMemo(()=>[{name:o.formatMessage({id:"dashboard.benchmark.lower"}),value:t.low},{name:o.formatMessage({id:"dashboard.benchmark.median"}),value:t.median},{name:o.formatMessage({id:"dashboard.benchmark.high"}),value:t.high},{name:o.formatMessage({id:"dashboard.benchmark.you"}),value:a,isMe:!0}].sort((u,x)=>u.value-x.value),[t,a,o]);return!n||!t&&s?e.jsx(A,{loading:!0,...r}):e.jsxs(A,{data:f,...r,children:[e.jsx(Le,{hide:!0,type:"number",dataKey:"value",scale:d.current,domain:[t.low*.2,"auto"]}
2),e.jsx(ie,{type:"category",dataKey:"name",axisLine:!1,tick:{fontSize:12},tickSize:0,tickMargin:8,interval:0}),e.jsx(Ce,{dataKey:"value",radius:[5,5,5,5],children:f.map((u,x)=>e.jsx(oe,{fill:u.isMe?"var(--chart-1)":"var(--chart-5)"},`cell-${x}`))})]})}function qt({titleId:t,messageId:a,link:s}){return e.jsx($,{titleId:t,children:e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3",children:[e.jsx("div",{className:"flex size-12 items-center justify-center rounded-full bg-primary-muted",children:e.jsx(Ct,{className:"size-6 text-primary",strokeWidth:1.5})}),e.jsx("p",{className:"text-center text-sm text-muted-foreground",children:e.jsx(j,{id:a})}),s&&e.jsxs(C,{nativeButton:!1,variant:"outline",size:"sm",render:e.jsx("a",{href:s,target:"_blank",rel:"noopener noreferrer"}),children:[e.jsx(j,{id:"dashboard.goSpotify"}),e.jsx(Ke,{className:"size-4"})]})]})})}function U({data:t,valueDataKey:a,nameDataKey:s,loading:r,renderInfoTitle:n,renderInfoSubtitle:l,hideLocalData:d,hideLocalDataMessageId:o,hideLocalDataLink:f,...u}){const x=g.useMemo(()=>{if(!t)return 0;let m=0;for(let c=1;c<t.length;c++)t[c][a]>t[m][a]&&(m=c);return m},[t,a]);return d?e.jsx(qt,{titleId:u.titleId,messageId:o,link:f}):!t&&r?e.jsx(A,{loading:!0,...u}):!t||t.length===0?e.jsx(le,{titleId:u.titleId}):e.jsx(A,{Chart:mt,renderInfoTitle:m=>n?.(m||t[x])||"",renderInfoSubtitle:m=>l?.(m||t[x])||"",...u,children:e.jsx(ht,{data:t,dataKey:a,nameKey:s,cx:"50%",cy:"50%",outerRadius:56,children:t.map((m,c)=>e.jsx(oe,{fill:c===x?"var(--chart-1)":"var(--chart-5)",stroke:"var(--border)",strokeWidth:1},`cell-${c}`))})})}function $t({name:t,loading:a,data:s,valueDataKey:r,nameDataKey:n,titleId:l,viewDetailLink:d,learnMoreTooltipId:o,renderInfoTitle:f,renderInfoSubtitle:u,...x}){const m=g.useMemo(()=>{if(!s)return 0;let c=0;for(let D=1;D<s.length;D++)s[D][r]>s[c][r]&&(c=D);return c},[s,r]);return!s&&a?e.jsx(A,{titleId:l,loading:!0}):!s||s.length===0?e.jsx(le,{titleId:l}):e.jsxs(A,{name:t,loading:a,data:s,titleId:l,viewDetailLink:d,layout:"vertical",learnMoreTooltipId:o,renderInfoTitle:c=>f?f(c||s[m]):"",renderInfoSubtitle:c=>u?u(c||s[m]):"",...x,children:[e.jsx(ie,{type:"number",dataKey:r,axisLine:!1,tick:!1}),e.jsx(Le,{hide:!0,type:"category",dataKey:n,axisLine:!1,tick:{fontSize:12},tickSize:0,tickMargin:8,interval:0}),e.jsx(Ce,{dataKey:r,radius:[5,5,5,5],children:s.map((c,D)=>e.jsx(oe,{fill:D===m?"var(--chart-1)":"var(--chart-5)"},`cell-${D}`))})]})}function Wt({loading:t,data:a}){const s=q();if(t)return e.jsx(_,{loading:!0});if(!a)return e.jsx(E,{titleId:"dashboard.donateActiveSubscriberCount"});const r=a[a.length-1]?.activeSubscriberCount||0;return e.jsx(w,{name:"MrrLineChart",data:a,dataKey:"activeSubscriberCount",xAxisDataKey:"month",titleId:"dashboard.donateActiveSubscriberCount",viewDetailLink:"/members",learnMoreTooltipId:"dashboard.activeSubscriberCount.tooltip",renderInfoTitle:n=>e.jsx("span",{className:"tabular-nums",children:s(n?n.activeSubscriberCount:r)}),renderInfoSubtitle:n=>n?n.month:""})}function Zt({loading:t,data:a}){const s=bt(a);return s?e.jsx(w,{name:"ChurnRateChart",loading:t,data:s,dataKey:"value",xAxisDataKey:"date",titleId:"membership.metrics.churnRate",viewDetailLink:H.MONETIZATION_MEMBERSHIP_METRICS,renderInfoTitle:r=>r?`${(r.value*100).toFixed(1)}%`:s.length>0?`${((s[s.length-1]?.value||0)*100).toFixed(1)}%`:"",renderInfoSubtitle:r=>r?r.date:""}):e.jsx(E,{titleId:"membership.metrics.churnRate"})}function Xt({loading:t,data:a,currency:s}){const r=pt(a);return r?e.jsx(w,{name:"LTVChart",loading:t,data:r,dataKey:"value",xAxisDataKey:"date",titleId:"membership.metrics.ltv",viewDetailLink:H.MONETIZATION_MEMBERSHIP_METRICS,renderInfoTitle:n=>{if(n)return e.jsx("span",{className:"tabular-nums",children:V({amount:n.value,currency:s},{comma:!0})});if(r.length>0){const l=r[r.length-1]?.value||0;return e.jsx("span",{className:"tabular-nums",children:V({amount:l,currency:s},{comma:!0})})}return""},renderInfoSubtitle:n=>n?n.date:""}):e.jsx(E,{titleId:"membership.metrics.ltv"})}function Yt({loading:t,data:a,currency:s}){const r=gt(a);return r?e.jsx(w,{name:"ARPUChart",loading:t,data:r,dataKey:"value",xAxisDataKey:"date",titleId:"membership.metrics.arpu",viewDetailLink:H.MONETIZATION_MEMBERSHIP_METRICS,renderInfoTitle:n=>{if(n)return e.jsx("span",{className:"tabular-nums",children:V({amount:n.value,currency:s},{comma:!0})});if(r.length>0){const l=r[r.length-1]?.value||0;return e.jsx("span",{className:"tabular-nums",children:V({amount:l,currency:s},{comma:!0})})}return""},renderInfoSubtitle:n=>n?n.date:""}):e.jsx(E,{titleId:"membership.metrics.arpu"})}function Jt({loading:t,data:a}
2){const s=q(),r=vt(a);return r?e.jsx(w,{name:"NewSubscribersChart",loading:t,data:r,dataKey:"value",xAxisDataKey:"date",titleId:"membership.metrics.newSubscribers",viewDetailLink:H.MONETIZATION_MEMBERSHIP_METRICS,renderInfoTitle:n=>{if(n)return e.jsx("span",{className:"tabular-nums",children:s(n.value)});if(r.length>0){const l=r.reduce((d,o)=>d+o.value,0);return e.jsx("span",{className:"tabular-nums",children:s(l)})}return""},renderInfoSubtitle:n=>n?n.date:""}):e.jsx(E,{titleId:"membership.metrics.newSubscribers"})}function Qt({loading:t,data:a}){const s=q(),r=yt(a);return r?e.jsx(w,{name:"ChurnedSubscribersChart",loading:t,data:r,dataKey:"value",xAxisDataKey:"date",titleId:"membership.metrics.churnedSubscribers",viewDetailLink:H.MONETIZATION_MEMBERSHIP_METRICS,renderInfoTitle:n=>{if(n)return e.jsx("span",{className:"tabular-nums",children:s(n.value)});if(r.length>0){const l=r.reduce((d,o)=>d+o.value,0);return e.jsx("span",{className:"tabular-nums",children:s(l)})}return""},renderInfoSubtitle:n=>n?n.date:""}):e.jsx(E,{titleId:"membership.metrics.churnedSubscribers"})}function ea({data:t}){return e.jsx(_,{name:"CanceledMemberList",titleId:"dashboard.canceledMember",viewDetailLink:"/members?status=5",children:t.length===0?e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-4",children:[e.jsx("div",{className:"flex size-14 items-center justify-center rounded-full bg-muted",children:e.jsx(Rt,{className:"size-7 text-muted-foreground",strokeWidth:1.5})}),e.jsx("p",{className:"text-center text-sm font-medium text-muted-foreground",children:e.jsx(j,{id:"dashboard.noData"})})]}):e.jsx("div",{className:"divide-y divide-border",children:t.slice(0,5).map(a=>e.jsxs("div",{className:"py-2 first:pt-0 last:pb-0",children:[e.jsx("p",{className:"line-clamp-1 text-sm font-medium text-foreground",children:a.email||"-"}),a.subscription?.canceledAt&&e.jsx("p",{className:"line-clamp-1 text-xs text-muted-foreground",children:Ie(a.subscription?.canceledAt)})]},a.id))})})}function S({titleId:t,viewDetailLink:a}){return!t||!a?null:e.jsx($,{titleId:t,children:e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-3",children:[e.jsx("div",{className:"flex size-12 items-center justify-center rounded-full bg-primary-muted",children:e.jsx(He,{className:"size-6 text-primary",strokeWidth:1.5})}),e.jsx("p",{className:"text-center text-sm text-muted-foreground",children:e.jsx(j,{id:"dashboard.noData"})}),e.jsx(C,{variant:"outline",size:"sm",nativeButton:!1,render:e.jsx(P,{to:a}),children:e.jsx(j,{id:"dashboard.enableDonation"})})]})})}function ta({loading:t,data:a,currency:s}){if(t)return e.jsx(_,{loading:!0});if(!a)return e.jsx(E,{titleId:"dashboard.donateMRR"});const r=a[a.length-1]?.mrr||0;return e.jsx(w,{name:"MrrLineChart",data:a,dataKey:"mrr",xAxisDataKey:"month",titleId:"dashboard.donateMRR",viewDetailLink:"/monetization/income/overview",renderInfoTitle:n=>e.jsx("span",{className:"tabular-nums",children:se({amount:n?n.mrr:r,currency:s},{comma:!0})}),renderInfoSubtitle:n=>n?n.month:""})}function aa({data:t}){return e.jsx(_,{name:"NewMemberList",titleId:"dashboard.newMember",viewDetailLink:"/members",children:t.length===0?e.jsxs("div",{className:"flex h-full flex-col items-center justify-center gap-4",children:[e.jsx("div",{className:"flex size-14 items-center justify-center rounded-full bg-muted",children:e.jsx(Et,{className:"size-7 text-muted-foreground",strokeWidth:1.5})}),e.jsx("p",{className:"text-center text-sm font-medium text-muted-foreground",children:e.jsx(j,{id:"dashboard.noData"})})]}):e.jsx("div",{className:"divide-y divide-border",children:t.slice(0,5).map(a=>e.jsxs("div",{className:"py-2 first:pt-0 last:pb-0",children:[e.jsx("p",{className:"line-clamp-1 text-sm font-medium text-foreground",children:a.email||"-"}),e.jsx("p",{className:"line-clamp-1 text-xs text-muted-foreground",children:Ie(a.joinedAt)})]},a.id))})})}function sa({age:t,gender:a}){const s=K(),r=g.useMemo(()=>({[N.Analytic.Gender.male]:s.formatMessage({id:"dashboard.gender.male"}),[N.Analytic.Gender.female]:s.formatMessage({id:"dashboard.gender.female"}),[N.Analytic.Gender.nonBinary]:s.formatMessage({id:"dashboard.gender.nonBinary"}),[N.Analytic.Gender.notSpecified]:s.formatMessage({id:"dashboard.gender.notSpecified"})}),[s]),n=g.useMemo(()=>
2{if(!a)return[];const d=te(a);return d===0?[]:N.Analytic.Gender.list.map(o=>({name:r[o],value:a[o]/d}))},[a,r]),l=g.useMemo(()=>{let d=0;return t.forEach(o=>{d+=te(o.counts)}),d===0?{total:0,data:[]}:{total:d,data:t.map(o=>{const f=te(o.counts);return{age:o.age,value:f,male:o.counts.male,female:o.counts.female,nonBinary:o.counts.nonBinary,notSpecified:o.counts.notSpecified}})}},[t]);return{gender:n,age:l}}function ra(t,a){if(a.all)return t;const s=t.length%2===0?t:t.slice(1);return s.slice(s.length/2)}function ye(t,a){const s=a.map(r=>new Map(r.map(n=>[n.date.substring(0,10),n.value])));return t.map(r=>{const n=r.date.substring(0,10);return{...r,value:s.reduce((l,d)=>l+(d.get(n)??0),r.value)}})}function na({dateRange:t}){const{show:a}=ne(),{loading:s,data:r}=kt(),n=a?.id,l=a?.categories[0]?.id,{loading:d,data:o}=Dt({categoryId:l}),{loading:f,data:u}=St({from:xe(new Date(t.doubleRangeFrom),"yyyy-MM-dd"),to:xe(new Date(t.to),"yyyy-MM-dd")}),{loading:x,data:m}=wt({dateRange:t}),{loading:c,data:D}=Fe(n),[F]=g.useState(()=>{const p=new Date;return[Nt(p,-7).toISOString().substring(0,7),p.toISOString().substring(0,7)]}),{loading:W,data:h}=ft(F[0],F[1]),{result:{loading:O,data:k}}=It({group:Oe.membership}),{loading:G,data:Z}=be({sortBy:[{field:"joinedAt",order:"DESC"}]}),{loading:X,data:z}=be({sortBy:[{field:"canceledAt",order:"DESC"}]}),{loading:T,data:Y}=jt({endDate:t.to.toISOString().substring(0,10),points:t.diffDays,windowDays:30,step:"daily"}),J=g.useMemo(()=>{if(!k||!k.invoices)return[];const p={};return k.invoices.forEach(B=>{const L=B.createdAt.substring(0,10);p[L]||(p[L]={date:L,amount:0}),p[L].amount+=B.amount}),Object.values(p).sort((B,L)=>B.date.localeCompare(L.date))},[k]),{appRank:Q}=et({platform:r?.studioAnalyticShowClientPlatformFind?.platform||[],appName:r?.studioAnalyticShowClientPlatformFind?.appName||[]}),M=u?.studioAnalyticShowDataByDateFind,I=p=>ra(p||[],t),i=ye(I(M?.uniqueStarts),[I(M?.spotifyStreams),I(M?.videoUniqueStarts)]),v=ye(I(M?.starts),[I(M?.spotifyPlays),I(M?.videoStarts)]),R=r?.studioAnalyticShowFlinkFindOne||{pageViews:0,platforms:[]},ee=r?.studioAnalyticShowAudienceCountryFind||[],{gender:Ae,age:de}=sa({age:r?.studioAnalyticShowAudienceFind?.age||[],gender:r?.studioAnalyticShowAudienceFind?.gender||null}),ze=g.useMemo(()=>{const p=r?.studioAnalyticShowAggregationFindOne,B=p?.uniqueStarts||0,L=p?.spotifyStreams||0,Te=p?.previousHostStarts||0,Re=r?.studioShowFindOne.categories[0],ce=o?.studioAnalyticBenchmarkFind,ue={low:0,median:0,high:0};return{starts:B+L+Te,category:Re,benchmarks:{starts:ce?.starts||ue,category:ce?.categoryStarts||ue}}},[r,o]);return{podcastLoading:s,dataByDateLoading:f,rankLoading:x,donationLoading:c||O||W||G||X,billingMetricsLoading:T,benchmarkLoading:d,podcastData:r,uniqueStartsByDate:i,startsByDate:v,appRank:Q,flinkAnalyticData:R,episodeRank:m?.studioAnalyticEpisodeRankFind.slice(0,5)||[],country:ee,gender:Ae,age:de.data.map(p=>({age:p.age,value:p.value/de.total})),donationSetting:D?D.show:null,donationByDate:J,benchmarkData:ze,mrrByMonth:h?.metric?.mrrByMonth??null,newMembers:Z?.members||[],canceledMembers:z?.members.filter(p=>!!p.subscription?.canceledAt)||[],billingMetricsData:Y}}function ia(){const{membershipSetting:t,hasStripe:a}=Ge();for(const s of t?.subscriptionTiers??[])for(const r of s.plans)if(r.price.money.amount>0)return r.price.money.currency;return a?N.Currency.usd:N.Currency.twd}function oa({dateRange:t}){const a=q(),s=ia(),r=K(),{podcastLoading:n,dataByDateLoading:l,donationLoading:d,benchmarkLoading:o,rankLoading:f,uniqueStartsByDate:u,startsByDate:x,appRank:m,flinkAnalyticData:c,episodeRank:D,country:F,age:W,donationSetting:h,donationByDate:O,benchmarkData:k,mrrByMonth:G,newMembers:Z,canceledMembers:X,billingMetricsLoading:z,billingMetricsData:T}=na({dateRange:t}),{showDownloads:Y}=tt(),{showVideoAnalytics:J}=at(),{permission:Q}=Ue({type:N.User.Feature.monetization}),M=Q.enabled,I=Ne({id:"benchmark"});return e.jsxs("div",{className:"space-y-8",children:[e.jsxs(je,{title:r.formatMessage({id:"general.analytics"}),children:[e.jsx(b,{children:e.jsx(w,{name:"UniqueStartLineChart",loading:l,data:u,dataKey:"value",xAxisDataKey:"date",titleId:"dashboard.listens",viewDetailLink:"/podcast/analytics#data-by-date",learnMoreTooltipId:J?"dashboard.listens.tooltip":"dashboard.listens.tooltip.noVideo",renderInfoTitle:i=>i?e.jsx("span",{className:"tabular-nums",children:a(i.value)}):u?e.jsx("span",{className:"tabular-nums",children:a(u.reduce((v,R)=>v+R.value,0))}):"",renderInfoSubtitle:i=>i?i.date:""})}),e.jsx(b,{children:e.jsx(pe,{type:N.User.Feature.advancedAnalytics,locked:!Y,trigger:"start_line_chart",children:({hasFeature:i})=>e.jsx(w,{name:"StartLineChart",loading:l,data:x,dataKey:"value",xAxisDataKey:"date",titleId:"dashboard.repeatedListens",viewDetailLink:"/podcast/analytics#data-by-date",learnMoreTooltipId:"dashboard.repeatedListens.tooltip",renderInfoTitle:v=>i?v?e.jsx("span",{className:"tabular-nums",children:a(v.value)}):x?e.jsx("span",{className:"tabular-nums",children:a(x.reduce((R,ee)=>R+ee.value,0))}):"-":"-",renderInfoSubtitle:v=>v?v.date:""})})}),e.jsx(b,{children:e.jsx(pe,{type:N.User.Feature.advancedAnalytics,trigger:"unique_start_benchmark",children:({hasFeature:i})=>e.jsx(ve,{name:"UniqueStartBenchmark",loading:o,value:k.starts,benchmark:k.benchmarks.starts,titleId:"dashboard.benchmark.starts",renderInfoTitle:v=>i?e.jsx("span",{className:"tabular-nums",children:a(v?.value||k.starts)}):"-",renderInfoSubtitle:v=>v?.name||r.formatMessage({id:"dashboard.benchmark.you"}),learnMoreTooltipId:"dashboard.benchmark.learnMore",learnMoreLink:I})})}),e.jsx(b,{children:e.jsx(ve,{name:"UniqueStartCategoryBenchmark",loading:o,value:k.starts,benchmark:k.benchmarks.category,titleId:"dashboard.benchmark.category",titleValues:{category:r.locale==="zh"?k.category?.nameZh:k.category?.nameEn},renderInfoTitle:i=>e.jsx("span",{className:"tabular-nums",children:a(i?i.value:k.starts)}),renderInfoSubtitle:i=>i?i.name:r.formatMessage({id:"dashboard.benchmark.you"}),learnMoreTooltipId:"dashboard.benchmark.learnMore",learnMoreLink:I})}),e.jsx(b,{children:e.jsx(U,{name:"AppRank",loading:n,data:m,valueDataKey:"value",nameDataKey:"name",titleId:"dashboard.appName",viewDetailLink:"/podcast/analytics#apps-and-platforms",renderInfoTitle:i=>i?ae(i.value):"",renderInfoSubtitle:i=>i?i.name:""})}),e.jsx(b,{children:!n&&(!c||c.platforms.length===0)?e.jsx(le,{children:e.jsx(C,{nativeButton:!1,variant:"secondary",render:e.jsx(P,{to:"/promotion/share"}),children:e.jsx(j,{id:"dashboard.enableFlink"})})}):e.jsx(U,{name:"Flink",loading:n,data:c?.platforms.slice(0,5)||[],valueDataKey:"pageViews",nameDataKey:"name",titleId:"dashboard.flinkAnalytic",viewDetailLink:"/podcast/analytics#flink",renderInfoTitle:i=>i?e.jsx("span",{className:"tabular-nums",children:a(i.pageViews)}):e.jsx("span",{className:"tabular-nums",children:a(c?.pageViews)}),renderInfoSubtitle:i=>i?Ve(i.name):r.formatMessage({id:"dashboard.pageViews"})})}),e.jsx(b,{children:e.jsx(U,{name:"Geo",loading:n,data:F?.slice(0,5)||[],valueDataKey:"value",nameDataKey:"name",titleId:"dashboard.country",viewDetailLink:"/podcast/analytics#geo",renderInfoTitle:i=>i?ae(i.value/100):"",renderInfoSubtitle:i=>i?i.name:""})}),e.jsx(b,{children:e.jsx(U,{name:"Age",loading:n,data:W,valueDataKey:"value",nameDataKey:"age",titleId:"dashboard.genderAndAge",viewDetailLink:"/podcast/analytics#gender-and-age",renderInfoTitle:i=>i?ae(i.value):"",renderInfoSubtitle:i=>i?i.age:"",hideLocalData:!0,hideLocalDataMessageId:"dashboard.genderAndAge.noSpotify",hideLocalDataLink:"https://creators.spotify.com/dash/home"})}),e.jsx(b,{children:e.jsx($t,{name:"EpisodeRank",loading:f,data:D,valueDataKey:"uniqueStarts",nameDataKey:"title",titleId:"dashboard.episodeRank",viewDetailLink:{pathname:"/podcast/analytics",hash:"#episode-rank"},learnMoreTooltipId:"dashboard.dataByDate.noSpotify",renderInfoTitle:i=>i?e.jsx("span",{className:"tabular-nums",children:a(i.uniqueStarts)}):"",renderInfoSubtitle:i=>i?i.title:""})})]}),M&&e.jsxs(je,{title:r.formatMessage({id:"nav.monetization"}),children:[e.jsx(b,{children:h&&h.active?e.jsx(w,{name:"DonationLineChart",loading:d,data:O,dataKey:"amount",xAxisDataKey:"date",titleId:"dashboard.donateAmount",viewDetailLink:"/monetization/income/overview",renderInfoTitle:i=>i?e.jsx("span",{className:"tabular-nums",children:se({amount:i.amount,currency:s},{comma:!0})}):e.jsx("span",{className:"tabular-nums",children:se({amount:O.reduce((v,R)=>v+R.amount,0),currency:s},{comma:!0})}),renderInfoSubtitle:i=>i?i.date:""}):e.jsx(S,{titleId:"dashboard.donateAmount",viewDetailLink:"/monetization/income/overview"})}),e.jsx(b,{children:h&&h.active?e.jsx(ta,{loading:d,data:G,currency:s}):e.jsx(S,{titleId:"dashboard.donateAmount",viewDetailLink:"/monetization/income/overview"})}),e.jsx(b,{children:h&&h.active?e.jsx(Wt,{loading:d,data:G}):e.jsx(S,{titleId:"dashboard.donateAmount",viewDetailLink:"/monetization/income/overview"})}),e.jsx(b,{children:h&&h.active?e.jsx(aa,{data:Z}):e.jsx(S,{titleId:"dashboard.donateAmount",viewDetailLink:"/monetization/income/overview"})}),e.jsx(b,{children:h&&h.active?e.jsx(ea,{data:X}):e.jsx(S,{titleId:"dashboard.donateAmount",viewDetailLink:"/monetization/income/overview"})}),e.jsx(b,{children:h&&h.active?e.jsx(Zt,{loading:z,data:T}):e.jsx(S,{titleId:"membership.metrics.churnRate",viewDetailLink:"/monetization/metrics"})}),e.jsx(b,{children:h&&h.active?e.jsx(Xt,{loading:z,data:T,currency:s}):e.jsx(S,{titleId:"membership.metrics.ltv",viewDetailLink:"/monetization/metrics"})}),e.jsx(b,{children:h&&h.active?e.jsx(Yt,{loading:z,data:T,currency:s}):e.jsx(S,{titleId:"membership.metrics.arpu",viewDetailLink:"/monetization/metrics"})}),e.jsx(b,{children:h&&h.active?e.jsx(Jt,{loading:z,data:T}):e.jsx(S,{titleId:"membership.metrics.newSubscribers",viewDetailLink:"/monetization/metrics"})}),e.jsx(b,{children:h&&h.active?e.jsx(Qt,{loading:z,data:T}):e.jsx(S,{titleId:"membership.metrics.churnedSubscribers",viewDetailLink:"/monetization/metrics"})})]})]})}function la({dateRange:t,onDateRangeChange:a}){const{show:s}=ne();return e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:e.jsx(j,{id:"dashboard.dataTimezone",values:{value:"+0"}})}),e.jsx(Mt,{dateRange:t,onChange:a})]}),e.jsx(oa,{dateRange:t}),s&&e.jsx(Ut,{show:s})]})}function Ga(){const t=K(),{show:a}=ne(),s=st(a),{dateRange:r,handleDateRangeChange:n}=Lt({minDate:s});return a?e.jsxs($e,{header:e.jsx(Gt,{}),children:[e.jsx(We,{children:e.jsx("title",{children:t.formatMessage({id:"nav.dashboard"})})}),e.jsx(la,{dateRange:r,onDateRangeChange:n},a.id)]}):e.jsx(qe,{to:"/login"})}export{Ga 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.