ghost 6.13.1 → 6.13.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/components/tryghost-i18n-6.13.2.tgz +0 -0
  2. package/core/built/admin/assets/{_baseAssignValue-CPzElAl9.js → _baseAssignValue-qTINVNgk.js} +1 -1
  3. package/core/built/admin/assets/{a-large-small-2Oh9oqBr.js → a-large-small-D-nhKFBX.js} +1 -1
  4. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +2 -2
  5. package/core/built/admin/assets/admin-x-settings/{code-editor-view-B5QudVu-.mjs → code-editor-view-CXaEQbfL.mjs} +2 -2
  6. package/core/built/admin/assets/admin-x-settings/{index-D3C8sdqQ.mjs → index-BrqKezEN.mjs} +30 -24
  7. package/core/built/admin/assets/admin-x-settings/{index-B66mLTSp.mjs → index-CwXvgyDY.mjs} +2 -2
  8. package/core/built/admin/assets/admin-x-settings/{index-CdWUpaGD.mjs → index-Dc7foGQ2.mjs} +2 -2
  9. package/core/built/admin/assets/admin-x-settings/{modals-lYrPGC_E.mjs → modals-Ba1hMizc.mjs} +2 -2
  10. package/core/built/admin/assets/{at-sign-BtKGpnjs.js → at-sign-DHUgIxNb.js} +1 -1
  11. package/core/built/admin/assets/{audience-select-DuSCQEyi.js → audience-select-C17Kh6Hl.js} +1 -1
  12. package/core/built/admin/assets/{avatar-flipboard-CcvOD0pV.js → avatar-flipboard-Cdj8uoBX.js} +1 -1
  13. package/core/built/admin/assets/{bluesky-sharing-Frg4QWOQ.js → bluesky-sharing-DYSv4ewp.js} +1 -1
  14. package/core/built/admin/assets/{chart-tL51cfF9.js → chart-BYGpVun6.js} +1 -1
  15. package/core/built/admin/assets/{chunk.397.a720333cfffc99c47e71.js → chunk.397.71f16fce8de382622bb4.js} +2 -2
  16. package/core/built/admin/assets/{chunk.524.6168e2262e63b155f63e.js → chunk.524.ccb5a082c09fdedaf1d0.js} +6 -6
  17. package/core/built/admin/assets/{chunk.582.45f8c5479d11e969ddc2.js → chunk.582.311f93280422738b8a5d.js} +7 -7
  18. package/core/built/admin/assets/{code-editor-view-BHiySSgi.js → code-editor-view-BnOaGsRA.js} +1 -1
  19. package/core/built/admin/assets/{comments-svHZXAlu.js → comments-DiZAz2yU.js} +1 -1
  20. package/core/built/admin/assets/{copy-B8yuX-e4.js → copy-CCj6xx5V.js} +1 -1
  21. package/core/built/admin/assets/{data-list-C_WXxmo3.js → data-list-By9zN-Ma.js} +1 -1
  22. package/core/built/admin/assets/{deleted-feed-item-OXPcC4Z2.js → deleted-feed-item-Dl0oQ0DH.js} +1 -1
  23. package/core/built/admin/assets/{edit-profile-DgMLvoyu.js → edit-profile-DZhjWF_f.js} +1 -1
  24. package/core/built/admin/assets/{empty-indicator-DOQCKEXD.js → empty-indicator-B7WXKrac.js} +1 -1
  25. package/core/built/admin/assets/{en-Z93BzXte.js → en-B8oRL8Ua.js} +1 -1
  26. package/core/built/admin/assets/{feed-BKXpQU0e.js → feed-DU5QhfRX.js} +1 -1
  27. package/core/built/admin/assets/{filters-dwDByCkK.js → filters-C-v3cGt0.js} +1 -1
  28. package/core/built/admin/assets/{gh-chart-CaA6rQiP.js → gh-chart-B98YGgzG.js} +1 -1
  29. package/core/built/admin/assets/{growth-DKtJYCNb.js → growth-_giTyVF8.js} +1 -1
  30. package/core/built/admin/assets/{hash-ZzZYv2ek.js → hash-B4UtN3nq.js} +1 -1
  31. package/core/built/admin/assets/{inbox-C5KDymI8.js → inbox-D336Mbic.js} +1 -1
  32. package/core/built/admin/assets/{index-VdGL6HfS.js → index-B3CWs1Pb.js} +1 -1
  33. package/core/built/admin/assets/{index-CM3YmTO5.js → index-Bl3YnEiK.js} +1 -1
  34. package/core/built/admin/assets/{index-OPvny56_.js → index-BuFp5nYK.js} +1 -1
  35. package/core/built/admin/assets/{index-BX3p0DcO.js → index-C9PDrFEW.js} +1 -1
  36. package/core/built/admin/assets/{index-DethZCE1.js → index-CEEPij-w.js} +1 -1
  37. package/core/built/admin/assets/{index-BNkw6KwF.js → index-CLdEbHsV.js} +1 -1
  38. package/core/built/admin/assets/{index-CQVI9TPr.js → index-CdIdIOil.js} +1 -1
  39. package/core/built/admin/assets/{index-B6mBuUxr.js → index-DI4OotZO.js} +1 -1
  40. package/core/built/admin/assets/{index-BniBHF2r.js → index-DXuLaG0T.js} +1 -1
  41. package/core/built/admin/assets/{index-6_RXbq08.css → index-DbjfIcZe.css} +1 -1
  42. package/core/built/admin/assets/{index-X_uC_0DD.js → index-Dq_j8mTf.js} +3 -3
  43. package/core/built/admin/assets/{index-DOORRiFo.js → index-cWfIWdIX.js} +1 -1
  44. package/core/built/admin/assets/{index-CF6UHTsD.js → index-iHz8ZTSi.js} +1 -1
  45. package/core/built/admin/assets/{index-D9gfkxEz.js → index-k2aVq6ms.js} +1 -1
  46. package/core/built/admin/assets/{index-syvYkr47.js → index-w7Tz4ytz.js} +1 -1
  47. package/core/built/admin/assets/koenig-lexical/index.css +2 -2
  48. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +21800 -23540
  49. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +177 -177
  50. package/core/built/admin/assets/{koenig-lexical-D4CBYCN7.js → koenig-lexical-5o67f7C9.js} +155 -155
  51. package/core/built/admin/assets/{kpi-card-DOIcNxgg.js → kpi-card-XLCPc_4J.js} +1 -1
  52. package/core/built/admin/assets/{kpis-BrSBq5c9.js → kpis-Czdhg1qV.js} +1 -1
  53. package/core/built/admin/assets/{links-DkVK8XO7.js → links-CY3nuFg7.js} +1 -1
  54. package/core/built/admin/assets/{lucide-react-DNj9Mt50.js → lucide-react-B7CWr8XP.js} +1 -1
  55. package/core/built/admin/assets/{main-layout-A6BaeVIm.js → main-layout-CmX429hf.js} +1 -1
  56. package/core/built/admin/assets/{message-square-text-DJWDCab0.js → message-square-text-Cqodm1uC.js} +1 -1
  57. package/core/built/admin/assets/{minus-B7zQY2p1.js → minus-K1Fj4qFh.js} +1 -1
  58. package/core/built/admin/assets/{modals-DJQDv_48.js → modals-C0x0SG_a.js} +1 -1
  59. package/core/built/admin/assets/{moderation-DikYZSIC.js → moderation-DqX2eQNM.js} +1 -1
  60. package/core/built/admin/assets/{newsletter-ok4p5aPZ.js → newsletter-BaZVL4Rg.js} +1 -1
  61. package/core/built/admin/assets/{newsletters-ClUaZMbc.js → newsletters-DpmHk1Kf.js} +1 -1
  62. package/core/built/admin/assets/{note-C445n_od.js → note-Bqr3ECo6.js} +1 -1
  63. package/core/built/admin/assets/{overview-vPttXZEx.js → overview-CGTvSQfN.js} +1 -1
  64. package/core/built/admin/assets/{pagemenu-CUEgz3GC.js → pagemenu-z-Nc5-Yy.js} +1 -1
  65. package/core/built/admin/assets/{post-analytics-DPIgO2YG.js → post-analytics-DCAOPWEx.js} +1 -1
  66. package/core/built/admin/assets/{post-analytics-context-DGNsxT8V.js → post-analytics-context-DctS9fHu.js} +1 -1
  67. package/core/built/admin/assets/{post-analytics-header-B1f7HAy_.js → post-analytics-header-C6tJIKtV.js} +1 -1
  68. package/core/built/admin/assets/{post-share-modal-BIddzWjJ.js → post-share-modal-CtQTpIsC.js} +1 -1
  69. package/core/built/admin/assets/{posts-DOThg8yh.js → posts-D0erEci0.js} +1 -1
  70. package/core/built/admin/assets/{referrers-BK-mXdat.js → referrers-D4s1ncIT.js} +1 -1
  71. package/core/built/admin/assets/{repeat-CQvZJI02.js → repeat-BNamsVQr.js} +1 -1
  72. package/core/built/admin/assets/{reply-BET0l7FZ.js → reply-DqXFv78k.js} +1 -1
  73. package/core/built/admin/assets/{select-BH3t_tDB.js → select-CFBw9aAY.js} +1 -1
  74. package/core/built/admin/assets/{settings-CpkvyD93.js → settings-B_8Oslb0.js} +5 -5
  75. package/core/built/admin/assets/{settings-OIq7tQiJ.js → settings-BnZOyHrT.js} +1 -1
  76. package/core/built/admin/assets/{sort-button-DkfQ-8QJ.js → sort-button-K1rs2zWp.js} +1 -1
  77. package/core/built/admin/assets/{source-icon-DOOAvJR8.js → source-icon-KI6QTdIv.js} +1 -1
  78. package/core/built/admin/assets/{sprout-gjsBxaCU.js → sprout-C96gimQS.js} +1 -1
  79. package/core/built/admin/assets/{square-DsGufPa-.js → square-s6ZVKvbY.js} +1 -1
  80. package/core/built/admin/assets/{stats-Cu49FJzo.js → stats-C8Qt0L-1.js} +1 -1
  81. package/core/built/admin/assets/{stats-view-DUoDKh7r.js → stats-view-0eaQf_pM.js} +1 -1
  82. package/core/built/admin/assets/{step-1-QOnWlIzD.js → step-1-Gnp7iGGY.js} +1 -1
  83. package/core/built/admin/assets/{step-2-CDFj1bR5.js → step-2-DFbY2-K1.js} +1 -1
  84. package/core/built/admin/assets/{step-3-Cjmt9ecL.js → step-3-CoA_-aRF.js} +1 -1
  85. package/core/built/admin/assets/{table-PBYP6iVu.js → table-DpY57zP6.js} +1 -1
  86. package/core/built/admin/assets/{tabs--ia9i-R8.js → tabs-BTEs4Aby.js} +1 -1
  87. package/core/built/admin/assets/{tags-DwsoamaL.js → tags-CIEzegXe.js} +1 -1
  88. package/core/built/admin/assets/{tags-DK91bj9-.js → tags-DUcQDnmf.js} +1 -1
  89. package/core/built/admin/assets/{toggle-group-my6OlgUp.js → toggle-group-qaH0bKBM.js} +1 -1
  90. package/core/built/admin/assets/{topic-filter-Cdat1Ona.js → topic-filter-BmvO9gja.js} +1 -1
  91. package/core/built/admin/assets/{trash-C2kuVkXA.js → trash-DIVNO9rU.js} +1 -1
  92. package/core/built/admin/assets/{url-helpers-BuFo9dQz.js → url-helpers-Cn69VioM.js} +1 -1
  93. package/core/built/admin/assets/{use-growth-stats-DY2E0ltn.js → use-growth-stats-DPN4F7Mt.js} +1 -1
  94. package/core/built/admin/assets/{use-infinite-virtual-scroll-CS20HV8J.js → use-infinite-virtual-scroll-D5U6oSIq.js} +1 -1
  95. package/core/built/admin/assets/{use-simple-pagination-kb9H2Ssw.js → use-simple-pagination-_Ui1WbsL.js} +1 -1
  96. package/core/built/admin/assets/{user-round-check-Biw6QBQA.js → user-round-check-pBOLjTqi.js} +1 -1
  97. package/core/built/admin/assets/{wallet-cards-aM5Ct3OB.js → wallet-cards-yxIjXIK2.js} +1 -1
  98. package/core/built/admin/assets/{web-DiBDLMW8.js → web-CtBMATfv.js} +1 -1
  99. package/core/built/admin/index-forward.html +5 -5
  100. package/core/built/admin/index.html +3 -3
  101. package/core/server/services/member-welcome-emails/constants.js +1 -22
  102. package/core/server/services/member-welcome-emails/service.js +2 -20
  103. package/core/server/services/members/members-api/repositories/member-repository.js +7 -12
  104. package/package.json +13 -13
  105. package/yarn.lock +72 -89
  106. package/components/tryghost-i18n-6.13.1.tgz +0 -0
  107. /package/core/built/admin/assets/{chunk.397.a720333cfffc99c47e71.js.LICENSE.txt → chunk.397.71f16fce8de382622bb4.js.LICENSE.txt} +0 -0
@@ -1 +1 @@
1
- import{r as c,b3 as U,aM as te,bR as se,b4 as z,aj as T,j as e,aN as ee,ai as w,aW as pe,ap as he,aY as xe,a_ as I,bT as fe,bU as ae,af as X,ag as K,bV as ge,e as Q,bP as be,B as je}from"./index-X_uC_0DD.js";import{s as ve,g as q,S as ke,a as we,D as Ne,b as Se}from"./stats-view-DUoDKh7r.js";import{C as _e,a as ye,R as Ce,B as Te}from"./chart-tL51cfF9.js";import{E as re}from"./empty-indicator-DOQCKEXD.js";import{G as Me,C as De,X as Le,Y as Re}from"./gh-chart-CaA6rQiP.js";import{T as Be,a as Pe,K as Y,d as B,e as Ee}from"./tabs--ia9i-R8.js";import{B as Oe,S as $}from"./sort-button-DkfQ-8QJ.js";import{M as le}from"./wallet-cards-aM5Ct3OB.js";import{S as Ae,a as Ve,b as We,c as $e,d as He,e as Ke,f as ze}from"./select-BH3t_tDB.js";import{M as Fe}from"./lucide-react-DNj9Mt50.js";import{j as Ge,C as ne,c as oe,a as Ie,b as Ye,h as Ue}from"./pagemenu-CUEgz3GC.js";import{a as Xe,e as Qe,b as qe,c as H,d as E,f as L}from"./table-PBYP6iVu.js";import{u as Je}from"./newsletters-ClUaZMbc.js";import{e as Ze,f as et,g as tt}from"./stats-Cu49FJzo.js";import"./message-square-text-DJWDCab0.js";import"./sprout-gjsBxaCU.js";import"./_baseAssignValue-CPzElAl9.js";import"./index-BNkw6KwF.js";import"./a-large-small-2Oh9oqBr.js";import"./at-sign-BtKGpnjs.js";import"./copy-B8yuX-e4.js";import"./hash-ZzZYv2ek.js";import"./inbox-C5KDymI8.js";import"./minus-B7zQY2p1.js";import"./tags-DwsoamaL.js";import"./square-DsGufPa-.js";import"./user-round-check-Biw6QBQA.js";import"./repeat-CQvZJI02.js";import"./reply-BET0l7FZ.js";import"./trash-C2kuVkXA.js";const st=({active:a,payload:s})=>{if(!a||!s?.length)return null;const r=s[0].payload,o=r.send_date;return e.jsxs("div",{className:"min-w-[220px] max-w-[240px] rounded-lg border bg-background px-3 py-2 shadow-lg",children:[e.jsxs("div",{className:"mb-2 flex w-full flex-col border-b pb-2",children:[e.jsx("span",{className:"text-sm font-semibold leading-tight",children:r.post_title}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Sent on ",ae(o)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Sent"}),e.jsx("div",{className:"ml-2 w-full text-right font-mono",children:T(r.sent_to)})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Opens"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[T(r.total_opens)," / "]}),w(r.open_rate)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Clicks"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[T(r.total_clicks)," / "]}),w(r.click_rate)]})]})]})},at=({subscribersData:a,avgsData:s,totals:r,isLoading:o,isAvgsLoading:t,initialTab:n="total-subscribers"})=>{const[l,h]=c.useState(n),[p,g]=c.useState(!1),{range:d}=U(),N=te(),[j]=se(),{appSettings:y}=z(),{emailTrackClicks:k,emailTrackOpens:u}=y?.analytics||{},{totalSubscribers:O,avgOpenRate:D,avgClickRate:m}=r,f=c.useMemo(()=>{if(!a||a.length===0)return[];let i=[];return i=ve(a,d,"value","exact"),i.map(M=>({...M,formattedValue:T(M.value),label:"Total Subscribers"}))},[a,d]),S=c.useMemo(()=>{if(!f||f.length<=1)return{direction:"same",value:"0%"};const i=f[0]?.value??0,v=f[f.length-1]?.value??0;let M="same";v>i?M="up":v<i&&(M="down");let P;if(i===0)P=v===0?"0%":"+100%";else{const A=(v-i)/i*100,V=Math.round(A*10)/10;P=`${A>=0?"+":""}${V}%`}return{direction:M,value:P}},[f]);c.useEffect(()=>{h(n)},[n]);const x=i=>{h(i);const v=new URLSearchParams(j);v.set("tab",i),N(`?${v.toString()}`,{replace:!0})},_={open_rate:{label:"Open rate"}},b=c.useMemo(()=>({"total-subscribers":{color:"hsl(var(--chart-darkblue))",datakey:"value"},"avg-open-rate":{color:"hsl(var(--chart-blue))",datakey:"open_rate"},"avg-click-rate":{color:"hsl(var(--chart-teal))",datakey:"click_rate"}}),[]),{barDomain:C,barTicks:R}=c.useMemo(()=>{if(!s||s.length===0||l==="total-subscribers")return{barDomain:[0,1],barTicks:[0,1]};const i=b[l]?.datakey;if(!i)return{barDomain:[0,1],barTicks:[0,1]};const v=s.map(G=>G[i]).filter(G=>typeof G=="number");if(v.length===0)return{barDomain:[0,1],barTicks:[0,1]};const M=Math.min(...v),P=Math.max(...v),A=Math.floor(M*10)/10,V=Math.ceil(P*10)/10,W=Math.max(0,A),Z=V===W?W+.1:V;return{barDomain:[W,Z],barTicks:[W,Z]}},[s,l,b]);if(o)return e.jsx("div",{className:"-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center",children:e.jsx(ee,{})});let F="grid-cols-3";(!k||!u)&&(F="grid-cols-2"),!k&&!u&&(F="grid-cols-1");const ue=l==="avg-open-rate"&&D>C[0]&&D<C[1]||l==="avg-click-rate"&&m>C[0]&&m<C[1],J=l==="avg-open-rate"?D:m;return e.jsxs(Be,{defaultValue:n,variant:"kpis",children:[e.jsxs(Pe,{className:`-mx-6 hidden grid-cols-3 md:!visible md:!grid ${F}`,children:[e.jsx(Y,{className:`${!u&&!k&&"cursor-auto after:hidden"}`,value:"total-subscribers",onClick:()=>{x("total-subscribers")},children:e.jsx(B,{color:b["total-subscribers"].color,"data-testid":"total-subscribers-value",diffDirection:S.direction,diffValue:S.value,label:"Total subscribers",value:T(O)})}),u&&e.jsx(Y,{value:"avg-open-rate",onClick:()=>{x("avg-open-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:b["avg-open-rate"].color,label:"Avg. open rate",value:w(D)})}),k&&e.jsx(Y,{value:"avg-click-rate",onClick:()=>{x("avg-click-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:b["avg-click-rate"].color,label:"Avg. click rate",value:w(m)})})]}),e.jsxs(pe,{children:[e.jsx(he,{className:"md:hidden",asChild:!0,children:e.jsxs(Ee,{children:[l==="total-subscribers"&&e.jsx(B,{color:b["total-subscribers"].color,label:"Total subscribers",value:T(O)}),l==="avg-open-rate"&&u&&e.jsx(B,{className:t?"opacity-50":"",color:b["avg-open-rate"].color,label:"Avg. open rate",value:w(D)}),l==="avg-click-rate"&&k&&e.jsx(B,{className:t?"opacity-50":"",color:b["avg-click-rate"].color,label:"Avg. click rate",value:w(m)})]})}),e.jsxs(xe,{align:"end",className:"w-56",children:[e.jsx(I,{onClick:()=>x("total-subscribers"),children:"Total subscribers"}),u&&e.jsx(I,{onClick:()=>x("avg-open-rate"),children:"Avg. open rate"}),k&&e.jsx(I,{onClick:()=>x("avg-click-rate"),children:"Avg. click rate"})]})]}),e.jsxs("div",{className:"my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500",children:[l==="total-subscribers"&&e.jsx(Me,{className:"-mb-3 h-[16vw] max-h-[320px] min-h-[180px] w-full",color:b["total-subscribers"].color,data:f,id:"mrr",range:d}),(l==="avg-open-rate"&&u||l==="avg-click-rate"&&k)&&e.jsx(e.Fragment,{children:t?e.jsx("div",{className:"h-[320px] w-full items-center justify-center",children:e.jsx(ee,{})}):s&&s.length>0?e.jsxs(e.Fragment,{children:[e.jsx(_e,{className:"aspect-auto h-[200px] w-full md:h-[220px] xl:h-[320px]",config:_,children:e.jsxs(Oe,{className:p?"!cursor-pointer":"",data:s,margin:{top:20},onClick:i=>{i.activePayload&&i.activePayload[0].payload.post_id&&N(`/posts/analytics/${i.activePayload[0].payload.post_id}`,{crossApp:!0})},onMouseLeave:()=>g(!1),onMouseMove:i=>{g(!!(i.activePayload&&i.activePayload[0].payload.post_id))},children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"barGradient",x1:"0",x2:"0",y1:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:b[l].color,stopOpacity:.8}),e.jsx("stop",{offset:"100%",stopColor:b[l].color,stopOpacity:.6})]})}),e.jsx(De,{horizontal:!0,stroke:"hsl(var(--border))",vertical:!1}),e.jsx(Le,{axisLine:{stroke:"hsl(var(--border))",strokeWidth:1},dataKey:"post_id",interval:0,stroke:"hsl(var(--border))",tickFormatter:()=>"",tickLine:!1,tickMargin:10}),e.jsx(Re,{axisLine:!1,domain:C,tickFormatter:i=>w(i),tickLine:!1,ticks:R,width:fe(R,i=>w(i))}),e.jsx(ye,{content:e.jsx(st,{}),cursor:!1,isAnimationActive:!1,position:{y:10}}),ue&&e.jsx(Ce,{label:{value:`${w(J)}`,position:"left",offset:8,fill:"hsl(var(--muted-foreground))"},opacity:.5,stroke:"hsl(var(--muted-foreground))",strokeDasharray:"4 4",y:J}),e.jsx(Te,{activeBar:{fillOpacity:1},dataKey:b[l].datakey,fill:"url(#barGradient)",fillOpacity:.6,isAnimationActive:!1,maxBarSize:32,minPointSize:3,radius:4})]})}),e.jsxs("div",{className:"-mt-4 text-center text-sm text-muted-foreground",children:["Newsletters ",l==="avg-open-rate"?"opens":"clicks"," in this period"]})]}):e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(d)}`,children:e.jsx(le,{strokeWidth:1.5})})})]})]})},rt=({newsletters:a})=>{const{selectedNewsletterId:s,setSelectedNewsletterId:r}=U(),o=c.useMemo(()=>a?.filter(t=>t.status==="active")||[],[a]);return c.useEffect(()=>{if(o.length>0&&!s){const t=o.find(n=>n.sort_order===0);r(t?t.id:o[0].id)}},[o,s,r]),o.length<=1?null:e.jsxs(Ae,{value:s||"",onValueChange:t=>{r(t)},children:[e.jsxs(Ve,{className:"w-auto",children:[e.jsx(Fe,{className:"mr-2",size:16,strokeWidth:1.5}),e.jsx(We,{placeholder:"Select a newsletter"})]}),e.jsx($e,{align:"end",children:e.jsxs(He,{children:[e.jsx(Ke,{children:"Newsletters"}),o.map(t=>e.jsx(ze,{value:t.id,children:t.name},t.id))]})})]})},lt=(a,s,r=!0)=>{const o=a??30,{startDate:t,endDate:n}=c.useMemo(()=>X(o),[o]),l=c.useMemo(()=>{const p={date_from:K(t),date_to:K(n)};return s&&(p.newsletter_id=s),p},[t,n,s]),h=Ze({searchParams:l,enabled:r});return r?h:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:h.refetch}},nt=(a,s,r,o=!0)=>{const t=a??30,n=s??"date desc",{startDate:l,endDate:h}=c.useMemo(()=>X(t),[t]),p=c.useMemo(()=>{const d={date_from:K(l),date_to:K(h),order:n};return r&&(d.newsletter_id=r),d},[l,h,n,r]),g=et({searchParams:p,enabled:o});return o?g:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:g.refetch}},ot=(a,s=[],r=!0)=>{const o=c.useMemo(()=>{const n={};return a&&(n.newsletter_id=a),s.length>0&&(n.post_ids=s.join(",")),n},[a,s]),t=tt({searchParams:o,enabled:r});return r?t:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:t.refetch}},ie=(a,s,r,o=!0)=>{const t=nt(a,s,r,o),n=c.useMemo(()=>t.data?.stats?t.data.stats.map(p=>p.post_id):[],[t.data]),l=ot(r,n,o&&n.length>0);return{data:c.useMemo(()=>{if(!t.data?.stats)return;const p=t.data.stats,g=l.data?.stats||[],d=new Map;g.forEach(j=>{d.set(j.post_id,j)});const N=p.map(j=>{const y=d.get(j.post_id);return{...j,total_clicks:y?.total_clicks||0,click_rate:y?.click_rate||0}});return{...t.data,stats:N}},[t.data,l.data]),isLoading:t.isLoading,isClicksLoading:l.isLoading,error:t.error||l.error,isError:t.isError||l.isError,refetch:()=>{t.refetch(),l.refetch()}}},ce=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})=>{const t=te(),{data:n,isLoading:l,isClicksLoading:h}=ie(a,o,s||void 0,!!r),{appSettings:p}=z(),{emailTrackClicks:g,emailTrackOpens:d}=p?.analytics||{},N=c.useMemo(()=>n?.stats||[],[n]),j=d&&g?5:d||g?4:3,y=c.useMemo(()=>e.jsx(e.Fragment,{children:e.jsx(H,{className:"last:border-none [&>td]:py-2.5",children:e.jsx(L,{className:"font-medium",colSpan:j,children:e.jsx(be,{className:"mt-5"})})})}),[j]),k=c.useMemo(()=>N.length>0?e.jsx(e.Fragment,{children:N.map(u=>e.jsxs(H,{className:"last:border-none [&>td]:py-2.5",children:[e.jsx(L,{className:"font-medium",children:e.jsx("div",{className:"group/link inline-flex items-center gap-2",children:u.post_id?e.jsx(je,{className:"h-auto whitespace-normal p-0 text-left hover:!underline",title:"View post analytics",variant:"link",onClick:()=>{t(`/posts/analytics/${u.post_id}/`,{crossApp:!0})},children:u.post_title}):e.jsx(e.Fragment,{children:u.post_title})})}),e.jsx(L,{className:"whitespace-nowrap text-sm",children:ae(u.send_date)}),e.jsx(L,{className:"text-right font-mono text-sm",children:T(u.sent_to)}),d&&e.jsxs(L,{className:"text-right font-mono text-sm",children:[e.jsx("span",{className:"group-hover:hidden",children:w(u.open_rate)}),e.jsx("span",{className:"hidden group-hover:!visible group-hover:!block",children:T(u.total_opens)})]}),g&&e.jsx(L,{className:"text-right font-mono text-sm",children:h?e.jsx("span",{className:"inline-block h-4 w-8 animate-pulse rounded bg-gray-200"}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"group-hover:hidden",children:w(u.click_rate)}),e.jsx("span",{className:"hidden group-hover:!visible group-hover:!block",children:T(u.total_clicks)})]})})]},u.post_id))}):e.jsx(H,{className:"border-none hover:bg-transparent",children:e.jsx(L,{className:"text-center group-hover:!bg-transparent",colSpan:5,children:e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(a)}`,children:e.jsx(le,{strokeWidth:1.5})})})}),[N,h,t,g,d,a]);return l||!n?y:k});ce.displayName="NewsletterTableRows";const de=Q.memo(({sortBy:a,setSortBy:s,range:r})=>{const o=c.useMemo(()=>e.jsxs(Ie,{children:[e.jsx(Ye,{children:"Top newsletters"}),e.jsxs(Ue,{children:[" Your best performing newsletters ",q(r)]})]}),[r]),{appSettings:t}=z(),{emailTrackClicks:n,emailTrackOpens:l}=t?.analytics||{};return e.jsx(qe,{children:e.jsxs(H,{children:[e.jsx(E,{className:"min-w-[320px]",variant:"cardhead",children:o}),e.jsx(E,{className:"w-[65px]",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"date desc",children:"Date"})}),e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"sent_to desc",children:"Sent"})}),l&&e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"open_rate desc",children:"Opens"})}),n&&e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"click_rate desc",children:"Clicks"})})]})})});de.displayName="NewsletterTableHeader";const me=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r})=>{const[o,t]=c.useState("open_rate desc");return e.jsx(ne,{className:"w-full max-w-[calc(100vw-64px)] overflow-x-auto sidebar:max-w-[calc(100vw-64px-280px)]","data-testid":"top-newsletters-card",children:e.jsx(oe,{children:e.jsxs(Xe,{children:[e.jsx(de,{range:a,setSortBy:t,sortBy:o}),e.jsx(Qe,{children:e.jsx(ce,{range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})})]})})})});me.displayName="TopNewslettersTable";const Vt=()=>{const{range:a,selectedNewsletterId:s}=U(),[r]=se(),{appSettings:o}=z(),t=r.get("tab")||"total-subscribers",{data:n,isLoading:l}=Je({searchParams:{limit:"50"}}),h=!l&&n&&n.newsletters.length>0&&!!s,{data:p,isLoading:g}=lt(a,s||void 0,h||!1),{data:d,isLoading:N,isClicksLoading:j}=ie(a,"date asc",s||void 0,h||!1),y=c.useMemo(()=>!n?.newsletters||!s?null:n.newsletters.find(m=>m.id===s)||null,[n,s]),k=c.useMemo(()=>{const m=y?.count?.active_members||p?.stats?.[0]?.total||0;let f=0,S=0;if(d?.stats&&d.stats.length>0){const x=d.stats,_=x.reduce((C,R)=>C+(R.open_rate||0),0),b=x.reduce((C,R)=>C+(R.click_rate||0),0);f=_/x.length,S=b/x.length}return{totalSubscribers:m,avgOpenRate:f,avgClickRate:S}},[y,p,d]),u=c.useMemo(()=>{if(!p?.stats?.[0]?.values||p.stats[0].values.length===0){const{startDate:f,endDate:S}=X(a),x=[],_=new Date(f);for(;_<=S;)x.push({date:_.toISOString().split("T")[0],value:0}),_.setDate(_.getDate()+1);return x}const m=p.stats[0].values;if(m.length===1){const f=m[0],S=new Date,x=a,_=new Date(S.getTime()-x*24*60*60*1e3);return[{...f,date:_.toISOString().split("T")[0]},{...f,date:S.toISOString().split("T")[0]}]}return m},[p,a]),O=c.useMemo(()=>d?.stats?d.stats.map(m=>({post_id:m.post_id,post_title:m.post_title,send_date:m.send_date,sent_to:m.sent_to,total_opens:m.total_opens,open_rate:m.open_rate,total_clicks:m.total_clicks||0,click_rate:m.click_rate||0})):[],[d]),D=g||j||N;return o?.newslettersEnabled?e.jsxs(ke,{children:[e.jsx(we,{children:e.jsxs(Ge,{children:[e.jsx(rt,{newsletters:n?.newsletters}),e.jsx(Ne,{})]})}),e.jsx(Se,{isLoading:!1,loadingComponent:e.jsx(e.Fragment,{}),children:e.jsxs(e.Fragment,{children:[e.jsx(ne,{"data-testid":"newsletters-card",children:e.jsx(oe,{children:e.jsx(at,{avgsData:O,initialTab:t,isAvgsLoading:!1,isLoading:D,subscribersData:u,totals:k})})}),e.jsx(me,{range:a,selectedNewsletterId:s,shouldFetchStats:!!h})]})})]}):e.jsx(ge,{to:"/"})};export{Vt as default};
1
+ import{r as c,b3 as U,aM as te,bR as se,b4 as z,aj as T,j as e,aN as ee,ai as w,aW as pe,ap as he,aY as xe,a_ as I,bT as fe,bU as ae,af as X,ag as K,bV as ge,e as Q,bP as be,B as je}from"./index-Dq_j8mTf.js";import{s as ve,g as q,S as ke,a as we,D as Ne,b as Se}from"./stats-view-0eaQf_pM.js";import{C as _e,a as ye,R as Ce,B as Te}from"./chart-BYGpVun6.js";import{E as re}from"./empty-indicator-B7WXKrac.js";import{G as Me,C as De,X as Le,Y as Re}from"./gh-chart-B98YGgzG.js";import{T as Be,a as Pe,K as Y,d as B,e as Ee}from"./tabs-BTEs4Aby.js";import{B as Oe,S as $}from"./sort-button-K1rs2zWp.js";import{M as le}from"./wallet-cards-yxIjXIK2.js";import{S as Ae,a as Ve,b as We,c as $e,d as He,e as Ke,f as ze}from"./select-CFBw9aAY.js";import{M as Fe}from"./lucide-react-B7CWr8XP.js";import{j as Ge,C as ne,c as oe,a as Ie,b as Ye,h as Ue}from"./pagemenu-z-Nc5-Yy.js";import{a as Xe,e as Qe,b as qe,c as H,d as E,f as L}from"./table-DpY57zP6.js";import{u as Je}from"./newsletters-DpmHk1Kf.js";import{e as Ze,f as et,g as tt}from"./stats-C8Qt0L-1.js";import"./message-square-text-Cqodm1uC.js";import"./sprout-C96gimQS.js";import"./_baseAssignValue-qTINVNgk.js";import"./index-CLdEbHsV.js";import"./a-large-small-D-nhKFBX.js";import"./at-sign-DHUgIxNb.js";import"./copy-CCj6xx5V.js";import"./hash-B4UtN3nq.js";import"./inbox-D336Mbic.js";import"./minus-K1Fj4qFh.js";import"./tags-CIEzegXe.js";import"./square-s6ZVKvbY.js";import"./user-round-check-pBOLjTqi.js";import"./repeat-BNamsVQr.js";import"./reply-DqXFv78k.js";import"./trash-DIVNO9rU.js";const st=({active:a,payload:s})=>{if(!a||!s?.length)return null;const r=s[0].payload,o=r.send_date;return e.jsxs("div",{className:"min-w-[220px] max-w-[240px] rounded-lg border bg-background px-3 py-2 shadow-lg",children:[e.jsxs("div",{className:"mb-2 flex w-full flex-col border-b pb-2",children:[e.jsx("span",{className:"text-sm font-semibold leading-tight",children:r.post_title}),e.jsxs("span",{className:"text-sm text-muted-foreground",children:["Sent on ",ae(o)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Sent"}),e.jsx("div",{className:"ml-2 w-full text-right font-mono",children:T(r.sent_to)})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Opens"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[T(r.total_opens)," / "]}),w(r.open_rate)]})]}),e.jsxs("div",{className:"mb-1 flex w-full justify-between",children:[e.jsx("span",{className:"font-medium text-muted-foreground",children:"Clicks"}),e.jsxs("div",{className:"ml-2 w-full text-right font-mono",children:[e.jsxs("span",{className:"text-muted-foreground",children:[T(r.total_clicks)," / "]}),w(r.click_rate)]})]})]})},at=({subscribersData:a,avgsData:s,totals:r,isLoading:o,isAvgsLoading:t,initialTab:n="total-subscribers"})=>{const[l,h]=c.useState(n),[p,g]=c.useState(!1),{range:d}=U(),N=te(),[j]=se(),{appSettings:y}=z(),{emailTrackClicks:k,emailTrackOpens:u}=y?.analytics||{},{totalSubscribers:O,avgOpenRate:D,avgClickRate:m}=r,f=c.useMemo(()=>{if(!a||a.length===0)return[];let i=[];return i=ve(a,d,"value","exact"),i.map(M=>({...M,formattedValue:T(M.value),label:"Total Subscribers"}))},[a,d]),S=c.useMemo(()=>{if(!f||f.length<=1)return{direction:"same",value:"0%"};const i=f[0]?.value??0,v=f[f.length-1]?.value??0;let M="same";v>i?M="up":v<i&&(M="down");let P;if(i===0)P=v===0?"0%":"+100%";else{const A=(v-i)/i*100,V=Math.round(A*10)/10;P=`${A>=0?"+":""}${V}%`}return{direction:M,value:P}},[f]);c.useEffect(()=>{h(n)},[n]);const x=i=>{h(i);const v=new URLSearchParams(j);v.set("tab",i),N(`?${v.toString()}`,{replace:!0})},_={open_rate:{label:"Open rate"}},b=c.useMemo(()=>({"total-subscribers":{color:"hsl(var(--chart-darkblue))",datakey:"value"},"avg-open-rate":{color:"hsl(var(--chart-blue))",datakey:"open_rate"},"avg-click-rate":{color:"hsl(var(--chart-teal))",datakey:"click_rate"}}),[]),{barDomain:C,barTicks:R}=c.useMemo(()=>{if(!s||s.length===0||l==="total-subscribers")return{barDomain:[0,1],barTicks:[0,1]};const i=b[l]?.datakey;if(!i)return{barDomain:[0,1],barTicks:[0,1]};const v=s.map(G=>G[i]).filter(G=>typeof G=="number");if(v.length===0)return{barDomain:[0,1],barTicks:[0,1]};const M=Math.min(...v),P=Math.max(...v),A=Math.floor(M*10)/10,V=Math.ceil(P*10)/10,W=Math.max(0,A),Z=V===W?W+.1:V;return{barDomain:[W,Z],barTicks:[W,Z]}},[s,l,b]);if(o)return e.jsx("div",{className:"-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center",children:e.jsx(ee,{})});let F="grid-cols-3";(!k||!u)&&(F="grid-cols-2"),!k&&!u&&(F="grid-cols-1");const ue=l==="avg-open-rate"&&D>C[0]&&D<C[1]||l==="avg-click-rate"&&m>C[0]&&m<C[1],J=l==="avg-open-rate"?D:m;return e.jsxs(Be,{defaultValue:n,variant:"kpis",children:[e.jsxs(Pe,{className:`-mx-6 hidden grid-cols-3 md:!visible md:!grid ${F}`,children:[e.jsx(Y,{className:`${!u&&!k&&"cursor-auto after:hidden"}`,value:"total-subscribers",onClick:()=>{x("total-subscribers")},children:e.jsx(B,{color:b["total-subscribers"].color,"data-testid":"total-subscribers-value",diffDirection:S.direction,diffValue:S.value,label:"Total subscribers",value:T(O)})}),u&&e.jsx(Y,{value:"avg-open-rate",onClick:()=>{x("avg-open-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:b["avg-open-rate"].color,label:"Avg. open rate",value:w(D)})}),k&&e.jsx(Y,{value:"avg-click-rate",onClick:()=>{x("avg-click-rate")},children:e.jsx(B,{className:t?"opacity-50":"",color:b["avg-click-rate"].color,label:"Avg. click rate",value:w(m)})})]}),e.jsxs(pe,{children:[e.jsx(he,{className:"md:hidden",asChild:!0,children:e.jsxs(Ee,{children:[l==="total-subscribers"&&e.jsx(B,{color:b["total-subscribers"].color,label:"Total subscribers",value:T(O)}),l==="avg-open-rate"&&u&&e.jsx(B,{className:t?"opacity-50":"",color:b["avg-open-rate"].color,label:"Avg. open rate",value:w(D)}),l==="avg-click-rate"&&k&&e.jsx(B,{className:t?"opacity-50":"",color:b["avg-click-rate"].color,label:"Avg. click rate",value:w(m)})]})}),e.jsxs(xe,{align:"end",className:"w-56",children:[e.jsx(I,{onClick:()=>x("total-subscribers"),children:"Total subscribers"}),u&&e.jsx(I,{onClick:()=>x("avg-open-rate"),children:"Avg. open rate"}),k&&e.jsx(I,{onClick:()=>x("avg-click-rate"),children:"Avg. click rate"})]})]}),e.jsxs("div",{className:"my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500",children:[l==="total-subscribers"&&e.jsx(Me,{className:"-mb-3 h-[16vw] max-h-[320px] min-h-[180px] w-full",color:b["total-subscribers"].color,data:f,id:"mrr",range:d}),(l==="avg-open-rate"&&u||l==="avg-click-rate"&&k)&&e.jsx(e.Fragment,{children:t?e.jsx("div",{className:"h-[320px] w-full items-center justify-center",children:e.jsx(ee,{})}):s&&s.length>0?e.jsxs(e.Fragment,{children:[e.jsx(_e,{className:"aspect-auto h-[200px] w-full md:h-[220px] xl:h-[320px]",config:_,children:e.jsxs(Oe,{className:p?"!cursor-pointer":"",data:s,margin:{top:20},onClick:i=>{i.activePayload&&i.activePayload[0].payload.post_id&&N(`/posts/analytics/${i.activePayload[0].payload.post_id}`,{crossApp:!0})},onMouseLeave:()=>g(!1),onMouseMove:i=>{g(!!(i.activePayload&&i.activePayload[0].payload.post_id))},children:[e.jsx("defs",{children:e.jsxs("linearGradient",{id:"barGradient",x1:"0",x2:"0",y1:"0",y2:"1",children:[e.jsx("stop",{offset:"0%",stopColor:b[l].color,stopOpacity:.8}),e.jsx("stop",{offset:"100%",stopColor:b[l].color,stopOpacity:.6})]})}),e.jsx(De,{horizontal:!0,stroke:"hsl(var(--border))",vertical:!1}),e.jsx(Le,{axisLine:{stroke:"hsl(var(--border))",strokeWidth:1},dataKey:"post_id",interval:0,stroke:"hsl(var(--border))",tickFormatter:()=>"",tickLine:!1,tickMargin:10}),e.jsx(Re,{axisLine:!1,domain:C,tickFormatter:i=>w(i),tickLine:!1,ticks:R,width:fe(R,i=>w(i))}),e.jsx(ye,{content:e.jsx(st,{}),cursor:!1,isAnimationActive:!1,position:{y:10}}),ue&&e.jsx(Ce,{label:{value:`${w(J)}`,position:"left",offset:8,fill:"hsl(var(--muted-foreground))"},opacity:.5,stroke:"hsl(var(--muted-foreground))",strokeDasharray:"4 4",y:J}),e.jsx(Te,{activeBar:{fillOpacity:1},dataKey:b[l].datakey,fill:"url(#barGradient)",fillOpacity:.6,isAnimationActive:!1,maxBarSize:32,minPointSize:3,radius:4})]})}),e.jsxs("div",{className:"-mt-4 text-center text-sm text-muted-foreground",children:["Newsletters ",l==="avg-open-rate"?"opens":"clicks"," in this period"]})]}):e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(d)}`,children:e.jsx(le,{strokeWidth:1.5})})})]})]})},rt=({newsletters:a})=>{const{selectedNewsletterId:s,setSelectedNewsletterId:r}=U(),o=c.useMemo(()=>a?.filter(t=>t.status==="active")||[],[a]);return c.useEffect(()=>{if(o.length>0&&!s){const t=o.find(n=>n.sort_order===0);r(t?t.id:o[0].id)}},[o,s,r]),o.length<=1?null:e.jsxs(Ae,{value:s||"",onValueChange:t=>{r(t)},children:[e.jsxs(Ve,{className:"w-auto",children:[e.jsx(Fe,{className:"mr-2",size:16,strokeWidth:1.5}),e.jsx(We,{placeholder:"Select a newsletter"})]}),e.jsx($e,{align:"end",children:e.jsxs(He,{children:[e.jsx(Ke,{children:"Newsletters"}),o.map(t=>e.jsx(ze,{value:t.id,children:t.name},t.id))]})})]})},lt=(a,s,r=!0)=>{const o=a??30,{startDate:t,endDate:n}=c.useMemo(()=>X(o),[o]),l=c.useMemo(()=>{const p={date_from:K(t),date_to:K(n)};return s&&(p.newsletter_id=s),p},[t,n,s]),h=Ze({searchParams:l,enabled:r});return r?h:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:h.refetch}},nt=(a,s,r,o=!0)=>{const t=a??30,n=s??"date desc",{startDate:l,endDate:h}=c.useMemo(()=>X(t),[t]),p=c.useMemo(()=>{const d={date_from:K(l),date_to:K(h),order:n};return r&&(d.newsletter_id=r),d},[l,h,n,r]),g=et({searchParams:p,enabled:o});return o?g:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:g.refetch}},ot=(a,s=[],r=!0)=>{const o=c.useMemo(()=>{const n={};return a&&(n.newsletter_id=a),s.length>0&&(n.post_ids=s.join(",")),n},[a,s]),t=tt({searchParams:o,enabled:r});return r?t:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:t.refetch}},ie=(a,s,r,o=!0)=>{const t=nt(a,s,r,o),n=c.useMemo(()=>t.data?.stats?t.data.stats.map(p=>p.post_id):[],[t.data]),l=ot(r,n,o&&n.length>0);return{data:c.useMemo(()=>{if(!t.data?.stats)return;const p=t.data.stats,g=l.data?.stats||[],d=new Map;g.forEach(j=>{d.set(j.post_id,j)});const N=p.map(j=>{const y=d.get(j.post_id);return{...j,total_clicks:y?.total_clicks||0,click_rate:y?.click_rate||0}});return{...t.data,stats:N}},[t.data,l.data]),isLoading:t.isLoading,isClicksLoading:l.isLoading,error:t.error||l.error,isError:t.isError||l.isError,refetch:()=>{t.refetch(),l.refetch()}}},ce=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})=>{const t=te(),{data:n,isLoading:l,isClicksLoading:h}=ie(a,o,s||void 0,!!r),{appSettings:p}=z(),{emailTrackClicks:g,emailTrackOpens:d}=p?.analytics||{},N=c.useMemo(()=>n?.stats||[],[n]),j=d&&g?5:d||g?4:3,y=c.useMemo(()=>e.jsx(e.Fragment,{children:e.jsx(H,{className:"last:border-none [&>td]:py-2.5",children:e.jsx(L,{className:"font-medium",colSpan:j,children:e.jsx(be,{className:"mt-5"})})})}),[j]),k=c.useMemo(()=>N.length>0?e.jsx(e.Fragment,{children:N.map(u=>e.jsxs(H,{className:"last:border-none [&>td]:py-2.5",children:[e.jsx(L,{className:"font-medium",children:e.jsx("div",{className:"group/link inline-flex items-center gap-2",children:u.post_id?e.jsx(je,{className:"h-auto whitespace-normal p-0 text-left hover:!underline",title:"View post analytics",variant:"link",onClick:()=>{t(`/posts/analytics/${u.post_id}/`,{crossApp:!0})},children:u.post_title}):e.jsx(e.Fragment,{children:u.post_title})})}),e.jsx(L,{className:"whitespace-nowrap text-sm",children:ae(u.send_date)}),e.jsx(L,{className:"text-right font-mono text-sm",children:T(u.sent_to)}),d&&e.jsxs(L,{className:"text-right font-mono text-sm",children:[e.jsx("span",{className:"group-hover:hidden",children:w(u.open_rate)}),e.jsx("span",{className:"hidden group-hover:!visible group-hover:!block",children:T(u.total_opens)})]}),g&&e.jsx(L,{className:"text-right font-mono text-sm",children:h?e.jsx("span",{className:"inline-block h-4 w-8 animate-pulse rounded bg-gray-200"}):e.jsxs(e.Fragment,{children:[e.jsx("span",{className:"group-hover:hidden",children:w(u.click_rate)}),e.jsx("span",{className:"hidden group-hover:!visible group-hover:!block",children:T(u.total_clicks)})]})})]},u.post_id))}):e.jsx(H,{className:"border-none hover:bg-transparent",children:e.jsx(L,{className:"text-center group-hover:!bg-transparent",colSpan:5,children:e.jsx(re,{className:"size-full py-20",title:`No newsletters ${q(a)}`,children:e.jsx(le,{strokeWidth:1.5})})})}),[N,h,t,g,d,a]);return l||!n?y:k});ce.displayName="NewsletterTableRows";const de=Q.memo(({sortBy:a,setSortBy:s,range:r})=>{const o=c.useMemo(()=>e.jsxs(Ie,{children:[e.jsx(Ye,{children:"Top newsletters"}),e.jsxs(Ue,{children:[" Your best performing newsletters ",q(r)]})]}),[r]),{appSettings:t}=z(),{emailTrackClicks:n,emailTrackOpens:l}=t?.analytics||{};return e.jsx(qe,{children:e.jsxs(H,{children:[e.jsx(E,{className:"min-w-[320px]",variant:"cardhead",children:o}),e.jsx(E,{className:"w-[65px]",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"date desc",children:"Date"})}),e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"sent_to desc",children:"Sent"})}),l&&e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"open_rate desc",children:"Opens"})}),n&&e.jsx(E,{className:"w-[90px] text-right",children:e.jsx($,{activeSortBy:a,setSortBy:s,sortBy:"click_rate desc",children:"Clicks"})})]})})});de.displayName="NewsletterTableHeader";const me=Q.memo(({range:a,selectedNewsletterId:s,shouldFetchStats:r})=>{const[o,t]=c.useState("open_rate desc");return e.jsx(ne,{className:"w-full max-w-[calc(100vw-64px)] overflow-x-auto sidebar:max-w-[calc(100vw-64px-280px)]","data-testid":"top-newsletters-card",children:e.jsx(oe,{children:e.jsxs(Xe,{children:[e.jsx(de,{range:a,setSortBy:t,sortBy:o}),e.jsx(Qe,{children:e.jsx(ce,{range:a,selectedNewsletterId:s,shouldFetchStats:r,sortBy:o})})]})})})});me.displayName="TopNewslettersTable";const Vt=()=>{const{range:a,selectedNewsletterId:s}=U(),[r]=se(),{appSettings:o}=z(),t=r.get("tab")||"total-subscribers",{data:n,isLoading:l}=Je({searchParams:{limit:"50"}}),h=!l&&n&&n.newsletters.length>0&&!!s,{data:p,isLoading:g}=lt(a,s||void 0,h||!1),{data:d,isLoading:N,isClicksLoading:j}=ie(a,"date asc",s||void 0,h||!1),y=c.useMemo(()=>!n?.newsletters||!s?null:n.newsletters.find(m=>m.id===s)||null,[n,s]),k=c.useMemo(()=>{const m=y?.count?.active_members||p?.stats?.[0]?.total||0;let f=0,S=0;if(d?.stats&&d.stats.length>0){const x=d.stats,_=x.reduce((C,R)=>C+(R.open_rate||0),0),b=x.reduce((C,R)=>C+(R.click_rate||0),0);f=_/x.length,S=b/x.length}return{totalSubscribers:m,avgOpenRate:f,avgClickRate:S}},[y,p,d]),u=c.useMemo(()=>{if(!p?.stats?.[0]?.values||p.stats[0].values.length===0){const{startDate:f,endDate:S}=X(a),x=[],_=new Date(f);for(;_<=S;)x.push({date:_.toISOString().split("T")[0],value:0}),_.setDate(_.getDate()+1);return x}const m=p.stats[0].values;if(m.length===1){const f=m[0],S=new Date,x=a,_=new Date(S.getTime()-x*24*60*60*1e3);return[{...f,date:_.toISOString().split("T")[0]},{...f,date:S.toISOString().split("T")[0]}]}return m},[p,a]),O=c.useMemo(()=>d?.stats?d.stats.map(m=>({post_id:m.post_id,post_title:m.post_title,send_date:m.send_date,sent_to:m.sent_to,total_opens:m.total_opens,open_rate:m.open_rate,total_clicks:m.total_clicks||0,click_rate:m.click_rate||0})):[],[d]),D=g||j||N;return o?.newslettersEnabled?e.jsxs(ke,{children:[e.jsx(we,{children:e.jsxs(Ge,{children:[e.jsx(rt,{newsletters:n?.newsletters}),e.jsx(Ne,{})]})}),e.jsx(Se,{isLoading:!1,loadingComponent:e.jsx(e.Fragment,{}),children:e.jsxs(e.Fragment,{children:[e.jsx(ne,{"data-testid":"newsletters-card",children:e.jsx(oe,{children:e.jsx(at,{avgsData:O,initialTab:t,isAvgsLoading:!1,isLoading:D,subscribersData:u,totals:k})})}),e.jsx(me,{range:a,selectedNewsletterId:s,shouldFetchStats:!!h})]})})]}):e.jsx(ge,{to:"/"})};export{Vt as default};
@@ -1,4 +1,4 @@
1
- import{cT as wv,d1 as x0}from"./index-X_uC_0DD.js";import{r as qv,a as Ev,b as R0,c as _0,d as A0,e as M0,f as Ae,g as L0,h as N0,i as $v,j as Sv,k as k0,l as F0,m as C0,n as D0,o as P0,p as U0}from"./_baseAssignValue-CPzElAl9.js";function B0(e,i){for(var c=0;c<i.length;c++){const l=i[c];if(typeof l!="string"&&!Array.isArray(l)){for(const v in l)if(v!=="default"&&!(v in e)){const g=Object.getOwnPropertyDescriptor(l,v);g&&Object.defineProperty(e,v,g.get?g:{enumerable:!0,get:()=>l[v]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var ht,Ys;function j0(){if(Ys)return ht;Ys=1;var e=qv(),i=Ev(),c=Object.prototype,l=c.hasOwnProperty;function v(g,b,m){var O=g[b];(!(l.call(g,b)&&i(O,m))||m===void 0&&!(b in g))&&e(g,b,m)}return ht=v,ht}var vt,Js;function V0(){if(Js)return vt;Js=1;var e=j0(),i=qv();function c(l,v,g,b){var m=!g;g||(g={});for(var O=-1,C=v.length;++O<C;){var A=v[O],S=b?b(g[A],l[A],A,g,l):void 0;S===void 0&&(S=l[A]),m?i(g,A,S):e(g,A,S)}return g}return vt=c,vt}var mt,Xs;function H0(){if(Xs)return mt;Xs=1;function e(i){var c=[];if(i!=null)for(var l in Object(i))c.push(l);return c}return mt=e,mt}var yt,Qs;function Z0(){if(Qs)return yt;Qs=1;var e=R0(),i=_0(),c=H0(),l=Object.prototype,v=l.hasOwnProperty;function g(b){if(!e(b))return c(b);var m=i(b),O=[];for(var C in b)C=="constructor"&&(m||!v.call(b,C))||O.push(C);return O}return yt=g,yt}var pt,Ks;function W0(){if(Ks)return pt;Ks=1;var e=A0(),i=Z0(),c=M0();function l(v){return c(v)?e(v,!0):i(v)}return pt=l,pt}var gt,rf;function z0(){if(rf)return gt;rf=1;var e=Ae(),i=L0();function c(l){return i(e(l).toLowerCase())}return gt=c,gt}var bt,ef;function G0(){if(ef)return bt;ef=1;function e(i,c,l,v){var g=-1,b=i==null?0:i.length;for(v&&b&&(l=i[++g]);++g<b;)l=c(l,i[g],g,i);return l}return bt=e,bt}var wt,tf;function Iv(){if(tf)return wt;tf=1;function e(i){return function(c){return i?.[c]}}return wt=e,wt}var qt,nf;function Y0(){if(nf)return qt;nf=1;var e=Iv(),i={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},c=e(i);return qt=c,qt}var Et,af;function J0(){if(af)return Et;af=1;var e=Y0(),i=Ae(),c=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,l="\\u0300-\\u036f",v="\\ufe20-\\ufe2f",g="\\u20d0-\\u20ff",b=l+v+g,m="["+b+"]",O=RegExp(m,"g");function C(A){return A=i(A),A&&A.replace(c,e).replace(O,"")}return Et=C,Et}var $t,uf;function X0(){if(uf)return $t;uf=1;var e=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function i(c){return c.match(e)||[]}return $t=i,$t}var St,of;function Q0(){if(of)return St;of=1;var e=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function i(c){return e.test(c)}return St=i,St}var It,sf;function K0(){if(sf)return It;sf=1;var e="\\ud800-\\udfff",i="\\u0300-\\u036f",c="\\ufe20-\\ufe2f",l="\\u20d0-\\u20ff",v=i+c+l,g="\\u2700-\\u27bf",b="a-z\\xdf-\\xf6\\xf8-\\xff",m="\\xac\\xb1\\xd7\\xf7",O="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",C="\\u2000-\\u206f",A=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",S="A-Z\\xc0-\\xd6\\xd8-\\xde",T="\\ufe0e\\ufe0f",w=m+O+C+A,F="['’]",_="["+w+"]",D="["+v+"]",M="\\d+",B="["+g+"]",j="["+b+"]",U="[^"+e+w+M+g+b+S+"]",R="\\ud83c[\\udffb-\\udfff]",X="(?:"+D+"|"+R+")",H="[^"+e+"]",Z="(?:\\ud83c[\\udde6-\\uddff]){2}",Q="[\\ud800-\\udbff][\\udc00-\\udfff]",pr="["+S+"]",or="\\u200d",Er="(?:"+j+"|"+U+")",fr="(?:"+pr+"|"+U+")",br="(?:"+F+"(?:d|ll|m|re|s|t|ve))?",sr="(?:"+F+"(?:D|LL|M|RE|S|T|VE))?",Mr=X+"?",cr="["+T+"]?",Vr="(?:"+or+"(?:"+[H,Z,Q].join("|")+")"+cr+Mr+")*",Hr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",xr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",tr=cr+Mr+Vr,dr="(?:"+[B,Z,Q].join("|")+")"+tr,Lr=RegExp([pr+"?"+j+"+"+br+"(?="+[_,pr,"$"].join("|")+")",fr+"+"+sr+"(?="+[_,pr+Er,"$"].join("|")+")",pr+"?"+Er+"+"+br,pr+"+"+sr,xr,Hr,M,dr].join("|"),"g");function Tr(Zr){return Zr.match(Lr)||[]}return It=Tr,It}var Tt,ff;function rp(){if(ff)return Tt;ff=1;var e=X0(),i=Q0(),c=Ae(),l=K0();function v(g,b,m){return g=c(g),b=m?void 0:b,b===void 0?i(g)?l(g):e(g):g.match(b)||[]}return Tt=v,Tt}var Ot,lf;function Tv(){if(lf)return Ot;lf=1;var e=G0(),i=J0(),c=rp(),l="['’]",v=RegExp(l,"g");function g(b){return function(m){return e(c(i(m).replace(v,"")),b,"")}}return Ot=g,Ot}var xt,cf;function ep(){if(cf)return xt;cf=1;var e=z0(),i=Tv(),c=i(function(l,v,g){return v=v.toLowerCase(),l+(g?e(v):v)});return xt=c,xt}var Rt,df;function tp(){if(df)return Rt;df=1;var e=Object.prototype,i=e.hasOwnProperty;function c(l,v){return l!=null&&i.call(l,v)}return Rt=c,Rt}var _t,hf;function np(){if(hf)return _t;hf=1;var e=tp(),i=N0();function c(l,v){return l!=null&&i(l,v,e)}return _t=c,_t}let Be;const ip=new Uint8Array(16);function ap(){if(!Be&&(Be=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Be))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Be(ip)}const wr=[];for(let e=0;e<256;++e)wr.push((e+256).toString(16).slice(1));function up(e,i=0){return wr[e[i+0]]+wr[e[i+1]]+wr[e[i+2]]+wr[e[i+3]]+"-"+wr[e[i+4]]+wr[e[i+5]]+"-"+wr[e[i+6]]+wr[e[i+7]]+"-"+wr[e[i+8]]+wr[e[i+9]]+"-"+wr[e[i+10]]+wr[e[i+11]]+wr[e[i+12]]+wr[e[i+13]]+wr[e[i+14]]+wr[e[i+15]]}let vf,At,Mt=0,Lt=0;function op(e,i,c){let l=0;const v=new Array(16);e=e||{};let g=e.node||vf,b=e.clockseq!==void 0?e.clockseq:At;if(g==null||b==null){const T=e.random||(e.rng||ap)();g==null&&(g=vf=[T[0]|1,T[1],T[2],T[3],T[4],T[5]]),b==null&&(b=At=(T[6]<<8|T[7])&16383)}let m=e.msecs!==void 0?e.msecs:Date.now(),O=e.nsecs!==void 0?e.nsecs:Lt+1;const C=m-Mt+(O-Lt)/1e4;if(C<0&&e.clockseq===void 0&&(b=b+1&16383),(C<0||m>Mt)&&e.nsecs===void 0&&(O=0),O>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Mt=m,Lt=O,At=b,m+=122192928e5;const A=((m&268435455)*1e4+O)%4294967296;v[l++]=A>>>24&255,v[l++]=A>>>16&255,v[l++]=A>>>8&255,v[l++]=A&255;const S=m/4294967296*1e4&268435455;v[l++]=S>>>8&255,v[l++]=S&255,v[l++]=S>>>24&15|16,v[l++]=S>>>16&255,v[l++]=b>>>8|128,v[l++]=b&255;for(let T=0;T<6;++T)v[l+T]=g[T];return i||up(v)}function sp(e,i){const c=(e.stack?.split(/\n/g)||[])[1],[l,...v]=i.stack?.split(/\n/g)||[];return[l,c,...v].join(`
1
+ import{cT as wv,d1 as x0}from"./index-Dq_j8mTf.js";import{r as qv,a as Ev,b as R0,c as _0,d as A0,e as M0,f as Ae,g as L0,h as N0,i as $v,j as Sv,k as k0,l as F0,m as C0,n as D0,o as P0,p as U0}from"./_baseAssignValue-qTINVNgk.js";function B0(e,i){for(var c=0;c<i.length;c++){const l=i[c];if(typeof l!="string"&&!Array.isArray(l)){for(const v in l)if(v!=="default"&&!(v in e)){const g=Object.getOwnPropertyDescriptor(l,v);g&&Object.defineProperty(e,v,g.get?g:{enumerable:!0,get:()=>l[v]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var ht,Ys;function j0(){if(Ys)return ht;Ys=1;var e=qv(),i=Ev(),c=Object.prototype,l=c.hasOwnProperty;function v(g,b,m){var O=g[b];(!(l.call(g,b)&&i(O,m))||m===void 0&&!(b in g))&&e(g,b,m)}return ht=v,ht}var vt,Js;function V0(){if(Js)return vt;Js=1;var e=j0(),i=qv();function c(l,v,g,b){var m=!g;g||(g={});for(var O=-1,C=v.length;++O<C;){var A=v[O],S=b?b(g[A],l[A],A,g,l):void 0;S===void 0&&(S=l[A]),m?i(g,A,S):e(g,A,S)}return g}return vt=c,vt}var mt,Xs;function H0(){if(Xs)return mt;Xs=1;function e(i){var c=[];if(i!=null)for(var l in Object(i))c.push(l);return c}return mt=e,mt}var yt,Qs;function Z0(){if(Qs)return yt;Qs=1;var e=R0(),i=_0(),c=H0(),l=Object.prototype,v=l.hasOwnProperty;function g(b){if(!e(b))return c(b);var m=i(b),O=[];for(var C in b)C=="constructor"&&(m||!v.call(b,C))||O.push(C);return O}return yt=g,yt}var pt,Ks;function W0(){if(Ks)return pt;Ks=1;var e=A0(),i=Z0(),c=M0();function l(v){return c(v)?e(v,!0):i(v)}return pt=l,pt}var gt,rf;function z0(){if(rf)return gt;rf=1;var e=Ae(),i=L0();function c(l){return i(e(l).toLowerCase())}return gt=c,gt}var bt,ef;function G0(){if(ef)return bt;ef=1;function e(i,c,l,v){var g=-1,b=i==null?0:i.length;for(v&&b&&(l=i[++g]);++g<b;)l=c(l,i[g],g,i);return l}return bt=e,bt}var wt,tf;function Iv(){if(tf)return wt;tf=1;function e(i){return function(c){return i?.[c]}}return wt=e,wt}var qt,nf;function Y0(){if(nf)return qt;nf=1;var e=Iv(),i={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"},c=e(i);return qt=c,qt}var Et,af;function J0(){if(af)return Et;af=1;var e=Y0(),i=Ae(),c=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,l="\\u0300-\\u036f",v="\\ufe20-\\ufe2f",g="\\u20d0-\\u20ff",b=l+v+g,m="["+b+"]",O=RegExp(m,"g");function C(A){return A=i(A),A&&A.replace(c,e).replace(O,"")}return Et=C,Et}var $t,uf;function X0(){if(uf)return $t;uf=1;var e=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;function i(c){return c.match(e)||[]}return $t=i,$t}var St,of;function Q0(){if(of)return St;of=1;var e=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;function i(c){return e.test(c)}return St=i,St}var It,sf;function K0(){if(sf)return It;sf=1;var e="\\ud800-\\udfff",i="\\u0300-\\u036f",c="\\ufe20-\\ufe2f",l="\\u20d0-\\u20ff",v=i+c+l,g="\\u2700-\\u27bf",b="a-z\\xdf-\\xf6\\xf8-\\xff",m="\\xac\\xb1\\xd7\\xf7",O="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",C="\\u2000-\\u206f",A=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",S="A-Z\\xc0-\\xd6\\xd8-\\xde",T="\\ufe0e\\ufe0f",w=m+O+C+A,F="['’]",_="["+w+"]",D="["+v+"]",M="\\d+",B="["+g+"]",j="["+b+"]",U="[^"+e+w+M+g+b+S+"]",R="\\ud83c[\\udffb-\\udfff]",X="(?:"+D+"|"+R+")",H="[^"+e+"]",Z="(?:\\ud83c[\\udde6-\\uddff]){2}",Q="[\\ud800-\\udbff][\\udc00-\\udfff]",pr="["+S+"]",or="\\u200d",Er="(?:"+j+"|"+U+")",fr="(?:"+pr+"|"+U+")",br="(?:"+F+"(?:d|ll|m|re|s|t|ve))?",sr="(?:"+F+"(?:D|LL|M|RE|S|T|VE))?",Mr=X+"?",cr="["+T+"]?",Vr="(?:"+or+"(?:"+[H,Z,Q].join("|")+")"+cr+Mr+")*",Hr="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",xr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",tr=cr+Mr+Vr,dr="(?:"+[B,Z,Q].join("|")+")"+tr,Lr=RegExp([pr+"?"+j+"+"+br+"(?="+[_,pr,"$"].join("|")+")",fr+"+"+sr+"(?="+[_,pr+Er,"$"].join("|")+")",pr+"?"+Er+"+"+br,pr+"+"+sr,xr,Hr,M,dr].join("|"),"g");function Tr(Zr){return Zr.match(Lr)||[]}return It=Tr,It}var Tt,ff;function rp(){if(ff)return Tt;ff=1;var e=X0(),i=Q0(),c=Ae(),l=K0();function v(g,b,m){return g=c(g),b=m?void 0:b,b===void 0?i(g)?l(g):e(g):g.match(b)||[]}return Tt=v,Tt}var Ot,lf;function Tv(){if(lf)return Ot;lf=1;var e=G0(),i=J0(),c=rp(),l="['’]",v=RegExp(l,"g");function g(b){return function(m){return e(c(i(m).replace(v,"")),b,"")}}return Ot=g,Ot}var xt,cf;function ep(){if(cf)return xt;cf=1;var e=z0(),i=Tv(),c=i(function(l,v,g){return v=v.toLowerCase(),l+(g?e(v):v)});return xt=c,xt}var Rt,df;function tp(){if(df)return Rt;df=1;var e=Object.prototype,i=e.hasOwnProperty;function c(l,v){return l!=null&&i.call(l,v)}return Rt=c,Rt}var _t,hf;function np(){if(hf)return _t;hf=1;var e=tp(),i=N0();function c(l,v){return l!=null&&i(l,v,e)}return _t=c,_t}let Be;const ip=new Uint8Array(16);function ap(){if(!Be&&(Be=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!Be))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return Be(ip)}const wr=[];for(let e=0;e<256;++e)wr.push((e+256).toString(16).slice(1));function up(e,i=0){return wr[e[i+0]]+wr[e[i+1]]+wr[e[i+2]]+wr[e[i+3]]+"-"+wr[e[i+4]]+wr[e[i+5]]+"-"+wr[e[i+6]]+wr[e[i+7]]+"-"+wr[e[i+8]]+wr[e[i+9]]+"-"+wr[e[i+10]]+wr[e[i+11]]+wr[e[i+12]]+wr[e[i+13]]+wr[e[i+14]]+wr[e[i+15]]}let vf,At,Mt=0,Lt=0;function op(e,i,c){let l=0;const v=new Array(16);e=e||{};let g=e.node||vf,b=e.clockseq!==void 0?e.clockseq:At;if(g==null||b==null){const T=e.random||(e.rng||ap)();g==null&&(g=vf=[T[0]|1,T[1],T[2],T[3],T[4],T[5]]),b==null&&(b=At=(T[6]<<8|T[7])&16383)}let m=e.msecs!==void 0?e.msecs:Date.now(),O=e.nsecs!==void 0?e.nsecs:Lt+1;const C=m-Mt+(O-Lt)/1e4;if(C<0&&e.clockseq===void 0&&(b=b+1&16383),(C<0||m>Mt)&&e.nsecs===void 0&&(O=0),O>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");Mt=m,Lt=O,At=b,m+=122192928e5;const A=((m&268435455)*1e4+O)%4294967296;v[l++]=A>>>24&255,v[l++]=A>>>16&255,v[l++]=A>>>8&255,v[l++]=A&255;const S=m/4294967296*1e4&268435455;v[l++]=S>>>8&255,v[l++]=S&255,v[l++]=S>>>24&15|16,v[l++]=S>>>16&255,v[l++]=b>>>8|128,v[l++]=b&255;for(let T=0;T<6;++T)v[l+T]=g[T];return i||up(v)}function sp(e,i){const c=(e.stack?.split(/\n/g)||[])[1],[l,...v]=i.stack?.split(/\n/g)||[];return[l,c,...v].join(`
2
2
  `)}var fp=Object.defineProperty,lp=(e,i,c)=>i in e?fp(e,i,{enumerable:!0,configurable:!0,writable:!0,value:c}):e[i]=c,Dr=(e,i,c)=>(lp(e,typeof i!="symbol"?i+"":i,c),c);class rr extends Error{constructor(i={}){super(),Dr(this,"statusCode"),Dr(this,"errorType"),Dr(this,"level"),Dr(this,"id"),Dr(this,"context"),Dr(this,"help"),Dr(this,"errorDetails"),Dr(this,"code"),Dr(this,"property"),Dr(this,"redirect"),Dr(this,"hideStack"),this.statusCode=500,this.errorType="InternalServerError",this.level="normal",this.message="The server has encountered an error.",this.id=op(),this.id=i.id||this.id,this.statusCode=i.statusCode||this.statusCode,this.level=i.level||this.level,this.context=i.context,this.help=i.help,this.errorType=this.name=i.errorType||this.errorType,this.errorDetails=i.errorDetails,this.code=i.code||null,this.property=i.property||null,this.redirect=i.redirect||null,this.message=i.message||this.message,this.hideStack=i.hideStack||!1,i.err&&(typeof i.err=="string"&&(i.err=new Error(i.err)),Object.getOwnPropertyNames(i.err).forEach(c=>{if(["errorType","name","statusCode","message","level"].indexOf(c)===-1){if(c==="code"){this[c]=this[c]||i.err[c];return}if(c==="stack"&&!this.hideStack){this[c]=sp(this,i.err);return}this[c]=i.err[c]||this[c]}}))}}const nr=(e,i)=>{const c={...i};return Object.keys(e).forEach(l=>{e[l]!==void 0&&(c[l]=e[l])}),c};class ge extends rr{constructor(i={}){super(nr(i,{statusCode:500,level:"critical",errorType:"InternalServerError",message:"The server has encountered an error."}))}}class Ov extends rr{constructor(i={}){super(nr(i,{statusCode:400,level:"critical",errorType:"IncorrectUsageError",message:"We detected a misuse. Please read the stack trace."}))}}class xv extends rr{constructor(i={}){super(nr(i,{statusCode:404,errorType:"NotFoundError",message:"Resource could not be found.",hideStack:!0}))}}class Co extends rr{constructor(i={}){super(nr(i,{statusCode:400,errorType:"BadRequestError",message:"The request could not be understood."}))}}class Rv extends rr{constructor(i={}){super(nr(i,{statusCode:401,errorType:"UnauthorizedError",message:"You are not authorised to make this request."}))}}class Do extends rr{constructor(i={}){super(nr(i,{statusCode:403,errorType:"NoPermissionError",message:"You do not have permission to perform this request."}))}}class Po extends rr{constructor(i={}){super(nr(i,{statusCode:422,errorType:"ValidationError",message:"The request failed validation."}))}}class _v extends rr{constructor(i={}){super(nr(i,{statusCode:415,errorType:"UnsupportedMediaTypeError",message:"The media in the request is not supported by the server."}))}}class Av extends rr{constructor(i={}){super(nr(i,{statusCode:429,errorType:"TooManyRequestsError",message:"Server has received too many similar requests in a short space of time."}))}}class Uo extends rr{constructor(i={}){super(nr(i,{statusCode:503,errorType:"MaintenanceError",message:"The server is temporarily down for maintenance."}))}}class Mv extends rr{constructor(i={}){super(nr(i,{statusCode:405,errorType:"MethodNotAllowedError",message:"Method not allowed for resource."}))}}class Lv extends rr{constructor(i={}){super(nr(i,{statusCode:406,errorType:"RequestNotAcceptableError",message:"Request not acceptable for provided Accept-Version header.",hideStack:!0}))}}class Nv extends rr{constructor(i={}){super(nr(i,{statusCode:416,errorType:"RangeNotSatisfiableError",message:"Range not satisfiable for provided Range header.",hideStack:!0}))}}class kv extends rr{constructor(i={}){super(nr(i,{statusCode:413,errorType:"RequestEntityTooLargeError",message:"Request was too big for the server to handle."}))}}class Fv extends rr{constructor(i={}){super(nr(i,{statusCode:503,errorType:"TokenRevocationError",message:"Token is no longer available."}))}}class Cv extends rr{constructor(i={}){super(nr(i,{statusCode:400,errorType:"VersionMismatchError",message:"Requested version does not match server version."}))}}class Dv extends rr{constructor(i={}){super(nr(i,{statusCode:500,errorType:"DataExportError",message:"The server encountered an error whilst exporting data."}))}}class Pv extends rr{constructor(i={}){super(nr(i,{statusCode:500,errorType:"DataImportError",message:"The server encountered an error whilst importing data."}))}}class Uv extends rr{constructor(i={}){super(nr(i,{statusCode:500,errorType:"EmailError",message:"The server encountered an error whilst sending email."}))}}class Bv extends rr{constructor(i={}){super(nr(i,{statusCode:422,errorType:"ThemeValidationError",message:"The theme has a validation error.",errorDetails:{}}))}}class jv extends rr{constructor(i={}){super(nr(i,{statusCode:409,errorType:"DisabledFeatureError",message:"Unable to complete the request, this feature is disabled."}))}}class Vv extends rr{constructor(i={}){super(nr(i,{statusCode:409,errorType:"UpdateCollisionError",message:"Unable to complete the request, there was a conflict."}))}}class Hv extends rr{constructor(i={}){super(nr(i,{errorType:"HostLimitError",hideStack:!0,statusCode:403,message:"Unable to complete the request, this resource is limited."}))}}class Zv extends rr{constructor(i={}){super(nr(i,{errorType:"HelperWarning",hideStack:!0,statusCode:400,message:"A theme helper has done something unexpected."}))}}class Wv extends rr{constructor(i={}){super(nr(i,{errorType:"PasswordResetRequiredError",statusCode:401,message:"For security, you need to create a new password. An email has been sent to you with instructions!"}))}}class zv extends rr{constructor(i={}){super(nr(i,{errorType:"UnhandledJobError",message:"Processed job threw an unhandled error",level:"critical"}))}}class Gv extends rr{constructor(i={}){super(nr(i,{errorType:"NoContentError",statusCode:204,hideStack:!0}))}}class Yv extends rr{constructor(i={}){super(nr(i,{errorType:"ConflictError",statusCode:409,message:"The server has encountered an conflict."}))}}class Jv extends rr{constructor(i={}){super(nr(i,{errorType:"MigrationError",message:"An error has occurred applying a database migration.",level:"critical"}))}}const Xv=Object.freeze(Object.defineProperty({__proto__:null,BadRequestError:Co,ConflictError:Yv,DataExportError:Dv,DataImportError:Pv,DisabledFeatureError:jv,EmailError:Uv,HelperWarning:Zv,HostLimitError:Hv,IncorrectUsageError:Ov,InternalServerError:ge,MaintenanceError:Uo,MethodNotAllowedError:Mv,MigrationError:Jv,NoContentError:Gv,NoPermissionError:Do,NotFoundError:xv,PasswordResetRequiredError:Wv,RangeNotSatisfiableError:Nv,RequestEntityTooLargeError:kv,RequestNotAcceptableError:Lv,ThemeValidationError:Bv,TokenRevocationError:Fv,TooManyRequestsError:Av,UnauthorizedError:Rv,UnhandledJobError:zv,UnsupportedMediaTypeError:_v,UpdateCollisionError:Vv,ValidationError:Po,VersionMismatchError:Cv},Symbol.toStringTag,{value:"Module"}));/**
3
3
  * @license Apache-2.0
4
4
  *