ghost 6.52.0 → 6.52.1
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.
- package/components/tryghost-kg-card-factory-5.2.3.tgz +0 -0
- package/components/tryghost-kg-clean-basic-html-4.3.3.tgz +0 -0
- package/components/tryghost-kg-converters-1.2.3.tgz +0 -0
- package/components/tryghost-kg-default-cards-10.3.3.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.1.3.tgz +0 -0
- package/components/tryghost-kg-default-transforms-1.3.3.tgz +0 -0
- package/components/tryghost-kg-html-to-lexical-1.3.3.tgz +0 -0
- package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
- package/components/tryghost-kg-markdown-html-renderer-7.2.3.tgz +0 -0
- package/components/tryghost-kg-utils-1.1.3.tgz +0 -0
- package/core/built/admin/assets/Growth-CczbRexv.js +3 -0
- package/core/built/admin/assets/Newsletters-rFycX4x8.js +1 -0
- package/core/built/admin/assets/Overview-DFubBJaR.js +1 -0
- package/core/built/admin/assets/Web-BDE2lN4_.js +2 -0
- package/core/built/admin/assets/{account-migration-DiS76mRS.js → account-migration-gvH5a8ea.js} +1 -1
- package/core/built/admin/assets/audience-CMWMCxFS.js +1 -0
- package/core/built/admin/assets/{automated-emails-Cel18g7S.js → automated-emails-293Lcj5S.js} +1 -1
- package/core/built/admin/assets/automations-BxnjfCKn.js +1 -0
- package/core/built/admin/assets/automations-kPr44AmD.js +1 -0
- package/core/built/admin/assets/bluesky-sharing-Cww54F3Y.js +1 -0
- package/core/built/admin/assets/{chunk.912.9d6df5a6da679d905bbf.js → chunk.251.dd82df30188bb633b4ae.js} +9 -9
- package/core/built/admin/assets/{chunk.730.2457b7fede040aa52c88.js → chunk.341.20e7d2936dfa5877deea.js} +3 -3
- package/core/built/admin/assets/{chunk.524.d6d399b571454ea0234d.js → chunk.524.697bf0ded48e7c994fc3.js} +5 -5
- package/core/built/admin/assets/{chunk.582.50a9a5cbab6996daf0fe.js → chunk.582.6b742e9ba932688c442c.js} +6 -6
- package/core/built/admin/assets/{code-editor-view-BLGzcLub.js → code-editor-view-DSY5RHLf.js} +1 -1
- package/core/built/admin/assets/comments-BwNUmaNM.js +1 -0
- package/core/built/admin/assets/constants-c-JNF9c2.js +1 -0
- package/core/built/admin/assets/container-CD33Rm0u.js +1 -0
- package/core/built/admin/assets/content-helpers-CNBPrwsi.js +1 -0
- package/core/built/admin/assets/date-range-select-BkkNN98H.js +1 -0
- package/core/built/admin/assets/disabled-sources-indicator-ChHTF69d.js +1 -0
- package/core/built/admin/assets/{domain-2REz20SO.js → domain-CGk9SMa-.js} +1 -1
- package/core/built/admin/assets/dropzone-9zocztX0.js +5 -0
- package/core/built/admin/assets/{edit-profile-7QEh0VtN.js → edit-profile-C0B2Kbsl.js} +1 -1
- package/core/built/admin/assets/editor-Bz2Sm2O8.js +8 -0
- package/core/built/admin/assets/{esm-CEtFqV1y.js → esm-CsHLKmLh.js} +1 -1
- package/core/built/admin/assets/explore-CpRAMnx7.js +1 -0
- package/core/built/admin/assets/feed-BRoOWghO.js +1 -0
- package/core/built/admin/assets/filter-sources-DhxqZID1.js +1 -0
- package/core/built/admin/assets/{filters-DUy8rzI5.js → filters-B8nLLYGO.js} +1 -1
- package/core/built/admin/assets/{gh-chart-DdBGmBS8.js → gh-chart-Cqy9gGq7.js} +1 -1
- package/core/built/admin/assets/{gift-link-modal-CSgyxenA.js → gift-link-modal-v55u0VUL.js} +1 -1
- package/core/built/admin/assets/growth-BIfM3w1p.js +1 -0
- package/core/built/admin/assets/{inbox-CTD-ix6u.js → inbox-CDX57fXK.js} +11 -11
- package/core/built/admin/assets/index-B5yxmQNp.js +69 -0
- package/core/built/admin/assets/inline-DdrWe7D3.js +1 -0
- package/core/built/admin/assets/{input-group-DkR63-nk.js → input-group-DUPGQck1.js} +1 -1
- package/core/built/admin/assets/{koenig-lexical-D09TwwLs.js → koenig-lexical-CUVpp-dC.js} +1 -1
- package/core/built/admin/assets/{kpi-card-Fr_HJH78.js → kpi-card-DyDbok3h.js} +1 -1
- package/core/built/admin/assets/kpi-helpers-Bx9IHIMq.js +1 -0
- package/core/built/admin/assets/{kpi-tabs-Dc4Nt4a5.js → kpi-tabs-DmUcThFc.js} +1 -1
- package/core/built/admin/assets/labels-DLL8dl-7.js +1 -0
- package/core/built/admin/assets/layout-B7K3SmL0.js +1 -0
- package/core/built/admin/assets/{links-CfAB2Yeq.js → link-helpers-DHG_8GIT.js} +1 -1
- package/core/built/admin/assets/list-page-COAUFrmV.js +1 -0
- package/core/built/admin/assets/members-BxWs_mjq.js +10 -0
- package/core/built/admin/assets/{modals-Bu-1Uxdc.js → modals-DF2sECo6.js} +4 -4
- package/core/built/admin/assets/moderation-DYKTx5x0.js +1 -0
- package/core/built/admin/assets/newsletter-C-ZD1dI8.js +1 -0
- package/core/built/admin/assets/note-oaRdU_5z.js +1 -0
- package/core/built/admin/assets/notifications-BF4fAiP1.js +1 -0
- package/core/built/admin/assets/{nql-lang-CvCSOQG3.js → nql-lang-BoHzkNg5.js} +1 -1
- package/core/built/admin/assets/{onboarding-route-BDaa9hd3.js → onboarding-route-SS-e9Aeb.js} +1 -1
- package/core/built/admin/assets/overview-Cbn6bIoR.js +1 -0
- package/core/built/admin/assets/post-analytics-Bk9-KEgB.js +1 -0
- package/core/built/admin/assets/post-analytics-context-C8t_048I.js +1 -0
- package/core/built/admin/assets/post-analytics-header-xTjcg4H0.js +1 -0
- package/core/built/admin/assets/post-analytics-provider-CqnWwLMk.js +1 -0
- package/core/built/admin/assets/{post-share-modal-59Ujf4t1.js → post-share-modal-ZUCX7JZo.js} +1 -1
- package/core/built/admin/assets/preferences-BgjgxiBB.js +5 -0
- package/core/built/admin/assets/profile-qIwaxKTm.js +1 -0
- package/core/built/admin/assets/{router-provider-DcttGCQn.js → router-provider-S8Wf6jdu.js} +1 -1
- package/core/built/admin/assets/select-Cp27ScMR.js +1 -0
- package/core/built/admin/assets/{settings-dLraw6et.js → settings-CdDfyF90.js} +1 -1
- package/core/built/admin/assets/{settings-CIslWMfh.js → settings-CynBh-YN.js} +4 -4
- package/core/built/admin/assets/{share-modal-CI3E67kW.js → share-modal-DTIFYNI1.js} +1 -1
- package/core/built/admin/assets/social-urls-DVvRfwEp.js +16 -0
- package/core/built/admin/assets/{sort-button-BYwI0xdN.js → sort-button-BHh5Ba1K.js} +1 -1
- package/core/built/admin/assets/source-icon--egCE7iN.js +1 -0
- package/core/built/admin/assets/stats-DkqCtrPh.js +1 -0
- package/core/built/admin/assets/stats-view-BvWWxegf.js +1 -0
- package/core/built/admin/assets/step-1-DWjw7rIn.js +1 -0
- package/core/built/admin/assets/{step-2-CVOvLQ2n.js → step-2-D1LrETIB.js} +1 -1
- package/core/built/admin/assets/{step-3-BsVXcpWU.js → step-3-BAdJdZw4.js} +2 -2
- package/core/built/admin/assets/{tabs-Bw8aEqsd.js → tabs-DSrHPjWP.js} +1 -1
- package/core/built/admin/assets/tags-BWZqBj19.js +1 -0
- package/core/built/admin/assets/{textarea-CNaqhk5P.js → textarea-CUVQjsrM.js} +1 -1
- package/core/built/admin/assets/{toggle-group-CMp1taHd.js → toggle-group-CrFpl-Xz.js} +1 -1
- package/core/built/admin/assets/{topic-filter-D2_9eEw4.js → topic-filter-jAxwwd9I.js} +1 -1
- package/core/built/admin/assets/types-uYQ1HgqL.js +1 -0
- package/core/built/admin/assets/url-helpers-CCyfRrKj.js +1 -0
- package/core/built/admin/assets/use-analytics-data-DXG7mpgK.js +1 -0
- package/core/built/admin/assets/use-filter-params-EoQBXfP3.js +1 -0
- package/core/built/admin/assets/use-growth-stats-DJoXxVfD.js +1 -0
- package/core/built/admin/assets/use-post-referrers-B-onYbuS.js +1 -0
- package/core/built/admin/assets/use-reply-chain-data-D8IFALoz.js +1 -0
- package/core/built/admin/assets/{use-tinybird-query-CNCaUn39.js → use-tinybird-query-BSL3iVCc.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-token-1T80Odca.js → use-tinybird-token-DHgOnrNu.js} +1 -1
- package/core/built/admin/assets/virtual-list-AQrbRAXP.js +1 -0
- package/core/built/admin/assets/web-zEFi98DS.js +1 -0
- package/core/built/admin/index.html +6 -6
- package/core/server/services/automations/automations-api.js +20 -0
- package/core/server/services/automations/automations-api.ts +31 -0
- package/core/server/services/automations/poll.js +7 -7
- package/core/server/services/automations/poll.ts +12 -9
- package/core/server/services/email-analytics/email-analytics-provider-mailgun.js +2 -2
- package/core/server/services/email-analytics/email-analytics-service-wrapper.js +1 -4
- package/core/server/services/email-analytics/email-analytics-service.js +5 -7
- package/core/server/services/webhooks/serialize.js +6 -5
- package/package.json +1 -1
- package/pnpm-lock.yaml +14 -14
- package/pnpm-workspace.yaml +5 -0
- package/core/built/admin/assets/Growth-Dx0vv-BS.js +0 -3
- package/core/built/admin/assets/Newsletters-v1GnbUjW.js +0 -1
- package/core/built/admin/assets/Overview-BgM7o-Z8.js +0 -1
- package/core/built/admin/assets/Web-DRv-83Ow.js +0 -2
- package/core/built/admin/assets/automations-DFLgH14-.js +0 -1
- package/core/built/admin/assets/automations-Dc4DUKBb.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-Dk1RTUaz.js +0 -1
- package/core/built/admin/assets/comments-DgH1rC7w.js +0 -1
- package/core/built/admin/assets/constants-BlvYJTqz.js +0 -1
- package/core/built/admin/assets/content-helpers-BEgGpvyE.js +0 -1
- package/core/built/admin/assets/editor-u3BPqQed.js +0 -8
- package/core/built/admin/assets/en-DA2zVD_n.js +0 -1
- package/core/built/admin/assets/explore-BgHmdFVz.js +0 -1
- package/core/built/admin/assets/feed-Cs7-F3I5.js +0 -1
- package/core/built/admin/assets/filter-query-core-D6GjHUFB.js +0 -1
- package/core/built/admin/assets/growth-IkQZ1ZV9.js +0 -1
- package/core/built/admin/assets/index-BMhs4O3N.js +0 -69
- package/core/built/admin/assets/inline-C1CpHxuO.js +0 -1
- package/core/built/admin/assets/kpis-BTZ8cyw-.js +0 -1
- package/core/built/admin/assets/labels-sA9m188H.js +0 -5
- package/core/built/admin/assets/layout-szLkuQ88.js +0 -1
- package/core/built/admin/assets/list-page-DWkOdljb.js +0 -1
- package/core/built/admin/assets/main-layout-B-K8KliJ.js +0 -1
- package/core/built/admin/assets/members-PNNhalbu.js +0 -10
- package/core/built/admin/assets/moderation-DqnsNTiw.js +0 -1
- package/core/built/admin/assets/newsletter-BhuQeWFL.js +0 -1
- package/core/built/admin/assets/note-DFy2JTpP.js +0 -1
- package/core/built/admin/assets/notifications-BVu-JOkB.js +0 -1
- package/core/built/admin/assets/overview-Bhg8M7VS.js +0 -1
- package/core/built/admin/assets/pagemenu-C4paivNj.js +0 -1
- package/core/built/admin/assets/post-analytics-BhQUmZyA.js +0 -1
- package/core/built/admin/assets/post-analytics-context-Dy17HR1_.js +0 -1
- package/core/built/admin/assets/post-analytics-header-DAQep1VQ.js +0 -1
- package/core/built/admin/assets/posts/_react-dom-Blmuc0OL.js +0 -21
- package/core/built/admin/assets/posts/alert-dialog-DBJeQQTK.js +0 -154
- package/core/built/admin/assets/posts/app-provider-BJr9fdEC.js +0 -22
- package/core/built/admin/assets/posts/app-utils-9O53Czfw.js +0 -83
- package/core/built/admin/assets/posts/automations-BM0oBTjO.js +0 -275
- package/core/built/admin/assets/posts/automations-Dbp-gdHS.js +0 -223
- package/core/built/admin/assets/posts/avatar-kOk1tTvT.js +0 -144
- package/core/built/admin/assets/posts/badge-DnByIHe9.js +0 -25
- package/core/built/admin/assets/posts/button-Dd8Xreln.js +0 -40844
- package/core/built/admin/assets/posts/chunk-KS7C4IRE-ECXkcZq6.js +0 -7740
- package/core/built/admin/assets/posts/comments-D-7hbbdw.js +0 -8032
- package/core/built/admin/assets/posts/data-list-DdD_glQ-.js +0 -14219
- package/core/built/admin/assets/posts/dialog-DDkTy_np.js +0 -229
- package/core/built/admin/assets/posts/editor-D7-01KV_.js +0 -14633
- package/core/built/admin/assets/posts/empty-indicator-Ze-bwJ27.js +0 -38
- package/core/built/admin/assets/posts/filters-CmKfKtpS.js +0 -5611
- package/core/built/admin/assets/posts/get-site-timezone-DVbWc-NA.js +0 -39
- package/core/built/admin/assets/posts/growth-DlhFUzVg.js +0 -299
- package/core/built/admin/assets/posts/heading-BBl-8tMC.js +0 -92
- package/core/built/admin/assets/posts/hooks-gZAmj4Al.js +0 -5429
- package/core/built/admin/assets/posts/input-DuPLeCGW.js +0 -16
- package/core/built/admin/assets/posts/input-surface-ClwNIxfd.js +0 -17
- package/core/built/admin/assets/posts/jsx-runtime-BfZnKD4L.js +0 -95
- package/core/built/admin/assets/posts/koenig-lexical-DCHiJJou.js +0 -77579
- package/core/built/admin/assets/posts/kpis-Fsx0XmYK.js +0 -2061
- package/core/built/admin/assets/posts/label-D1wSl69p.js +0 -32
- package/core/built/admin/assets/posts/links-DLozzgMh.js +0 -1243
- package/core/built/admin/assets/posts/loading-indicator-BgU2kK3v.js +0 -44
- package/core/built/admin/assets/posts/main-layout-DDlTMrnF.js +0 -15
- package/core/built/admin/assets/posts/newsletter-DAQJ1GLe.js +0 -736
- package/core/built/admin/assets/posts/overview-G3MfRm-S.js +0 -426
- package/core/built/admin/assets/posts/page-header-CanFyB95.js +0 -284
- package/core/built/admin/assets/posts/popover-Cta8ZDHJ.js +0 -221
- package/core/built/admin/assets/posts/post-analytics-cS07-wo_.js +0 -121
- package/core/built/admin/assets/posts/post-analytics-context-D868SMoq.js +0 -150
- package/core/built/admin/assets/posts/post-analytics-header-CZYiuaEL.js +0 -42249
- package/core/built/admin/assets/posts/post-share-modal-BJfswZzf.js +0 -352
- package/core/built/admin/assets/posts/posts-CpusjBC0.js +0 -37
- package/core/built/admin/assets/posts/posts-app-context-CPC7dOlt.js +0 -26
- package/core/built/admin/assets/posts/posts.js +0 -145
- package/core/built/admin/assets/posts/router-provider-DrqpOc8m.js +0 -114
- package/core/built/admin/assets/posts/separator-DAZNzARU.js +0 -37
- package/core/built/admin/assets/posts/settings-CMfUn5Hq.js +0 -66
- package/core/built/admin/assets/posts/shade-app-DLbeExcd-NeEZjE3R.js +0 -4764
- package/core/built/admin/assets/posts/sheet-CEuv-0a5.js +0 -62
- package/core/built/admin/assets/posts/site-WJ6ldary.js +0 -10
- package/core/built/admin/assets/posts/skeleton-CO0qCdQF.js +0 -2426
- package/core/built/admin/assets/posts/source-icon-Bs6o84W3.js +0 -143
- package/core/built/admin/assets/posts/stats-B1Z8H0JT.js +0 -92
- package/core/built/admin/assets/posts/table-CbJ9bOpM.js +0 -77
- package/core/built/admin/assets/posts/tabs-BvzzwQ4P.js +0 -242
- package/core/built/admin/assets/posts/tags-D-4TwsD0.js +0 -462
- package/core/built/admin/assets/posts/tooltip-BI7VtFUY.js +0 -380
- package/core/built/admin/assets/posts/update-queries-DiUznIQ1.js +0 -60
- package/core/built/admin/assets/posts/users-UgRPrTKW.js +0 -83
- package/core/built/admin/assets/posts/value-DF_wOhJe.js +0 -415
- package/core/built/admin/assets/posts/virtual-list-window-DP63Onpm.js +0 -853
- package/core/built/admin/assets/posts/web-axp2l3kK.js +0 -8077
- package/core/built/admin/assets/preferences-ChOzBKcF.js +0 -5
- package/core/built/admin/assets/profile-DlcrYKay.js +0 -1
- package/core/built/admin/assets/select-BbtNHCBq.js +0 -1
- package/core/built/admin/assets/social-urls-DVzIHh2W.js +0 -16
- package/core/built/admin/assets/source-icon-Uuhttjun.js +0 -1
- package/core/built/admin/assets/source-utils-BchD0sF0.js +0 -1
- package/core/built/admin/assets/stats-CrlPzgdd.js +0 -1
- package/core/built/admin/assets/stats-view-UNMhTMCZ.js +0 -1
- package/core/built/admin/assets/step-1-C2HY6pyi.js +0 -1
- package/core/built/admin/assets/tags-DjCsJo0X.js +0 -1
- package/core/built/admin/assets/typeof-Ca-duI-z.js +0 -1
- package/core/built/admin/assets/url-helpers-DxA844rA.js +0 -1
- package/core/built/admin/assets/use-growth-stats-DNIGdI8h.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-DtEC2Azp.js +0 -1
- package/core/built/admin/assets/virtual-list-window-BTXGwpf5.js +0 -1
- package/core/built/admin/assets/web-Cj8VEw3s.js +0 -1
- /package/core/built/admin/assets/{chunk.912.9d6df5a6da679d905bbf.js.LICENSE.txt → chunk.251.dd82df30188bb633b4ae.js.LICENSE.txt} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import"./rolldown-runtime-DAXXjFlN.js";import{t as e}from"./react-Bb3IsNbi.js";import{t}from"./jsx-runtime-CtMZ-PAS.js";import{wt as n}from"./button-DiwO9Rof.js";e();var r=t(),i=({defaultSourceIconUrl:e,displayName:t,iconSrc:i})=>(0,r.jsx)(r.Fragment,{children:t.trim().toLowerCase().endsWith(`newsletter`)?(0,r.jsx)(n,{"aria-label":`Newsletter`,className:`size-4 text-muted-foreground`}):(0,r.jsx)(`img`,{alt:``,className:`size-4`,src:i,onError:t=>{t.currentTarget.src=e}})});export{i as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={Reddit:`reddit.com`,"www.reddit.com":`reddit.com`,Facebook:`facebook.com`,Twitter:`twitter.com`,Bluesky:`bsky.app`,"go.bsky.app":`bsky.app`,Instagram:`instagram.com`,LinkedIn:`linkedin.com`,Threads:`threads.net`,"Brave Search":`search.brave.com`,Ecosia:`ecosia.org`,Gmail:`gmail.com`,Outlook:`outlook.com`,"Yahoo!":`yahoo.com`,"AOL Mail":`aol.com`,Flipboard:`flipboard.com`,Substack:`substack.com`,Ghost:`ghost.org`,"Ghost Explore":`ghost.org`,Buffer:`buffer.com`,Taboola:`taboola.com`,AppNexus:`appnexus.com`,Wikipedia:`wikipedia.org`,Mastodon:`mastodon.social`,Memeorandum:`memeorandum.com`,"Ground News":`ground.news`,"Apple News":`apple.com`,SmartNews:`smartnews.com`,"Hacker News":`news.ycombinator.com`,Google:`google.com`,"Google News":`news.google.com`,Bing:`bing.com`,DuckDuckGo:`duckduckgo.com`,"newsletter-email":`static.ghost.org`,newsletter:`static.ghost.org`},t=e=>{try{return new URL(e.startsWith(`http`)?e:`https://${e}`).hostname.replace(/^www\./,``)}catch{return null}};function n({processedData:e,totalVisitors:t,mode:n}){return n===`growth`?e:e.map(e=>({...e,percentage:t>0?e.visits/t:0}))}var r=(e,t)=>e===t?!0:e.endsWith(`.${t}`),i=(n,i)=>{if(!n||typeof n!=`string`)return{domain:null,isDirectTraffic:!1};if(n===`Direct`)return{domain:null,isDirectTraffic:!0};let a=i?t(i):null;if(a){let e=t(n);if(e&&r(e,a)||r(n,a))return{domain:a,isDirectTraffic:!0}}let o=e[n];return o?{domain:o,isDirectTraffic:!1}:/^[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(\.[a-zA-Z0-9]([a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/.test(n)?{domain:n.replace(/^www\./,``),isDirectTraffic:!1}:{domain:null,isDirectTraffic:!1}};function a({data:e,mode:t,siteUrl:n,siteIcon:r,defaultSourceIconUrl:a}){if(!e)return[];let o=new Map,s=t===`visits`?0:void 0,c=t===`growth`?{free_members:0,paid_members:0,mrr:0}:void 0;if(e.forEach(e=>{let{domain:r,isDirectTraffic:l}=i(e.source,n),u=Number(e.visits||0);if(l||!e.source||e.source===``)t===`visits`?s+=u:t===`growth`&&c&&(c.free_members+=e.free_members||0,c.paid_members+=e.paid_members||0,c.mrr+=e.mrr||0);else{let n=String(e.source),i=r?`https://www.faviconextractor.com/favicon/${r}?larger=true`:a,s=r?`https://${r}`:void 0;if(o.has(n)){let r=o.get(n);r.visits+=u,t===`growth`&&(r.free_members=(r.free_members||0)+(e.free_members||0),r.paid_members=(r.paid_members||0)+(e.paid_members||0),r.mrr=(r.mrr||0)+(e.mrr||0))}else{let r={source:n,visits:u,isDirectTraffic:!1,iconSrc:i,displayName:n,linkUrl:s};t===`growth`&&(r.free_members=e.free_members||0,r.paid_members=e.paid_members||0,r.mrr=e.mrr||0),o.set(n,r)}}}),t===`visits`?s>0:c&&(c.free_members>0||c.paid_members>0||c.mrr>0)){let e={source:`Direct`,visits:t===`visits`?s:0,isDirectTraffic:!0,iconSrc:r||a,displayName:`Direct`,linkUrl:void 0};t===`growth`&&c&&(e.free_members=c.free_members,e.paid_members=c.paid_members,e.mrr=c.mrr),o.set(`Direct`,e)}let l=Array.from(o.values());return t===`growth`?l.sort((e,t)=>{let n=(e.mrr||0)*100+(e.paid_members||0)*10+(e.free_members||0);return(t.mrr||0)*100+(t.paid_members||0)*10+(t.free_members||0)-n}):l.sort((e,t)=>t.visits-e.visits)}export{i as n,a as r,n as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{i as e,r as t}from"./hooks-tBACnBdQ.js";var n=`TopContentResponseType`,r=`MemberCountHistoryResponseType`,i=`TopPostsStatsResponseType`,a=`PostReferrersResponseType`,o=`NewsletterStatsResponseType`,s=`NewsletterSubscriberStatsResponseType`,c=`PostGrowthStatsResponseType`,l=`MrrHistoryResponseType`,u=`TopPostViewsResponseType`,d=`SubscriptionStatsResponseType`,f=t({dataType:n,path:`/stats/top-content/`}),p=t({dataType:r,path:`/stats/member_count/`}),m=t({dataType:i,path:`/stats/top-posts/`}),h=e({dataType:a,path:e=>`/stats/posts/${e}/top-referrers`}),g=e({dataType:c,path:e=>`/stats/posts/${e}/growth`}),_=t({dataType:l,path:`/stats/mrr/`}),v=t({dataType:d,path:`/stats/subscriptions/`}),y=e({dataType:`PostStatsResponseType`,path:e=>`/stats/posts/${e}/stats/`}),b=t({dataType:u,path:`/stats/top-posts-views/`});t({dataType:o,path:`/stats/newsletter-stats/`,defaultSearchParams:{}});var x=t({dataType:o,path:`/stats/newsletter-basic-stats/`,defaultSearchParams:{}}),S=t({dataType:o,path:`/stats/newsletter-click-stats/`,defaultSearchParams:{}}),C=t({dataType:s,path:`/stats/subscriber-count/`,defaultSearchParams:{}});export{g as a,C as c,m as d,b as f,S as i,v as l,_ as n,h as o,x as r,y as s,p as t,f as u};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{t as r}from"./use-tinybird-token-1T80Odca.js";import{a as i,n as a,p as o,r as s,t as c}from"./pagemenu-C4paivNj.js";import{l}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as u}from"./router-provider-DcttGCQn.js";import{Kn as d,Rt as f,Xn as p,nr as m,wn as h,yn as g}from"./button-DiwO9Rof.js";import{a as _,i as v,n as y,o as b,r as x,s as S,t as C}from"./select-BbtNHCBq.js";import{Fi as w,On as T,c as E,d as D,hn as O,l as k,ln as A,ni as j,pi as M}from"./index-BMhs4O3N.js";var N=e(t()),P=n(),F=({excludeRanges:e=[]})=>{let{range:t,setRange:n}=D(),r=e.map(e=>E[e].value),i=k.filter(e=>!r.includes(e.value));return(0,N.useEffect)(()=>{if(r.includes(t)&&i.length>0){let e=i.find(e=>e.value===E.last7Days.value),t=e?e.value:i[0].value;n(t)}},[t,r,i,n]),(0,P.jsxs)(C,{value:`${t}`,onValueChange:e=>{n(Number(e))},children:[(0,P.jsxs)(b,{className:`w-auto`,children:[(0,P.jsx)(h,{className:`mr-2`,size:16,strokeWidth:1.5}),(0,P.jsx)(S,{placeholder:`Select a period`})]}),(0,P.jsx)(y,{align:`end`,children:(0,P.jsxs)(x,{children:[(0,P.jsx)(_,{children:`Period`}),i.map(e=>(0,P.jsx)(v,{value:`${e.value}`,children:e.name},e.value))]})})]})},I=e(m()),L=e=>{let t=k.find(t=>t.value===e);return t?[`Last 7 days`,`Last 30 days`,`Last 90 days`,`Last 12 months`].includes(t.name)?`in the ${t.name.toLowerCase()}`:t.name===`All time`?`(all time)`:t.name.toLowerCase():``};function R(e){let t=e.findIndex(e=>Number(e.value)>0);return t>1?e.slice(t-1):e}function z(e,t){return(0,I.default)(t).diff((0,I.default)(e),`days`)}function B(e,t){return(0,I.default)(e).isSame((0,I.default)(t),`month`)}function V(e,t){return(0,I.default)(e).isSame((0,I.default)(t),`week`)}function H(e,t,n,r){switch(r){case`sum`:return e;case`avg`:return t>0?e/t:0;case`exact`:return n}}function U(e){let t=[...e].sort((e,t)=>e-t),n=t[Math.floor(t.length/2)],r=e.map(e=>Math.abs(e-n));return{threshold:n+5*r.sort((e,t)=>e-t)[Math.floor(r.length/2)],average:n}}function W(e,t,n,r){return r||(e===-1&&(t>150?e=400:t>60&&(e=100)),n===`exact`&&(e>356||e===-1&&t>150)?`monthly`:e>=91&&e<=356||e===-1&&t>60&&t<=150?`weekly`:e>356||e===-1&&t>150?`monthly`:`none`)}function G(e,t){if(e.length<=1)return e;let{threshold:n,average:r}=U(e.map(e=>Number(e[t])));return e.map(e=>{let i=Number(e[t]);return{...e,_isOutlier:i>n||i>r*10}})}function K(e,t,n){let r=[],i=(0,I.default)(e[0].date).startOf(`week`),a=0,o=0,s=0;return e.forEach((c,l)=>{let u=(0,I.default)(c.date);V(u.format(`YYYY-MM-DD`),i.format(`YYYY-MM-DD`))?(a+=Number(c[t]),o+=1,s=Number(c[t])):(r.push({...e[l-1],date:i.format(`YYYY-MM-DD`),[t]:H(a,o,s,n)}),i=u.startOf(`week`),a=Number(c[t]),o=1,s=Number(c[t])),l===e.length-1&&r.push({...c,date:i.format(`YYYY-MM-DD`),[t]:H(a,o,s,n)})}),r}function q(e,t,n){let r=[],i=(0,I.default)(e[0].date).startOf(`month`),a=0,o=0,s=0,c=null;return e.forEach((l,u)=>{let d=(0,I.default)(l.date),f=Number(l[t]);B(d.format(`YYYY-MM-DD`),i.format(`YYYY-MM-DD`))?(a+=f,o+=1,s=f,c=l):(n===`exact`&&c?r.push({...c,[t]:s}):r.push({...e[u-1],date:i.format(`YYYY-MM-DD`),[t]:H(a,o,s,n)}),i=d.startOf(`month`),a=f,o=1,s=f,c=l),u===e.length-1&&(n===`exact`&&c?r.push({...c,[t]:s}):r.push({...l,date:i.format(`YYYY-MM-DD`),[t]:H(a,o,s,n)}))}),r}var J=(e,t,n=`value`,r=`avg`,i)=>{if(!e.length)return[];let a=W(t,e.length>1?z(e[0].date,e[e.length-1].date):0,r,i),o;switch(a){case`weekly`:o=K(e,n,r);break;case`monthly`:o=q(e,n,r);break;default:o=e}return G(o,n)},Y=()=>{let e=O(),t=A(),n=M(),i=n.data?.config,a=!!i?.stats,o=r({enabled:a}),s=[n,e,t],c=s.map(e=>e.error).find(Boolean),l=a?o.error:null,u=c||l,d=s.some(e=>e.isLoading),f=a?o.isLoading:!1,p=d||f,m=t.data?.site,h=(0,N.useMemo)(()=>({url:m?.url,icon:m?.icon,title:m?.title}),[m]);if(u)throw u instanceof Error?u:Error(`Failed to load analytics framework data`);return{config:i,site:h,statsConfig:i?.stats,isLoading:p,settings:e.data?.settings||[]}},X=({children:e})=>{let t=u(),n=l(),{appSettings:r}=w(),{site:d,statsConfig:m}=Y(),{activeVisitors:h,isLoading:g}=o({statsConfig:m,enabled:r?.analytics?.webAnalytics??!1}),_=n.pathname.endsWith(`/`)?n.pathname:`${n.pathname}/`;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(`header`,{className:`z-40 -mx-6 bg-white/70 backdrop-blur-md dark:bg-background`,children:(0,P.jsxs)(`div`,{className:`relative flex w-full items-center justify-between gap-5 px-6 pt-5 pb-0`,"data-header":`header`,children:[(0,P.jsx)(j,{className:`flex min-h-[var(--control-height)] items-center text-lg font-semibold tracking-normal whitespace-nowrap`,"data-header":`header-title`,children:`Analytics`}),r?.analytics.webAnalytics&&(0,P.jsxs)(`div`,{className:`flex items-center gap-2`,children:[d?.url&&(0,P.jsxs)(`div`,{className:`hidden items-center gap-1.5 sm:visible! sm:flex!`,children:[(0,P.jsx)(f,{className:`text-muted-foreground`,size:16,strokeWidth:1.5}),(0,P.jsx)(`a`,{className:`font-medium transition-all hover:opacity-75 dark:text-gray-100`,href:d.url,rel:`noopener noreferrer`,target:`_blank`,title:`Visit ${new URL(d.url).hostname}`,children:new URL(d.url).hostname}),(0,P.jsx)(`span`,{className:`text-border`,children:`|`})]}),(0,P.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,title:`Active visitors in the last 5 minutes · Updates every 60 seconds`,children:[(0,P.jsxs)(`span`,{children:[g?``:p(h),` online`]}),(0,P.jsx)(`div`,{className:`size-2 rounded-full ${g?`animate-pulse bg-muted`:h?`bg-green-500`:`border border-muted-foreground`}`})]})]})]})}),(0,P.jsxs)(s,{className:`sticky top-0 z-40 transform-gpu flex-col items-start gap-y-0 border-none bg-white/70 pt-9 pb-6 backdrop-blur-md lg:flex-row lg:items-center dark:bg-background`,children:[(0,P.jsx)(i,{children:(0,P.jsxs)(c,{defaultValue:_,responsive:!0,children:[(0,P.jsx)(a,{value:`/analytics/`,onClick:()=>{t(`/analytics/`)},children:`Overview`}),r?.analytics.webAnalytics&&(0,P.jsx)(a,{value:`/analytics/web/`,onClick:()=>{t(`/analytics/web/`)},children:`Web traffic`}),r?.newslettersEnabled&&(0,P.jsx)(a,{value:`/analytics/newsletters/`,onClick:()=>{t(`/analytics/newsletters/`)},children:`Newsletters`}),(0,P.jsx)(a,{value:`/analytics/growth/`,onClick:()=>{t(`/analytics/growth/`)},children:`Growth`})]})}),e]})]})},Z=({children:e,...t})=>(0,P.jsx)(`div`,{className:`size-full`,children:(0,P.jsx)(`div`,{className:`relative size-full`,...t,children:(0,P.jsx)(`div`,{className:`mx-auto flex size-full max-w-page flex-col`,children:e})})}),Q=(0,N.forwardRef)(({children:e},t)=>(0,P.jsx)(Z,{children:(0,P.jsx)(`div`,{ref:t,className:`grid w-full grow`,children:(0,P.jsx)(`div`,{className:`flex h-full flex-col px-6`,children:e})})}));Q.displayName=`StatsLayout`;var $=()=>(0,P.jsxs)(`div`,{className:`flex h-full flex-col items-center justify-center gap-4 text-gray-700`,children:[(0,P.jsx)(`div`,{className:`-mt-10 flex size-18 items-center justify-center rounded-full bg-gray-100 dark:bg-gray-950`,children:(0,P.jsx)(g,{size:24,strokeWidth:1.5})}),`No stats available for this filter.`]}),ee=({children:e,className:t,...n})=>(0,P.jsx)(`section`,{className:d(`flex w-full grow flex-col items-stretch gap-6 pb-8`,t),...n,children:e}),te=({isLoading:e,data:t,children:n,loadingComponent:r=(0,P.jsx)(T,{}),emptyComponent:i=(0,P.jsx)($,{})})=>(0,P.jsx)(ee,{children:e?r:t!==void 0&&t&&t.length===0?i:n});export{W as a,R as c,Y as i,F as l,Q as n,L as o,X as r,J as s,te as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{_n as r,rn as i,t as a}from"./button-DiwO9Rof.js";import{f as o}from"./users-Y8qhvF1q.js";import{An as s,It as c,Z as l,at as u,et as d,ii as f}from"./index-BMhs4O3N.js";var p=e(t(),1),m=``+new URL(`ap-nodes-ZvK07SXa.png`,import.meta.url).href,h=``+new URL(`ap-nodes-dark-B4fFTbrh.png`,import.meta.url).href,g=n(),_=()=>{let{data:e}=u(`index`,`me`),{data:{users:t,meta:n}={users:[]},isLoading:_}=o(),v=c(),[y,b]=(0,p.useState)(!1),x=t.slice(0,3),S=x.map(e=>({id:e.id,icon:{url:e.profile_image},name:e.name}));return(0,g.jsx)(`div`,{className:`relative h-full overflow-hidden`,children:(0,g.jsxs)(`div`,{className:`isolate flex h-full flex-col items-stretch justify-between`,children:[(0,g.jsxs)(`div`,{className:`relative z-20 flex justify-between px-14`,children:[(0,g.jsxs)(`div`,{className:`flex flex-col gap-4 pb-20 text-xl font-medium`,children:[(0,g.jsx)(`h1`,{className:`max-w-sm text-[3.6rem] tracking-[-.025em]`,children:`Increase your reach, with the social web.`}),(0,g.jsxs)(`div`,{className:`flex max-w-[600px] flex-col gap-4`,children:[(0,g.jsx)(`p`,{className:`text-gray-800 dark:text-gray-600`,children:`In addition to your website, email newsletter and RSS feeds, Ghost now shares posts to the social web – so millions of users across Flipboard, Mastodon, Threads, Bluesky and WordPress can find & follow your work.`}),(0,g.jsx)(`p`,{children:e?(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(`strong`,{children:e.name}),` is now part of the world’s largest open network.`]}):(0,g.jsx)(s,{className:`w-full max-w-md`})})]})]}),(0,g.jsx)(a,{className:`min-w-60 bg-gradient-to-r from-purple-500 to-[#6A1AD6] hover:opacity-90 dark:text-white`,size:`lg`,onClick:()=>v(`/welcome/2`),children:`Next →`})]}),(0,g.jsxs)(`div`,{className:`relative z-10 h-full`,children:[(0,g.jsx)(`img`,{className:`absolute top-[calc(-280px)] left-1/2 w-full max-w-[1300px] min-w-[1240px] -translate-x-1/2 dark:hidden`,src:m}),(0,g.jsx)(`img`,{className:`absolute top-[calc(-280px)] left-1/2 hidden w-full max-w-[1300px] min-w-[1240px] -translate-x-1/2 dark:visible! dark:block!`,src:h}),(0,g.jsxs)(`div`,{className:`relative mx-auto mt-0 flex w-96 flex-col gap-3 rounded-lg bg-white p-6 shadow-xl before:absolute before:inset-[80px] before:-z-10 before:rounded-full before:bg-[radial-gradient(circle,#4b5563,#6b7280,#9ca3af)] before:blur-[1000px] xxl:mt-[calc(-280px+20vw)] min-[1800px]:mt-14 dark:border dark:border-gray-950 dark:bg-[#101114] dark:shadow-[#1e1b4b]/5 dark:before:bg-[radial-gradient(circle,#6366f1,#a855f7,#ec4899)]`,children:[(0,g.jsxs)(`div`,{className:`flex items-start justify-between`,children:[(0,g.jsx)(d,{author:e&&{icon:{url:e?.avatarUrl},name:e?.name,handle:e?.handle},size:`md`}),(0,g.jsxs)(`span`,{className:`flex h-5 items-center gap-1 rounded-full bg-gray-100 px-3 text-[11px] font-medium text-gray-700 uppercase dark:bg-gray-950/70 dark:text-gray-500`,children:[(0,g.jsx)(r,{className:`ml-[-2px]`,size:14}),`Following`]})]}),(0,g.jsxs)(`div`,{className:`flex flex-col items-start gap-1`,children:[(0,g.jsx)(f,{children:e?.name||(0,g.jsx)(s,{className:`w-24`})}),(0,g.jsx)(`div`,{className:`relative -mx-3 h-8 max-w-[calc(100%+24px)] px-3 text-lg font-medium before:absolute before:inset-0 before:rounded-full before:bg-gradient-to-r before:from-[#CFB0FF66] before:to-[#B6E8FF66] before:opacity-0 ${!_&&`before:animate-onboarding-handle-bg`} dark:before:from-[#CFB0FF20] dark:before:to-[#B6E8FF20]`,children:(0,g.jsxs)(`div`,{className:`relative flex h-full items-center gap-1`,children:[(0,g.jsx)(`span`,{className:`truncate`,children:e?.handle||(0,g.jsx)(s,{className:`w-64`})}),(0,g.jsx)(a,{className:`size-6 p-0 hover:opacity-80`,variant:`link`,onClick:async()=>{e?.handle&&(b(!0),await navigator.clipboard.writeText(e.handle),setTimeout(()=>b(!1),2e3))},children:y?(0,g.jsx)(r,{size:16}):(0,g.jsx)(i,{size:16})}),(0,g.jsx)(`span`,{className:`absolute right-full flex items-center gap-3 font-mono text-sm font-medium text-nowrap text-purple uppercase after:mr-3 after:h-[1.5px] after:w-24 after:scale-0 after:bg-purple after:will-change-transform after:content-[""] ${!_&&`after:animate-onboarding-handle-line`}`,children:(0,g.jsx)(`span`,{className:`opacity-0 ${!_&&`animate-onboarding-handle-label`}`,children:`Your social web handle`})})]})})]}),(0,g.jsx)(`p`,{className:`leading-tight text-gray-800 dark:text-gray-600`,children:e?.bio?(0,g.jsx)(`span`,{dangerouslySetInnerHTML:{__html:l(e.bio)}}):(0,g.jsx)(s,{count:3,randomize:!0})}),(0,g.jsxs)(`div`,{className:`mt-1 flex gap-2 text-sm text-gray-800 dark:text-gray-600`,children:[(0,g.jsx)(`div`,{className:`flex [&_img]:size-5 [&>*]:pointer-events-none [&>*]:size-5 [&>*]:border [&>*]:border-white dark:[&>*]:border-[#101114] [&>*:not(:first-child)]:-ml-2 [&>*:nth-child(1)]:z-30 [&>*:nth-child(2)]:z-20 [&>*:nth-child(3)]:z-10`,children:S.map(e=>(0,g.jsx)(d,{author:e,disabled:!0,size:`xs`},e.id))}),`Authored by `,x[0]?.name,(n?.pagination.total??0)>1&&` and ${(n?.pagination.total??1)-1} others`]})]})]})]})})};export{_ as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{i as n,n as r,t as i}from"./hooks-tBACnBdQ.js";import{t as a}from"./jsx-runtime-CtMZ-PAS.js";import{g as o,t as s}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{$t as c,Xn as l,Z as u,k as d,rt as f,t as p}from"./button-DiwO9Rof.js";import{n as m,t as h}from"./list-page-DWkOdljb.js";import{t as g}from"./empty-indicator-Cl63eDpB.js";import{a as _,c as v,n as y,r as b,s as x,t as S}from"./table-rH2MyJm6.js";import{n as C,t as w}from"./toggle-group-CMp1taHd.js";import{Or as T,kn as E}from"./index-BMhs4O3N.js";import{t as D}from"./main-layout-B-K8KliJ.js";import{n as O,r as k,t as A}from"./virtual-list-window-BTXGwpf5.js";var j=e(t(),1),M=a(),N=({height:e})=>(0,M.jsx)(`tr`,{"aria-hidden":`true`,className:`flex lg:table-row`,children:(0,M.jsx)(`td`,{className:`flex lg:table-cell`,style:{height:e}})}),P=(0,j.forwardRef)(function(e,t){return(0,M.jsx)(v,{ref:t,...e,"aria-hidden":`true`,className:`relative flex flex-col lg:table-row`,children:(0,M.jsx)(b,{className:`relative z-10 h-24 animate-pulse`,children:(0,M.jsx)(`div`,{className:`h-full rounded-md bg-muted`,"data-testid":`loading-placeholder`})})})});function F({items:e,totalItems:t,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i}){let a=(0,j.useRef)(null),{visibleItemCount:o,canLoadMore:s,loadMore:c}=A(t),{visibleItems:u,spaceBefore:d,spaceAfter:m}=O({items:e,totalItems:o,hasNextPage:n,isFetchingNextPage:r,fetchNextPage:i,parentRef:a});return(0,M.jsxs)(`div`,{ref:a,className:`overflow-hidden`,children:[(0,M.jsxs)(S,{className:`flex table-fixed flex-col lg:table`,"data-testid":`tags-list`,children:[(0,M.jsx)(x,{className:`hidden lg:visible! lg:table-header-group!`,children:(0,M.jsxs)(v,{children:[(0,M.jsx)(_,{className:`w-auto px-4`,children:`Tag`}),(0,M.jsx)(_,{className:`w-1/5 px-4`,children:`Slug`}),(0,M.jsx)(_,{className:`w-1/5 px-4`,children:`No. of posts`}),(0,M.jsx)(_,{className:`w-20 px-4`})]})}),(0,M.jsxs)(y,{className:`flex flex-col lg:table-row-group`,children:[(0,M.jsx)(N,{height:d}),u.map(({key:t,virtualItem:n,item:r,props:i})=>n.index>e.length-1?(0,M.jsx)(P,{...i},t):(0,M.jsxs)(v,{...i,className:`group grid w-full grid-cols-[1fr_5rem] items-center gap-x-4 p-2 md:grid-cols-[1fr_auto_5rem] lg:table-row lg:p-0`,"data-testid":`tag-list-row`,children:[(0,M.jsxs)(b,{className:`static col-start-1 col-end-1 row-start-1 row-end-1 flex min-w-0 flex-col p-0 md:relative lg:table-cell lg:w-1/2 lg:p-4 xl:w-3/5`,children:[(0,M.jsx)(`a`,{className:`before:absolute before:top-0 before:left-0 before:z-10 before:h-full before:w-[100vw]`,href:`#/tags/${r.slug}`,children:(0,M.jsx)(`span`,{className:`block truncate text-base text-md font-semibold`,children:r.name})}),(0,M.jsx)(`span`,{className:`block truncate text-muted-foreground`,children:r.description})]}),(0,M.jsx)(b,{className:`col-start-1 col-end-1 row-start-2 row-end-2 flex p-0 lg:table-cell lg:p-4`,children:(0,M.jsx)(`span`,{className:`block truncate`,children:r.slug})}),(0,M.jsx)(b,{className:`col-start-1 col-end-1 row-start-3 row-end-3 flex p-0 md:col-start-2 md:col-end-2 md:row-start-1 md:row-end-3 lg:table-cell lg:p-4`,children:r.count?.posts?(0,M.jsx)(`a`,{className:`relative z-10 -m-4 inline-block p-4 hover:underline`,href:`#/posts?tag=${r.slug}`,children:`${l(r.count?.posts)} ${r.count?.posts===1?`post`:`posts`}`}):(0,M.jsx)(`span`,{className:`text-muted-foreground`,children:`0 posts`})}),(0,M.jsx)(b,{className:`col-start-2 col-end-2 row-start-1 row-end-3 p-0 md:col-start-3 md:col-end-3 lg:table-cell lg:p-4`,children:(0,M.jsx)(p,{"aria-hidden":`true`,className:`opacity-0 transition-all group-hover:opacity-100`,size:`icon`,tabIndex:-1,variant:`outline`,children:(0,M.jsx)(f,{})})})]},t)),(0,M.jsx)(N,{height:m})]})]}),s&&(0,M.jsx)(k,{isLoading:r,onClick:c})]})}var I=`TagsResponseType`,L=i({dataType:I,path:`/tags/`,defaultNextPageParams:(e,t)=>e.meta?.pagination.next?{...t,page:(e.meta?.pagination.next||1).toString()}:void 0,returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.tags),r=t[t.length-1].meta;return{tags:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}}),R=({filter:e,...t})=>{let n=Object.entries(e).map(([e,t])=>`${e}:${t}`).join(`,`);return L({...t,searchParams:{limit:`100`,order:`name asc`,include:`count.posts`,filter:n,...t.searchParams}})};n({dataType:I,path:e=>`/tags/${e}/`}),r({method:`DELETE`,path:e=>`/tags/${e}/`});var z=()=>{let[e,t]=o(),n=e.get(`type`)??`public`,{data:r,isError:i,isLoading:a,isFetchingNextPage:l,fetchNextPage:f,hasNextPage:_}=R({filter:{visibility:n}});return(0,M.jsx)(D,{children:(0,M.jsxs)(h,{"data-testid":`tags-page`,children:[(0,M.jsx)(h.Header,{children:(0,M.jsxs)(m,{blurredBackground:!1,sticky:!1,children:[(0,M.jsx)(m.Left,{children:(0,M.jsx)(m.Title,{children:`Tags`})}),(0,M.jsxs)(m.Actions,{children:[(0,M.jsxs)(m.ActionGroup,{children:[(0,M.jsxs)(w,{"data-testid":`tags-header-tabs`,size:`button`,type:`single`,value:n,children:[(0,M.jsx)(C,{"aria-label":`Public tags`,value:`public`,asChild:!0,children:(0,M.jsx)(s,{to:`/tags`,children:`Public tags`})}),(0,M.jsx)(C,{"aria-label":`Internal tags`,value:`internal`,asChild:!0,children:(0,M.jsx)(s,{to:`/tags?type=internal`,children:`Internal tags`})})]}),(0,M.jsxs)(m.ActionGroup.MobileMenu,{children:[(0,M.jsx)(m.ActionGroup.MobileMenuTrigger,{children:(0,M.jsx)(p,{variant:`outline`,children:(0,M.jsx)(c,{className:`size-4`})})}),(0,M.jsxs)(m.ActionGroup.MobileMenuContent,{children:[(0,M.jsx)(T,{checked:n===`public`,onCheckedChange:()=>t({}),children:`Public tags`}),(0,M.jsx)(T,{checked:n===`internal`,onCheckedChange:()=>t({type:`internal`}),children:`Internal tags`})]})]})]}),(0,M.jsx)(m.ActionGroup,{children:(0,M.jsx)(p,{asChild:!0,children:(0,M.jsxs)(`a`,{className:`font-bold`,href:`#/tags/new`,children:[(0,M.jsx)(u,{className:`size-4`}),(0,M.jsx)(`span`,{className:`hidden sm:inline`,children:`New tag`})]})})})]})]})}),(0,M.jsx)(h.Body,{children:a?(0,M.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,M.jsx)(E,{size:`lg`})}):i?(0,M.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:[(0,M.jsx)(`h2`,{className:`mb-2 text-xl font-medium`,children:`Error loading tags`}),(0,M.jsx)(`p`,{className:`mb-4 text-muted-foreground`,children:`Please reload the page to try again`}),(0,M.jsx)(p,{onClick:()=>window.location.reload(),children:`Reload page`})]}):r?.tags.length?(0,M.jsx)(F,{fetchNextPage:f,hasNextPage:_,isFetchingNextPage:l,items:r?.tags??[],totalItems:r?.meta?.pagination?.total??0}):(0,M.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,M.jsx)(g,{actions:(0,M.jsx)(p,{asChild:!0,children:(0,M.jsx)(`a`,{href:`#/tags/new`,children:`Create a new tag`})}),title:`Start organizing your content`,children:(0,M.jsx)(d,{})})})})]})})};export{z as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DAXXjFlN.js";function t(e){"@babel/helpers - typeof";return t=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},t(e)}var n=e((()=>{}));export{n,t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,r as n}from"./index-BMhs4O3N.js";var r=t=>!t||t.length===0?n:e.filter(e=>t.includes(e.value)).reduce((e,t)=>e|t.bit,0)||n,i=n=>{let r=[];return(n&t.PUBLIC)!==0&&r.push(e[0].value),(n&t.FREE)!==0&&r.push(e[1].value),(n&t.PAID)!==0&&r.push(e[2].value),r.join(`,`)};function a(e,t){if(!e||!t)return``;try{let n=new URL(t),r=`${n.pathname.endsWith(`/`)?n.pathname:`${n.pathname}/`}${e.replace(/^\//,``)}`;return`${n.origin}${r}`}catch{return``}}function o(e,t,n,r,i){return()=>{if(t&&e&&i===`post`){r(`/posts/analytics/${t}`,{crossApp:!0});return}if(e&&n){let t=a(e,n);t&&window.open(t,`_blank`,`noopener,noreferrer`)}}}var s=({postId:e,hasEmailData:t,analytics:n})=>e?!n?.webAnalytics&&!n?.membersTrackSources&&!t?`/editor/post/${e}`:`/posts/analytics/${e}`:`/posts/analytics`;export{i,s as n,r,o as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./currency-CQsJu8iC.js";import{Xn as r,Zn as i,ir as a,rr as o}from"./button-DiwO9Rof.js";import{dr as s,lr as c}from"./index-BMhs4O3N.js";import{l,n as u,t as d}from"./stats-CrlPzgdd.js";a();var f=e(t()),p=(e,t,n,r)=>{if(!e.length)return{totalMembers:0,freeMembers:0,paidMembers:0,mrr:0,percentChanges:{total:`0%`,free:`0%`,paid:`0%`,mrr:`0%`},directions:{total:`same`,free:`same`,paid:`same`,mrr:`same`}};let a=r||e[e.length-1],s=e.length>0?e[e.length-1]:{free:0,paid:0,comped:0,gift:0},c=t.length>0?t[t.length-1]:{mrr:0},l=a.free+a.paid+a.comped+(a.gift??0),u=c.mrr,d={total:`0%`,free:`0%`,paid:`0%`,mrr:`0%`},f={total:`same`,free:`same`,paid:`same`,mrr:`same`};if(e.length>1){let t=e[0],n=t.free+t.paid+t.comped+(t.gift??0);if(n>0){let e=(l-n)/n*100;d.total=i(e/100),f.total=e>0?`up`:e<0?`down`:`same`}if(t.free>0){let e=(s.free-t.free)/t.free*100;d.free=i(e/100),f.free=e>0?`up`:e<0?`down`:`same`}let r=t.paid+t.comped+(t.gift??0),a=s.paid+s.comped+(s.gift??0);if(r>0){let e=(a-r)/r*100;d.paid=i(e/100),f.paid=e>0?`up`:e<0?`down`:`same`}}if(t.length>1){let e=o(n).format(`YYYY-MM-DD`),r=t.find(t=>o(t.date).isSameOrAfter(e)),a=o(n).isSame(o().startOf(`year`),`day`)||o(n).year()<o().year(),s=0;if(s=r&&o(r.date).isSame(e,`day`)?r.mrr:a?0:u,s>=0){let e=s===0?u>0?100:0:(u-s)/s*100;d.mrr=i(e/100),f.mrr=e>0?`up`:e<0?`down`:`same`}}return{totalMembers:l,freeMembers:a.free,paidMembers:a.paid+a.comped+(a.gift??0),mrr:u,percentChanges:d,directions:f}},m=(e,t)=>{let n=[...e].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),i=[...t].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),a=n.map(e=>e.date),o=i.map(e=>e.date),s=[...new Set([...a,...o])].sort((e,t)=>new Date(e).getTime()-new Date(t).getTime()),c=null,l=null,u=new Map(n.map(e=>[e.date,e])),d=new Map(i.map(e=>[e.date,e]));return s.map(e=>{let t=u.get(e);t&&(c=t);let n=d.get(e);n&&(l=n);let i=c?.free??0,a=c?.paid??0,o=c?.comped??0,s=c?.gift??0,f=a+o+s,p=i+f;return{date:e,value:p,free:i,paid:f,comped:o,gift:s,mrr:l?.mrr??0,paid_subscribed:c?.paid_subscribed??0,paid_canceled:c?.paid_canceled??0,formattedValue:r(p),label:`Total members`}})},h=e=>{let{startDate:t,endDate:r}=(0,f.useMemo)(()=>s(e),[e]),i=c(t),a=e===1?o(i).subtract(1,`day`).format(`YYYY-MM-DD`):i,{data:h,isLoading:g}=d({searchParams:{date_from:a}}),{data:_,isLoading:v}=u({searchParams:{date_from:a}}),{data:y,isLoading:b}=l(),x=(0,f.useMemo)(()=>{let t=[];if(h?.stats?t=h.stats:Array.isArray(h)&&(t=h),e===1&&t.length>=2){let e=t[t.length-2],n=t[t.length-1],r=o(i).format(`YYYY-MM-DD`),a=o(i).add(1,`day`).format(`YYYY-MM-DD`);return[{...e,date:r},{...n,date:a}]}return t},[h,e,i]),{mrrData:S,selectedCurrency:C}=(0,f.useMemo)(()=>{let t=o(i),n=e===1?o().endOf(`day`):o().startOf(`day`);if(_?.stats&&_?.meta?.totals){let r=_.meta.totals,i=r[0];if(!i)return{mrrData:[],selectedCurrency:`usd`};for(let e of r)e.mrr>i.mrr&&(i=e);let a=i.currency,s=_.stats.filter(e=>e.currency===a),c=s.filter(e=>o(e.date).isSameOrAfter(t)),l=[...s].sort((e,t)=>new Date(t.date).getTime()-new Date(e.date).getTime()),u=[...c];if(!u.some(e=>o(e.date).isSame(t,`day`))){let e=l.find(e=>o(e.date).isBefore(t));if(e)u.unshift({...e,date:t.format(`YYYY-MM-DD`)});else if(u.length>0){let e=[...u].sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime())[0];u.unshift({...e,date:t.format(`YYYY-MM-DD`)})}}let d=e===1?o().startOf(`day`):n;if(!u.some(e=>o(e.date).isSame(d,`day`))&&u.length>0){let e=[...u].sort((e,t)=>new Date(t.date).getTime()-new Date(e.date).getTime())[0];u.push({...e,date:d.format(`YYYY-MM-DD`)})}return{mrrData:u.sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),selectedCurrency:a}}return{mrrData:[],selectedCurrency:`usd`}},[_,i,e]),w=(0,f.useMemo)(()=>p(x,S,i,h?.meta?.totals),[x,S,i,h?.meta?.totals]),T=(0,f.useMemo)(()=>m(x,S),[x,S]),E=(0,f.useMemo)(()=>n(C),[C]);return{isLoading:(0,f.useMemo)(()=>g||v||b,[g,v,b]),memberData:x,mrrData:S,dateFrom:i,endDate:r,totals:w,chartData:T,subscriptionData:(0,f.useMemo)(()=>{if(!y?.stats)return[];let e=y.stats.reduce((e,t)=>{let n=t.date;return e[n]||(e[n]={date:n,signups:0,cancellations:0}),e[n].signups+=t.signups,e[n].cancellations+=t.cancellations,e},{}),t=Object.values(e).sort((e,t)=>new Date(e.date).getTime()-new Date(t.date).getTime()),n=o(i),a=o(r);return t.filter(e=>{let t=o(e.date);return t.isSameOrAfter(n)&&t.isSameOrBefore(a)})},[y,i,r]),selectedCurrency:C,currencySymbol:E}};export{h as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{S as r,t as i}from"./button-DiwO9Rof.js";import{P as a,Pt as o,St as s,et as c,jt as l,kn as u,kt as d}from"./index-BMhs4O3N.js";var f=e(t()),p=n(),m=({object:e,onReply:t,onReplyError:n,className:r,...i})=>{let{data:s}=d(`index`),[l,u]=(0,f.useState)(!1);if(!s)return null;let m=e.attributedTo,h=`Reply...`;return m?.preferredUsername&&m?.id&&(h=`Reply to ${o(m)}...`),(0,p.jsxs)(p.Fragment,{children:[(0,p.jsxs)(`div`,{className:`flex w-full cursor-pointer gap-x-3 py-6 ${r||``}`,onClick:()=>u(!0),...i,children:[(0,p.jsx)(c,{author:s}),(0,p.jsx)(`div`,{className:`flex w-full items-center`,children:(0,p.jsx)(`div`,{className:`w-full text-[1.5rem] text-gray-500 transition-colors dark:text-gray-700`,children:h})})]}),l&&(0,p.jsx)(a,{open:l,replyTo:{object:e,actor:e.attributedTo},onOpenChange:e=>{u(e)},onReply:()=>{t?.(),u(!1)},onReplyError:()=>{n?.()}})]})},h=({last:e})=>(0,p.jsxs)(`div`,{className:`relative mt-[-5px] py-5`,children:[(0,p.jsxs)(`div`,{className:`flex h-12 grow items-center gap-2 rounded-lg border border-gray-200 p-2 px-[10px] text-gray-600`,children:[(0,p.jsx)(r,{size:18,strokeWidth:1.25}),`This post has been deleted`]}),!e&&(0,p.jsx)(`div`,{className:`absolute top-[70px] bottom-0 left-[18px] z-0 mb-[-13px] w-[2px] rounded-sm bg-gray-200`})]}),g=({count:e,onClick:t,variant:n=`default`,preserveScroll:r=!0,loading:a=!1})=>{let o=(0,f.useRef)(null),s=()=>{if(e&&e>0)return`Show ${e} more ${e===1?`reply`:`replies`}`;switch(n){case`expand`:return`Show replies`;case`loadMore`:return`Show more replies`;default:return`Show replies`}},c=()=>{if(r){let e=document.querySelector(`[data-scrollable-container]`),n=e?e.scrollTop:window.scrollY;t(),setTimeout(()=>{e?e.scrollTop=n:window.scrollTo(0,n)},0)}else t()};return(0,p.jsxs)(`div`,{ref:o,className:`mt-[-7px] flex items-center pb-3`,children:[(0,p.jsxs)(`div`,{className:`flex w-10 flex-col items-center justify-center gap-1`,children:[(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`}),(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`}),(0,p.jsx)(`div`,{className:`size-0.5 rounded-sm bg-gray-300`})]}),(0,p.jsx)(i,{className:`text-sm font-medium text-blue-600 hover:text-blue-800`,variant:`ghost`,onClick:e=>{e.preventDefault(),e.stopPropagation(),e.target.blur(),c()},children:a?(0,p.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,p.jsx)(u,{size:`sm`}),(0,p.jsx)(`span`,{children:`Loading...`})]}):s()})]})};function _(e,t={}){let{includeAncestors:n=!1}=t,{data:r,isLoading:i,loadMoreChildren:a,loadMoreChildReplies:o,hasMoreChildren:c,hasMoreChildReplies:u}=s(`index`,e);return{threadParents:n&&r?.ancestors?.chain?.map(l)||[],post:r?.post?l(r.post):void 0,processedReplies:(r?.children??[]).map(e=>({mainReply:l(e.post),chain:e.chain?e.chain.map(l):[]})),isLoading:i,loadMoreChildren:a,loadMoreChildReplies:o,hasMoreChildren:c,hasMoreChildReplies:u}}export{m as i,g as n,h as r,_ as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./react-dom-C6aoWSfl.js";import{t as r}from"./jsx-runtime-CtMZ-PAS.js";import{l as i}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{$n as a,t as o}from"./button-DiwO9Rof.js";var s=r(),c=({isLoading:e,onClick:t})=>{let n=!!e;return(0,s.jsx)(`div`,{className:`flex justify-center px-4 py-6`,children:(0,s.jsx)(o,{disabled:n,variant:`outline`,onClick:t,children:n?`Loading more...`:`Load more`})})},l=e(t(),1),u=e(n(),1);function d(e,t,n){let r=Array(e);return new Proxy(r,{get(r,i,a){if(typeof i==`string`){let a=i.charCodeAt(0);if(a>=48&&a<=57){let a=+i;if(Number.isInteger(a)&&a>=0&&a<e){let e=r[a];if(!e){let i=t[a*2];e=r[a]={index:a,key:n(a),start:i,size:t[a*2+1],end:i+t[a*2+1],lane:0}}return e}}if(i===`length`)return e}return Reflect.get(r,i,a)}})}function f(e,t,n){let r=n.initialDeps??[],i,a=!0;function o(){let o=e();return o.length!==r.length||o.some((e,t)=>r[t]!==e)?(r=o,i=t(...o),n?.onChange&&!(a&&n.skipInitialOnChange)&&n.onChange(i),a=!1,i):i}return o.updateDeps=e=>{r=e},o}function p(e,t){if(e===void 0)throw Error(`Unexpected undefined${t?`: ${t}`:``}`);return e}var m=(e,t)=>Math.abs(e-t)<1.01,h=(e,t,n)=>{let r;return function(...i){e.clearTimeout(r),r=e.setTimeout(()=>t.apply(this,i),n)}},g,_=()=>{if(g!==void 0)return g;if(typeof navigator>`u`)return g=!1;if(/iP(hone|od|ad)/.test(navigator.userAgent))return g=!0;let e=navigator.maxTouchPoints;return g=navigator.platform===`MacIntel`&&e!==void 0&&e>0},v=e=>{let{offsetWidth:t,offsetHeight:n}=e;return{width:t,height:n}},y=e=>e,b=e=>{let t=Math.max(e.startIndex-e.overscan,0),n=Math.min(e.endIndex+e.overscan,e.count-1)-t+1,r=Array(n);for(let e=0;e<n;e++)r[e]=t+e;return r},x=(e,t)=>{let n=e.scrollElement;if(!n)return;let r=e.targetWindow;if(!r)return;let i=e=>{let{width:n,height:r}=e;t({width:Math.round(n),height:Math.round(r)})};if(i(v(n)),!r.ResizeObserver)return()=>{};let a=new r.ResizeObserver(t=>{let r=()=>{let e=t[0];if(e?.borderBoxSize){let t=e.borderBoxSize[0];if(t){i({width:t.inlineSize,height:t.blockSize});return}}i(v(n))};e.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(r):r()});return a.observe(n,{box:`border-box`}),()=>{a.unobserve(n)}},S={passive:!0},C=typeof window>`u`?!0:`onscrollend`in window,w=(e,t,n)=>{let r=e.scrollElement;if(!r)return;let i=e.targetWindow;if(!i)return;let a=e.options.useScrollendEvent&&C,o=0,s=a?null:h(i,()=>t(o,!1),e.options.isScrollingResetDelay),c=e=>()=>{o=n(r),s?.(),t(o,e)},l=c(!0),u=c(!1);return r.addEventListener(`scroll`,l,S),a&&r.addEventListener(`scrollend`,u,S),()=>{r.removeEventListener(`scroll`,l),a&&r.removeEventListener(`scrollend`,u)}},T=(e,t)=>w(e,t,t=>{let{horizontal:n,isRtl:r}=e.options;return n?t.scrollLeft*(r&&-1||1):t.scrollTop}),E=(e,t,n)=>{if(n.options.useCachedMeasurements){let t=n.indexFromElement(e),r=n.options.getItemKey(t);return n.itemSizeCache.get(r)??n.options.estimateSize(t)}if(t?.borderBoxSize){let e=t.borderBoxSize[0];if(e)return Math.round(e[n.options.horizontal?`inlineSize`:`blockSize`])}if(!t){let t=n.indexFromElement(e),r=n.options.getItemKey(t),i=n.itemSizeCache.get(r);if(i!==void 0)return i}return e[n.options.horizontal?`offsetWidth`:`offsetHeight`]},D=(e,{adjustments:t=0,behavior:n},r)=>{var i,a;(a=(i=r.scrollElement)?.scrollTo)==null||a.call(i,{[r.options.horizontal?`left`:`top`]:e+t,behavior:n})},O=class{constructor(e){this.unsubs=[],this.scrollElement=null,this.targetWindow=null,this.isScrolling=!1,this.scrollState=null,this.measurementsCache=[],this._flatMeasurements=null,this.itemSizeCache=new Map,this.itemSizeCacheVersion=0,this.laneAssignments=new Map,this.pendingMin=null,this.prevLanes=void 0,this.lanesChangedFlag=!1,this.lanesSettling=!1,this.pendingScrollAnchor=null,this.scrollRect=null,this.scrollOffset=null,this.scrollDirection=null,this.scrollAdjustments=0,this._iosDeferredAdjustment=0,this._iosTouching=!1,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._intendedScrollOffset=null,this.elementsCache=new Map,this.now=()=>{var e;return((e=this.targetWindow?.performance)?.now)?.call(e)??Date.now()},this.observer=(()=>{let e=null,t=()=>e||(!this.targetWindow||!this.targetWindow.ResizeObserver?null:e=new this.targetWindow.ResizeObserver(e=>{e.forEach(e=>{let t=()=>{let t=e.target,n=this.indexFromElement(t);if(!t.isConnected){this.observer.unobserve(t);for(let[e,n]of this.elementsCache)if(n===t){this.elementsCache.delete(e);break}return}this.shouldMeasureDuringScroll(n)&&this.resizeItem(n,this.options.measureElement(t,e,this))};this.options.useAnimationFrameWithResizeObserver?requestAnimationFrame(t):t()})}));return{disconnect:()=>{var n;(n=t())==null||n.disconnect(),e=null},observe:e=>t()?.observe(e,{box:`border-box`}),unobserve:e=>t()?.unobserve(e)}})(),this.range=null,this.setOptions=e=>{let t={debug:!1,initialOffset:0,overscan:1,paddingStart:0,paddingEnd:0,scrollPaddingStart:0,scrollPaddingEnd:0,horizontal:!1,getItemKey:y,rangeExtractor:b,onChange:()=>{},measureElement:E,initialRect:{width:0,height:0},scrollMargin:0,gap:0,indexAttribute:`data-index`,initialMeasurementsCache:[],lanes:1,anchorTo:`start`,followOnAppend:!1,scrollEndThreshold:1,isScrollingResetDelay:150,enabled:!0,isRtl:!1,useScrollendEvent:!1,useAnimationFrameWithResizeObserver:!1,laneAssignmentMode:`estimate`,useCachedMeasurements:!1};for(let n in e){let r=e[n];r!==void 0&&(t[n]=r)}let n=this.options,r=null,i=null,a=!1;if(n!==void 0&&n.enabled&&t.enabled&&t.anchorTo===`end`&&this.scrollElement!==null){let e=n.count,o=t.count,s=this.getMeasurements(),c=e>0?s[0]?.key??n.getItemKey(0):null,l=e>0?s[e-1]?.key??n.getItemKey(e-1):null;if(o!==e||e>0&&o>0&&(t.getItemKey(0)!==c||t.getItemKey(o-1)!==l)){a=!0;let c=e>0?this.getVirtualItemForOffset(this.getScrollOffset())??s[0]:null;c&&(r=[c.key,this.getScrollOffset()-c.start]);let u=t.followOnAppend===!0?`auto`:t.followOnAppend||null;u&&o>e&&this.isAtEnd(n.scrollEndThreshold)&&(e===0||t.getItemKey(o-1)!==l)&&(i=u)}}this.options=t,a&&(this.pendingMin=0,this.itemSizeCacheVersion++);let o=!1,s=0;if(r&&this.scrollOffset!==null){let[e,t]=r,n=this.getMeasurements(),{count:i,getItemKey:a}=this.options,c=0;for(;c<i&&a(c)!==e;)c++;if(c<i){let e=n[c];if(e){let n=e.start+t;n!==this.scrollOffset&&(s=n-this.scrollOffset,this.scrollOffset=n,o=!0)}}}(o||i)&&(this.pendingScrollAnchor=[o?r[0]:null,o?r[1]:0,i,s])},this.notify=e=>{var t,n;(n=(t=this.options).onChange)==null||n.call(t,this,e)},this.maybeNotify=f(()=>(this.calculateRange(),[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]),e=>{this.notify(e)},{key:!1,debug:()=>this.options.debug,initialDeps:[this.isScrolling,this.range?this.range.startIndex:null,this.range?this.range.endIndex:null]}),this.cleanup=()=>{this.unsubs.filter(Boolean).forEach(e=>e()),this.unsubs=[],this.observer.disconnect(),this.rafId!=null&&this.targetWindow&&(this.targetWindow.cancelAnimationFrame(this.rafId),this.rafId=null),this.scrollState=null,this.scrollElement=null,this.targetWindow=null},this._didMount=()=>()=>{this.cleanup()},this._willUpdate=()=>{let e=this.options.enabled?this.options.getScrollElement():null;if(this.scrollElement!==e){if(this.cleanup(),!e){this.maybeNotify();return}if(this.scrollElement=e,this.scrollElement&&`ownerDocument`in this.scrollElement?this.targetWindow=this.scrollElement.ownerDocument.defaultView:this.targetWindow=this.scrollElement?.window??null,this.elementsCache.forEach(e=>{this.observer.observe(e)}),this.unsubs.push(this.options.observeElementRect(this,e=>{this.scrollRect=e,this.maybeNotify()})),this.unsubs.push(this.options.observeElementOffset(this,(e,t)=>{if(t&&this._intendedScrollOffset===null&&e===this.scrollOffset)return;this._intendedScrollOffset!==null&&Math.abs(e-this._intendedScrollOffset)<1.5&&(e=this._intendedScrollOffset),this._intendedScrollOffset=null,this.scrollAdjustments=0;let n=this.getScrollOffset();this.scrollDirection=t?n===e?this.scrollDirection:n<e?`forward`:`backward`:null,this.scrollOffset=e,this.isScrolling=t,this._flushIosDeferredIfReady(),this.scrollState&&this.scheduleScrollReconcile(),this.maybeNotify()})),`addEventListener`in this.scrollElement){let e=this.scrollElement,t=()=>{this._iosTouching=!0,this._iosJustTouchEnded=!1,this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)},n=()=>{this._iosTouching=!1,!(!_()||this.targetWindow==null)&&(this._iosJustTouchEnded=!0,this._iosTouchEndTimerId=this.targetWindow.setTimeout(()=>{this._iosJustTouchEnded=!1,this._iosTouchEndTimerId=null,this._flushIosDeferredIfReady()},150))};e.addEventListener(`touchstart`,t,S),e.addEventListener(`touchend`,n,S),this.unsubs.push(()=>{e.removeEventListener(`touchstart`,t),e.removeEventListener(`touchend`,n),this._iosTouchEndTimerId!==null&&this.targetWindow!=null&&(this.targetWindow.clearTimeout(this._iosTouchEndTimerId),this._iosTouchEndTimerId=null)})}this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})}let t=this.pendingScrollAnchor;if(this.pendingScrollAnchor=null,t&&this.scrollElement&&this.options.enabled){let[e,n,r,i]=t;e!==null&&!r&&(_()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?i!==0&&(this._iosDeferredAdjustment+=i):this._scrollToOffset(this.getScrollOffset(),{adjustments:void 0,behavior:void 0})),r&&this.scrollToEnd({behavior:r})}},this._flushIosDeferredIfReady=()=>{if(this._iosDeferredAdjustment===0||this.isScrolling||this._iosTouching||this._iosJustTouchEnded)return;let e=this.getScrollOffset(),t=this.getMaxScrollOffset();if(e<0||e>t)return;let n=this._iosDeferredAdjustment;this._iosDeferredAdjustment=0,this._scrollToOffset(e,{adjustments:this.scrollAdjustments+=n,behavior:void 0})},this.rafId=null,this.getSize=()=>this.options.enabled?(this.scrollRect=this.scrollRect??this.options.initialRect,this.scrollRect[this.options.horizontal?`width`:`height`]):(this.scrollRect=null,0),this.getScrollOffset=()=>this.options.enabled?(this.scrollOffset=this.scrollOffset??(typeof this.options.initialOffset==`function`?this.options.initialOffset():this.options.initialOffset),this.scrollOffset):(this.scrollOffset=null,0),this.getFurthestMeasurement=(e,t)=>{let n=new Map,r=new Map;for(let i=t-1;i>=0;i--){let t=e[i];if(n.has(t.lane))continue;let a=r.get(t.lane);if(a==null||t.end>a.end?r.set(t.lane,t):t.end<a.end&&n.set(t.lane,!0),n.size===this.options.lanes)break}return r.size===this.options.lanes?Array.from(r.values()).sort((e,t)=>e.end===t.end?e.index-t.index:e.end-t.end)[0]:void 0},this.getMeasurementOptions=f(()=>[this.options.count,this.options.paddingStart,this.options.scrollMargin,this.options.getItemKey,this.options.enabled,this.options.lanes,this.options.laneAssignmentMode],(e,t,n,r,i,a,o)=>(this.prevLanes!==void 0&&this.prevLanes!==a&&(this.lanesChangedFlag=!0),this.prevLanes=a,this.pendingMin=null,{count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o}),{key:!1}),this.getMeasurements=f(()=>[this.getMeasurementOptions(),this.itemSizeCacheVersion],({count:e,paddingStart:t,scrollMargin:n,getItemKey:r,enabled:i,lanes:a,laneAssignmentMode:o},s)=>{let c=this.itemSizeCache;if(!i)return this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),[];if(this.laneAssignments.size>e)for(let t of this.laneAssignments.keys())t>=e&&this.laneAssignments.delete(t);this.lanesChangedFlag&&(this.lanesChangedFlag=!1,this.lanesSettling=!0,this.measurementsCache=[],this.itemSizeCache.clear(),this.laneAssignments.clear(),this.pendingMin=null),this.measurementsCache.length===0&&!this.lanesSettling&&(this.measurementsCache=this.options.initialMeasurementsCache,this.measurementsCache.forEach(e=>{this.itemSizeCache.set(e.key,e.size)}));let l=this.lanesSettling?0:this.pendingMin??0;if(this.pendingMin=null,this.lanesSettling&&this.measurementsCache.length===e&&(this.lanesSettling=!1),a===1){let i=this.options.gap,a=e*2,o=this._flatMeasurements;if(!o||o.length<a){let e=new Float64Array(a);o&&l>0&&e.set(o.subarray(0,l*2)),o=e,this._flatMeasurements=o}let s;if(l===0)s=t+n;else{let e=l-1;s=o[e*2]+o[e*2+1]+i}for(let t=l;t<e;t++){let e=r(t),n=c.get(e),a=typeof n==`number`?n:this.options.estimateSize(t);o[t*2]=s,o[t*2+1]=a,s+=a+i}let u=d(e,o,r);return this.measurementsCache=u,u}let u=this.measurementsCache.slice(0,l),f=Array(a).fill(void 0);for(let e=0;e<l;e++){let t=u[e];t&&(f[t.lane]=e)}for(let i=l;i<e;i++){let e=r(i),a=this.laneAssignments.get(i),s,l,d=o===`estimate`||c.has(e);if(a!==void 0&&this.options.lanes>1){s=a;let e=f[s],r=e===void 0?void 0:u[e];l=r?r.end+this.options.gap:t+n}else{let e=this.options.lanes===1?u[i-1]:this.getFurthestMeasurement(u,i);l=e?e.end+this.options.gap:t+n,s=e?e.lane:i%this.options.lanes,this.options.lanes>1&&d&&this.laneAssignments.set(i,s)}let p=c.get(e),m=typeof p==`number`?p:this.options.estimateSize(i),h=l+m;u[i]={index:i,start:l,size:m,end:h,key:e,lane:s},f[s]=i}return this.measurementsCache=u,u},{key:!1,debug:()=>this.options.debug}),this.calculateRange=f(()=>[this.getMeasurements(),this.getSize(),this.getScrollOffset(),this.options.lanes],(e,t,n,r)=>e.length===0||t===0?(this.range=null,null):(this.range=j(e,t,n,r,r===1&&this._flatMeasurements!=null?this._flatMeasurements:null),this.range),{key:!1,debug:()=>this.options.debug}),this.getVirtualIndexes=f(()=>{let e=null,t=null,n=this.calculateRange();return n&&(e=n.startIndex,t=n.endIndex),this.maybeNotify.updateDeps([this.isScrolling,e,t]),[this.options.rangeExtractor,this.options.overscan,this.options.count,e,t]},(e,t,n,r,i)=>r===null||i===null?[]:e({startIndex:r,endIndex:i,overscan:t,count:n}),{key:!1,debug:()=>this.options.debug}),this.indexFromElement=e=>{let t=this.options.indexAttribute,n=e.getAttribute(t);return n?parseInt(n,10):(console.warn(`Missing attribute name '${t}={index}' on measured element.`),-1)},this.shouldMeasureDuringScroll=e=>{if(!this.scrollState||this.scrollState.behavior!==`smooth`)return!0;let t=this.scrollState.index??this.getVirtualItemForOffset(this.scrollState.lastTargetOffset)?.index;if(t!==void 0&&this.range){let n=Math.max(this.options.overscan,Math.ceil((this.range.endIndex-this.range.startIndex)/2)),r=Math.max(0,t-n),i=Math.min(this.options.count-1,t+n);return e>=r&&e<=i}return!0},this.measureElement=e=>{if(!e){this.elementsCache.forEach((e,t)=>{e.isConnected||(this.observer.unobserve(e),this.elementsCache.delete(t))});return}let t=this.indexFromElement(e),n=this.options.getItemKey(t),r=this.elementsCache.get(n);r!==e&&(r&&this.observer.unobserve(r),this.observer.observe(e),this.elementsCache.set(n,e)),(!this.isScrolling||this.scrollState)&&this.shouldMeasureDuringScroll(t)&&this.resizeItem(t,this.options.measureElement(e,void 0,this))},this.resizeItem=(e,t)=>{if(e<0||e>=this.options.count)return;let n,r,i,a=this._flatMeasurements;if(this.options.lanes===1&&a!==null)i=this.options.getItemKey(e),r=a[e*2],n=a[e*2+1];else{let t=this.measurementsCache[e];if(!t)return;i=t.key,r=t.start,n=t.size}let o=t-(this.itemSizeCache.get(i)??n);if(o!==0){let a=this.options.anchorTo===`end`&&this.scrollState?.behavior!==`smooth`&&this.getVirtualDistanceFromEnd()<=this.options.scrollEndThreshold,s=a?this.getTotalSize():0,c=this.scrollState?.behavior!==`smooth`&&(this.shouldAdjustScrollPositionOnItemSizeChange===void 0?r<this.getScrollOffset()+this.scrollAdjustments&&(!this.itemSizeCache.has(i)||this.scrollDirection!==`backward`):this.shouldAdjustScrollPositionOnItemSizeChange(this.measurementsCache[e]??{index:e,key:i,start:r,size:n,end:r+n,lane:0},o,this));(this.pendingMin===null||e<this.pendingMin)&&(this.pendingMin=e),this.itemSizeCache.set(i,t),this.itemSizeCacheVersion++,a?this.applyScrollAdjustment(this.getTotalSize()-s):c&&this.applyScrollAdjustment(o),this.notify(!1)}},this.getVirtualItems=f(()=>[this.getVirtualIndexes(),this.getMeasurements()],(e,t)=>{let n=[];for(let r=0,i=e.length;r<i;r++){let i=t[e[r]];n.push(i)}return n},{key:!1,debug:()=>this.options.debug}),this.getVirtualItemForOffset=e=>{let t=this.getMeasurements();if(t.length===0)return;let n=this._flatMeasurements,r=this.options.lanes===1&&n!=null;return p(t[k(0,t.length-1,r?e=>n[e*2]:e=>p(t[e]).start,e)])},this.getMaxScrollOffset=()=>{if(!this.scrollElement)return 0;if(`scrollHeight`in this.scrollElement)return this.options.horizontal?this.scrollElement.scrollWidth-this.scrollElement.clientWidth:this.scrollElement.scrollHeight-this.scrollElement.clientHeight;{let e=this.scrollElement.document.documentElement;return this.options.horizontal?e.scrollWidth-this.scrollElement.innerWidth:e.scrollHeight-this.scrollElement.innerHeight}},this.getVirtualDistanceFromEnd=()=>Math.max(this.getTotalSize()-this.getSize()-this.getScrollOffset(),0),this.getDistanceFromEnd=()=>Math.max(this.getMaxScrollOffset()-this.getScrollOffset(),0),this.isAtEnd=(e=this.options.scrollEndThreshold)=>this.getDistanceFromEnd()<=e,this.getOffsetForAlignment=(e,t,n=0)=>{if(!this.scrollElement)return 0;let r=this.getSize(),i=this.getScrollOffset();t===`auto`&&(t=e>=i+r?`end`:`start`),t===`center`?e+=(n-r)/2:t===`end`&&(e-=r);let a=this.getMaxScrollOffset();return Math.max(Math.min(a,e),0)},this.getOffsetForIndex=(e,t=`auto`)=>{e=Math.max(0,Math.min(e,this.options.count-1));let n=this.getSize(),r=this.getScrollOffset(),i=this.measurementsCache[e];if(!i)return;if(t===`auto`)if(i.end>=r+n-this.options.scrollPaddingEnd)t=`end`;else if(i.start<=r+this.options.scrollPaddingStart)t=`start`;else return[r,t];if(t===`end`&&e===this.options.count-1)return[this.getMaxScrollOffset(),t];let a=t===`end`?i.end+this.options.scrollPaddingEnd:i.start-this.options.scrollPaddingStart;return[this.getOffsetForAlignment(a,t,i.size),t]},this.scrollToOffset=(e,{align:t=`start`,behavior:n=`auto`}={})=>{let r=this.getOffsetForAlignment(e,t),i=this.now();this.scrollState={index:null,align:t,behavior:n,startedAt:i,lastTargetOffset:r,stableFrames:0},this._scrollToOffset(r,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollToIndex=(e,{align:t=`auto`,behavior:n=`auto`}={})=>{e=Math.max(0,Math.min(e,this.options.count-1));let r=this.getOffsetForIndex(e,t);if(!r)return;let[i,a]=r,o=this.now();this.scrollState={index:e,align:a,behavior:n,startedAt:o,lastTargetOffset:i,stableFrames:0},this._scrollToOffset(i,{adjustments:void 0,behavior:n}),this.scheduleScrollReconcile()},this.scrollBy=(e,{behavior:t=`auto`}={})=>{let n=this.getScrollOffset()+e,r=this.now();this.scrollState={index:null,align:`start`,behavior:t,startedAt:r,lastTargetOffset:n,stableFrames:0},this._scrollToOffset(n,{adjustments:void 0,behavior:t}),this.scheduleScrollReconcile()},this.scrollToEnd=({behavior:e=`auto`}={})=>{if(this.options.count>0){this.scrollToIndex(this.options.count-1,{align:`end`,behavior:e});return}this.scrollToOffset(Math.max(this.getTotalSize()-this.getSize(),0),{behavior:e})},this.getTotalSize=()=>{let e=this.getMeasurements(),t;if(e.length===0)t=this.options.paddingStart;else if(this.options.lanes===1){let n=e.length-1,r=this._flatMeasurements;t=r==null?e[n]?.end??0:r[n*2]+r[n*2+1]}else{let n=Array(this.options.lanes).fill(null),r=e.length-1;for(;r>=0&&n.some(e=>e===null);){let t=e[r];n[t.lane]===null&&(n[t.lane]=t.end),r--}t=Math.max(...n.filter(e=>e!==null))}return Math.max(t-this.options.scrollMargin+this.options.paddingEnd,0)},this.takeSnapshot=()=>{let e=[];if(this.itemSizeCache.size===0)return e;let t=this.getMeasurements();for(let n of t)n&&this.itemSizeCache.has(n.key)&&e.push({index:n.index,key:n.key,start:n.start,size:n.size,end:n.end,lane:n.lane});return e},this._scrollToOffset=(e,{adjustments:t,behavior:n})=>{this._intendedScrollOffset=e+(t??0),this.options.scrollToFn(e,{behavior:n,adjustments:t},this)},this.measure=()=>{this.pendingMin=null,this.itemSizeCache.clear(),this.laneAssignments.clear(),this.itemSizeCacheVersion++,this.notify(!1)},this.setOptions(e)}applyScrollAdjustment(e,t){e!==0&&(_()&&(this.isScrolling||this._iosTouching||this._iosJustTouchEnded)?this._iosDeferredAdjustment+=e:(this._scrollToOffset(this.getScrollOffset(),{adjustments:this.scrollAdjustments+=e,behavior:t}),this.scrollOffset!==null&&(this.scrollOffset+=this.scrollAdjustments,this.scrollAdjustments=0)))}scheduleScrollReconcile(){if(!this.targetWindow){this.scrollState=null;return}this.rafId??=this.targetWindow.requestAnimationFrame(()=>{this.rafId=null,this.reconcileScroll()})}reconcileScroll(){if(!this.scrollState||!this.scrollElement)return;if(this.now()-this.scrollState.startedAt>5e3){this.scrollState=null;return}let e=this.scrollState.index==null?void 0:this.getOffsetForIndex(this.scrollState.index,this.scrollState.align),t=e?e[0]:this.scrollState.lastTargetOffset,n=t!==this.scrollState.lastTargetOffset;if(!n&&m(t,this.getScrollOffset())){if(this.scrollState.stableFrames++,this.scrollState.stableFrames>=1){this.getScrollOffset()!==t&&this._scrollToOffset(t,{adjustments:void 0,behavior:`auto`}),this.scrollState=null;return}}else if(this.scrollState.stableFrames=0,n){let e=this.getSize()||600,n=Math.abs(t-this.getScrollOffset()),r=this.scrollState.behavior===`smooth`&&n>e;this.scrollState.lastTargetOffset=t,r||(this.scrollState.behavior=`auto`),this._scrollToOffset(t,{adjustments:void 0,behavior:r?`smooth`:`auto`})}this.scheduleScrollReconcile()}},k=(e,t,n,r)=>{for(;e<=t;){let i=(e+t)/2|0,a=n(i);if(a<r)e=i+1;else if(a>r)t=i-1;else return i}return e>0?e-1:0};function A(e,t,n){let r=0;for(;r<=t;){let i=(r+t)/2|0,a=e[i*2];if(a<n)r=i+1;else if(a>n)t=i-1;else return i}return r>0?r-1:0}function j(e,t,n,r,i){let a=e.length-1;if(e.length<=r)return{startIndex:0,endIndex:a};if(r===1&&i!==null){let e=A(i,a,n),r=e,o=n+t;for(;r<a&&i[r*2]+i[r*2+1]<o;)r++;return{startIndex:e,endIndex:r}}let o=k(0,a,t=>e[t].start,n),s=o;if(r===1)for(;s<a&&e[s].end<n+t;)s++;else if(r>1){let i=Array(r).fill(0);for(;s<a&&i.some(e=>e<n+t);){let t=e[s];i[t.lane]=t.end,s++}let c=Array(r).fill(n+t);for(;o>=0&&c.some(e=>e>=n);){let t=e[o];c[t.lane]=t.start,o--}o=Math.max(0,o-o%r),s=Math.min(a,s+(r-1-s%r))}return{startIndex:o,endIndex:s}}var M=typeof document<`u`?l.useLayoutEffect:l.useEffect;function N({useFlushSync:e=!0,directDomUpdates:t=!1,directDomUpdatesMode:n=`transform`,...r}){let i=l.useReducer(e=>e+1,0)[1],a=l.useRef({enabled:t,mode:n,container:null,lastSize:null,lastPositions:new WeakMap,prevRange:null});a.current.enabled=t,a.current.mode=n;let o=e=>{let t=a.current;if(!t.enabled||!t.container)return;let n=e.getTotalSize();if(n!==t.lastSize){t.lastSize=n;let r=e.options.horizontal?`width`:`height`;t.container.style[r]=`${n}px`}let r=!!e.options.horizontal,i=t.mode===`transform`,o=r?`left`:`top`,s=e.options.scrollMargin,c=e.getVirtualItems();for(let n of c){let a=n.start-s,c=e.elementsCache.get(n.key);c&&t.lastPositions.get(c)!==a&&(t.lastPositions.set(c,a),i?c.style.transform=r?`translate3d(${a}px, 0, 0)`:`translate3d(0, ${a}px, 0)`:c.style[o]=`${a}px`)}},s={...r,onChange:(t,n)=>{var s;let c=a.current,l=!0;if(c.enabled){o(t);let e=t.range,n=c.prevRange;l=!n||n.isScrolling!==t.isScrolling||n.startIndex!==e?.startIndex||n.endIndex!==e?.endIndex,l&&(c.prevRange=e?{startIndex:e.startIndex,endIndex:e.endIndex,isScrolling:t.isScrolling}:null)}l&&(e&&n?(0,u.flushSync)(i):i()),(s=r.onChange)==null||s.call(r,t,n)}},[c]=l.useState(()=>{let e=new O(s);return Object.assign(e,{containerRef:t=>{let n=a.current;if(n.container=t,n.lastSize=null,t&&n.enabled){let r=e.getTotalSize();n.lastSize=r;let i=e.options.horizontal?`width`:`height`;t.style[i]=`${r}px`}}})});return c.setOptions(s),M(()=>c._didMount(),[]),M(()=>c._willUpdate()),M(()=>{o(c)}),c}function P(e){return N({observeElementRect:x,observeElementOffset:T,scrollToFn:D,...e})}function F({items:e,totalItems:t,parentRef:n,hasNextPage:r,isFetchingNextPage:i,fetchNextPage:o,estimateSize:s=()=>100,overscan:c=5}){let u=P({count:t,getScrollElement:()=>a(n.current),estimateSize:s,overscan:c}),d=u.getVirtualItems(),f=d.length>0?(d.at(0)?.start??0)-u.options.scrollMargin:0,p=d.length>0?u.getTotalSize()-(d.at(-1)?.end??0):0,m=d.map(t=>({virtualItem:t,key:t.key,item:e[t.index],props:{ref:u.measureElement,"data-index":t.index}})),h=m.at(-1)&&!m.at(-1)?.item;return(0,l.useEffect)(()=>{r&&h&&!i&&o()},[r,h,i,o]),{visibleItems:m,virtualizer:u,spaceBefore:f,spaceAfter:p}}var I=1e3,L=`ghostVirtualListWindow`;function R({totalItems:e,unlockedItemCount:t}){let n=Math.min(e,t);return{visibleItemCount:n,canLoadMore:e>n}}function z(e){return e+I}function B(e,t){return`${e}::${t}`}function V(e,t,n=I){let r=e?.[L];if(!r||typeof r!=`object`)return n;let i=r[t];return typeof i!=`number`||!Number.isFinite(i)?n:Math.max(1,Math.floor(i))}function H(e,t,n){if(typeof window>`u`)return;let r=e?.[L],i={...e??{},[L]:{...r&&typeof r==`object`?r:{},[t]:n}};window.history.replaceState(i,``)}function U(){if(!(typeof window>`u`))return window.history.state}function W(e,{resetKey:t}={}){let{key:n,pathname:r,search:a}=i(),o=B(r,t??a),[s,c]=(0,l.useState)(()=>V(U(),o)),u=(0,l.useRef)(o);(0,l.useEffect)(()=>{if(u.current!==o){u.current=o,c(V(U(),o));return}H(U(),o,s)},[o,n,s]);let{visibleItemCount:d,canLoadMore:f}=R({totalItems:e,unlockedItemCount:s});return{visibleItemCount:d,canLoadMore:f,loadMore:()=>c(e=>z(e))}}export{F as n,c as r,W as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{t as r}from"./use-tinybird-query-CNCaUn39.js";import{c as i,d as a,i as o,l as s,o as c,s as l,u}from"./pagemenu-C4paivNj.js";import{n as d}from"./analytics-53FOa2wq.js";import{g as f,m as p}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as m,t as h}from"./router-provider-DcttGCQn.js";import{$n as g,A as _,Gt as v,Ht as y,O as b,Rt as x,St as S,U as C,Vt as w,Xn as T,Zn as E,c as D,ft as O,j as k,m as ee,s as A,t as j,ut as te,wn as M,zt as N}from"./button-DiwO9Rof.js";import{n as P,r as F}from"./filters-DUy8rzI5.js";import{a as I,i as L,n as R,o as z,r as B,s as V,t as H}from"./select-BbtNHCBq.js";import{r as ne,t as U}from"./post-analytics-header-DAQep1VQ.js";import{a as W,c as G,i as re,l as ie,n as ae,o as oe,r as se,s as ce,t as le,u as ue}from"./data-list-D3nkd86L.js";import{t as de}from"./empty-indicator-Cl63eDpB.js";import{n as fe,r as pe,t as me}from"./en-DA2zVD_n.js";import{Cn as he,Mn as ge,On as _e,Sn as ve,Tn as ye,bn as be,dr as xe,fr as Se,g as Ce,lr as K,oi as we,ti as Te,wn as Ee,xn as De}from"./index-BMhs4O3N.js";import{a as Oe,n as q,o as ke,r as J,s as Ae,t as je}from"./constants-BlvYJTqz.js";import{n as Y}from"./post-analytics-context-Dy17HR1_.js";import{a as Me,i as Ne,n as Pe,r as Fe}from"./kpis-BTZ8cyw-.js";var X=e(t(),1),Z=n(),Ie=()=>{let{range:e,setRange:t}=Y();return(0,Z.jsxs)(H,{value:`${e}`,onValueChange:e=>{t(Number(e))},children:[(0,Z.jsxs)(z,{className:`w-auto`,children:[(0,Z.jsx)(M,{className:`mr-2`,size:16,strokeWidth:1.5}),(0,Z.jsx)(V,{placeholder:`Select a period`})]}),(0,Z.jsx)(R,{align:`end`,children:(0,Z.jsxs)(B,{children:[(0,Z.jsx)(I,{children:`Period`}),Object.values(ke).map(e=>(0,Z.jsx)(L,{value:`${e.value}`,children:e.name},e.value))]})})]})},Q=e(fe(),1);Q.registerLocale(me);var Le=e=>Oe[e]||Q.getName(e,`en`,{select:`alias`})||`Unknown`,Re=e=>({"UNITED STATES":`US`,"UNITED STATES OF AMERICA":`US`,USA:`US`,"UNITED KINGDOM":`GB`,UK:`GB`,"GREAT BRITAIN":`GB`,NETHERLANDS:`NL`})[e.toUpperCase()]||(e.length>2?e.substring(0,2):e),ze=({tableHeader:e,data:t,onLocationClick:n})=>(0,Z.jsxs)(le,{children:[e&&(0,Z.jsxs)(W,{children:[(0,Z.jsx)(re,{children:`Country`}),(0,Z.jsx)(re,{children:`Visitors`})]}),(0,Z.jsx)(se,{children:t.map(e=>{let t=Le(`${e.location}`)||`Unknown`,r=n&&e.location!==`Unknown`,i=e.location?e.location.toLowerCase():`unknown`;return(0,Z.jsxs)(ue,{className:r?`cursor-pointer`:``,"data-testid":`location-row-${i}`,onClick:r?()=>n(e.location):void 0,children:[(0,Z.jsx)(ae,{style:{width:`${e.percentage?Math.round(e.percentage*100):0}%`}}),(0,Z.jsx)(oe,{className:`group-hover/data:max-w-[calc(100%-140px)]`,children:(0,Z.jsxs)(`div`,{className:`flex items-center space-x-3 overflow-hidden`,title:t||`Unknown`,children:[(0,Z.jsx)(pe,{countryCode:`${Re(e.location)}`,fallback:(0,Z.jsx)(`span`,{className:`flex h-[14px] w-[22px] items-center justify-center rounded-[2px] bg-black text-white`,children:(0,Z.jsx)(Te.SkullAndBones,{className:`size-3`})})}),(0,Z.jsx)(`div`,{className:`truncate font-medium`,children:t})]})}),(0,Z.jsxs)(ce,{children:[(0,Z.jsx)(G,{children:T(Number(e.visits))}),(0,Z.jsx)(ie,{children:E(e.percentage)})]})]},e.location||`unknown`)})})]}),Be=({data:e,isLoading:t,onLocationClick:n})=>{let r=e.slice(0,10);return(0,Z.jsx)(Z.Fragment,{children:t?``:(0,Z.jsx)(Z.Fragment,{children:e&&e.length>0&&(0,Z.jsxs)(c,{className:`group/datalist`,"data-testid":`locations-card`,children:[(0,Z.jsxs)(`div`,{className:`flex items-center justify-between p-6`,children:[(0,Z.jsxs)(u,{className:`p-0`,children:[(0,Z.jsx)(a,{children:`Locations`}),(0,Z.jsx)(i,{children:`Where are the readers of this post`})]}),(0,Z.jsx)(we,{className:`mr-2`,children:`Visitors`})]}),(0,Z.jsxs)(l,{className:`overflow-hidden`,children:[(0,Z.jsx)(ge,{}),(0,Z.jsx)(ze,{data:r,tableHeader:!1,onLocationClick:n})]}),e.length>10&&(0,Z.jsx)(s,{children:(0,Z.jsxs)(be,{children:[(0,Z.jsx)(ye,{asChild:!0,children:(0,Z.jsxs)(j,{variant:`outline`,children:[`View all `,(0,Z.jsx)(k,{})]})}),(0,Z.jsxs)(De,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,Z.jsxs)(he,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,Z.jsx)(Ee,{children:`Top locations`}),(0,Z.jsx)(ve,{children:`Where are the readers of this post`})]}),(0,Z.jsx)(`div`,{className:`group/datalist`,children:(0,Z.jsx)(ze,{data:e,tableHeader:!0,onLocationClick:n})})]})]})})]})})})},Ve=e=>!e||e.length===0?je:J.filter(t=>e.includes(t.value)).reduce((e,t)=>e|t.bit,0)||je,He=e=>{let t=[];return(e&q.PUBLIC)!==0&&t.push(J[0].value),(e&q.FREE)!==0&&t.push(J[1].value),(e&q.PAID)!==0&&t.push(J[2].value),t.join(`,`)};Q.registerLocale(me);var Ue=e=>Oe[e]||Q.getName(e,`en`,{select:`alias`})||e,We=({visits:e})=>(0,Z.jsx)(`span`,{className:`order-2 font-mono text-xs text-muted-foreground`,children:e.toLocaleString()}),Ge=[{value:`true`,label:`used`},{value:`false`,label:`not used`}],Ke={utm_source:{endpoint:`api_top_utm_sources`,valueKey:`utm_source`,transformValue:e=>({value:e||`(not set)`,label:e||`(not set)`})},utm_medium:{endpoint:`api_top_utm_mediums`,valueKey:`utm_medium`,transformValue:e=>({value:e||`(not set)`,label:e||`(not set)`})},utm_campaign:{endpoint:`api_top_utm_campaigns`,valueKey:`utm_campaign`,transformValue:e=>({value:e||`(not set)`,label:e||`(not set)`})},utm_content:{endpoint:`api_top_utm_contents`,valueKey:`utm_content`,transformValue:e=>({value:e||`(not set)`,label:e||`(not set)`})},utm_term:{endpoint:`api_top_utm_terms`,valueKey:`utm_term`,transformValue:e=>({value:e||`(not set)`,label:e||`(not set)`})},source:{endpoint:`api_top_sources`,valueKey:`source`,transformValue:e=>({value:e||``,label:e||`Direct`})},location:{endpoint:`api_top_locations`,valueKey:`location`,filterItem(e){let t=String(e.location||``);return t!==``&&!Ae.includes(t)},transformValue:e=>({value:e,label:Ue(e)})},device:{endpoint:`api_top_devices`,valueKey:`device`,transformValue:e=>({value:e,label:e===`mobile-ios`?`iOS`:e===`mobile-android`?`Android`:e===`desktop`?`Desktop`:e===`bot`?`Bot`:e})}},qe=(e,t,n)=>{let r={...n};return e.forEach(e=>{if(e.field===t||e.values.length===0)return;let n=e.values[0];e.field!==`audience`&&(e.field===`source`||e.field===`device`||e.field===`location`||e.field===`gift_link`||e.field.startsWith(`utm_`))&&(r[e.field]=n)}),r},$=(e,t=[],n,i={})=>{let{enabled:a=!0}=i,{statsConfig:o,range:s}=Y(),{startDate:c,endDate:l,timezone:u}=xe(s),d=Ke[e],f=(0,X.useMemo)(()=>Ve(t.find(e=>e.field===`audience`)?.values),[t]),p=(0,X.useMemo)(()=>{let r={site_uuid:o?.id||``,date_from:K(c),date_to:K(l),timezone:u,member_status:He(f),limit:`50`};return n&&(r.post_uuid=n),qe(t,e,r)},[o?.id,c,l,u,f,t,e,n]),{data:m,loading:h}=r({endpoint:d?.endpoint||``,statsConfig:o,params:p,enabled:a&&!!d});return{options:(0,X.useMemo)(()=>d?(m||[]).filter(e=>d.filterItem?d.filterItem(e):!0).map(e=>{let t=String(e[d.valueKey]??``),n=Number(e.visits)||0,{value:r,label:i}=d.transformValue?d.transformValue(t):{value:t,label:t};return{label:i,value:r,icon:(0,Z.jsx)(We,{visits:n})}}):[],[m,d]),loading:h}};function Je({filters:e,onChange:t,...n}){let{appSettings:r}=Ce(),{post:i}=Y(),a=i?.uuid,[o,s]=(0,X.useState)(null),[c,l]=(0,X.useState)(!1);(0,X.useEffect)(()=>{let e=window.matchMedia(`(max-width: 1024px)`),t=e=>{l(e.matches)};return t(e),e.addEventListener(`change`,t),()=>e.removeEventListener(`change`,t)},[]);let u=(0,X.useMemo)(()=>{let e=[{value:`undefined`,label:`Public visitors`,icon:(0,Z.jsx)(x,{className:`text-gray-700`})},{value:`free`,label:`Free members`,icon:(0,Z.jsx)(D,{className:`text-green`})},{value:`paid`,label:`Paid members`,icon:(0,Z.jsx)(ee,{className:`text-orange`})}];return r?.paidMembersEnabled?e:e.filter(e=>e.value!==`paid`)},[r?.paidMembersEnabled]),d=(0,X.useCallback)(t=>{let n=o===t,r=e.some(e=>e.field===t);return n||r},[o,e]),{options:f,loading:p}=$(`utm_source`,e,a,{enabled:d(`utm_source`)}),{options:m,loading:h}=$(`utm_medium`,e,a,{enabled:d(`utm_medium`)}),{options:g,loading:T}=$(`utm_campaign`,e,a,{enabled:d(`utm_campaign`)}),{options:E,loading:k}=$(`utm_content`,e,a,{enabled:d(`utm_content`)}),{options:M,loading:F}=$(`utm_term`,e,a,{enabled:d(`utm_term`)}),{options:I,loading:L}=$(`source`,e,a,{enabled:d(`source`)}),{options:R,loading:z}=$(`device`,e,a,{enabled:d(`device`)}),{options:B,loading:V}=$(`location`,e,a,{enabled:d(`location`)}),H=(0,X.useMemo)(()=>[{value:`is`,label:`is`}],[]),ne=(0,X.useMemo)(()=>{let e=[{key:`utm_source`,label:`UTM Source`,type:`select`,icon:(0,Z.jsx)(te,{className:`size-4`}),placeholder:`Select source`,operators:H,defaultOperator:`is`,hideOperatorSelect:!0,options:f,isLoading:p,searchable:!0,selectedOptionsClassName:`hidden`},{key:`utm_medium`,label:`UTM Medium`,type:`select`,icon:(0,Z.jsx)(C,{className:`size-4`}),placeholder:`Select medium`,operators:H,defaultOperator:`is`,hideOperatorSelect:!0,options:m,isLoading:h,className:`w-60`,popoverContentClassName:`w-60`,searchable:!0,selectedOptionsClassName:`hidden`},{key:`utm_campaign`,label:`UTM Campaign`,type:`select`,icon:(0,Z.jsx)(v,{className:`size-4`}),placeholder:`Select campaign`,operators:H,defaultOperator:`is`,hideOperatorSelect:!0,options:g,isLoading:T,className:`w-60`,popoverContentClassName:`w-60`,searchable:!0,selectedOptionsClassName:`hidden`},{key:`utm_content`,label:`UTM Content`,type:`select`,icon:(0,Z.jsx)(b,{className:`size-4`}),placeholder:`Select content`,operators:H,defaultOperator:`is`,hideOperatorSelect:!0,options:E,isLoading:k,className:`w-60`,popoverContentClassName:`w-60`,searchable:!0,selectedOptionsClassName:`hidden`},{key:`utm_term`,label:`UTM Term`,type:`select`,icon:(0,Z.jsx)(_,{className:`size-4`}),placeholder:`Select term`,operators:H,defaultOperator:`is`,hideOperatorSelect:!0,options:M,isLoading:F,className:`w-60`,popoverContentClassName:`w-60`,searchable:!0,selectedOptionsClassName:`hidden`}];return[{group:`Basic`,fields:[{key:`audience`,label:`Audience`,type:`multiselect`,icon:(0,Z.jsx)(A,{}),options:u.map(({value:e,label:t,icon:n})=>({value:e,label:t,icon:n})),defaultOperator:`is any of`,hideOperatorSelect:!0,autoCloseOnSelect:!0},{key:`source`,label:`Source`,type:`select`,icon:(0,Z.jsx)(x,{className:`size-4`}),placeholder:`Select source`,operators:H,defaultOperator:`is`,hideOperatorSelect:!0,options:I,isLoading:L,className:`w-60`,popoverContentClassName:`w-60`,searchable:!0,selectedOptionsClassName:`hidden`},{key:`device`,label:`Device`,type:`select`,icon:(0,Z.jsx)(O,{className:`size-4`}),placeholder:`Select device`,operators:H,defaultOperator:`is`,hideOperatorSelect:!0,options:R,isLoading:z,selectedOptionsClassName:`hidden`},{key:`location`,label:`Location`,type:`select`,icon:(0,Z.jsx)(S,{className:`size-4`}),placeholder:`Select location`,operators:H,defaultOperator:`is`,hideOperatorSelect:!0,options:B,isLoading:V,searchable:!0,selectedOptionsClassName:`hidden`},{key:`gift_link`,label:`Gift link`,type:`select`,icon:(0,Z.jsx)(N,{className:`size-4`}),operators:H,defaultOperator:`is`,hideOperatorSelect:!0,options:Ge,searchable:!1}]},{group:`UTM parameters`,fields:e}]},[f,p,m,h,g,T,E,k,M,F,H,u,I,L,R,z,B,V]),U=e.length>0,W=(0,X.useCallback)(()=>{t&&t([])},[t]);return(0,Z.jsxs)(`div`,{className:`mt-3 flex w-full justify-between gap-2 lg:mt-0`,"data-testid":`stats-filter-container`,children:[(0,Z.jsx)(P,{addButtonIcon:(0,Z.jsx)(y,{}),addButtonText:U?`Add filter`:`Filter`,allowMultiple:!1,className:`[&>button]:order-last ${U&&`[&>button]:border-none`}`,fields:ne,filters:e,keyboardShortcut:`f`,popoverAlign:c||U?`start`:`end`,showSearchInput:!1,onActiveFieldChange:s,onChange:t||(()=>{}),...n}),U&&(0,Z.jsxs)(j,{className:`hidden font-normal text-muted-foreground lg:flex`,"data-testid":`stats-filter-clear-button`,variant:`ghost`,onClick:W,children:[(0,Z.jsx)(w,{}),`Clear`]})]})}var Ye=[`audience`,`source`,`device`,`location`,`gift_link`,`utm_source`,`utm_medium`,`utm_campaign`,`utm_content`,`utm_term`],Xe=new Set(Ye),Ze=`__empty__`,Qe=`%2C`;function $e(e){let t=new URLSearchParams;return e.forEach(e=>{if(Xe.has(e.field)&&e.values.length>0){let n=e.values.map(e=>e===``?Ze:String(e).replace(/,/g,Qe)).join(`,`);t.set(e.field,n)}}),t}var et=new Map;function tt(e){return et.has(e)||et.set(e,`url-${e}-${Date.now()}-${Math.random().toString(36).substring(2,11)}`),et.get(e)}function nt(e){let t=[];return e.forEach((e,n)=>{if(!Xe.has(n))return;let r=e.split(`,`).map(e=>e===Ze?``:e.replace(new RegExp(Qe,`g`),`,`));if(r.length>0){let e=n===`audience`?`is any of`:`is`;t.push({id:tt(n),field:n,operator:e,values:r})}}),t}function rt(e={}){let[t,n]=f(),{onFiltersChange:r}=e,i=(0,X.useRef)(!1),a=(0,X.useMemo)(()=>nt(t),[t]);return(0,X.useEffect)(()=>{!i.current&&r&&r(a)},[a,r]),{filters:a,setFilters:(0,X.useCallback)(e=>{i.current=!0;let r=typeof e==`function`?e(a):e,o=$e(r);d(a,r,`post-analytics`);let s=new URLSearchParams(t);Ye.forEach(e=>{s.delete(e)}),o.forEach((e,t)=>{s.set(t,e)}),n(s,{replace:!0}),setTimeout(()=>{i.current=!1},0)},[a,t,n]),clearFilters:(0,X.useCallback)(()=>{i.current=!0;let e=new URLSearchParams(t);Ye.forEach(t=>{e.delete(t)}),n(e,{replace:!0}),setTimeout(()=>{i.current=!1},0)},[t,n])}}var it=()=>{let e=m(),{postId:t}=p(),{statsConfig:n,isLoading:i,range:a,data:s,post:u,isPostLoading:d}=Y(),{appSettings:f}=Ce(),_=(0,X.useRef)(null),{filters:v,setFilters:y}=rt(),b=(0,X.useMemo)(()=>Ve(v.find(e=>e.field===`audience`)?.values),[v]);(0,X.useEffect)(()=>{!d&&u?.email_only&&e(`/posts/analytics/${t}`)},[d,u?.email_only,e,t]);let S=(0,X.useMemo)(()=>{if(!u?.published_at)return ke.ALL_TIME.value;let e=Se(u.published_at);return a>e?e:a},[u?.published_at,a]),{startDate:C,endDate:w,timezone:T}=xe(S),E=(0,X.useCallback)(()=>{let e=g(_.current);e&&e.scrollTo({top:0,behavior:`smooth`})},[]),D=(0,X.useMemo)(()=>{let e={};return v.forEach(t=>{let n=t.field,r=t.values;if(n===`audience`)return;let i=r&&r.length>0&&r[0]!==null&&r[0]!==void 0,a=n===`source`&&r?.[0]===``;if(i&&(r[0]!==``||a)){let t=String(r[0]);e[n]=t}}),e},[v]),O=(0,X.useCallback)((e,t)=>{y(n=>n.find(t=>t.field===e)?n.map(n=>n.field===e?{...n,values:[t]}:n):[...n,F(e,`is`,[t])]),E()},[y,E]),k=(0,X.useCallback)(e=>O(`location`,e),[O]),ee=(0,X.useCallback)(e=>O(`source`,e),[O]),A=(0,X.useMemo)(()=>{let e={site_uuid:n?.id||``,date_from:K(C),date_to:K(w),timezone:T,member_status:He(b),post_uuid:``,...D};return!d&&u?.uuid?{...e,post_uuid:u.uuid}:e},[d,u,n?.id,C,w,T,b,D]),{data:j,loading:te}=r({endpoint:`api_kpis`,statsConfig:n,params:A}),{data:M,loading:N}=r({endpoint:`api_top_locations`,statsConfig:n,params:A}),{data:P,loading:I}=r({endpoint:`api_top_sources`,statsConfig:n,params:A}),L=(0,X.useMemo)(()=>M?.reduce((e,t)=>e+Number(t.visits),0)||0,[M]),R=(0,X.useMemo)(()=>P?P.reduce((e,t)=>e+Number(t.visits||0),0):0,[P]),z=s?.url,B=s?.icon,V=(0,X.useMemo)(()=>{let e=M?.map(e=>({location:String(e.location),visits:Number(e.visits),percentage:L>0?Number(e.visits)/L:0,isUnknown:Ae.includes(String(e.location))}))||[],t=e.filter(e=>!e.isUnknown),n=e.filter(e=>e.isUnknown),r=n.length>0?[{location:`Unknown`,visits:n.reduce((e,t)=>e+t.visits,0),percentage:n.reduce((e,t)=>e+t.percentage,0)}]:[];return[...t,...r]},[M,L]),H=i||d||te||N||I,W=Fe(j),G=v.length>0;return f&&!f.analytics?.webAnalytics?(0,Z.jsx)(h,{to:`/posts/analytics/${t}`,replace:!0}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(U,{currentTab:`Web`,children:[G&&(0,Z.jsx)(o,{children:(0,Z.jsx)(Ie,{})}),(0,Z.jsxs)(o,{className:`${G?`mt-0! [grid-area:subactions] lg:mt-[25px]!`:`[grid-area:actions]`}`,children:[(0,Z.jsx)(Je,{filters:v,onChange:y}),!G&&(0,Z.jsx)(Ie,{})]})]}),(0,Z.jsx)(ne,{ref:_,children:H?(0,Z.jsx)(c,{className:`size-full`,variant:`plain`,children:(0,Z.jsx)(l,{className:`size-full items-center justify-center`,children:(0,Z.jsx)(_e,{})})}):j&&j.length!==0&&W.visits!==`0`?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(Pe,{data:j,range:S}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-6 lg:grid lg:grid-cols-2`,children:[(0,Z.jsx)(Be,{data:V,isLoading:N,onLocationClick:k}),(0,Z.jsx)(Ne,{data:P,range:S,siteIcon:B,siteUrl:z,totalVisitors:R,onSourceClick:ee})]})]}):(0,Z.jsx)(`div`,{className:`grow`,children:(0,Z.jsx)(de,{className:`h-full`,description:`Try adjusting filters to see more data.`,title:`No visitors ${Me(a)}`,children:(0,Z.jsx)(x,{strokeWidth:1.5})})})})]})};export{it as default};
|