ghost 6.18.2 → 6.19.0
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-i18n-6.19.0.tgz +0 -0
- package/components/tryghost-parse-email-address-6.19.0.tgz +0 -0
- package/core/built/admin/assets/{PolarAngleAxis-DALH8FDm.js → PolarAngleAxis-CGprvq8M.js} +1 -1
- package/core/built/admin/assets/{_baseAssignValue-D_UsvJRN.js → _baseAssignValue-Bwn07Ln5.js} +1 -1
- package/core/built/admin/assets/{a-large-small-DVyx4GMu.js → a-large-small-p58xibEK.js} +1 -1
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +1 -1
- package/core/built/admin/assets/admin-x-settings/{code-editor-view-DBrulgE8.mjs → code-editor-view-DCKvO1TY.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-DgGwb1L-.mjs → index-BxWVtVnD.mjs} +6 -6
- package/core/built/admin/assets/admin-x-settings/{index-Cypgljb3.mjs → index-DyZIONe1.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-CsGHbqSU.mjs → index-HfMJcj2U.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/{modals-rdo7i0D3.mjs → modals-CIiqfKY0.mjs} +7593 -7509
- package/core/built/admin/assets/{at-sign-CGNkBrZS.js → at-sign-BZPuAx5m.js} +1 -1
- package/core/built/admin/assets/audience-Cy9gLIa9.js +1 -0
- package/core/built/admin/assets/{avatar-flipboard-jqr9Aapd.js → avatar-flipboard-CLmWb5Xn.js} +1 -1
- package/core/built/admin/assets/{bluesky-sharing-C2749SVt.js → bluesky-sharing-BHt0oiii.js} +1 -1
- package/core/built/admin/assets/{chart-BAQCVPCH.js → chart--RFLGIL4.js} +1 -1
- package/core/built/admin/assets/{chunk.524.428356d01feabbc7b932.js → chunk.524.5c5c3f3273a86d1d9913.js} +7 -7
- package/core/built/admin/assets/{chunk.582.b8b41ba720f49d724992.js → chunk.582.e6c787cdf7e6de7819e0.js} +9 -9
- package/core/built/admin/assets/{code-editor-view-YNhJ1w71.js → code-editor-view-BW9y0JXN.js} +1 -1
- package/core/built/admin/assets/comments-C_lilDBp.js +1 -0
- package/core/built/admin/assets/content-helpers-BOnQQADZ.js +1 -0
- package/core/built/admin/assets/{copy-CNsHZEFR.js → copy-Bi7VpgPR.js} +1 -1
- package/core/built/admin/assets/{data-list-Dn5MkmyD.js → data-list-Bu3jzs1s.js} +1 -1
- package/core/built/admin/assets/{deleted-feed-item-Dmm_clMl.js → deleted-feed-item-B-doIIKc.js} +1 -1
- package/core/built/admin/assets/{edit-profile-BLSdtROQ.js → edit-profile-ZBdjFfvL.js} +1 -1
- package/core/built/admin/assets/{empty-indicator-C2Z0dddU.js → empty-indicator-C6BBh99D.js} +1 -1
- package/core/built/admin/assets/{en-DuTkaMAI.js → en-C7eSFQRw.js} +1 -1
- package/core/built/admin/assets/{feed-B4Xp4C2J.js → feed-CAioauwD.js} +1 -1
- package/core/built/admin/assets/{filters-gnOx5Z45.js → filters-DEKF0tIB.js} +1 -1
- package/core/built/admin/assets/{gh-chart-B2aWYkGg.js → gh-chart-D9KI0_sO.js} +1 -1
- package/core/built/admin/assets/{ghost-29f8f3c80e41126ba5e3c52ad5727e8a.js → ghost-6bff5c535ef015b0ed9421ceb6c699a7.js} +220 -211
- package/core/built/admin/assets/{growth-BysawIWe.js → growth-C6XGchvT.js} +1 -1
- package/core/built/admin/assets/{hash-j3sh-UI3.js → hash-DFhnGHId.js} +1 -1
- package/core/built/admin/assets/{inbox-1cUdr8Mm.js → inbox-p-Y5uScT.js} +1 -1
- package/core/built/admin/assets/{index-BVoBTlp_.js → index--VlvGKWi.js} +1 -1
- package/core/built/admin/assets/{index-DGBK5k9H.js → index-3uU4zg_6.js} +1 -1
- package/core/built/admin/assets/index-4ZkTY34B.css +1 -0
- package/core/built/admin/assets/{index-BhY_SbGB.js → index-BWnrLoWI.js} +1 -1
- package/core/built/admin/assets/{index-I9n711UW.js → index-BzU2odQq.js} +1 -1
- package/core/built/admin/assets/{index-mhojl7aD.js → index-CIZ_upe2.js} +1 -1
- package/core/built/admin/assets/{index-WjY3mGep.js → index-CS4XqyC-.js} +2 -2
- package/core/built/admin/assets/{index-BgrwCpgw.js → index-D17PEsUB.js} +1 -1
- package/core/built/admin/assets/{index-B8G0f0hb.js → index-DCTdAEHx.js} +3 -3
- package/core/built/admin/assets/{index-DarAAzVH.js → index-FPf-AERu.js} +1 -1
- package/core/built/admin/assets/index-JmqyGBro.js +1 -0
- package/core/built/admin/assets/{index-DKAlEWM4.js → index-LyfDjTto.js} +1 -1
- package/core/built/admin/assets/index-S62-c8TV.js +13 -0
- package/core/built/admin/assets/{index-D8CXbJm4.js → index-Wx8_AGZX.js} +1 -1
- package/core/built/admin/assets/{index-CkAUXgAi.js → index-jAidr8jI.js} +1 -1
- package/core/built/admin/assets/{index-Dz8eTtOq.js → index-lPLmWtv0.js} +1 -1
- package/core/built/admin/assets/koenig-lexical/index.css +1 -1
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +1853 -1863
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +94 -94
- package/core/built/admin/assets/{koenig-lexical-coiS9dIC.js → koenig-lexical-CWnkYKQt.js} +77 -77
- package/core/built/admin/assets/{kpi-card-BEFHo2gr.js → kpi-card-B5UaJgOT.js} +1 -1
- package/core/built/admin/assets/{kpis-D-gz-lUk.js → kpis-Cc2RxnvZ.js} +1 -1
- package/core/built/admin/assets/{label-BvlHzzcJ.js → label-CW7Kmp9w.js} +1 -1
- package/core/built/admin/assets/{links-tdJvBrsT.js → links-wWNc9Uat.js} +1 -1
- package/core/built/admin/assets/{list-filter-DPE4Xj2T.js → list-filter-3EF6cVg-.js} +1 -1
- package/core/built/admin/assets/{lucide-react-ClQ3Iy7l.js → lucide-react-DtMIZssr.js} +214 -214
- package/core/built/admin/assets/{main-layout-DY96wK-_.js → main-layout-BFYhCrLn.js} +1 -1
- package/core/built/admin/assets/{message-square-text-Dd1XS5-H.js → message-square-text-BDZtUW-2.js} +1 -1
- package/core/built/admin/assets/{minus-CyEc3BE5.js → minus-CSphShdJ.js} +1 -1
- package/core/built/admin/assets/modals-CDWP04Iy.js +77 -0
- package/core/built/admin/assets/{moderation-B0fdmlig.js → moderation-qcng2_lB.js} +1 -1
- package/core/built/admin/assets/{newsletter-Byg3ARa5.js → newsletter-R-IYcV4M.js} +1 -1
- package/core/built/admin/assets/{newsletters-DbH39vgA.js → newsletters-BB4e24i1.js} +1 -1
- package/core/built/admin/assets/{note-Cwy-rIAF.js → note-B_bpRX66.js} +1 -1
- package/core/built/admin/assets/overview-Nh-IoP-v.js +1 -0
- package/core/built/admin/assets/{pagemenu-CkzsZrHC.js → pagemenu-Cd45frnF.js} +1 -1
- package/core/built/admin/assets/{post-analytics-context-BLkup0Xh.js → post-analytics-context-BST4bzps.js} +1 -1
- package/core/built/admin/assets/post-analytics-header-DAZPp6M8.js +1 -0
- package/core/built/admin/assets/{post-analytics-aA-nG9Fq.js → post-analytics-jHZOhQ8L.js} +1 -1
- package/core/built/admin/assets/{post-share-modal-CkvJtrRw.js → post-share-modal-D1JQfuYx.js} +1 -1
- package/core/built/admin/assets/posts/{comments-Bn_vn_sb.mjs → comments-C0ntS6jH.mjs} +678 -692
- package/core/built/admin/assets/posts/{dialog-CKPcMrj7.mjs → dialog-CXEmd-rC.mjs} +3 -3
- package/core/built/admin/assets/posts/{empty-indicator-kkrhP6K_.mjs → empty-indicator-CY1NEQZt.mjs} +2 -2
- package/core/built/admin/assets/posts/{filters-DHsxxy0F.mjs → filters-CWWDQAf0.mjs} +6 -6
- package/core/built/admin/assets/posts/{growth-D7ACh-oR.mjs → growth-DUnL-W24.mjs} +20 -19
- package/core/built/admin/assets/posts/{heading-BrKVbOxA.mjs → heading-DZWin3nG.mjs} +2 -2
- package/core/built/admin/assets/posts/{hooks-BBEMuLiW.mjs → hooks-DQYjPsLg.mjs} +2 -2
- package/core/built/admin/assets/posts/{index-C0rRguZx.mjs → index-BiGQFQkQ.mjs} +9 -9
- package/core/built/admin/assets/posts/{kpis-1o524OIK.mjs → kpis-DNnkyd0U.mjs} +10 -10
- package/core/built/admin/assets/posts/{links-JpeATx1f.mjs → links-D3nSZFlJ.mjs} +4 -4
- package/core/built/admin/assets/posts/{loading-indicator-BHAmSf8j.mjs → loading-indicator-CZQmPRvv.mjs} +3 -3
- package/core/built/admin/assets/posts/{main-layout-BTItAOQE.mjs → main-layout-D5WnaGr4.mjs} +2 -2
- package/core/built/admin/assets/posts/{newsletter-CQdsCEHv.mjs → newsletter-C5eikVBq.mjs} +13 -13
- package/core/built/admin/assets/posts/{overview-sYh4JN1D.mjs → overview-C5mCMPJY.mjs} +113 -112
- package/core/built/admin/assets/posts/{post-analytics-DtLt2SWx.mjs → post-analytics-Cc2NCQis.mjs} +6 -6
- package/core/built/admin/assets/posts/{post-analytics-context-CB1yM9fk.mjs → post-analytics-context-qXWjDzSt.mjs} +44 -41
- package/core/built/admin/assets/posts/{post-analytics-header-BYaWuL9W.mjs → post-analytics-header-QGsYyvhA.mjs} +11 -11
- package/core/built/admin/assets/posts/{post-share-modal-V0HTOBaf.mjs → post-share-modal-B9Q7FJsH.mjs} +4 -4
- package/core/built/admin/assets/posts/posts-C2SKGLoU.mjs +17 -0
- package/core/built/admin/assets/posts/posts.js +1 -1
- package/core/built/admin/assets/posts/{search-CLjC37AT.mjs → search-C8k0TFkh.mjs} +2 -2
- package/core/built/admin/assets/posts/{separator-KNoTIaJx.mjs → separator-CJnnsW1a.mjs} +5 -5
- package/core/built/admin/assets/posts/{sheet-DBg_SCDt.mjs → sheet-HDzKgNHc.mjs} +3 -3
- package/core/built/admin/assets/posts/{skeleton-DvsoolWu.mjs → skeleton-BlZGKNzB.mjs} +3 -3
- package/core/built/admin/assets/posts/{source-icon-OmRaTU2G.mjs → source-icon-DjBIjtaY.mjs} +3 -3
- package/core/built/admin/assets/posts/{stats-BC2DzntY.mjs → stats-BRVHejqx.mjs} +4 -4
- package/core/built/admin/assets/posts/{table-CxX9OKAj.mjs → table-D7AEpPWL.mjs} +2 -2
- package/core/built/admin/assets/posts/{tabs-B1jw7cBi.mjs → tabs-RcpmzDgr.mjs} +10 -10
- package/core/built/admin/assets/posts/{tags-BitrLT_j.mjs → tags-8k1xw8R8.mjs} +2 -2
- package/core/built/admin/assets/posts/{tags-BBilTo1a.mjs → tags-DNY2rBlf.mjs} +11 -11
- package/core/built/admin/assets/posts/{use-infinite-virtual-scroll-DaijA1ao.mjs → use-infinite-virtual-scroll-CMiIpcDA.mjs} +3 -3
- package/core/built/admin/assets/posts/{web-CKmyC4Xj.mjs → web-BCl5J6bB.mjs} +15 -15
- package/core/built/admin/assets/{posts-DDkuYoN7.js → posts-DFiJPOft.js} +1 -1
- package/core/built/admin/assets/{repeat-B-SL0yPM.js → repeat-Smml9n0k.js} +1 -1
- package/core/built/admin/assets/{reply-BdCPoUQ9.js → reply-CooY4lmk.js} +1 -1
- package/core/built/admin/assets/{select-C7aNW8QS.js → select-WwMsbBbg.js} +1 -1
- package/core/built/admin/assets/{settings-D-dhma2e.js → settings-CQEhPDQU.js} +4 -4
- package/core/built/admin/assets/{settings-Bzy1GNfD.js → settings-CxWtvcUf.js} +1 -1
- package/core/built/admin/assets/{sort-button-Dv8vjh13.js → sort-button-DFr8vezl.js} +1 -1
- package/core/built/admin/assets/{source-icon-DTz4isLK.js → source-icon-VpYWpwYb.js} +1 -1
- package/core/built/admin/assets/{sprout-BwLQTzMf.js → sprout-DRqlFJSK.js} +1 -1
- package/core/built/admin/assets/{square-YF1YE9ex.js → square-CwHQ9sJ2.js} +1 -1
- package/core/built/admin/assets/stats/audience-Caf7BjaU.mjs +269 -0
- package/core/built/admin/assets/stats/{url-helpers-Drq3xg0l.mjs → content-helpers-MbtAvUJh.mjs} +83 -106
- package/core/built/admin/assets/stats/{index-CcCyLMxL.mjs → index-BGqKbF1D.mjs} +8 -8
- package/core/built/admin/assets/stats/{index-DXU2rE9t.mjs → index-BTjfXOi6.mjs} +30 -30
- package/core/built/admin/assets/stats/{index-K7ASx7EG.mjs → index-ChjIxhHy.mjs} +5 -5
- package/core/built/admin/assets/stats/{index-D5mlMG4l.mjs → index-DMkZbbZs.mjs} +14 -14
- package/core/built/admin/assets/stats/{index-CUuQaROI.mjs → index-wT0OIw_N.mjs} +355 -335
- package/core/built/admin/assets/stats/{sort-button-CELUx6Zp.mjs → sort-button-B8n8fYMi.mjs} +23 -23
- package/core/built/admin/assets/stats/{stats-d_u_in4l.mjs → stats-CGH-0JNs.mjs} +120 -119
- package/core/built/admin/assets/stats/stats.js +1 -1
- package/core/built/admin/assets/stats/{tabs-3wLZsy0v.mjs → tabs-EQCUj3Y9.mjs} +19 -19
- package/core/built/admin/assets/stats/{use-growth-stats-28Sr42va.mjs → use-growth-stats--CIfag21.mjs} +3 -3
- package/core/built/admin/assets/{stats-C5ad0fgQ.js → stats-lnFiOQZx.js} +1 -1
- package/core/built/admin/assets/{stats-view-BvkxPYNX.js → stats-view-BJVawuIv.js} +1 -1
- package/core/built/admin/assets/{step-1-D7_s-D99.js → step-1-Bx8MiQVF.js} +1 -1
- package/core/built/admin/assets/{step-2-B94Yf7FF.js → step-2-CLLXppER.js} +1 -1
- package/core/built/admin/assets/{step-3-DswXYYf4.js → step-3-C5WrQe8u.js} +2 -2
- package/core/built/admin/assets/{table-D30IXfUP.js → table-2waWpIF5.js} +1 -1
- package/core/built/admin/assets/{tabs-CjNdfW0y.js → tabs-CBD0hW8V.js} +1 -1
- package/core/built/admin/assets/{tags-B0ux9_dT.js → tags-Bgw5Hrb5.js} +1 -1
- package/core/built/admin/assets/{tags-PGeGAafJ.js → tags-CKrBptuC.js} +1 -1
- package/core/built/admin/assets/{tiers-BaXK0JoI.js → tiers-CO-pz1FX.js} +1 -1
- package/core/built/admin/assets/{toggle-group-DdY8HF3Y.js → toggle-group-BXAZzvJ9.js} +1 -1
- package/core/built/admin/assets/{topic-filter-Boh22uGD.js → topic-filter-U3qUH2P_.js} +1 -1
- package/core/built/admin/assets/{trash-D7ZWrnDq.js → trash-CJY1Wro_.js} +1 -1
- package/core/built/admin/assets/{use-growth-stats-Bg0nE0WG.js → use-growth-stats-BrLZI7da.js} +1 -1
- package/core/built/admin/assets/{use-infinite-virtual-scroll-DoeI5IY-.js → use-infinite-virtual-scroll-CiRn3kpz.js} +2 -2
- package/core/built/admin/assets/{use-simple-pagination-BJzBULR3.js → use-simple-pagination-CskJ0MDP.js} +1 -1
- package/core/built/admin/assets/{user-round-check-BLc3L-ei.js → user-round-check-zOuzV3OS.js} +1 -1
- package/core/built/admin/assets/{wallet-cards-xX4QZik7.js → wallet-cards-ddLuIN-b.js} +1 -1
- package/core/built/admin/assets/{web-DQ2qBymm.js → web-CGbkZWn3.js} +1 -1
- package/core/built/admin/index.html +6 -5
- package/core/frontend/services/theme-engine/i18n/i18n.js +9 -14
- package/core/server/api/endpoints/settings-public.js +3 -1
- package/core/server/api/endpoints/utils/serializers/input/settings.js +6 -1
- package/core/server/data/migrations/versions/6.19/2026-02-10-12-00-00-add-transistor-portal-settings.js +39 -0
- package/core/server/data/schema/default-settings/default-settings.json +28 -0
- package/core/server/data/schema/schema.js +2 -2
- package/core/server/data/seeders/importers/offers-importer.js +2 -2
- package/core/server/data/tinybird/endpoints/api_top_pages_router.pipe +28 -0
- package/core/server/data/tinybird/endpoints/api_top_pages_v3.pipe +8 -4
- package/core/server/data/tinybird/tests/api_top_pages_router.yaml +74 -0
- package/core/server/services/comments/comments-service-emails.js +1 -4
- package/core/server/services/email-service/email-templates/partials/styles.hbs +43 -0
- package/core/server/services/koenig/node-renderers/transistor-renderer.js +23 -17
- package/core/server/services/members/members-api/repositories/member-repository.js +30 -6
- package/core/server/services/members/members-api/services/next-payment-calculator.js +28 -20
- package/core/server/services/members/members-api/services/payments-service.js +1 -1
- package/core/server/services/members/members-api/utils/add-calendar-months.js +49 -0
- package/core/server/services/offers/application/offer-mapper.js +2 -2
- package/core/server/services/offers/domain/models/offer-amount.js +16 -0
- package/core/server/services/offers/domain/models/offer-duration.js +3 -4
- package/core/server/services/offers/domain/models/offer-type.js +5 -3
- package/core/server/services/offers/domain/models/offer.js +8 -1
- package/core/server/services/staff/staff-service-emails.js +2 -0
- package/core/server/services/stripe/stripe-api.js +19 -0
- package/core/shared/config/defaults.json +1 -1
- package/core/shared/labs.js +0 -1
- package/core/shared/settings-cache/cache-manager.js +8 -0
- package/core/shared/settings-cache/public.js +5 -0
- package/package.json +5 -5
- package/yarn.lock +4 -4
- package/components/tryghost-i18n-6.18.2.tgz +0 -0
- package/components/tryghost-parse-email-address-6.18.2.tgz +0 -0
- package/core/built/admin/assets/audience-CJHVR7kD.js +0 -1
- package/core/built/admin/assets/comments-CPd_iCc3.js +0 -1
- package/core/built/admin/assets/index-B2yksBz4.js +0 -13
- package/core/built/admin/assets/index-Cl_EPbQ2.js +0 -1
- package/core/built/admin/assets/index-D_sGUCda.css +0 -1
- package/core/built/admin/assets/modals-C06GcVIm.js +0 -77
- package/core/built/admin/assets/overview-CVMLGrVt.js +0 -1
- package/core/built/admin/assets/post-analytics-header-D9srAPT5.js +0 -1
- package/core/built/admin/assets/posts/posts-DeQT3knv.mjs +0 -21
- package/core/built/admin/assets/stats/audience-BWqU7WWT.mjs +0 -245
- package/core/built/admin/assets/url-helpers-mt6MBIi0.js +0 -1
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import { c as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
12
|
-
import {
|
|
13
|
-
import { S as
|
|
14
|
-
import {
|
|
15
|
-
const
|
|
16
|
-
const { postId: s } =
|
|
1
|
+
import { c as J, d as V, a as g, j as e, f as T, e as y, g as ie, h as le, i as ne, k as q, s as ce, b as oe } from "./index-BiGQFQkQ.mjs";
|
|
2
|
+
import { u as de, c as me, D as he } from "./growth-DUnL-W24.mjs";
|
|
3
|
+
import { K as R, a as I, b as D, c as S } from "./stats-BRVHejqx.mjs";
|
|
4
|
+
import { B as z, H as X } from "./heading-DZWin3nG.mjs";
|
|
5
|
+
import { C as E, a as $, b as M, M as xe, c as C, K as A, d as K, e as O, G as U, u as Q, h as ue, i as pe, P as je, f as fe, S as ge } from "./post-analytics-header-QGsYyvhA.mjs";
|
|
6
|
+
import { D as ve, a as be, b as Ne, c as ye, d as we, e as ke, f as Ce, g as Le } from "./tabs-RcpmzDgr.mjs";
|
|
7
|
+
import { B as W } from "./loading-indicator-CZQmPRvv.mjs";
|
|
8
|
+
import { S as P } from "./separator-CJnnsW1a.mjs";
|
|
9
|
+
import { u as _e, p as Te, N as Re, c as Ie } from "./links-D3nSZFlJ.mjs";
|
|
10
|
+
import { L as De } from "./post-share-modal-B9Q7FJsH.mjs";
|
|
11
|
+
import { G as Se, S as Ae, K as Ke } from "./kpis-DNnkyd0U.mjs";
|
|
12
|
+
import { E as Oe } from "./empty-indicator-CY1NEQZt.mjs";
|
|
13
|
+
import { u as Z, S as Pe } from "./post-analytics-context-qXWjDzSt.mjs";
|
|
14
|
+
import { S as Y } from "./skeleton-BlZGKNzB.mjs";
|
|
15
|
+
const Ve = ({ post: d, isNewsletterStatsLoading: n, isWebShown: u }) => {
|
|
16
|
+
const { postId: s } = J(), t = V(), r = g(() => {
|
|
17
17
|
var v, b, N;
|
|
18
18
|
const o = ((v = d.email) == null ? void 0 : v.opened_count) || 0, i = ((b = d.email) == null ? void 0 : b.email_count) || 0, x = ((N = d.count) == null ? void 0 : N.clicks) || 0;
|
|
19
19
|
return {
|
|
@@ -23,11 +23,11 @@ const Oe = ({ post: d, isNewsletterStatsLoading: n, isWebShown: u }) => {
|
|
|
23
23
|
clickedRate: i > 0 ? x / i : 0,
|
|
24
24
|
sent: i
|
|
25
25
|
};
|
|
26
|
-
}, [d]), { data: l } =
|
|
26
|
+
}, [d]), { data: l } = _e({
|
|
27
27
|
searchParams: {
|
|
28
28
|
filter: `post_id:'${s}'`
|
|
29
29
|
}
|
|
30
|
-
}), p =
|
|
30
|
+
}), p = g(() => Te(l), [l]), m = [
|
|
31
31
|
{ datatype: "Clicked", value: r.clickedRate, fill: "url(#gradientTeal)", color: "hsl(var(--chart-teal))" },
|
|
32
32
|
{ datatype: "Opened", value: r.openedRate, fill: "url(#gradientBlue)", color: "hsl(var(--chart-blue))" }
|
|
33
33
|
], a = {
|
|
@@ -41,41 +41,41 @@ const Oe = ({ post: d, isNewsletterStatsLoading: n, isWebShown: u }) => {
|
|
|
41
41
|
label: "Opened"
|
|
42
42
|
}
|
|
43
43
|
}, c = d.email_only || !u;
|
|
44
|
-
return /* @__PURE__ */ e.jsxs(
|
|
44
|
+
return /* @__PURE__ */ e.jsxs(E, { className: `group/datalist overflow-hidden ${c && "col-span-2"}`, children: [
|
|
45
45
|
/* @__PURE__ */ e.jsxs("div", { className: "relative flex items-center justify-between gap-6", children: [
|
|
46
|
-
/* @__PURE__ */ e.jsx(
|
|
47
|
-
/* @__PURE__ */ e.jsx(
|
|
46
|
+
/* @__PURE__ */ e.jsx($, { children: /* @__PURE__ */ e.jsxs(M, { className: "flex items-center gap-1.5 text-lg", children: [
|
|
47
|
+
/* @__PURE__ */ e.jsx(xe, { size: 16, strokeWidth: 1.5 }),
|
|
48
48
|
"Newsletter performance"
|
|
49
49
|
] }) }),
|
|
50
|
-
/* @__PURE__ */ e.jsx(
|
|
50
|
+
/* @__PURE__ */ e.jsx(z, { className: "absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100", size: "sm", variant: "outline", onClick: () => {
|
|
51
51
|
t(`/posts/analytics/${s}/newsletter`);
|
|
52
52
|
}, children: "View more" })
|
|
53
53
|
] }),
|
|
54
|
-
n ? /* @__PURE__ */ e.jsx(
|
|
54
|
+
n ? /* @__PURE__ */ e.jsx(C, { children: /* @__PURE__ */ e.jsx("div", { className: "mx-auto flex min-h-[250px] items-center justify-center xl:size-full", children: /* @__PURE__ */ e.jsx(W, {}) }) }) : /* @__PURE__ */ e.jsxs(C, { className: `${c && "grid grid-cols-2"}`, children: [
|
|
55
55
|
/* @__PURE__ */ e.jsxs("div", { className: `${c && "border-r pr-6"}`, children: [
|
|
56
56
|
/* @__PURE__ */ e.jsxs("div", { className: "grid grid-cols-2 gap-6", children: [
|
|
57
|
-
/* @__PURE__ */ e.jsx(
|
|
58
|
-
/* @__PURE__ */ e.jsx(
|
|
57
|
+
/* @__PURE__ */ e.jsx(A, { className: "group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0", children: /* @__PURE__ */ e.jsxs("div", { className: "flex grow flex-col gap-1.5 border-none pb-0", children: [
|
|
58
|
+
/* @__PURE__ */ e.jsx(K, { color: "hsl(var(--chart-blue))", children: "Open rate" }),
|
|
59
59
|
/* @__PURE__ */ e.jsx(
|
|
60
|
-
|
|
60
|
+
O,
|
|
61
61
|
{
|
|
62
|
-
value:
|
|
62
|
+
value: T(r.openedRate)
|
|
63
63
|
}
|
|
64
64
|
)
|
|
65
65
|
] }) }),
|
|
66
|
-
/* @__PURE__ */ e.jsx(
|
|
67
|
-
/* @__PURE__ */ e.jsx(
|
|
66
|
+
/* @__PURE__ */ e.jsx(A, { className: "group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0", children: /* @__PURE__ */ e.jsxs("div", { className: "flex grow flex-col gap-1.5 border-none pb-0", children: [
|
|
67
|
+
/* @__PURE__ */ e.jsx(K, { color: "hsl(var(--chart-teal))", children: "Click rate" }),
|
|
68
68
|
/* @__PURE__ */ e.jsx(
|
|
69
|
-
|
|
69
|
+
O,
|
|
70
70
|
{
|
|
71
|
-
value:
|
|
71
|
+
value: T(r.clickedRate)
|
|
72
72
|
}
|
|
73
73
|
)
|
|
74
74
|
] }) })
|
|
75
75
|
] }),
|
|
76
|
-
!c && /* @__PURE__ */ e.jsx(
|
|
76
|
+
!c && /* @__PURE__ */ e.jsx(P, {}),
|
|
77
77
|
/* @__PURE__ */ e.jsx("div", { className: "mx-auto my-6 h-[240px]", children: /* @__PURE__ */ e.jsx(
|
|
78
|
-
|
|
78
|
+
Re,
|
|
79
79
|
{
|
|
80
80
|
className: "pointer-events-none aspect-square h-[240px]",
|
|
81
81
|
config: a,
|
|
@@ -85,20 +85,20 @@ const Oe = ({ post: d, isNewsletterStatsLoading: n, isWebShown: u }) => {
|
|
|
85
85
|
) })
|
|
86
86
|
] }),
|
|
87
87
|
/* @__PURE__ */ e.jsxs("div", { className: `${c && "pl-6"}`, children: [
|
|
88
|
-
!c && /* @__PURE__ */ e.jsx(
|
|
88
|
+
!c && /* @__PURE__ */ e.jsx(P, {}),
|
|
89
89
|
/* @__PURE__ */ e.jsxs("div", { className: c ? "" : "pt-3", children: [
|
|
90
90
|
/* @__PURE__ */ e.jsxs("div", { className: `flex items-center justify-between gap-3 ${c ? "pb-3" : "py-3"}`, children: [
|
|
91
91
|
/* @__PURE__ */ e.jsx("span", { className: "font-medium text-muted-foreground", children: "Top clicked links in this email" }),
|
|
92
|
-
/* @__PURE__ */ e.jsx(
|
|
92
|
+
/* @__PURE__ */ e.jsx(X, { children: "Members" })
|
|
93
93
|
] }),
|
|
94
|
-
p.length > 0 ? /* @__PURE__ */ e.jsx(
|
|
94
|
+
p.length > 0 ? /* @__PURE__ */ e.jsx(ve, { className: "", children: /* @__PURE__ */ e.jsx(be, { children: p.slice(0, c ? 10 : 5).map((o) => {
|
|
95
95
|
const i = r.clicked > 0 ? o.count / r.clicked : 0;
|
|
96
|
-
return /* @__PURE__ */ e.jsxs(
|
|
97
|
-
/* @__PURE__ */ e.jsx(
|
|
96
|
+
return /* @__PURE__ */ e.jsxs(Ne, { children: [
|
|
97
|
+
/* @__PURE__ */ e.jsx(ye, { style: {
|
|
98
98
|
width: `${i ? Math.round(i * 100) : 0}%`
|
|
99
99
|
} }),
|
|
100
|
-
/* @__PURE__ */ e.jsx(
|
|
101
|
-
/* @__PURE__ */ e.jsx(
|
|
100
|
+
/* @__PURE__ */ e.jsx(we, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex items-center space-x-2 overflow-hidden", children: [
|
|
101
|
+
/* @__PURE__ */ e.jsx(De, { className: "shrink-0 text-muted-foreground", size: 16, strokeWidth: 1.5 }),
|
|
102
102
|
/* @__PURE__ */ e.jsx(
|
|
103
103
|
"a",
|
|
104
104
|
{
|
|
@@ -107,13 +107,13 @@ const Oe = ({ post: d, isNewsletterStatsLoading: n, isWebShown: u }) => {
|
|
|
107
107
|
rel: "noreferrer",
|
|
108
108
|
target: "_blank",
|
|
109
109
|
title: o.link.to,
|
|
110
|
-
children:
|
|
110
|
+
children: Ie(o.link.to, !0)
|
|
111
111
|
}
|
|
112
112
|
)
|
|
113
113
|
] }) }),
|
|
114
|
-
/* @__PURE__ */ e.jsxs(
|
|
115
|
-
/* @__PURE__ */ e.jsx(
|
|
116
|
-
/* @__PURE__ */ e.jsx(
|
|
114
|
+
/* @__PURE__ */ e.jsxs(ke, { children: [
|
|
115
|
+
/* @__PURE__ */ e.jsx(Ce, { children: y(o.count || 0) }),
|
|
116
|
+
/* @__PURE__ */ e.jsx(Le, { children: T(i) })
|
|
117
117
|
] })
|
|
118
118
|
] }, o.link.link_id);
|
|
119
119
|
}) }) }) : /* @__PURE__ */ e.jsx("div", { className: "py-20 text-center text-sm text-gray-700", children: "You have no links in your post." })
|
|
@@ -121,32 +121,32 @@ const Oe = ({ post: d, isNewsletterStatsLoading: n, isWebShown: u }) => {
|
|
|
121
121
|
] })
|
|
122
122
|
] })
|
|
123
123
|
] });
|
|
124
|
-
},
|
|
125
|
-
const { postId: l } =
|
|
126
|
-
return /* @__PURE__ */ e.jsx(e.Fragment, { children: /* @__PURE__ */ e.jsxs(
|
|
124
|
+
}, ze = ({ chartData: d, range: n, isLoading: u, visitors: s, sourcesData: t, isNewsletterShown: r = !0 }) => {
|
|
125
|
+
const { postId: l } = J(), p = V(), { data: m } = Z(), a = m == null ? void 0 : m.url, c = m == null ? void 0 : m.icon, o = g(() => t ? t.reduce((i, x) => i + Number(x.visits || 0), 0) : 0, [t]);
|
|
126
|
+
return /* @__PURE__ */ e.jsx(e.Fragment, { children: /* @__PURE__ */ e.jsxs(E, { className: `group/datalist overflow-hidden ${!r && "col-span-2"}`, "data-testid": "web-performance", children: [
|
|
127
127
|
/* @__PURE__ */ e.jsxs("div", { className: "relative flex items-center justify-between gap-6", children: [
|
|
128
|
-
/* @__PURE__ */ e.jsx(
|
|
129
|
-
/* @__PURE__ */ e.jsx(
|
|
128
|
+
/* @__PURE__ */ e.jsx($, { children: /* @__PURE__ */ e.jsxs(M, { className: "flex items-center gap-1.5 text-lg", children: [
|
|
129
|
+
/* @__PURE__ */ e.jsx(U, { size: 16, strokeWidth: 1.5 }),
|
|
130
130
|
"Web performance"
|
|
131
131
|
] }) }),
|
|
132
|
-
/* @__PURE__ */ e.jsx(
|
|
132
|
+
/* @__PURE__ */ e.jsx(z, { className: "absolute right-6 translate-x-10 opacity-0 transition-all duration-300 group-hover/datalist:translate-x-0 group-hover/datalist:opacity-100", size: "sm", variant: "outline", onClick: () => {
|
|
133
133
|
p(`/posts/analytics/${l}/web`);
|
|
134
134
|
}, children: "View more" })
|
|
135
135
|
] }),
|
|
136
|
-
/* @__PURE__ */ e.jsxs(
|
|
136
|
+
/* @__PURE__ */ e.jsxs(C, { children: [
|
|
137
137
|
/* @__PURE__ */ e.jsxs("div", { children: [
|
|
138
|
-
/* @__PURE__ */ e.jsx(
|
|
139
|
-
/* @__PURE__ */ e.jsx(
|
|
138
|
+
/* @__PURE__ */ e.jsx(A, { className: "group relative flex grow flex-row items-start justify-between gap-5 border-none px-0 pt-0", "data-testid": "unique-visitors", children: /* @__PURE__ */ e.jsxs("div", { className: "flex grow flex-col gap-1.5 border-none pb-0", children: [
|
|
139
|
+
/* @__PURE__ */ e.jsx(K, { color: "hsl(var(--chart-blue))", children: "Unique visitors" }),
|
|
140
140
|
/* @__PURE__ */ e.jsx(
|
|
141
|
-
|
|
141
|
+
O,
|
|
142
142
|
{
|
|
143
143
|
value: y(s)
|
|
144
144
|
}
|
|
145
145
|
)
|
|
146
146
|
] }) }),
|
|
147
|
-
/* @__PURE__ */ e.jsx(
|
|
148
|
-
/* @__PURE__ */ e.jsx("div", { className: "max-h-[288px] py-6 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500", children: u ? /* @__PURE__ */ e.jsx("div", { className: "flex h-[16vw] min-h-[240px] items-center justify-center", children: /* @__PURE__ */ e.jsx(
|
|
149
|
-
|
|
147
|
+
/* @__PURE__ */ e.jsx(P, {}),
|
|
148
|
+
/* @__PURE__ */ e.jsx("div", { className: "max-h-[288px] py-6 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500", children: u ? /* @__PURE__ */ e.jsx("div", { className: "flex h-[16vw] min-h-[240px] items-center justify-center", children: /* @__PURE__ */ e.jsx(W, {}) }) : /* @__PURE__ */ e.jsx(
|
|
149
|
+
Se,
|
|
150
150
|
{
|
|
151
151
|
className: "aspect-auto h-[240px] w-full",
|
|
152
152
|
color: "hsl(var(--chart-blue))",
|
|
@@ -160,10 +160,10 @@ const Oe = ({ post: d, isNewsletterStatsLoading: n, isWebShown: u }) => {
|
|
|
160
160
|
r && /* @__PURE__ */ e.jsxs("div", { className: r ? "border-t pt-3" : "-mt-3", children: [
|
|
161
161
|
/* @__PURE__ */ e.jsx("div", { children: /* @__PURE__ */ e.jsxs("div", { className: "flex items-center justify-between gap-3 py-3", children: [
|
|
162
162
|
/* @__PURE__ */ e.jsx("span", { className: "font-medium text-muted-foreground", children: "How readers found this post" }),
|
|
163
|
-
/* @__PURE__ */ e.jsx(
|
|
163
|
+
/* @__PURE__ */ e.jsx(X, { children: "Visitors" })
|
|
164
164
|
] }) }),
|
|
165
165
|
t && t.length > 0 ? /* @__PURE__ */ e.jsx(
|
|
166
|
-
|
|
166
|
+
Ae,
|
|
167
167
|
{
|
|
168
168
|
data: t,
|
|
169
169
|
range: n,
|
|
@@ -174,24 +174,24 @@ const Oe = ({ post: d, isNewsletterStatsLoading: n, isWebShown: u }) => {
|
|
|
174
174
|
totalVisitors: o
|
|
175
175
|
}
|
|
176
176
|
) : /* @__PURE__ */ e.jsx(
|
|
177
|
-
|
|
177
|
+
Oe,
|
|
178
178
|
{
|
|
179
179
|
className: "h-full py-10",
|
|
180
180
|
description: "Once someone visits this post, sources will show here",
|
|
181
181
|
title: "No visitors since you published this post",
|
|
182
|
-
children: /* @__PURE__ */ e.jsx(
|
|
182
|
+
children: /* @__PURE__ */ e.jsx(U, { strokeWidth: 1.5 })
|
|
183
183
|
}
|
|
184
184
|
)
|
|
185
185
|
] })
|
|
186
186
|
] })
|
|
187
187
|
] }) });
|
|
188
|
-
},
|
|
189
|
-
var
|
|
190
|
-
const d =
|
|
188
|
+
}, Ze = () => {
|
|
189
|
+
var H;
|
|
190
|
+
const d = V(), { statsConfig: n, isLoading: u, post: s, isPostLoading: t, postId: r } = Z(), { totals: l, isLoading: p, currencySymbol: m } = de(r), { appSettings: a } = ie(), { emailTrackClicks: c, emailTrackOpens: o } = (a == null ? void 0 : a.analytics) || {}, i = g(() => s != null && s.published_at ? le(s.published_at) : Pe.ALL_TIME.value, [s == null ? void 0 : s.published_at]), { startDate: x, endDate: v, timezone: b } = ne(i), N = g(() => {
|
|
191
191
|
const h = {
|
|
192
192
|
site_uuid: (n == null ? void 0 : n.id) || "",
|
|
193
|
-
date_from:
|
|
194
|
-
date_to:
|
|
193
|
+
date_from: q(x),
|
|
194
|
+
date_to: q(v),
|
|
195
195
|
timezone: b,
|
|
196
196
|
post_uuid: ""
|
|
197
197
|
};
|
|
@@ -199,87 +199,88 @@ const Oe = ({ post: d, isNewsletterStatsLoading: n, isWebShown: u }) => {
|
|
|
199
199
|
...h,
|
|
200
200
|
post_uuid: s.uuid
|
|
201
201
|
} : h;
|
|
202
|
-
}, [t, s, n == null ? void 0 : n.id, x, v, b]), { data: j, loading:
|
|
202
|
+
}, [t, s, n == null ? void 0 : n.id, x, v, b]), { data: j, loading: G } = Q({
|
|
203
203
|
endpoint: "api_kpis",
|
|
204
204
|
statsConfig: n || { id: "" },
|
|
205
205
|
params: N
|
|
206
|
-
}),
|
|
207
|
-
const
|
|
208
|
-
return h + (isNaN(
|
|
209
|
-
}, 0) : 0, [j]), w =
|
|
210
|
-
const
|
|
206
|
+
}), ee = g(() => j != null && j.length ? j.reduce((h, f) => {
|
|
207
|
+
const F = Number(f.visits);
|
|
208
|
+
return h + (isNaN(F) ? 0 : F);
|
|
209
|
+
}, 0) : 0, [j]), w = Ke.visits, se = (H = ce(j || [], i, w.dataKey, "sum")) == null ? void 0 : H.map((h) => {
|
|
210
|
+
const f = Number(h[w.dataKey]);
|
|
211
211
|
return {
|
|
212
212
|
date: String(h.date),
|
|
213
|
-
value:
|
|
214
|
-
formattedValue: w.formatter(
|
|
213
|
+
value: f,
|
|
214
|
+
formattedValue: w.formatter(f),
|
|
215
215
|
label: w.label
|
|
216
216
|
};
|
|
217
|
-
}), { data:
|
|
217
|
+
}), { data: ae, loading: te } = Q({
|
|
218
218
|
endpoint: "api_top_sources",
|
|
219
219
|
statsConfig: n || { id: "" },
|
|
220
220
|
params: N
|
|
221
|
-
}),
|
|
222
|
-
return
|
|
223
|
-
!t && s &&
|
|
224
|
-
}, [t, s, a == null ? void 0 : a.analytics.webAnalytics, d, r]), t ? /* @__PURE__ */ e.jsx(
|
|
225
|
-
/* @__PURE__ */ e.jsx(
|
|
226
|
-
/* @__PURE__ */ e.jsx(
|
|
227
|
-
|
|
228
|
-
|
|
221
|
+
}), B = u || p || t || G, re = t || u || G, L = ue(s) && o && c, _ = !(s != null && s.email_only) && (a == null ? void 0 : a.analytics.webAnalytics), k = a == null ? void 0 : a.analytics.membersTrackSources;
|
|
222
|
+
return oe(() => {
|
|
223
|
+
!t && s && pe(s) && !(a != null && a.analytics.webAnalytics) && k && d(`/posts/analytics/${r}/growth`, { replace: !0 });
|
|
224
|
+
}, [t, s, a == null ? void 0 : a.analytics.webAnalytics, d, r, k]), t ? /* @__PURE__ */ e.jsx(W, {}) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
225
|
+
/* @__PURE__ */ e.jsx(je, { currentTab: "Overview" }),
|
|
226
|
+
/* @__PURE__ */ e.jsx(fe, { children: /* @__PURE__ */ e.jsxs("div", { className: "flex flex-col gap-6 lg:grid lg:grid-cols-2", children: [
|
|
227
|
+
_ && /* @__PURE__ */ e.jsx(
|
|
228
|
+
ze,
|
|
229
229
|
{
|
|
230
|
-
chartData:
|
|
231
|
-
isLoading:
|
|
232
|
-
isNewsletterShown:
|
|
230
|
+
chartData: se,
|
|
231
|
+
isLoading: re || B || te,
|
|
232
|
+
isNewsletterShown: L,
|
|
233
233
|
range: i,
|
|
234
|
-
sourcesData:
|
|
235
|
-
visitors:
|
|
234
|
+
sourcesData: ae,
|
|
235
|
+
visitors: ee
|
|
236
236
|
}
|
|
237
237
|
),
|
|
238
|
-
|
|
239
|
-
|
|
238
|
+
L && /* @__PURE__ */ e.jsx(
|
|
239
|
+
Ve,
|
|
240
240
|
{
|
|
241
241
|
isNewsletterStatsLoading: t,
|
|
242
|
-
isWebShown:
|
|
242
|
+
isWebShown: _,
|
|
243
243
|
post: s
|
|
244
244
|
}
|
|
245
245
|
),
|
|
246
|
-
/* @__PURE__ */ e.jsxs(
|
|
246
|
+
k && /* @__PURE__ */ e.jsxs(E, { className: "group col-span-2 overflow-hidden p-0", "data-testid": "growth", children: [
|
|
247
247
|
/* @__PURE__ */ e.jsxs("div", { className: "relative flex items-center justify-between gap-6", children: [
|
|
248
|
-
/* @__PURE__ */ e.jsx(
|
|
249
|
-
/* @__PURE__ */ e.jsx(
|
|
248
|
+
/* @__PURE__ */ e.jsx($, { children: /* @__PURE__ */ e.jsxs(M, { className: "flex items-center gap-1.5 text-lg", children: [
|
|
249
|
+
/* @__PURE__ */ e.jsx(ge, { size: 16, strokeWidth: 1.5 }),
|
|
250
250
|
"Growth"
|
|
251
251
|
] }) }),
|
|
252
|
-
/* @__PURE__ */ e.jsx(
|
|
252
|
+
/* @__PURE__ */ e.jsx(z, { className: "absolute right-6 translate-x-10 opacity-0 transition-all duration-200 group-hover:translate-x-0 group-hover:opacity-100", size: "sm", variant: "outline", onClick: () => {
|
|
253
253
|
d(`/posts/analytics/${r}/growth`);
|
|
254
254
|
}, children: "View more" })
|
|
255
255
|
] }),
|
|
256
|
-
/* @__PURE__ */ e.jsx(
|
|
257
|
-
/* @__PURE__ */ e.jsx(
|
|
258
|
-
/* @__PURE__ */ e.jsx(
|
|
259
|
-
] },
|
|
260
|
-
/* @__PURE__ */ e.jsxs(
|
|
261
|
-
/* @__PURE__ */ e.jsx(
|
|
262
|
-
/* @__PURE__ */ e.jsx(
|
|
256
|
+
/* @__PURE__ */ e.jsx(C, { className: "flex flex-col gap-6 px-0 md:grid md:grid-cols-3 md:items-stretch md:gap-0", children: B ? Array.from({ length: 3 }, (h, f) => /* @__PURE__ */ e.jsxs("div", { className: "h-[98px] gap-1 border-r px-6 py-5 last:border-r-0", children: [
|
|
257
|
+
/* @__PURE__ */ e.jsx(Y, { className: "w-2/3" }),
|
|
258
|
+
/* @__PURE__ */ e.jsx(Y, { className: "h-7 w-12" })
|
|
259
|
+
] }, f)) : /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
260
|
+
/* @__PURE__ */ e.jsxs(R, { className: "grow gap-1 py-0", children: [
|
|
261
|
+
/* @__PURE__ */ e.jsx(I, { children: "Free members" }),
|
|
262
|
+
/* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(S, { className: "text-[2.2rem]", children: y((l == null ? void 0 : l.free_members) || 0) }) })
|
|
263
263
|
] }),
|
|
264
264
|
(a == null ? void 0 : a.paidMembersEnabled) && /* @__PURE__ */ e.jsxs(e.Fragment, { children: [
|
|
265
|
-
/* @__PURE__ */ e.jsxs(
|
|
266
|
-
/* @__PURE__ */ e.jsx(
|
|
267
|
-
/* @__PURE__ */ e.jsx(
|
|
265
|
+
/* @__PURE__ */ e.jsxs(R, { className: "grow gap-1 py-0", children: [
|
|
266
|
+
/* @__PURE__ */ e.jsx(I, { children: "Paid members" }),
|
|
267
|
+
/* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsx(S, { className: "text-[2.2rem]", children: y((l == null ? void 0 : l.paid_members) || 0) }) })
|
|
268
268
|
] }),
|
|
269
|
-
/* @__PURE__ */ e.jsxs(
|
|
270
|
-
/* @__PURE__ */ e.jsx(
|
|
271
|
-
/* @__PURE__ */ e.jsx(
|
|
269
|
+
/* @__PURE__ */ e.jsxs(R, { className: "grow gap-1 py-0", children: [
|
|
270
|
+
/* @__PURE__ */ e.jsx(I, { children: "MRR impact" }),
|
|
271
|
+
/* @__PURE__ */ e.jsx(D, { children: /* @__PURE__ */ e.jsxs(S, { className: "text-[2.2rem]", children: [
|
|
272
272
|
m,
|
|
273
|
-
y(
|
|
273
|
+
y(me((l == null ? void 0 : l.mrr) || 0))
|
|
274
274
|
] }) })
|
|
275
275
|
] })
|
|
276
276
|
] })
|
|
277
277
|
] }) })
|
|
278
|
-
] })
|
|
278
|
+
] }),
|
|
279
|
+
!_ && !L && !k && /* @__PURE__ */ e.jsx(he, { className: "col-span-2 py-20" })
|
|
279
280
|
] }) })
|
|
280
281
|
] });
|
|
281
282
|
};
|
|
282
283
|
export {
|
|
283
|
-
|
|
284
|
+
Ze as default
|
|
284
285
|
};
|
|
285
|
-
//# sourceMappingURL=overview-
|
|
286
|
+
//# sourceMappingURL=overview-C5mCMPJY.mjs.map
|
package/core/built/admin/assets/posts/{post-analytics-DtLt2SWx.mjs → post-analytics-Cc2NCQis.mjs}
RENAMED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { j as u, u as b, a as L, b as x, R as i, O } from "./index-
|
|
2
|
-
import { M as C } from "./main-layout-
|
|
3
|
-
import { P as k } from "./post-share-modal-
|
|
4
|
-
import { u as T } from "./posts-
|
|
5
|
-
import { u as I } from "./post-analytics-context-
|
|
1
|
+
import { j as u, u as b, a as L, b as x, R as i, O } from "./index-BiGQFQkQ.mjs";
|
|
2
|
+
import { M as C } from "./main-layout-D5WnaGr4.mjs";
|
|
3
|
+
import { P as k } from "./post-share-modal-B9Q7FJsH.mjs";
|
|
4
|
+
import { u as T } from "./posts-C2SKGLoU.mjs";
|
|
5
|
+
import { u as I } from "./post-analytics-context-qXWjDzSt.mjs";
|
|
6
6
|
const U = ({ children: n }) => /* @__PURE__ */ u.jsx(C, { children: /* @__PURE__ */ u.jsx("div", { className: "grid w-full grow", children: /* @__PURE__ */ u.jsx("div", { className: "flex h-full flex-col px-8", children: n }) }) }), $ = () => {
|
|
7
7
|
var y;
|
|
8
8
|
const [n, r] = b(!1), [p, h] = b(null), [l, f] = b(null), { site: a } = I(), { data: g } = T({
|
|
@@ -96,4 +96,4 @@ const U = ({ children: n }) => /* @__PURE__ */ u.jsx(C, { children: /* @__PURE__
|
|
|
96
96
|
export {
|
|
97
97
|
G as default
|
|
98
98
|
};
|
|
99
|
-
//# sourceMappingURL=post-analytics-
|
|
99
|
+
//# sourceMappingURL=post-analytics-Cc2NCQis.mjs.map
|
|
@@ -1,30 +1,33 @@
|
|
|
1
|
-
import { E as
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
const
|
|
1
|
+
import { E as w, D as N, c as B, u as O, j as R } from "./index-BiGQFQkQ.mjs";
|
|
2
|
+
import { a as c } from "./hooks-DQYjPsLg.mjs";
|
|
3
|
+
import { u as U } from "./posts-C2SKGLoU.mjs";
|
|
4
|
+
const Y = "TinybirdTokenResponseType", x = {
|
|
5
5
|
refetchInterval: 120 * 60 * 1e3,
|
|
6
6
|
// 2 hours — tokens expire after 3 hours
|
|
7
7
|
refetchIntervalInBackground: !0,
|
|
8
8
|
staleTime: 110 * 60 * 1e3
|
|
9
9
|
// 110 minutes - shorter than refetch interval so automatic refresh works
|
|
10
|
-
},
|
|
11
|
-
dataType:
|
|
10
|
+
}, G = c({
|
|
11
|
+
dataType: Y,
|
|
12
12
|
path: "/tinybird/token/"
|
|
13
|
-
}),
|
|
14
|
-
...
|
|
13
|
+
}), j = (t = {}) => G({
|
|
14
|
+
...x,
|
|
15
15
|
...t
|
|
16
16
|
});
|
|
17
17
|
let v = !1;
|
|
18
|
-
const
|
|
18
|
+
const Q = (t = {}) => {
|
|
19
19
|
var a, o;
|
|
20
|
-
const { enabled: e = !0 } = t, s =
|
|
20
|
+
const { enabled: e = !0 } = t, s = j({ enabled: e }), n = (o = (a = s.data) == null ? void 0 : a.tinybird) == null ? void 0 : o.token, r = s.error;
|
|
21
21
|
return !s.isLoading && e && s.data && !n && !v && (console.warn("Tinybird analytics: No valid token received. Check your Tinybird configuration (workspaceId and adminToken must be non-empty strings)."), v = !0), {
|
|
22
22
|
token: n && typeof n == "string" ? n : void 0,
|
|
23
23
|
isLoading: s.isLoading,
|
|
24
24
|
error: r,
|
|
25
25
|
refetch: s.refetch
|
|
26
26
|
};
|
|
27
|
-
}, M = {
|
|
27
|
+
}, F = "ConfigResponseType", M = c({
|
|
28
|
+
dataType: F,
|
|
29
|
+
path: "/config/"
|
|
30
|
+
}), W = {
|
|
28
31
|
TODAY: { name: "Today", value: 1 },
|
|
29
32
|
LAST_7_DAYS: { name: "Last 7 days", value: 7 },
|
|
30
33
|
LAST_30_DAYS: { name: "Last 30 days", value: 31 },
|
|
@@ -32,7 +35,7 @@ const F = (t = {}) => {
|
|
|
32
35
|
YEAR_TO_DATE: { name: "Year to date", value: 366 },
|
|
33
36
|
LAST_12_MONTHS: { name: "Last 12 months", value: 12 * 31 },
|
|
34
37
|
ALL_TIME: { name: "All time", value: 1e3 }
|
|
35
|
-
},
|
|
38
|
+
}, tt = {
|
|
36
39
|
// Countries
|
|
37
40
|
US: "United States",
|
|
38
41
|
TWN: "Taiwan",
|
|
@@ -49,54 +52,54 @@ const F = (t = {}) => {
|
|
|
49
52
|
"bsky.app": "Bluesky",
|
|
50
53
|
"yahoo.com": "Yahoo",
|
|
51
54
|
"duckduckgo.com": "DuckDuckGo"
|
|
52
|
-
},
|
|
55
|
+
}, et = ["NULL", "ᴺᵁᴸᴸ", "", "Others", "Other"], i = {
|
|
53
56
|
PUBLIC: 1,
|
|
54
57
|
// 1
|
|
55
58
|
FREE: 2,
|
|
56
59
|
// 2
|
|
57
60
|
PAID: 4
|
|
58
61
|
// 4
|
|
59
|
-
},
|
|
62
|
+
}, st = i.PUBLIC | i.FREE | i.PAID, ot = [
|
|
60
63
|
{ name: "Public visitors", value: "undefined", bit: i.PUBLIC },
|
|
61
64
|
{ name: "Free members", value: "free", bit: i.FREE },
|
|
62
65
|
{ name: "Paid members", value: "paid", bit: i.PAID }
|
|
63
|
-
],
|
|
64
|
-
dataType:
|
|
66
|
+
], $ = "SettingsResponseType", q = c({
|
|
67
|
+
dataType: $,
|
|
65
68
|
path: "/settings/",
|
|
66
69
|
defaultSearchParams: {
|
|
67
70
|
group: "site,theme,private,members,portal,newsletter,email,labs,slack,unsplash,views,firstpromoter,editor,comments,analytics,announcement,pintura,donations,security,social_web,explore,transistor"
|
|
68
71
|
}
|
|
69
|
-
}),
|
|
70
|
-
dataType:
|
|
72
|
+
}), z = "SiteResponseType", H = c({
|
|
73
|
+
dataType: z,
|
|
71
74
|
path: "/site/"
|
|
72
|
-
}), L = N(void 0),
|
|
73
|
-
const t =
|
|
75
|
+
}), L = N(void 0), K = () => {
|
|
76
|
+
const t = w(L);
|
|
74
77
|
if (!t)
|
|
75
78
|
throw new Error("useGlobalData must be used within a PostAnalyticsProvider");
|
|
76
79
|
return t;
|
|
77
|
-
},
|
|
78
|
-
var
|
|
80
|
+
}, V = ({ children: t }) => {
|
|
81
|
+
var m, p, y, b, f, A, S;
|
|
79
82
|
const { postId: a } = B();
|
|
80
83
|
if (!a)
|
|
81
84
|
throw new Error("Post ID is required for PostAnalyticsProvider");
|
|
82
|
-
const o =
|
|
85
|
+
const o = M(), e = H(), [s, n] = O(W.LAST_30_DAYS.value), r = q(), d = !!((p = (m = o.data) == null ? void 0 : m.config) != null && p.stats), u = Q({ enabled: d }), { data: { posts: [_] } = { posts: [] }, isLoading: h } = U({
|
|
83
86
|
searchParams: {
|
|
84
87
|
filter: `id:${a}`,
|
|
85
88
|
include: "email,authors,tags,tiers,count.clicks,count.signups,count.paid_conversions,count.positive_feedback,count.negative_feedback,newsletter"
|
|
86
89
|
}
|
|
87
|
-
}),
|
|
88
|
-
if (
|
|
89
|
-
throw
|
|
90
|
-
const
|
|
90
|
+
}), g = [o, e, r], P = g.map((l) => l.error).find(Boolean), k = d ? u.error : null, T = P || k, E = g.some((l) => l.isLoading), I = d ? u.isLoading : !1, D = E || I;
|
|
91
|
+
if (T)
|
|
92
|
+
throw T;
|
|
93
|
+
const C = (y = e.data) != null && y.site ? {
|
|
91
94
|
url: e.data.site.url,
|
|
92
95
|
icon: e.data.site.icon,
|
|
93
96
|
title: e.data.site.title
|
|
94
97
|
} : void 0;
|
|
95
98
|
return /* @__PURE__ */ R.jsx(L.Provider, { value: {
|
|
96
99
|
data: (b = o.data) == null ? void 0 : b.config,
|
|
97
|
-
site:
|
|
100
|
+
site: C,
|
|
98
101
|
statsConfig: (A = (f = o.data) == null ? void 0 : f.config) == null ? void 0 : A.stats,
|
|
99
|
-
tinybirdToken:
|
|
102
|
+
tinybirdToken: u.token,
|
|
100
103
|
isLoading: D,
|
|
101
104
|
range: s,
|
|
102
105
|
setRange: n,
|
|
@@ -105,20 +108,20 @@ const F = (t = {}) => {
|
|
|
105
108
|
post: _,
|
|
106
109
|
isPostLoading: h
|
|
107
110
|
}, children: t });
|
|
108
|
-
},
|
|
111
|
+
}, at = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineProperty({
|
|
109
112
|
__proto__: null,
|
|
110
|
-
default:
|
|
111
|
-
useGlobalData:
|
|
113
|
+
default: V,
|
|
114
|
+
useGlobalData: K
|
|
112
115
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
113
116
|
export {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
117
|
+
st as A,
|
|
118
|
+
W as S,
|
|
119
|
+
et as U,
|
|
120
|
+
tt as a,
|
|
121
|
+
ot as b,
|
|
119
122
|
i as c,
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
+
Q as d,
|
|
124
|
+
at as p,
|
|
125
|
+
K as u
|
|
123
126
|
};
|
|
124
|
-
//# sourceMappingURL=post-analytics-context-
|
|
127
|
+
//# sourceMappingURL=post-analytics-context-qXWjDzSt.mjs.map
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { b as dT, c as YL, e as $L, j as XL, i as Xe, k as pT, S as ZL, B as bf, l as qL } from "./heading-
|
|
2
|
-
import { D as Wg, R as aa, b as wf, W as Hd, E as Tl, p as Ar, a as gT, q as fv, X as jL, u as yo, j as z, o as Xt, S as KL, n as Bt, V as _h, G as hv, H as t0, d as JL, g as QL, e as tP, Y as vv, Z as cv } from "./index-
|
|
3
|
-
import { _ as eP, b as e0, c as yT, d as rP, e as aP, W as nP, f as iP, T as oP, g as sP, i as mT, O as lP, j as uP } from "./dialog-
|
|
4
|
-
import { f as fP, D as _T, b as ST, E as xT, d as bT, e as Ju, i as r0, h as hP, j as vP } from "./separator-
|
|
5
|
-
import { P as cP } from "./post-share-modal-
|
|
6
|
-
import { d as dP, u as pP } from "./post-analytics-context-
|
|
7
|
-
import { s as gP, u as yP } from "./hooks-
|
|
8
|
-
import { a as mP } from "./posts-
|
|
1
|
+
import { b as dT, c as YL, e as $L, j as XL, i as Xe, k as pT, S as ZL, B as bf, l as qL } from "./heading-DZWin3nG.mjs";
|
|
2
|
+
import { D as Wg, R as aa, b as wf, W as Hd, E as Tl, p as Ar, a as gT, q as fv, X as jL, u as yo, j as z, o as Xt, S as KL, n as Bt, V as _h, G as hv, H as t0, d as JL, g as QL, e as tP, Y as vv, Z as cv } from "./index-BiGQFQkQ.mjs";
|
|
3
|
+
import { _ as eP, b as e0, c as yT, d as rP, e as aP, W as nP, f as iP, T as oP, g as sP, i as mT, O as lP, j as uP } from "./dialog-CXEmd-rC.mjs";
|
|
4
|
+
import { f as fP, D as _T, b as ST, E as xT, d as bT, e as Ju, i as r0, h as hP, j as vP } from "./separator-CJnnsW1a.mjs";
|
|
5
|
+
import { P as cP } from "./post-share-modal-B9Q7FJsH.mjs";
|
|
6
|
+
import { d as dP, u as pP } from "./post-analytics-context-qXWjDzSt.mjs";
|
|
7
|
+
import { s as gP, u as yP } from "./hooks-DQYjPsLg.mjs";
|
|
8
|
+
import { a as mP } from "./posts-C2SKGLoU.mjs";
|
|
9
9
|
/*! *****************************************************************************
|
|
10
10
|
Copyright (c) Microsoft Corporation.
|
|
11
11
|
|
|
@@ -44796,8 +44796,8 @@ const dZ = ({ children: r, className: e, ...t }) => /* @__PURE__ */ z.jsx("secti
|
|
|
44796
44796
|
if (!d)
|
|
44797
44797
|
return [];
|
|
44798
44798
|
const C = [];
|
|
44799
|
-
return cT(d) && !(n != null && n.analytics.webAnalytics) || (C.push("Overview"), !d.email_only && (n != null && n.analytics.webAnalytics) && C.push("Web")), J$(d) && C.push("Newsletter"), C.push("Growth"), C;
|
|
44800
|
-
}, [d, n == null ? void 0 : n.analytics.webAnalytics]), b = () => {
|
|
44799
|
+
return cT(d) && !(n != null && n.analytics.webAnalytics) || (C.push("Overview"), !d.email_only && (n != null && n.analytics.webAnalytics) && C.push("Web")), J$(d) && C.push("Newsletter"), n != null && n.analytics.membersTrackSources && C.push("Growth"), C;
|
|
44800
|
+
}, [d, n == null ? void 0 : n.analytics.webAnalytics, n == null ? void 0 : n.analytics.membersTrackSources]), b = () => {
|
|
44801
44801
|
d && l(!0);
|
|
44802
44802
|
}, x = async () => {
|
|
44803
44803
|
if (d)
|
|
@@ -44980,4 +44980,4 @@ export {
|
|
|
44980
44980
|
IX as q,
|
|
44981
44981
|
j$ as u
|
|
44982
44982
|
};
|
|
44983
|
-
//# sourceMappingURL=post-analytics-header-
|
|
44983
|
+
//# sourceMappingURL=post-analytics-header-QGsYyvhA.mjs.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { u as k, j as e } from "./index-
|
|
2
|
-
import { i as N, B as t, m as w } from "./heading-
|
|
3
|
-
import { k as C, l as y, m as z, X as M, n as H, o as $, p as P, q as D, C as V } from "./dialog-
|
|
1
|
+
import { u as k, j as e } from "./index-BiGQFQkQ.mjs";
|
|
2
|
+
import { i as N, B as t, m as w } from "./heading-DZWin3nG.mjs";
|
|
3
|
+
import { k as C, l as y, m as z, X as M, n as H, o as $, p as P, q as D, C as V } from "./dialog-CXEmd-rC.mjs";
|
|
4
4
|
/**
|
|
5
5
|
* @license lucide-react v0.553.0 - ISC
|
|
6
6
|
*
|
|
@@ -105,4 +105,4 @@ export {
|
|
|
105
105
|
I as L,
|
|
106
106
|
q as P
|
|
107
107
|
};
|
|
108
|
-
//# sourceMappingURL=post-share-modal-
|
|
108
|
+
//# sourceMappingURL=post-share-modal-B9Q7FJsH.mjs.map
|