ghost 6.57.1 → 6.58.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/LICENSE +22 -0
- package/bin/validate-adapters.js +1 -5
- package/components/ghost-storage-base-3.0.0.tgz +0 -0
- package/components/tryghost-adapter-base-cache-0.2.0.tgz +0 -0
- package/components/tryghost-adapter-base-jobs-0.0.0.tgz +0 -0
- package/components/tryghost-adapter-base-redirects-0.0.0.tgz +0 -0
- package/components/tryghost-adapter-base-route-settings-0.0.0.tgz +0 -0
- package/components/tryghost-adapter-base-scheduling-0.2.2.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.2.tgz +0 -0
- package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
- package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/tryghost-kg-card-factory-5.2.4.tgz +0 -0
- package/components/tryghost-kg-clean-basic-html-4.3.4.tgz +0 -0
- package/components/tryghost-kg-converters-1.2.5.tgz +0 -0
- package/components/tryghost-kg-default-cards-10.3.5.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.2.0.tgz +0 -0
- package/components/tryghost-kg-default-transforms-1.3.4.tgz +0 -0
- package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
- package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
- package/components/tryghost-kg-markdown-html-renderer-7.2.4.tgz +0 -0
- package/components/tryghost-kg-utils-1.1.4.tgz +0 -0
- package/components/tryghost-nql-string-0.0.0.tgz +0 -0
- package/components/tryghost-parse-email-address-0.0.0.tgz +0 -0
- package/core/boot.js +35 -3
- package/core/built/admin/assets/{about-BNojRaxf.js → about-B_BvSyLF.js} +1 -1
- package/core/built/admin/assets/{account-migration-DMS8JsM-.js → account-migration-oJUGxnzT.js} +1 -1
- package/core/built/admin/assets/activitypub/{account-migration-DHFbePl6.js → account-migration-BpDeIF3G.js} +8 -8
- package/core/built/admin/assets/activitypub/activitypub.js +4 -4
- package/core/built/admin/assets/activitypub/{avatar-CT4tS2_S.js → avatar-B0SpBPVL.js} +3 -3
- package/core/built/admin/assets/activitypub/{avatar-flipboard-ByYWKipo.js → avatar-flipboard-DKt1LGcE.js} +3 -3
- package/core/built/admin/assets/activitypub/{bluesky-sharing-srVnSHDz.js → bluesky-sharing-aPMtrS3L.js} +10 -10
- package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-D4HEcEwi.js → chunk-KS7C4IRE-CnTrsgmM.js} +26 -15
- package/core/built/admin/assets/activitypub/{content-formatters-C2sos5Ht.js → content-formatters-BORfuA9G.js} +318 -284
- package/core/built/admin/assets/activitypub/{copy-B1UBTOoZ.js → copy-D-YvNi2E.js} +2 -2
- package/core/built/admin/assets/activitypub/{dist-MPsb2WZ1.js → dist-Dqggkccr.js} +5 -5
- package/core/built/admin/assets/activitypub/{domain-DzcM9Dzo.js → domain-CPdiB27_.js} +10 -10
- package/core/built/admin/assets/activitypub/{edit-profile-CsQ_4xAk.js → edit-profile-BY2PawIe.js} +7 -7
- package/core/built/admin/assets/activitypub/{explore-CJe0DZBK.js → explore-Sp9bgAwq.js} +11 -11
- package/core/built/admin/assets/activitypub/{feed-CKV3qWON.js → feed-BjtF4ohL.js} +10 -10
- package/core/built/admin/assets/activitypub/{field-DckHfDJf.js → field-BDOYVTg6.js} +4 -4
- package/core/built/admin/assets/activitypub/{hash-Dlp8RM55.js → hash-DqXYHgzG.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-CsPy4R0M.js → inbox-CZ7IOAMn.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-DAsjzUUe.js → inbox-z1o2j1Tb.js} +11 -11
- package/core/built/admin/assets/activitypub/{label-DWyo9E5T.js → label-1jhN-qhD.js} +4 -4
- package/core/built/admin/assets/activitypub/layout-BRMezuty.js +1 -0
- package/core/built/admin/assets/activitypub/{moderation-B0Inc03M.js → moderation-CZudJi8N.js} +9 -9
- package/core/built/admin/assets/activitypub/{note-CSE54lER.js → note-nr_m_5yb.js} +8 -8
- package/core/built/admin/assets/activitypub/{notifications-RSwbKqdh.js → notifications-BdcyivbT.js} +10 -10
- package/core/built/admin/assets/activitypub/{onboarding-BFDkzeR2.js → onboarding-B4kwav9u.js} +2 -2
- package/core/built/admin/assets/activitypub/{onboarding-D6rcBdPe.js → onboarding-DZNElJYP.js} +3 -3
- package/core/built/admin/assets/activitypub/{preferences-CE231n2_.js → preferences-CNqy1x9C.js} +13 -13
- package/core/built/admin/assets/activitypub/{profile-aaQ1j1Eo.js → profile-DlY4rhbO.js} +15 -15
- package/core/built/admin/assets/activitypub/{reply-Cjb0Vs3m.js → reply-DASIN0Ec.js} +2 -2
- package/core/built/admin/assets/activitypub/{routes-Djb0mc9k.js → routes-CEHdEZzS.js} +31 -31
- package/core/built/admin/assets/activitypub/{separator-D8pROI5n.js → separator-B3k35sUV.js} +4 -4
- package/core/built/admin/assets/activitypub/{settings-DMc32IQl.js → settings-CrSV1cux.js} +6 -6
- package/core/built/admin/assets/activitypub/{site-DVIcsohX.js → site-CtBUCPBz.js} +6 -6
- package/core/built/admin/assets/activitypub/{step-1-9Yey9usF.js → step-1-D9jGWyAy.js} +7 -7
- package/core/built/admin/assets/activitypub/{step-2-DdYmKRXV.js → step-2-Jz_enuo9.js} +7 -7
- package/core/built/admin/assets/activitypub/{step-3-hdSkcjZU.js → step-3-KpUqpGWi.js} +12 -12
- package/core/built/admin/assets/activitypub/{tabs-CUqseYzQ.js → tabs-DvlsxTCI.js} +7 -7
- package/core/built/admin/assets/activitypub/{topic-filter-Coni6OXM.js → topic-filter-CIN1E2jg.js} +4 -4
- package/core/built/admin/assets/activitypub/{use-activity-pub-queries-MeHTPMQv.js → use-activity-pub-queries-CATFd6YV.js} +4 -4
- package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-B046AM38.js → use-navigate-with-base-path-iCkcbMGk.js} +2 -2
- package/core/built/admin/assets/activitypub/{use-reply-chain-data-1AO-Xob6.js → use-reply-chain-data-DJ0vhA8V.js} +6 -6
- package/core/built/admin/assets/activitypub/{users-BLeiOTHc.js → users-sgJ6GNZX.js} +12 -11
- package/core/built/admin/assets/activitypub/{x-BRfRYd16.js → x-Cy2jUiYM.js} +2 -2
- package/core/built/admin/assets/add-integration-modal-BW23PDYs.js +1 -0
- package/core/built/admin/assets/add-newsletter-modal-M0ls8BKO.js +1 -0
- package/core/built/admin/assets/{add-recommendation-modal-D-3LOrdd.js → add-recommendation-modal-B0NeBMzl.js} +1 -1
- package/core/built/admin/assets/{analytics-DTIMRhWw.js → analytics-BC2oR8ay.js} +1 -1
- package/core/built/admin/assets/announcement-bar-modal-pXBqjQE_.js +1 -0
- package/core/built/admin/assets/{api-keys-_iCT4dxr.js → api-keys-BgKr003d.js} +1 -1
- package/core/built/admin/assets/{api-keys-Dx4NeNpK.js → api-keys-Df6uv1dT.js} +1 -1
- package/core/built/admin/assets/{audience-DkknNqhZ.js → audience-BY8od8If.js} +1 -1
- package/core/built/admin/assets/{automated-emails-PayPCT8L.js → automated-emails-28c2Lbb3.js} +1 -1
- package/core/built/admin/assets/{automations-DvSU7QhW.js → automations-DCs6Wady.js} +1 -1
- package/core/built/admin/assets/{automations-162q5HjL.js → automations-Dzp_QnON.js} +1 -1
- package/core/built/admin/assets/{bluesky-sharing-yZ9A_jL8.js → bluesky-sharing-D0P42Cws.js} +1 -1
- package/core/built/admin/assets/{breadcrumb-CjOH7LCU.js → breadcrumb-MTj_cKLb.js} +1 -1
- package/core/built/admin/assets/card-CiiE7QfM.js +1 -0
- package/core/built/admin/assets/{chart-helpers-DGxvWnBT.js → chart-helpers-DcO3k_vA.js} +1 -1
- package/core/built/admin/assets/{checkbox-BSUcnNq_.js → checkbox-LmClhqcS.js} +1 -1
- package/core/built/admin/assets/{chunk.424.4a27628efdade15c2dab.js → chunk.408.1a258af360eb8d905508.js} +40 -37
- package/core/built/admin/assets/{chunk.571.40f093ed6d883993714e.js → chunk.492.a9da46ca956b10116774.js} +1342 -1342
- package/core/built/admin/assets/{chunk.571.40f093ed6d883993714e.js.LICENSE.txt → chunk.492.a9da46ca956b10116774.js.LICENSE.txt} +1 -1
- package/core/built/admin/assets/chunk.524.4c693c3a00ac91df34fa.js +25 -0
- package/core/built/admin/assets/chunk.582.20b600e329e58d12d7c2.js +27 -0
- package/core/built/admin/assets/code-editor-view-DqTOUnbM.js +1 -0
- package/core/built/admin/assets/code-editor-view-bA0lfxUL.js +1 -0
- package/core/built/admin/assets/{debounce-Cx5B_9OI.js → color-picker-CBlJMv3y.js} +2 -2
- package/core/built/admin/assets/color-picker-field-Cv9GOJQZ.js +1 -0
- package/core/built/admin/assets/{combobox-5rdgDrDV.js → combobox-BbPJzjCp.js} +1 -1
- package/core/built/admin/assets/command-BrhXIlDr.js +1 -0
- package/core/built/admin/assets/comments-Cu4rD1aJ.js +1 -0
- package/core/built/admin/assets/confirmation-provider-BEdrnHns.js +1 -0
- package/core/built/admin/assets/{content-api-modal-BtW4Z1-1.js → content-api-modal-BOFWRUkC.js} +1 -1
- package/core/built/admin/assets/{copy-field-CEp_XieW.js → copy-field-8biQvNMD.js} +1 -1
- package/core/built/admin/assets/custom-field-type-option-CNhAgHbJ.js +1 -0
- package/core/built/admin/assets/custom-integration-modal-CrGOI8IB.js +1 -0
- package/core/built/admin/assets/{date-range-select-B3Ij1Rqg.js → date-range-select-Bsh4gIek.js} +1 -1
- package/core/built/admin/assets/debounce-pscB46sW.js +1 -0
- package/core/built/admin/assets/design-and-theme-modal-DWZguwWX.js +23 -0
- package/core/built/admin/assets/{dirty-confirm-dialog-YE9L21gY.js → dirty-confirm-dialog-DmdMpgyN.js} +1 -1
- package/core/built/admin/assets/{disabled-sources-indicator-uIzbWL7K.js → disabled-sources-indicator-BLnmyWgt.js} +1 -1
- package/core/built/admin/assets/dist-4m6pHdc0.js +23 -0
- package/core/built/admin/assets/{dist-DCk0UkGx.js → dist-B6bJuxL3.js} +1 -1
- package/core/built/admin/assets/{dist-CbHbGtQ-.js → dist-BtaTA7Ii.js} +1 -1
- package/core/built/admin/assets/{dist-Q1p9iXwH.js → dist-CZgIBXQN.js} +1 -1
- package/core/built/admin/assets/dist-CiHx7vA5.js +6 -0
- package/core/built/admin/assets/{dist-ARN6XTcR.js → dist-ECAUrdGc.js} +1 -1
- package/core/built/admin/assets/dist-Z97pCNqS.js +11 -0
- package/core/built/admin/assets/{dist-t6AXpf_4.js → dist-zwwGt8Yf.js} +1 -1
- package/core/built/admin/assets/{domain-DzrOAPY8.js → domain-Dp9TRrFp.js} +1 -1
- package/core/built/admin/assets/{dropzone-CzhP33wa.js → dropzone-B21Entqz.js} +1 -1
- package/core/built/admin/assets/{edit-profile-oufs4R4n.js → edit-profile-DG6lpMsr.js} +1 -1
- package/core/built/admin/assets/editor-CPQOrhrn.js +8 -0
- package/core/built/admin/assets/{editor-DtxX27Jz.css → editor-DLioOiRN.css} +1 -1
- package/core/built/admin/assets/{embed-signup-form-modal-Ch3s6lqA.js → embed-signup-form-modal-CgWniDha.js} +2 -2
- package/core/built/admin/assets/esm-CXo5SEPy.js +2 -0
- package/core/built/admin/assets/{explore-CA-R01Br.js → explore-C3rzONJv.js} +1 -1
- package/core/built/admin/assets/{feed-ClC8_Gld.js → feed-DpUwS1cU.js} +1 -1
- package/core/built/admin/assets/{field-B3OPenbP.js → field-BQqLTgHM.js} +1 -1
- package/core/built/admin/assets/{filter-sources-CiPLnG9A.js → filter-sources-FgqoUIL7.js} +1 -1
- package/core/built/admin/assets/{filters-yFvybRMe.js → filters-D0uIMD8n.js} +1 -1
- package/core/built/admin/assets/filters-DZJT29GW.js +1 -0
- package/core/built/admin/assets/{first-promoter-modal-BC0UpYCD.js → first-promoter-modal-DJhQQheG.js} +1 -1
- package/core/built/admin/assets/framework-provider-CFLwK5uS.js +4 -0
- package/core/built/admin/assets/{ghost-d38c30b866e59f2e06a357b5eb844fe5.css → ghost-68f447a1796b93a1f128b649bac8506d.css} +1 -1
- package/core/built/admin/assets/{ghost-d683fbeb945b13155ea669caa5d8db41.js → ghost-ba408063a5922b458b4a8f216cf23251.js} +124 -342
- package/core/built/admin/assets/{ghost-dark-1bffd5099ba7a749303133efacf8480b.css → ghost-dark-28ae4899c92022857f3584694bcb50ef.css} +1 -1
- package/core/built/admin/assets/{gift-link-modal-BKRuqo-k.js → gift-link-modal-sdFLjND9.js} +1 -1
- package/core/built/admin/assets/{gift-links-CVuqLhsZ.js → gift-links-D7BJ9qfe.js} +1 -1
- package/core/built/admin/assets/{global-data-provider-RzW6Bnlf.js → global-data-provider-CixmTX00.js} +1 -1
- package/core/built/admin/assets/{growth-ClNAldfL.js → growth-0YYkBEeS.js} +1 -1
- package/core/built/admin/assets/{growth-Dz8OSG06.js → growth-DpjAPeQT.js} +2 -2
- package/core/built/admin/assets/{history-modal-DIVuQ5Ct.js → history-modal-BWJ4-cJ0.js} +1 -1
- package/core/built/admin/assets/{hooks-D6EE7BIt.js → hooks-CJepWnbB.js} +1 -1
- package/core/built/admin/assets/{html-field-CVZ2sMxw.js → html-field-C-oa5DEl.js} +1 -1
- package/core/built/admin/assets/{iframe-buffering-e8vH4-Qn.js → iframe-buffering-Ba9sDpi2.js} +1 -1
- package/core/built/admin/assets/{images-Ok8FFJ3A.js → images-3cQgwfTD.js} +1 -1
- package/core/built/admin/assets/{inbox-CMUVI6qb.js → inbox-Dz_JblyJ.js} +6 -6
- package/core/built/admin/assets/index-BOJzlYiz.js +67 -0
- package/core/built/admin/assets/index-Bid6LAyc.css +1 -0
- package/core/built/admin/assets/{input-group-2XU-iuh_.js → input-group-DpogNUIt.js} +1 -1
- package/core/built/admin/assets/{integrations-BT6_iJvu.js → integrations-B9yYgci5.js} +1 -1
- package/core/built/admin/assets/{invite-user-modal-DrZ7xxrZ.js → invite-user-modal-DCiQSiuD.js} +1 -1
- package/core/built/admin/assets/{koenig-editor-base-BPj4S760.js → koenig-editor-base-BApy8Q7C.js} +1 -1
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +8328 -8294
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +84 -84
- package/core/built/admin/assets/{koenig-lexical-Cdjv-m3_.js → koenig-lexical-2KuqRwZI.js} +33 -33
- package/core/built/admin/assets/{kpi-card-J8Mj1sDX.js → kpi-card-Ck3tT2Wg.js} +1 -1
- package/core/built/admin/assets/{kpi-card-awos0BMH.js → kpi-card-DDIxptaS.js} +1 -1
- package/core/built/admin/assets/{kpi-helpers-SEhvH-8E.js → kpi-helpers-ssbuy-hD.js} +1 -1
- package/core/built/admin/assets/{kpi-tabs-R6BjsKhd.js → kpi-tabs-BqoIM6bI.js} +1 -1
- package/core/built/admin/assets/{label-BMC3dzLI.js → label-DodDsMzn.js} +1 -1
- package/core/built/admin/assets/label-picker-Cvvbmzb5.js +1 -0
- package/core/built/admin/assets/{labels-DAPjKPy2.js → labels-DqvSR6JF.js} +1 -1
- package/core/built/admin/assets/layout-DkkGyev2.js +1 -0
- package/core/built/admin/assets/limit-service-BhiEvqcP.js +20 -0
- package/core/built/admin/assets/{link-helpers-Bzkk68GD.js → link-helpers-kpbU8TWh.js} +1 -1
- package/core/built/admin/assets/luxon-D1RVjjpq.js +1 -0
- package/core/built/admin/assets/member-custom-fields-CvGcpaiW.js +1 -0
- package/core/built/admin/assets/member-detail-CMCMZ47_.js +1 -0
- package/core/built/admin/assets/members-sRl6fNfq.js +11 -0
- package/core/built/admin/assets/{moderation-mPjYHgZW.js → moderation-KhKwGqI1.js} +1 -1
- package/core/built/admin/assets/{multi-select-combobox-CsoyHAiX.js → multi-select-combobox-nhCff0_K.js} +1 -1
- package/core/built/admin/assets/{navigation-modal-D_c0badj.js → navigation-modal-MDJExWDJ.js} +1 -1
- package/core/built/admin/assets/newsletter-BIBHumfV.js +1 -0
- package/core/built/admin/assets/newsletter-detail-modal-CfjBMH3v.js +1 -0
- package/core/built/admin/assets/{newsletter-emails-B-OLfrvr.js → newsletter-emails-ClDL-7dA.js} +1 -1
- package/core/built/admin/assets/newsletters-CBe-IPzK.js +1 -0
- package/core/built/admin/assets/{newsletters-Du0lzskS.js → newsletters-ILsexy-5.js} +1 -1
- package/core/built/admin/assets/{note-CSVsUKBm.js → note-HnNUOt4d.js} +1 -1
- package/core/built/admin/assets/{notifications-DV9FRtDw.js → notifications-Cj5e-258.js} +1 -1
- package/core/built/admin/assets/nql-lang-CaWrLesS.js +19 -0
- package/core/built/admin/assets/{offers-Um6ab71O.js → offers-DMxebaoK.js} +1 -1
- package/core/built/admin/assets/offers-container-modal-BHwHtixC.js +1 -0
- package/core/built/admin/assets/{onboarding-route--jL5KLPD.js → onboarding-route-D_4jp7Nq.js} +1 -1
- package/core/built/admin/assets/overview-CezDdg-F.js +1 -0
- package/core/built/admin/assets/overview-D5mM51Lj.js +1 -0
- package/core/built/admin/assets/{page-header-DAvDYKO9.js → page-header-VLPJfj_d.js} +1 -1
- package/core/built/admin/assets/{pages-BVMnpI2O.js → pages-Gchxp5c7.js} +1 -1
- package/core/built/admin/assets/{pintura-modal-jiUCxX0Q.js → pintura-modal-BXXJ8Iaa.js} +1 -1
- package/core/built/admin/assets/{portal-frame-D4D4nEO6.js → portal-frame-BLCvF8f-.js} +1 -1
- package/core/built/admin/assets/portal-modal-DN80tAcy.js +1 -0
- package/core/built/admin/assets/{post-analytics-BhAtiFJp.js → post-analytics-Gv81eN_g.js} +1 -1
- package/core/built/admin/assets/post-analytics-header-_ydSY8qO.js +1 -0
- package/core/built/admin/assets/{post-analytics-provider-DGg0FUqs.js → post-analytics-provider-O2YjZMhN.js} +1 -1
- package/core/built/admin/assets/{post-share-modal-DtFAC132.js → post-share-modal-CzYak_a5.js} +1 -1
- package/core/built/admin/assets/{posts-CxG7v0-M.js → posts-DgcUi2rc.js} +1 -1
- package/core/built/admin/assets/preferences-gneLb6LV.js +5 -0
- package/core/built/admin/assets/{preview-modal-DctYx20m.js → preview-modal-Bkq-tgVm.js} +1 -1
- package/core/built/admin/assets/profile-CzXmCNTC.js +1 -0
- package/core/built/admin/assets/{radio-group-CI5_Kf_d.js → radio-group-Dsq5ZEbV.js} +1 -1
- package/core/built/admin/assets/{referrers-B9QDAfYm.js → referrers-C3a2K8qB.js} +1 -1
- package/core/built/admin/assets/{router-provider-DSQfprxH.js → router-provider-CkB_ArLF.js} +1 -1
- package/core/built/admin/assets/{select-CkXqNJDJ.js → select-xuZAuDyS.js} +1 -1
- package/core/built/admin/assets/{settings-ZCj-W56o.js → settings-Ct8pabhr.js} +1 -1
- package/core/built/admin/assets/settings-KSWWQanQ.js +4 -0
- package/core/built/admin/assets/{settings-breadcrumbs-DIq31FwA.js → settings-breadcrumbs-DbPGu-Tu.js} +1 -1
- package/core/built/admin/assets/{share-modal-BNj14g79.js → share-modal-CdiUx9WM.js} +1 -1
- package/core/built/admin/assets/{slack-modal-C6SpMQ-q.js → slack-modal-BP--Z3jE.js} +1 -1
- package/core/built/admin/assets/{sort-button-B-k54ow2.js → sort-button-CjfKdlsL.js} +1 -1
- package/core/built/admin/assets/{source-icon-Cej3sZM6.js → source-icon-DHj1h6Ts.js} +1 -1
- package/core/built/admin/assets/{stats-B2KW8E2y.js → stats-C615kulJ.js} +1 -1
- package/core/built/admin/assets/{stats-view-CVzU2-p5.js → stats-view-BSMRdYiN.js} +1 -1
- package/core/built/admin/assets/{step-1-Dbn1iIMU.js → step-1-pSdGYtIF.js} +1 -1
- package/core/built/admin/assets/{step-2-BahnSuN6.js → step-2-T9Uy4eBD.js} +1 -1
- package/core/built/admin/assets/{step-3-CW04e2ZJ.js → step-3-D4uXe_XG.js} +2 -2
- package/core/built/admin/assets/{stripe-button-BkBZqaGG.js → stripe-button-Bh4p6Wud.js} +1 -1
- package/core/built/admin/assets/stripe-connect-modal-C2vTvepi.js +1 -0
- package/core/built/admin/assets/{table-BtLcEi1M.js → table-DghJxZMH.js} +1 -1
- package/core/built/admin/assets/{tabs-BaWRfg8j.js → tabs-l9c7FjzI.js} +1 -1
- package/core/built/admin/assets/tag-detail-DBw_M2-p.js +2 -0
- package/core/built/admin/assets/{tags-BbygUvNB.js → tags-DoWsAG6l.js} +1 -1
- package/core/built/admin/assets/{tags-BwCgmr5v.js → tags-EmEvJN75.js} +1 -1
- package/core/built/admin/assets/{testimonials-modal--bdzppyh.js → testimonials-modal-BZKePE2T.js} +1 -1
- package/core/built/admin/assets/tier-detail-modal-D65pVWsN.js +1 -0
- package/core/built/admin/assets/{tiers-Da6kxHQP.js → tiers-8iTFjJWg.js} +1 -1
- package/core/built/admin/assets/{toggle-group-CVl-Xigr.js → toggle-group-uJnl42w3.js} +1 -1
- package/core/built/admin/assets/{topic-filter-BoRHRbL1.js → topic-filter-BM7hz0kW.js} +1 -1
- package/core/built/admin/assets/transistor-modal-VZOGN3od.js +1 -0
- package/core/built/admin/assets/{unsplash-modal-CixoRAO2.js → unsplash-modal-CKGfACxF.js} +1 -1
- package/core/built/admin/assets/{use-analytics-data-BiWvcf1u.js → use-analytics-data-IxJcSjc9.js} +1 -1
- package/core/built/admin/assets/use-check-theme-limit-error-CGp3CGT5.js +1 -0
- package/core/built/admin/assets/use-feature-flag-CSq2Lwzt.js +1 -0
- package/core/built/admin/assets/use-filter-params-0hcJJuEJ.js +1 -0
- package/core/built/admin/assets/{use-filterable-api-iMpDZBxD.js → use-filterable-api-CQBtVG-l.js} +1 -1
- package/core/built/admin/assets/{use-growth-stats-Dom8xVzo.js → use-growth-stats-1NW-8eEZ.js} +1 -1
- package/core/built/admin/assets/use-limiter-ffwpsZPp.js +2 -0
- package/core/built/admin/assets/{use-pintura-config-Bj4QmiVk.js → use-pintura-config-BjFChXV1.js} +1 -1
- package/core/built/admin/assets/{use-pintura-editor-DvrslmPE.js → use-pintura-editor-Cb41oJyL.js} +1 -1
- package/core/built/admin/assets/{use-post-referrers-pxIHTXFs.js → use-post-referrers-Dp1BnTAK.js} +1 -1
- package/core/built/admin/assets/{use-reply-chain-data-CmFe0N6F.js → use-reply-chain-data-C0ZUTkfk.js} +1 -1
- package/core/built/admin/assets/{use-setting-group-Cmp_sy-d.js → use-setting-group-Bx8M6FL2.js} +1 -1
- package/core/built/admin/assets/{use-settings-navigation-BmROPrls.js → use-settings-navigation-BOZcat_V.js} +1 -1
- package/core/built/admin/assets/{use-simple-pagination-D5rL3YwO.js → use-simple-pagination-DsEGSJhe.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-query-DP2dMaq7.js → use-tinybird-query-Ci_DiPkX.js} +1 -1
- package/core/built/admin/assets/{use-tinybird-token-DrK_skPQ.js → use-tinybird-token-CsUwc722.js} +1 -1
- package/core/built/admin/assets/use-upgrade-route-B3_DUiuT.js +1 -0
- package/core/built/admin/assets/{use-url-input-ChrUZBFf.js → use-url-input-BEZJpVgN.js} +2 -2
- package/core/built/admin/assets/user-detail-modal-595z1N5r.js +1 -0
- package/core/built/admin/assets/{users-B6hIds6n.js → users-DmGMPfw7.js} +1 -1
- package/core/built/admin/assets/virtual-list-D5ugXyZY.js +1 -0
- package/core/built/admin/assets/{web-D71mjB2r.js → web-CAta3lRE.js} +1 -1
- package/core/built/admin/assets/web-Ds9_wWJK.js +2 -0
- package/core/built/admin/assets/zapier-modal-CcfDZY53.js +1 -0
- package/core/built/admin/index.html +12 -12
- package/core/frontend/apps/private-blogging/lib/middleware.js +5 -58
- package/core/frontend/helpers/ghost_head.js +52 -0
- package/core/frontend/meta/asset-url.js +20 -9
- package/core/frontend/public/cards.manifest.json +1 -0
- package/core/frontend/public/ghost-stats.min.js +1 -1
- package/core/frontend/services/assets-minification/card-assets.js +121 -46
- package/core/frontend/services/assets-minification/index.js +13 -4
- package/core/frontend/services/data/fetch-data.js +7 -14
- package/core/frontend/services/llms/service.js +27 -6
- package/core/frontend/services/proxy.js +1 -0
- package/core/frontend/services/routing/api-adapter.js +11 -5
- package/core/frontend/services/routing/collection-router.js +1 -2
- package/core/frontend/services/routing/controllers/entry/markdown.js +63 -5
- package/core/frontend/services/routing/controllers/entry.js +1 -1
- package/core/frontend/services/routing/controllers/previews.js +0 -3
- package/core/frontend/services/routing/events.js +2 -1
- package/core/frontend/services/routing/parent-router.js +0 -22
- package/core/frontend/services/routing/router-manager.js +2 -2
- package/core/frontend/services/routing/static-pages-router.js +0 -1
- package/core/frontend/services/sitemap/handler.js +3 -4
- package/core/frontend/services/sitemap/site-map-manager.js +1 -2
- package/core/frontend/services/theme-engine/i18n/i18n.js +0 -33
- package/core/frontend/web/middleware/llms-discovery.js +2 -2
- package/core/frontend/web/routers/serve-public-file.js +33 -3
- package/core/frontend/web/site.js +5 -4
- package/core/server/adapters/jobs/InMemoryJobsBackend.js +113 -0
- package/core/server/adapters/redirects/S3RedirectsStore.js +33 -13
- package/core/server/adapters/route-settings/S3RouteSettingsStore.js +33 -13
- package/core/server/adapters/scheduling/scheduling-default.js +6 -7
- package/core/server/adapters/storage/LocalStorageBase.js +1 -3
- package/core/server/api/endpoints/index.js +0 -4
- package/core/server/api/endpoints/member-custom-fields.js +15 -4
- package/core/server/api/endpoints/pages.js +3 -11
- package/core/server/api/endpoints/posts.js +3 -11
- package/core/server/api/endpoints/utils/api-filter-utils.js +15 -1
- package/core/server/api/endpoints/utils/serializers/input/settings.js +4 -0
- package/core/server/api/endpoints/utils/serializers/output/index.js +0 -4
- package/core/server/api/endpoints/utils/serializers/output/mappers/email-batches.js +1 -1
- package/core/server/api/endpoints/utils/serializers/output/mappers/snippets.js +0 -1
- package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.js +1 -0
- package/core/server/data/exporter/table-lists.js +4 -1
- package/core/server/data/migrations/utils/schema.js +5 -3
- package/core/server/data/migrations/versions/6.57/2026-08-04-18-00-00-store-custom-field-values-as-leaf-rows.js +19 -7
- package/core/server/data/migrations/versions/6.58/2026-08-10-08-20-50-add-machine-payments-settings.js +41 -0
- package/core/server/data/migrations/versions/6.58/2026-08-10-08-21-00-add-machine-payment-events-table.js +18 -0
- package/core/server/data/migrations/versions/6.58/2026-08-10-15-24-09-reset-custom-field-definitions-for-underscored-keys.js +66 -0
- package/core/server/data/migrations/versions/6.58/2026-08-11-10-00-00-swap-custom-field-values-to-key-fk.js +65 -0
- package/core/server/data/migrations/versions/6.58/2026-08-11-10-34-25-remove-legacy-explore-integration.js +131 -0
- package/core/server/data/migrations/versions/6.58/2026-08-11-16-00-00-add-sort-order-to-members-custom-fields.js +13 -0
- package/core/server/data/migrations/versions/6.58/2026-08-11-21-22-48-rename-email-batches-provider-id.js +8 -0
- package/core/server/data/migrations/versions/6.58/2026-08-13-16-07-33-add-automation-runs-automation-id-created-at-index.js +28 -0
- package/core/server/data/schema/README.md +87 -0
- package/core/server/data/schema/commands.js +5 -2
- package/core/server/data/schema/default-settings/default-settings.json +27 -0
- package/core/server/data/schema/fixtures/fixtures.json +0 -21
- package/core/server/data/schema/schema.js +37 -9
- package/core/server/data/seeders/data-generator.js +3 -1
- package/core/server/data/seeders/importers/automation-action-edges-importer.js +38 -0
- package/core/server/data/seeders/importers/automation-action-revisions-importer.js +139 -0
- package/core/server/data/seeders/importers/automation-actions-importer.js +84 -0
- package/core/server/data/seeders/importers/automation-run-steps-importer.js +134 -0
- package/core/server/data/seeders/importers/automation-runs-importer.js +97 -0
- package/core/server/data/seeders/importers/automations-importer.js +78 -0
- package/core/server/data/seeders/importers/benefits-importer.js +1 -1
- package/core/server/data/seeders/importers/comment-reports-importer.js +5 -5
- package/core/server/data/seeders/importers/comments-importer.js +6 -6
- package/core/server/data/seeders/importers/email-batches-importer.js +9 -8
- package/core/server/data/seeders/importers/email-recipient-failures-importer.js +1 -1
- package/core/server/data/seeders/importers/email-recipients-importer.js +12 -12
- package/core/server/data/seeders/importers/emails-importer.js +7 -7
- package/core/server/data/seeders/importers/index.js +6 -0
- package/core/server/data/seeders/importers/labels-importer.js +4 -4
- package/core/server/data/seeders/importers/members-click-events-importer.js +4 -4
- package/core/server/data/seeders/importers/members-created-events-importer.js +5 -5
- package/core/server/data/seeders/importers/members-feedback-importer.js +7 -7
- package/core/server/data/seeders/importers/members-importer.js +5 -5
- package/core/server/data/seeders/importers/members-labels-importer.js +1 -1
- package/core/server/data/seeders/importers/members-login-events-importer.js +4 -4
- package/core/server/data/seeders/importers/members-newsletters-importer.js +1 -1
- package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +1 -1
- package/core/server/data/seeders/importers/members-products-importer.js +3 -3
- package/core/server/data/seeders/importers/members-status-events-importer.js +4 -4
- package/core/server/data/seeders/importers/members-stripe-customers-importer.js +3 -3
- package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +8 -8
- package/core/server/data/seeders/importers/members-subscribe-events-importer.js +3 -3
- package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +4 -4
- package/core/server/data/seeders/importers/newsletters-importer.js +1 -1
- package/core/server/data/seeders/importers/offer-redemptions-importer.js +6 -6
- package/core/server/data/seeders/importers/offers-importer.js +4 -4
- package/core/server/data/seeders/importers/posts-authors-importer.js +1 -1
- package/core/server/data/seeders/importers/posts-importer.js +5 -5
- package/core/server/data/seeders/importers/posts-products-importer.js +1 -1
- package/core/server/data/seeders/importers/posts-tags-importer.js +1 -1
- package/core/server/data/seeders/importers/products-benefits-importer.js +1 -1
- package/core/server/data/seeders/importers/products-importer.js +1 -1
- package/core/server/data/seeders/importers/recommendation-click-events-importer.js +1 -1
- package/core/server/data/seeders/importers/recommendation-subscribe-events-importer.js +1 -1
- package/core/server/data/seeders/importers/recommendations-importer.js +1 -1
- package/core/server/data/seeders/importers/redirects-importer.js +1 -1
- package/core/server/data/seeders/importers/roles-users-importer.js +1 -1
- package/core/server/data/seeders/importers/stripe-prices-importer.js +1 -1
- package/core/server/data/seeders/importers/stripe-products-importer.js +1 -1
- package/core/server/data/seeders/importers/table-importer.js +92 -91
- package/core/server/data/seeders/importers/tags-importer.js +3 -3
- package/core/server/data/seeders/importers/users-importer.js +3 -3
- package/core/server/data/seeders/importers/web-mentions-importer.js +3 -3
- package/core/server/data/seeders/utils/database-date.js +14 -18
- package/core/server/data/seeders/utils/json-importer.js +1 -1
- package/core/server/data/seeders/utils/random.js +8 -7
- package/core/server/data/seeders/utils/topological-sort.js +5 -3
- package/core/server/data/tinybird/ARCHITECTURE.md +1 -2
- package/core/server/models/base/plugins/crud.js +0 -5
- package/core/server/models/index.js +2 -0
- package/core/server/models/machine-payment-event.js +18 -0
- package/core/server/models/member.js +24 -0
- package/core/server/models/settings.js +32 -3
- package/core/server/models/user.js +1 -1
- package/core/server/services/README.md +30 -0
- package/core/server/services/activitypub/activity-pub-service.js +2 -3
- package/core/server/services/adapter-manager/base-classes.js +3 -1
- package/core/server/services/auth/passwordreset.js +47 -51
- package/core/server/services/automations/database-automations-repository.js +19 -3
- package/core/server/services/automations/poll.js +2 -8
- package/core/server/services/comments/comments-service.js +4 -16
- package/core/server/services/comments/index.js +1 -3
- package/core/server/services/email-analytics/email-analytics-service-wrapper.js +68 -119
- package/core/server/services/email-analytics/email-analytics-service.js +73 -229
- package/core/server/services/email-analytics/event-processing-result.js +0 -10
- package/core/server/services/email-analytics/fetch-mailgun-events.js +25 -0
- package/core/server/services/email-analytics/index.js +35 -67
- package/core/server/services/email-analytics/lib/queries.js +88 -51
- package/core/server/services/email-analytics/newsletter-email-analytics-batch-processor.js +4 -1
- package/core/server/services/email-service/batch-sending-service.js +1 -1
- package/core/server/services/email-service/email-event-processor.js +12 -12
- package/core/server/services/email-service/events/email-bounced-event.js +8 -46
- package/core/server/services/email-service/events/email-delivered-event.js +8 -36
- package/core/server/services/email-service/events/email-opened-event.js +8 -36
- package/core/server/services/email-service/events/email-temporary-bounced-event.js +8 -46
- package/core/server/services/email-service/events/email-unsubscribed-event.js +8 -31
- package/core/server/services/email-service/events/spam-complaint-event.js +8 -31
- package/core/server/services/email-service/newsletter-email-event-storage.js +8 -7
- package/core/server/services/email-service/sending-service.js +1 -1
- package/core/server/services/email-suppression-list/mailgun-email-suppression-list.js +2 -2
- package/core/server/services/email-suppression-list/service.js +1 -3
- package/core/server/services/explore-ping/explore-ping-service.js +1 -6
- package/core/server/services/explore-ping/index.js +0 -2
- package/core/server/services/gifts/index.js +109 -3
- package/core/server/services/gifts/jobs/clean-gifts-job.js +1 -1
- package/core/server/services/gifts/jobs/send-gift-reminders-job.js +1 -1
- package/core/server/services/jobs-service/index.js +36 -0
- package/core/server/services/jobs-service/job.js +6 -0
- package/core/server/services/jobs-service/jobs-service.js +91 -0
- package/core/server/services/jobs-service/register-job-handlers.js +6 -0
- package/core/server/services/lib/mailgun-client.js +1 -1
- package/core/server/services/machine-payments/README.md +23 -0
- package/core/server/services/machine-payments/adapters/mpp-adapter.js +195 -0
- package/core/server/services/machine-payments/content-loader.js +89 -0
- package/core/server/services/machine-payments/eligibility.js +6 -0
- package/core/server/services/machine-payments/events/machine-payment-event-repository.js +58 -0
- package/core/server/services/machine-payments/events/machine-payment-event.js +46 -0
- package/core/server/services/machine-payments/index.js +87 -0
- package/core/server/services/machine-payments/pricing.js +54 -0
- package/core/server/services/machine-payments/service.js +275 -0
- package/core/server/services/machine-payments/stripe/deposit-address-store.js +157 -0
- package/core/server/services/machine-payments/stripe/payment-recorder.js +85 -0
- package/core/server/services/machine-payments/stripe/stripe-client-options.js +25 -0
- package/core/server/services/machine-payments/types.js +2 -0
- package/core/server/services/members/import-export/csv/parse.js +9 -1
- package/core/server/services/members/import-export/import/completion-email.js +61 -27
- package/core/server/services/members/import-export/import/email-template.js +28 -15
- package/core/server/services/members/import-export/import/importer.js +99 -51
- package/core/server/services/members/import-export/import/spool.js +1 -1
- package/core/server/services/members/import-export/index.js +24 -1
- package/core/server/services/members/members-api/services/member-bread-service.js +2 -2
- package/core/server/services/members/members-config-provider.js +12 -2
- package/core/server/services/members-custom-fields/actions.js +2 -1
- package/core/server/services/members-custom-fields/definitions-service.js +109 -27
- package/core/server/services/members-custom-fields/filter.js +199 -0
- package/core/server/services/members-custom-fields/key.js +37 -0
- package/core/server/services/members-custom-fields/queries.js +15 -0
- package/core/server/services/members-custom-fields/schema.js +1 -1
- package/core/server/services/members-custom-fields/values-service.js +18 -14
- package/core/server/services/members-events/last-seen-at-updater.js +1 -1
- package/core/server/services/oembed/oembed-service.js +8 -2
- package/core/server/services/permissions/can-this.js +4 -1
- package/core/server/services/posts/posts-service.js +18 -16
- package/core/server/services/public-config/config.js +1 -1
- package/core/server/services/route-settings/dynamic-routing-service.js +2 -0
- package/core/server/services/settings-helpers/settings-helpers.js +0 -1
- package/core/server/services/stats/posts-stats-service.js +0 -2
- package/core/server/services/stripe/stripe-api.js +2 -9
- package/core/server/web/api/endpoints/admin/middleware.js +0 -1
- package/core/server/web/api/endpoints/admin/routes.js +2 -3
- package/core/server/web/comments/routes.js +31 -8
- package/core/shared/config/defaults.json +17 -2
- package/core/shared/config/loader.js +11 -2
- package/core/shared/config/overrides.json +2 -0
- package/core/shared/config/secrets.js +71 -0
- package/core/shared/labs.js +4 -13
- package/core/shared/machine-payments.js +30 -0
- package/core/shared/private-site-access/index.js +68 -0
- package/package.json +48 -43
- package/pnpm-lock.yaml +1412 -1583
- package/pnpm-workspace.yaml +85 -48
- package/bin/validate-adapters.ts +0 -87
- package/components/tryghost-adapter-base-scheduling-0.2.1.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.1.tgz +0 -0
- 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.4.tgz +0 -0
- package/components/tryghost-kg-default-cards-10.3.4.tgz +0 -0
- package/components/tryghost-kg-default-nodes-2.1.5.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/content/themes/casper/assets/built/casper.js.map +0 -1
- package/content/themes/casper/assets/built/global.css.map +0 -1
- package/content/themes/casper/assets/built/screen.css.map +0 -1
- package/content/themes/source/assets/built/screen.css.map +0 -1
- package/content/themes/source/assets/built/source.js.map +0 -1
- package/core/built/admin/assets/activitypub/layout-DM_3pqsU.js +0 -1
- package/core/built/admin/assets/add-integration-modal-DU9ghGLS.js +0 -1
- package/core/built/admin/assets/add-newsletter-modal-DFxuQrYu.js +0 -1
- package/core/built/admin/assets/announcement-bar-modal-DGCcezB6.js +0 -1
- package/core/built/admin/assets/card-aUHX0hyR.js +0 -1
- package/core/built/admin/assets/chunk.524.dce1c51e0bc30fb2718e.js +0 -25
- package/core/built/admin/assets/chunk.582.3a430d5c6a744fd475b6.js +0 -27
- package/core/built/admin/assets/code-editor-view-BcyKABrG.js +0 -1
- package/core/built/admin/assets/color-picker-field-8NoSnhNI.js +0 -1
- package/core/built/admin/assets/command-BOYMbZa_.js +0 -1
- package/core/built/admin/assets/comments-BhNM5CYl.js +0 -1
- package/core/built/admin/assets/confirmation-modal-CYD7x3UQ.js +0 -1
- package/core/built/admin/assets/custom-integration-modal-bk3lNEuQ.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-B2xYKS1I.js +0 -23
- package/core/built/admin/assets/dist-Bg8bSvLA.js +0 -6
- package/core/built/admin/assets/dist-BnFdlebk.js +0 -11
- package/core/built/admin/assets/dist-CsvXCJSe.js +0 -23
- package/core/built/admin/assets/editor-BBKrunMK.js +0 -8
- package/core/built/admin/assets/filters-Bz0HsRie.js +0 -1
- package/core/built/admin/assets/framework-provider-CmtnPXIT.js +0 -4
- package/core/built/admin/assets/index-DUXM0NlS.js +0 -67
- package/core/built/admin/assets/index-Ds2iUoF6.css +0 -1
- package/core/built/admin/assets/label-picker-Bnlru5tO.js +0 -1
- package/core/built/admin/assets/layout-yR9rlvEw.js +0 -1
- package/core/built/admin/assets/limit-modal-COmLevuY.js +0 -1
- package/core/built/admin/assets/limit-service-9fwD33lU.js +0 -20
- package/core/built/admin/assets/member-custom-fields-BvFKEpxJ.js +0 -1
- package/core/built/admin/assets/member-detail-CWdPAe3p.js +0 -1
- package/core/built/admin/assets/members-Bnt0ih2R.js +0 -11
- package/core/built/admin/assets/newsletter-DR49NyGS.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-B45pL1pb.js +0 -1
- package/core/built/admin/assets/newsletters-DGs5BaKH.js +0 -1
- package/core/built/admin/assets/nql-lang-B7faUf8D.js +0 -19
- package/core/built/admin/assets/offers-container-modal-B0hFS8nk.js +0 -1
- package/core/built/admin/assets/overview-B-ZPNqMo.js +0 -1
- package/core/built/admin/assets/overview-D96iwoJi.js +0 -1
- package/core/built/admin/assets/portal-modal-BLFdYeDH.js +0 -1
- package/core/built/admin/assets/post-analytics-header-DK27VjJm.js +0 -1
- package/core/built/admin/assets/preferences-CuWLISHa.js +0 -5
- package/core/built/admin/assets/profile-BsKYYtuL.js +0 -1
- package/core/built/admin/assets/settings-B4vM-rgV.js +0 -4
- package/core/built/admin/assets/stripe-connect-modal-CYDDrSJm.js +0 -1
- package/core/built/admin/assets/tag-detail-CmqiC32L.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-BZmAsIy4.js +0 -1
- package/core/built/admin/assets/transistor-modal-CBPDqEGy.js +0 -1
- package/core/built/admin/assets/use-check-theme-limit-error-B14lZukR.js +0 -2
- package/core/built/admin/assets/use-feature-flag-BmJoc5WN.js +0 -1
- package/core/built/admin/assets/use-filter-params-ChoV72Hw.js +0 -1
- package/core/built/admin/assets/use-limiter-Dwg8ivgQ.js +0 -2
- package/core/built/admin/assets/user-detail-modal-XODpOqNC.js +0 -1
- package/core/built/admin/assets/virtual-list-Dnoafqbk.js +0 -1
- package/core/built/admin/assets/web-z71lA1Y3.js +0 -2
- package/core/built/admin/assets/zapier-modal-Bp507Um7.js +0 -1
- package/core/frontend/meta/og-type.ts +0 -13
- package/core/frontend/services/routing/api-adapter.ts +0 -157
- package/core/frontend/services/routing/config.ts +0 -59
- package/core/frontend/services/routing/controllers/entry/canonical-url.ts +0 -14
- package/core/frontend/services/routing/controllers/entry/gift-links.ts +0 -56
- package/core/frontend/services/routing/controllers/entry/markdown.ts +0 -72
- package/core/frontend/services/routing/controllers/entry.ts +0 -120
- package/core/frontend/services/routing/controllers/rss.ts +0 -66
- package/core/frontend/services/routing/permalink-adapter.ts +0 -10
- package/core/frontend/src/utils/privacy.ts +0 -66
- package/core/server/adapters/redirects/FileStore.ts +0 -113
- package/core/server/adapters/redirects/S3RedirectsStore.ts +0 -185
- package/core/server/adapters/route-settings/FileStore.ts +0 -144
- package/core/server/adapters/route-settings/S3RouteSettingsStore.ts +0 -199
- package/core/server/adapters/route-settings/utils.ts +0 -17
- package/core/server/adapters/scheduling/deps.d.ts +0 -1
- package/core/server/adapters/scheduling/error-capture.ts +0 -91
- package/core/server/adapters/scheduling/scheduling-default.ts +0 -248
- package/core/server/adapters/scheduling/utils.ts +0 -36
- package/core/server/adapters/sso/DefaultSSOAdapter.ts +0 -15
- package/core/server/adapters/storage/LocalFilesStorage.ts +0 -24
- package/core/server/adapters/storage/LocalImagesStorage.ts +0 -24
- package/core/server/adapters/storage/LocalMediaStorage.ts +0 -24
- package/core/server/adapters/storage/LocalStorageBase.ts +0 -342
- package/core/server/adapters/storage/S3Storage.ts +0 -506
- package/core/server/adapters/storage/utils.ts +0 -60
- package/core/server/api/endpoints/automation-action-links.ts +0 -46
- package/core/server/api/endpoints/explore.js +0 -18
- package/core/server/api/endpoints/gift-links.ts +0 -87
- package/core/server/api/endpoints/libraries.d.ts +0 -2
- package/core/server/api/endpoints/member-commenting.ts +0 -92
- package/core/server/api/endpoints/member-custom-fields.ts +0 -106
- package/core/server/api/endpoints/utils/api-filter-utils.ts +0 -22
- package/core/server/api/endpoints/utils/gift-link-access.ts +0 -82
- package/core/server/api/endpoints/utils/public-cache-keys.ts +0 -47
- package/core/server/api/endpoints/utils/serializers/input/member-commenting.ts +0 -29
- package/core/server/api/endpoints/utils/serializers/output/explore.js +0 -11
- package/core/server/api/endpoints/utils/serializers/output/gift-links.ts +0 -21
- package/core/server/api/endpoints/utils/serializers/output/member-commenting.ts +0 -8
- package/core/server/api/endpoints/utils/serializers/output/member-custom-fields.ts +0 -25
- package/core/server/api/endpoints/utils/serializers/output/members.d.ts +0 -20
- package/core/server/api/endpoints/utils/serializers/output/posts-csv-transform.ts +0 -46
- package/core/server/api/endpoints/utils/serializers/output/stream-csv-response.ts +0 -47
- package/core/server/api/endpoints/utils/validate-email-sender-fields.ts +0 -42
- package/core/server/data/importer/email-template.ts +0 -213
- package/core/server/data/seeders/utils/topological-sort.ts +0 -48
- package/core/server/lib/auto-filling-map.ts +0 -23
- package/core/server/lib/bootstrap-socket.ts +0 -114
- package/core/server/lib/case-keys.ts +0 -30
- package/core/server/lib/common/to-plain.ts +0 -25
- package/core/server/lib/db-date.ts +0 -8
- package/core/server/lib/get-inbox-links.ts +0 -276
- package/core/server/lib/post-revisions.ts +0 -152
- package/core/server/lib/soonest-timer.ts +0 -57
- package/core/server/models/base/plugins/bulk-filters.ts +0 -35
- package/core/server/models/role-utils.ts +0 -56
- package/core/server/services/activitypub/activity-pub-service.ts +0 -216
- package/core/server/services/adapter-manager/adapter-manager.ts +0 -253
- package/core/server/services/adapter-manager/adapter-paths.ts +0 -26
- package/core/server/services/adapter-manager/base-classes.ts +0 -22
- package/core/server/services/adapter-manager/index.ts +0 -16
- package/core/server/services/adapter-manager/types.ts +0 -45
- package/core/server/services/adapter-manager/utils.ts +0 -308
- package/core/server/services/auth/reset-authentication.ts +0 -72
- package/core/server/services/automations/automations-api.ts +0 -396
- package/core/server/services/automations/automations-repository.ts +0 -218
- package/core/server/services/automations/constants.ts +0 -4
- package/core/server/services/automations/database-automations-repository.ts +0 -1513
- package/core/server/services/automations/database-date.ts +0 -26
- package/core/server/services/automations/fake-wait-hours-multiplier.ts +0 -12
- package/core/server/services/automations/get-scheduler-idempotency-key.ts +0 -8
- package/core/server/services/automations/mailgun-message-id.ts +0 -27
- package/core/server/services/automations/poll.ts +0 -325
- package/core/server/services/automations/scheduler-poll-time.ts +0 -38
- package/core/server/services/automations/service.ts +0 -131
- package/core/server/services/automations/stale-lock-cutoff.ts +0 -5
- package/core/server/services/comments/email-templates/new-comment-reply.txt.ts +0 -25
- package/core/server/services/comments/email-templates/new-comment.txt.ts +0 -25
- package/core/server/services/comments/email-templates/report.txt.ts +0 -34
- package/core/server/services/custom-redirects/redirect-config-parser.ts +0 -148
- package/core/server/services/custom-redirects/redirects-service.ts +0 -181
- package/core/server/services/custom-redirects/utils.ts +0 -7
- package/core/server/services/donations/donation-bookshelf-repository.ts +0 -63
- package/core/server/services/donations/donation-payment-event.ts +0 -51
- package/core/server/services/email-address/email-address-parser.d.ts +0 -12
- package/core/server/services/email-address/email-address-service.ts +0 -241
- package/core/server/services/email-analytics/automation-email-analytics-batch-processor.ts +0 -130
- package/core/server/services/email-analytics/batch-event-processor.ts +0 -18
- package/core/server/services/email-analytics/email-analytics-provider-mailgun.js +0 -57
- package/core/server/services/email-analytics/event-processing-result.ts +0 -66
- package/core/server/services/email-analytics/events/start-automation-email-analytics-job-event.ts +0 -14
- package/core/server/services/email-analytics/events/start-email-analytics-job-event.ts +0 -15
- package/core/server/services/email-analytics/index.ts +0 -109
- package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.ts +0 -126
- package/core/server/services/email-analytics/lib/queries.ts +0 -341
- package/core/server/services/email-service/domain-warming-service.ts +0 -91
- package/core/server/services/explore/explore-service.js +0 -59
- package/core/server/services/explore/index.js +0 -18
- package/core/server/services/explore-ping/explore-ping-service.ts +0 -198
- package/core/server/services/explore-ping/index.ts +0 -42
- package/core/server/services/files/file-type-utils.ts +0 -56
- package/core/server/services/gift-links/actions.ts +0 -51
- package/core/server/services/gift-links/codec.ts +0 -16
- package/core/server/services/gift-links/index.ts +0 -20
- package/core/server/services/gift-links/models.ts +0 -22
- package/core/server/services/gift-links/schema.ts +0 -33
- package/core/server/services/gift-links/serializers.ts +0 -20
- package/core/server/services/gift-links/service.ts +0 -95
- package/core/server/services/gifts/constants.ts +0 -3
- package/core/server/services/gifts/email-templates/gift-purchase-confirmation.ts +0 -43
- package/core/server/services/gifts/email-templates/gift-reminder.ts +0 -50
- package/core/server/services/gifts/gift-bookshelf-repository.ts +0 -366
- package/core/server/services/gifts/gift-checkout-offer.ts +0 -127
- package/core/server/services/gifts/gift-codec.ts +0 -62
- package/core/server/services/gifts/gift-controller.ts +0 -51
- package/core/server/services/gifts/gift-email-renderer.ts +0 -97
- package/core/server/services/gifts/gift-email-service.ts +0 -158
- package/core/server/services/gifts/gift-reminder-scheduler.ts +0 -107
- package/core/server/services/gifts/gift-schema.ts +0 -39
- package/core/server/services/gifts/gift-service-wrapper.js +0 -142
- package/core/server/services/gifts/gift-service.ts +0 -1034
- package/core/server/services/gifts/gift.ts +0 -234
- package/core/server/services/identity-tokens/identity-token-service.ts +0 -36
- package/core/server/services/indexnow-ping/constants.ts +0 -32
- package/core/server/services/indexnow-ping/index.ts +0 -35
- package/core/server/services/indexnow-ping/indexnow-ping-service.ts +0 -311
- package/core/server/services/internal-keys/index.ts +0 -53
- package/core/server/services/lib/dynamic-redirect-manager.d.ts +0 -20
- package/core/server/services/lib/in-memory-repository.ts +0 -78
- package/core/server/services/lib/member-signup-contexts.ts +0 -22
- package/core/server/services/link-redirection/link-redirect.ts +0 -24
- package/core/server/services/member-welcome-emails/constants.ts +0 -35
- package/core/server/services/members/commenting/index.ts +0 -2
- package/core/server/services/members/commenting/member-commenting-codec.ts +0 -73
- package/core/server/services/members/commenting/member-commenting.ts +0 -69
- package/core/server/services/members/create-paid-member-shim.ts +0 -40
- package/core/server/services/members/import-export/config.ts +0 -34
- package/core/server/services/members/import-export/csv/formula.ts +0 -14
- package/core/server/services/members/import-export/csv/index.ts +0 -3
- package/core/server/services/members/import-export/csv/parse.ts +0 -69
- package/core/server/services/members/import-export/csv/serialize.ts +0 -18
- package/core/server/services/members/import-export/export/exporter.ts +0 -325
- package/core/server/services/members/import-export/import/completion-email.ts +0 -146
- package/core/server/services/members/import-export/import/importer.ts +0 -489
- package/core/server/services/members/import-export/import/reader.ts +0 -33
- package/core/server/services/members/import-export/import/row.ts +0 -56
- package/core/server/services/members/import-export/import/spool.ts +0 -38
- package/core/server/services/members/import-export/index.ts +0 -143
- package/core/server/services/members/index.d.ts +0 -32
- package/core/server/services/members-custom-fields/actions.ts +0 -62
- package/core/server/services/members-custom-fields/codec.ts +0 -13
- package/core/server/services/members-custom-fields/config.ts +0 -38
- package/core/server/services/members-custom-fields/definitions-service.ts +0 -413
- package/core/server/services/members-custom-fields/index.ts +0 -50
- package/core/server/services/members-custom-fields/models.ts +0 -15
- package/core/server/services/members-custom-fields/queries.ts +0 -13
- package/core/server/services/members-custom-fields/schema.ts +0 -71
- package/core/server/services/members-custom-fields/serializers.ts +0 -22
- package/core/server/services/members-custom-fields/storage.ts +0 -122
- package/core/server/services/members-custom-fields/values-service.ts +0 -269
- package/core/server/services/notifications/notification-email.ts +0 -66
- package/core/server/services/notifications/sanitize-email-html.ts +0 -35
- package/core/server/services/post-scheduling/index.ts +0 -13
- package/core/server/services/post-scheduling/post-scheduling.ts +0 -133
- package/core/server/services/recommendations/service/bookshelf-click-event-repository.ts +0 -49
- package/core/server/services/recommendations/service/bookshelf-recommendation-repository.ts +0 -117
- package/core/server/services/recommendations/service/bookshelf-repository.ts +0 -192
- package/core/server/services/recommendations/service/bookshelf-subscribe-event-repository.ts +0 -49
- package/core/server/services/recommendations/service/click-event.ts +0 -32
- package/core/server/services/recommendations/service/in-memory-recommendation-repository.ts +0 -20
- package/core/server/services/recommendations/service/incoming-recommendation-controller.ts +0 -51
- package/core/server/services/recommendations/service/incoming-recommendation-email-renderer.ts +0 -37
- package/core/server/services/recommendations/service/incoming-recommendation-service.ts +0 -159
- package/core/server/services/recommendations/service/index.ts +0 -15
- package/core/server/services/recommendations/service/libraries.d.ts +0 -2
- package/core/server/services/recommendations/service/recommendation-controller.ts +0 -257
- package/core/server/services/recommendations/service/recommendation-metadata-service.ts +0 -132
- package/core/server/services/recommendations/service/recommendation-repository.ts +0 -13
- package/core/server/services/recommendations/service/recommendation-service.ts +0 -285
- package/core/server/services/recommendations/service/recommendation.ts +0 -200
- package/core/server/services/recommendations/service/subscribe-event.ts +0 -32
- package/core/server/services/recommendations/service/unsafe-data.ts +0 -217
- package/core/server/services/recommendations/service/well-known-service.ts +0 -47
- package/core/server/services/remote-flags/index.ts +0 -101
- package/core/server/services/remote-flags/remote-flags-service.ts +0 -236
- package/core/server/services/remote-flags/resolve.ts +0 -108
- package/core/server/services/route-settings/route-settings-parser.ts +0 -455
- package/core/server/services/route-settings/validation-errors.ts +0 -271
- package/core/server/services/route-settings/yaml-parser.d.ts +0 -4
- package/core/server/services/slack-ping/constants.ts +0 -15
- package/core/server/services/slack-ping/index.ts +0 -35
- package/core/server/services/slack-ping/slack-ping-service.ts +0 -295
- package/core/server/services/staff/email-templates/donation.txt.ts +0 -26
- package/core/server/services/staff/email-templates/gift.txt.ts +0 -27
- package/core/server/services/staff/email-templates/new-free-signup.txt.ts +0 -15
- package/core/server/services/staff/email-templates/new-gift-subscription.txt.ts +0 -26
- package/core/server/services/staff/email-templates/new-milestone-received.txt.ts +0 -20
- package/core/server/services/staff/email-templates/new-paid-cancellation.txt.ts +0 -15
- package/core/server/services/staff/email-templates/new-paid-started.txt.ts +0 -15
- package/core/server/services/staff/email-templates/recommendation-received.txt.ts +0 -23
- package/core/server/services/staff/email-templates/types.ts +0 -13
- package/core/server/services/url/lazy-find-resource.ts +0 -104
- package/core/server/services/url/lazy-url-service.ts +0 -647
- package/core/server/services/url/permalink-matcher.ts +0 -119
- package/core/server/services/url/router-filter.ts +0 -80
- package/core/server/services/verification/verification-webhook-service.ts +0 -137
- package/core/shared/config/helpers.ts +0 -133
- package/core/shared/config/index.ts +0 -12
- package/core/shared/config/loader.ts +0 -87
- package/core/shared/config/utils.ts +0 -104
- package/core/shared/errify.ts +0 -31
- package/core/shared/events-ts/index.ts +0 -8
- package/core/shared/events-ts/post-deleted-event.ts +0 -15
- package/core/shared/events-ts/posts-bulk-add-tags-event.ts +0 -13
- package/core/shared/events-ts/posts-bulk-destroyed-event.ts +0 -13
- package/core/shared/events-ts/posts-bulk-featured-event.ts +0 -13
- package/core/shared/events-ts/posts-bulk-unfeatured-event.ts +0 -13
- package/core/shared/events-ts/posts-bulk-unpublished-event.ts +0 -13
- package/core/shared/events-ts/posts-bulk-unscheduled-event.ts +0 -13
- package/core/shared/labs-flag-overrides.ts +0 -35
- package/core/shared/one-at-a-time.ts +0 -47
- package/core/shared/url-utils.ts +0 -20
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import{o as e,t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{t as r}from"./jsx-runtime-DX3WBWVO.js";import{g as i}from"./framework-provider-CmtnPXIT.js";import{_ as a,m as o,o as s,u as c,v as l,x as u,y as d}from"./hooks-D6EE7BIt.js";import{n as f}from"./dist-Ndy-PuGN.js";import{t as p}from"./build-CsiH26uS.js";import{n as m}from"./offers-Um6ab71O.js";import{f as h,g,l as _}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as v}from"./router-provider-DSQfprxH.js";import{c as y,f as b,p as x,v as S}from"./dist-Cb5RSHSg.js";import{t as C}from"./box-By_EgGtm.js";import{t as w}from"./container-LiZf3XdY.js";import{n as T}from"./filters-Bz0HsRie.js";import{n as E,o as D,r as O,s as k,t as A}from"./command-BOYMbZa_.js";import{t as j}from"./dropzone-CzhP33wa.js";import{i as M,n as N,o as P,s as F,t as I}from"./select-CkXqNJDJ.js";import{t as L}from"./empty-indicator-WB1WgT9h.js";import{i as ee,n as R,t as z}from"./input-group-2XU-iuh_.js";import{a as B,c as V,n as te,r as H,s as U,t as W}from"./table-BtLcEi1M.js";import{m as ne}from"./users-B6hIds6n.js";import{$a as re,$n as ie,$r as ae,Ba as oe,Bi as se,Bo as ce,Bs as le,C as ue,Da as de,Dn as G,Dr as fe,E as pe,En as me,Eo as he,Er as K,Gi as ge,Jo as _e,Lo as ve,M as ye,Mi as be,Na as xe,Ni as Se,Nn as Ce,Oi as we,Or as Te,Po as Ee,Pr as q,Qn as De,Ra as Oe,Ri as ke,Ro as Ae,S as je,Sr as Me,T as Ne,Tr as Pe,Ts as Fe,V as Ie,Wa as Le,Xi as Re,Yi as ze,Yr as Be,Zr as Ve,_ as He,_a as Ue,_n as We,ai as Ge,ar as Ke,br as qe,cr as Je,dn as Ye,ds as Xe,eo as Ze,es as Qe,fn as $e,fs as et,g as tt,ga as nt,h as rt,hn as it,ia as at,jn as ot,m as st,pn as ct,ps as lt,ra as ut,ri as dt,ro as ft,tr as pt,ts as mt,uo as ht,us as gt,v as _t,vr as vt,w as yt,wo as bt,wr as xt,x as St,xr as Ct}from"./index-DUXM0NlS.js";import{t as J}from"./page-header-DAvDYKO9.js";import{C as wt,S as Tt,T as Et,_ as Dt,a as Ot,b as kt,c as At,d as jt,f as Y,g as Mt,h as Nt,i as Pt,l as Ft,m as It,n as Lt,o as Rt,p as zt,r as Bt,s as Vt,t as Ht,u as Ut,v as Wt,w as Gt,x as Kt,y as qt}from"./filters-yFvybRMe.js";import{r as Jt}from"./newsletters-Du0lzskS.js";import{t as Yt}from"./list-page-CdsnQR9N.js";import{a as Xt,i as Zt,n as Qt,t as $t}from"./filter-sources-CiPLnG9A.js";import{i as en,n as tn,r as nn,t as rn}from"./virtual-list-Dnoafqbk.js";import{t as an}from"./get-site-timezone-HgL0jI_F.js";import{r as on,t as sn,u as cn}from"./member-custom-fields-BvFKEpxJ.js";import{n as ln,r as un,t as dn}from"./label-picker-Bnlru5tO.js";import{t as fn}from"./member-route-0Aa52Ntz.js";var X=e(n(),1),Z=r();function pn({open:e,memberCount:t,onOpenChange:n,onConfirm:r,isLoading:i=!1}){let[a,o]=(0,X.useState)([]),s=ln({selectedSlugs:a,onSelectionChange:o}),c=(0,X.useCallback)(e=>{e||o([]),n(e)},[n]);return(0,Z.jsx)(Me,{open:e,onOpenChange:c,children:(0,Z.jsxs)(xt,{className:`gap-5`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Z.jsx)(fe,{children:(0,Z.jsxs)(Te,{children:[`Add label to `,b(t),` `,t===1?`member`:`members`]})}),(0,Z.jsx)(un,{isCreating:s.isCreating,labels:s.labels,optionSource:s.optionSource,resolvedSelectedLabels:s.resolvedSelectedLabels,selectedSlugs:a,onCreate:s.createLabel,onDelete:s.deleteLabel,onEdit:s.editLabel,onToggle:s.toggleLabel}),(0,Z.jsxs)(K,{children:[(0,Z.jsx)(q,{variant:`outline`,onClick:()=>c(!1),children:`Cancel`}),(0,Z.jsx)(q,{disabled:a.length===0||i,onClick:()=>{let e=s.labels.filter(e=>a.includes(e.slug)).map(e=>e.id);e.length>0&&r(e)},children:i?`Adding...`:a.length>1?`Add ${b(a.length)} labels`:`Add label`})]})]})})}function mn({open:e,memberCount:t,nql:n,search:r,onOpenChange:i,onConfirm:a,isLoading:o=!1}){let[s,c]=(0,X.useState)([]),{data:l,isLoading:u}=ue({searchParams:{...n?{filter:n}:{},...r?{search:r}:{},include:`labels`,limit:`all`,fields:`id`},enabled:e}),d=(0,X.useMemo)(()=>{let e=new Set;for(let t of l?.members||[])for(let n of t.labels||[])e.add(n.slug);return e},[l]),f=ln({selectedSlugs:s,onSelectionChange:c}),p={...f.optionSource,options:f.optionSource.options.filter(e=>d.has(String(e.value)))},m=(0,X.useCallback)(e=>{e||c([]),i(e)},[i]),h=()=>{let e=f.labels.filter(e=>s.includes(e.slug)).map(e=>e.id);e.length>0&&a(e)};return(0,Z.jsx)(Me,{open:e,onOpenChange:m,children:(0,Z.jsxs)(xt,{className:`gap-5`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Z.jsx)(fe,{children:(0,Z.jsxs)(Te,{children:[`Remove label from `,b(t),` `,t===1?`member`:`members`]})}),(0,Z.jsx)(un,{labels:f.labels.filter(e=>d.has(e.slug)),optionSource:{...p,isInitialLoad:p.isInitialLoad||u},resolvedSelectedLabels:f.resolvedSelectedLabels.filter(e=>d.has(e.slug)),selectedSlugs:s,onDelete:f.deleteLabel,onEdit:f.editLabel,onToggle:f.toggleLabel}),(0,Z.jsxs)(K,{children:[(0,Z.jsx)(q,{variant:`outline`,onClick:()=>m(!1),children:`Cancel`}),(0,Z.jsx)(q,{disabled:s.length===0||o,onClick:h,children:o?`Removing...`:s.length>1?`Remove ${b(s.length)} labels`:`Remove label`})]})]})})}function hn({open:e,newsletters:t,memberCount:n,onOpenChange:r,onConfirm:i,isLoading:a=!1}){let[o,s]=(0,X.useState)(`all`),[c,l]=(0,X.useState)([]),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(!1),m=(0,X.useRef)(null),h=(0,X.useRef)(null);(0,X.useEffect)(()=>{e||(s(`all`),l([]),d(``),p(!1))},[e]),(0,X.useEffect)(()=>{if(!f)return;let e=e=>{m.current&&!m.current.contains(e.target)&&p(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[f]);let g=e=>{e||(s(`all`),l([]),d(``),p(!1)),r(e)},_=(0,X.useCallback)(e=>{l(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),v=t.length>=2,y=()=>{i(!v||o===`all`?null:c)},b=a||v&&o===`selected`&&c.length===0,x=n===1?`member`:`members`;return(0,Z.jsx)(Me,{open:e,onOpenChange:g,children:(0,Z.jsxs)(xt,{className:`gap-5`,children:[(0,Z.jsx)(fe,{children:(0,Z.jsx)(Te,{children:`Unsubscribe members`})}),v?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{"aria-label":`Unsubscribe scope`,className:`flex flex-col gap-3`,role:`radiogroup`,children:[(0,Z.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3`,children:[(0,Z.jsx)(`input`,{checked:o===`all`,className:`mt-0.5 size-4 cursor-pointer accent-black`,name:`unsubscribe-mode`,type:`radio`,value:`all`,onChange:()=>s(`all`)}),(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-semibold`,children:`Unsubscribe from all newsletters`}),(0,Z.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[n.toLocaleString(),` `,x,` will be unsubscribed from`,` `,t.length,` `,t.length===1?`newsletter`:`newsletters`,`.`]})]})]}),(0,Z.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3`,children:[(0,Z.jsx)(`input`,{checked:o===`selected`,className:`mt-0.5 size-4 cursor-pointer accent-black`,name:`unsubscribe-mode`,type:`radio`,value:`selected`,onChange:()=>s(`selected`)}),(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-semibold`,children:`Unsubscribe from selected newsletters`}),(0,Z.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`Select which newsletters to unsubscribe`,` `,n.toLocaleString(),` `,x,` from.`]})]})]})]}),o===`selected`&&(0,Z.jsxs)(`div`,{ref:m,className:`relative space-y-2`,children:[(0,Z.jsx)(`label`,{className:`text-sm font-semibold`,htmlFor:`newsletter-search`,children:`Newsletters`}),(0,Z.jsxs)(`div`,{className:`flex min-h-9 w-full cursor-text flex-wrap items-center gap-1.5 rounded-md border bg-background px-3 py-1 text-sm`,onClick:()=>{h.current?.focus(),p(!0)},children:[c.map(e=>{let n=t.find(t=>t.id===e);return n?(0,Z.jsxs)(ie,{className:`cursor-pointer gap-1 pr-1`,variant:`outline`,onClick:t=>{t.stopPropagation(),_(e)},children:[n.name,(0,Z.jsx)(we,{className:`size-3`})]},e):null}),(0,Z.jsx)(`input`,{ref:h,className:`min-w-[80px] flex-1 bg-transparent py-1 text-sm outline-hidden placeholder:text-muted-foreground`,id:`newsletter-search`,placeholder:c.length===0?`Search newsletters...`:``,value:u,onChange:e=>{d(e.target.value),f||p(!0)},onFocus:()=>p(!0),onKeyDown:e=>{e.key===`Escape`&&(p(!1),h.current?.blur()),e.key===`Backspace`&&!u&&c.length>0&&_(c[c.length-1])}})]}),f&&(0,Z.jsx)(`div`,{className:`absolute top-full left-0 z-50 mt-1 w-full rounded-md border bg-white shadow-md dark:bg-gray-950`,children:(0,Z.jsx)(A,{shouldFilter:!1,children:(0,Z.jsxs)(k,{className:`max-h-64 overflow-y-auto`,children:[(0,Z.jsx)(O,{children:`No newsletters found.`}),t.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())).map(e=>(0,Z.jsxs)(D,{value:e.name,onSelect:()=>_(e.id),children:[e.name,c.includes(e.id)&&(0,Z.jsx)(E,{})]},e.id))]})})})]})]}):(0,Z.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to unsubscribe`,` `,n.toLocaleString(),` `,x,` from all newsletters? They will no longer receive any email newsletters from you.`]}),(0,Z.jsxs)(K,{children:[(0,Z.jsx)(q,{variant:`outline`,onClick:()=>g(!1),children:`Cancel`}),(0,Z.jsx)(q,{disabled:b,variant:`destructive`,onClick:y,children:a?`Unsubscribing...`:`Unsubscribe`})]})]})})}function gn({open:e,memberCount:t,onOpenChange:n,onConfirm:r,onExportBackup:i,isLoading:a=!1}){let[o,s]=(0,X.useState)(!1),c=e=>{e||s(!1),n(e)},l=async()=>{if(!(t<1||a||o))try{s(!0),await i(),r()}catch{}finally{s(!1)}};return(0,Z.jsx)(Me,{open:e,onOpenChange:c,children:(0,Z.jsxs)(xt,{className:`gap-5`,children:[(0,Z.jsx)(fe,{children:(0,Z.jsx)(Te,{children:`Delete selected members?`})}),t>0?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`p`,{children:[`You're about to delete `,(0,Z.jsxs)(`strong`,{children:[t.toLocaleString(),` `,t===1?`member`:`members`]}),`. This is permanent! All Ghost data will be deleted, this will have no effect on subscriptions in Stripe.`]}),(0,Z.jsx)(`p`,{children:`A backup of your selection will be automatically downloaded to your device before deletion.`})]}):(0,Z.jsx)(`p`,{children:`No members are selected.`}),(0,Z.jsxs)(K,{children:[(0,Z.jsx)(q,{variant:`outline`,onClick:()=>c(!1),children:`Cancel`}),(0,Z.jsx)(q,{disabled:a||o||t<1,variant:`destructive`,onClick:()=>void l(),children:a||o?`Deleting...`:`Download backup & delete members`})]})]})})}function _n({fileError:e,onClose:t,onDropAccepted:n,onDropRejected:r}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`mt-5 space-y-5`,children:[(0,Z.jsxs)(De,{variant:`info`,children:[`Need some help? `,(0,Z.jsx)(`a`,{className:`font-semibold underline`,href:`https://ghost.org/help/import-members/`,rel:`noopener noreferrer`,target:`_blank`,children:`Learn more`}),` about importing members or `,(0,Z.jsx)(`a`,{className:`font-semibold underline`,href:`https://static.ghost.org/v4.0.0/files/member-import-template.csv`,rel:`noopener noreferrer`,target:`_blank`,children:`download a sample CSV file`}),`.`]}),e&&(0,Z.jsxs)(`div`,{className:`flex items-start gap-2 text-sm text-red-600`,children:[(0,Z.jsx)(ge,{className:`mt-0.5 size-4 shrink-0`}),(0,Z.jsx)(`p`,{children:e})]}),(0,Z.jsx)(j,{accept:{"text/csv":[`.csv`],"application/vnd.ms-excel":[`.csv`]},"aria-label":`Select or drop a CSV file`,onDropAccepted:e=>{let t=e[0];t&&n(t)},onDropRejected:r,children:({isDragActive:e,isDragReject:t})=>(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(se,{className:`mb-2 size-6 text-grey-600`}),(0,Z.jsx)(`span`,{className:`text-sm text-grey-700`,children:t?`The file type you uploaded is not supported`:e?`Drop CSV file to upload`:`Select or drop a CSV file`})]})})]}),(0,Z.jsx)(K,{className:`mt-5`,children:(0,Z.jsx)(q,{variant:`outline`,onClick:t,children:`Close`})})]})}var vn=[{label:`Email`,value:`email`},{label:`Name`,value:`name`},{label:`Note`,value:`note`},{label:`Subscribed to emails`,value:`subscribed_to_emails`},{label:`Stripe Customer ID`,value:`stripe_customer_id`},{label:`Complimentary plan`,value:`complimentary_plan`},{label:`Labels`,value:`labels`},{label:`Created at`,value:`created_at`},{label:`Gift ID`,value:`gift_id`}],yn={label:`Tier`,value:`import_tier`},bn=[`email`,`name`,`note`,`subscribed_to_emails`,`complimentary_plan`,`stripe_customer_id`,`labels`,`created_at`,`gift_id`];function xn({importMemberTier:e=!1,customFieldColumns:t=[]}={}){return[...bn,...e?[yn.value]:[],...t.map(e=>e.value)]}function Sn({importMemberTier:e=!1,customFieldColumns:t=[]}={}){return[...vn,...e?[yn]:[],...t]}var Cn=[`email`],wn=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,Tn=class e{_mapping;constructor(e){if(this._mapping={},e)for(let[t,n]of Object.entries(e))this._mapping[n]=t}get(e){return this._mapping[e]??null}toJSON(){return{...this._mapping}}getKeyByValue(e){for(let[t,n]of Object.entries(this._mapping))if(n===e)return t;return null}updateMapping(t,n){let r=new e({});if(r._mapping={...this._mapping},n)for(let e in r._mapping)r._mapping[e]===n&&(r._mapping[e]=null);return r._mapping[t]=n,r}};function En(e,t=30){if(!e||e.length<=t)return e;let n=[];return Object.keys(e[0]).forEach(r=>{let i=e.filter(e=>e[r]&&e[r].trim()!==``),a=[];if(i.length<=t)a=i;else{let e=Math.floor(t/3),n=e,r=t-e-n,o=i.slice(0,e),s=n>0?i.slice(-n):[],c=Math.max(0,Math.floor(i.length/2)-Math.floor(r/2)),l=i.slice(c,c+r);a=[...o,...l,...s].slice(0,t)}a.forEach((e,t)=>{n[t]||(n[t]={}),n[t][r]=e[r]})}),n}function Dn(e,t={}){let n=En(e),r={},i=xn(t);if(e.length>0)for(let t of Object.keys(e[0])){if(!r.name&&/name/i.test(t)&&!cn(t)){r.name=t;continue}!r[t]&&i.includes(t)&&!Cn.includes(t)&&(r[t]=t)}let a=0;for(;a<=n.length-1&&!r.email;){let e=n[a];for(let[t,n]of Object.entries(e))!r.email&&n&&wn.test(n)&&!cn(t)&&(r.email=t);a+=1}return r}function On(e){return e.replace(`Value in [members.email] cannot be blank.`,`Missing email address`).replace(`Value in [members.note] exceeds maximum length of 2000 characters.`,`Note is too long`).replace(`Value in [members.subscribed] must be one of true, false, 0 or 1.`,`Value of "Subscribed to emails" must be "true" or "false"`).replace(`Validation (isEmail) failed for email`,`Invalid email address`).replace(/No such customer:[\s\S]*/,`Could not find Stripe customer`)}function kn({status:e,fileData:t,mapping:n,mappingError:r,showMappingErrors:i,membersCount:a,dataPreviewIndex:o,hasPrevRecord:s,hasNextRecord:c,fieldMappings:l,labelPicker:u,onUpdateMapping:d,onDataPreviewIndexChange:f,onStartOver:p,onUpload:m}){let h=t&&t.length>0&&n?Object.entries(t[o]||{}).map(([e,t])=>({key:e,value:t,mapTo:n.get(e)})):[];return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`mt-5 space-y-5`,children:t===null?(0,Z.jsx)(`div`,{className:`flex items-center justify-center rounded-md border bg-muted p-10`,children:(0,Z.jsx)(Ke,{size:`md`})}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:y(`overflow-hidden rounded-md border`,i&&r&&`border-red-500`),children:(0,Z.jsx)(`div`,{className:`max-h-[400px] overflow-auto`,children:(0,Z.jsxs)(W,{className:`table-fixed`,children:[(0,Z.jsx)(U,{children:(0,Z.jsxs)(V,{children:[(0,Z.jsx)(B,{className:`w-1/3`,children:`Field`}),(0,Z.jsx)(B,{className:`w-1/3`,children:(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsxs)(`span`,{children:[`Sample data `,(0,Z.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(#`,b(o+1),`)`]})]}),(0,Z.jsxs)(`div`,{className:`flex items-center`,children:[(0,Z.jsx)(`button`,{"aria-label":`Show previous sample row`,className:y(`rounded p-0.5 hover:bg-muted`,!s&&`cursor-default opacity-30`),disabled:!s||e===`UPLOADING`,type:`button`,onClick:()=>f(o-1),children:(0,Z.jsx)(mt,{className:`size-4`})}),(0,Z.jsx)(`button`,{"aria-label":`Show next sample row`,className:y(`rounded p-0.5 hover:bg-muted`,!c&&`cursor-default opacity-30`),disabled:!c||e===`UPLOADING`,type:`button`,onClick:()=>f(o+1),children:(0,Z.jsx)(Qe,{className:`size-4`})})]})]})}),(0,Z.jsx)(B,{className:`w-1/3`,children:`Import as`})]})}),(0,Z.jsx)(te,{children:h.length>0?h.map(t=>(0,Z.jsxs)(V,{className:y(!t.mapTo&&`bg-muted`),children:[(0,Z.jsx)(H,{className:`text-sm font-medium break-all`,children:t.key}),(0,Z.jsx)(H,{className:y(`text-sm break-all`,!t.value&&`text-muted-foreground`),children:t.value||`\xA0`}),(0,Z.jsx)(H,{children:(0,Z.jsxs)(I,{disabled:e===`UPLOADING`,value:t.mapTo||`__not_imported__`,onValueChange:e=>{d(t.key,e===`__not_imported__`?null:e)},children:[(0,Z.jsx)(P,{className:y(`h-8 text-sm`,!t.mapTo&&`text-muted-foreground`),children:(0,Z.jsx)(F,{})}),(0,Z.jsxs)(N,{children:[(0,Z.jsx)(M,{value:`__not_imported__`,children:`Not imported`}),l.map(e=>(0,Z.jsx)(M,{value:e.value,children:e.label},e.value))]})]})})]},t.key)):(0,Z.jsx)(V,{children:(0,Z.jsx)(H,{className:`text-muted-foreground`,colSpan:3,children:`No data found in the uploaded CSV.`})})})]})})}),i&&r&&(0,Z.jsx)(`p`,{className:`text-sm text-red-600`,children:r}),a>0&&(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`If an email address in your CSV matches an existing member, they will be updated with the mapped values.`}),(0,Z.jsxs)(`div`,{className:`mt-5`,children:[(0,Z.jsx)(`label`,{className:`mb-1 block text-sm font-semibold`,children:`Label these members`}),(0,Z.jsx)(un,{isCreating:u.isCreating,labels:u.labels,optionSource:u.optionSource,resolvedSelectedLabels:u.resolvedSelectedLabels,selectedSlugs:u.selectedSlugs,onCreate:u.createLabel,onDelete:u.deleteLabel,onEdit:u.editLabel,onToggle:u.toggleLabel})]})]})}),(0,Z.jsxs)(K,{className:`mt-5`,children:[(0,Z.jsx)(q,{disabled:e===`UPLOADING`,variant:`outline`,onClick:p,children:`Start over`}),(0,Z.jsx)(q,{disabled:e===`UPLOADING`||a===0,onClick:m,children:e===`UPLOADING`?(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(Ke,{color:`light`,size:`sm`}),`Uploading`]}):a>0?`Import ${b(a)} ${a===1?`member`:`members`}`:`Import members`})]})]})}function An({onUploadAnotherFile:e,onClose:t}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`mt-5`,children:(0,Z.jsx)(`p`,{className:`text-sm`,children:`Your import is being processed, and you'll receive a confirmation email as soon as it's complete. Usually this only takes a few minutes, but larger imports may take longer.`})}),(0,Z.jsxs)(K,{className:`mt-5`,children:[(0,Z.jsx)(q,{variant:`outline`,onClick:e,children:`Upload another file`}),(0,Z.jsx)(q,{onClick:t,children:`Got it`})]})]})}var jn=()=>({status:`INIT`,file:null,fileData:null,mapping:null,selectedLabelSlugs:[],dataPreviewIndex:0,mappingError:null,showMappingErrors:!1,importResponse:null,errorMessage:null,errorHeader:`Import error`,showTryAgainButton:!0,dragOver:!1,fileError:null});function Mn({importResponse:e,onReset:t,onClose:n}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`mt-5 space-y-4`,children:[e.importedCount===0?(0,Z.jsxs)(`p`,{className:`text-sm`,children:[`No members were added`,e.errorCount>0?` due to the following errors:`:`.`]}):(0,Z.jsxs)(`p`,{className:`text-sm`,children:[`A total of `,(0,Z.jsx)(`strong`,{children:e.importedCount.toLocaleString()}),` `,e.importedCount===1?`person was`:`people were`,` successfully added or updated in your list of members, and now have access to your site.`]}),e.errorCount>0&&(0,Z.jsxs)(Z.Fragment,{children:[e.importedCount>0&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`hr`,{className:`border-grey-200`}),(0,Z.jsxs)(`p`,{className:`text-sm`,children:[(0,Z.jsx)(`strong`,{children:e.errorCount.toLocaleString()}),` `,e.errorCount===1?`member was`:`members were`,` skipped due to the following errors:`]})]}),(0,Z.jsx)(`ul`,{className:`list-inside list-disc space-y-1 text-sm text-muted-foreground`,children:e.errorList.map(e=>(0,Z.jsxs)(`li`,{children:[e.message,` (`,e.count,`)`]},e.message))})]})]}),(0,Z.jsx)(K,{className:`mt-5`,children:e.errorCount>0?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(q,{variant:`outline`,asChild:!0,children:(0,Z.jsx)(`a`,{download:e.errorCsvName,href:e.errorCsvUrl,children:`Download error file`})}),e.importedCount===0?(0,Z.jsx)(q,{onClick:t,children:`Try again`}):(0,Z.jsx)(q,{onClick:n,children:`View members`})]}):(0,Z.jsx)(Z.Fragment,{children:e.importedCount===0?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(q,{variant:`outline`,onClick:n,children:`Close`}),(0,Z.jsx)(q,{onClick:t,children:`Try again`})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(q,{variant:`outline`,onClick:t,children:`Upload another file`}),(0,Z.jsx)(q,{onClick:n,children:`View members`})]})})})]})}function Nn({errorMessage:e,showTryAgainButton:t,onTryAgain:n,onClose:r}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`mt-5`,children:(0,Z.jsxs)(`div`,{className:`flex items-start gap-2 text-sm text-red-600`,children:[(0,Z.jsx)(ge,{className:`mt-0.5 size-4 shrink-0`}),(0,Z.jsx)(`p`,{children:e})]})}),(0,Z.jsxs)(K,{className:`mt-5`,children:[t&&(0,Z.jsx)(q,{variant:`outline`,onClick:n,children:`Try again`}),(0,Z.jsx)(q,{onClick:r,children:`OK`})]})]})}var Pn=t(((e,t)=>{((n,r)=>{typeof define==`function`&&define.amd?define([],r):typeof t==`object`&&e!==void 0?t.exports=r():n.Papa=r()})(e,function e(){var t=typeof self<`u`?self:typeof window<`u`?window:t===void 0?{}:t,n,r=!t.document&&!!t.postMessage,i=t.IS_PAPA_WORKER||!1,a={},o=0,s={};function c(e){return e.charCodeAt(0)===65279?e.slice(1):e}function l(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=``,this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=b(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new m(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,n){var r=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<r){let t=this._config.newline;t||=(a=this._config.quoteChar||`"`,this._handle.guessLineEndings(e,a)),e=[...e.split(t).slice(r)].join(t)}this.isFirstChunk&&S(this._config.beforeFirstChunk)&&(a=this._config.beforeFirstChunk(e))!==void 0&&(e=a),this.isFirstChunk=!1,this._halted=!1;var r=this._partialLine+e,a=(this._partialLine=``,this._handle.parse(r,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(e=a.meta.cursor,r=(this._finished||(this._partialLine=r.substring(e-this._baseIndex),this._baseIndex=e),a&&a.data&&(this._rowCount+=a.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),i)t.postMessage({results:a,workerId:s.WORKER_ID,finished:r});else if(S(this._config.chunk)&&!n){if(this._config.chunk(a,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=a=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(a.data),this._completeResults.errors=this._completeResults.errors.concat(a.errors),this._completeResults.meta=a.meta),this._completed||!r||!S(this._config.complete)||a&&a.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),r||a&&a.meta.paused||this._nextChunk(),a}this._halted=!0},this._sendError=function(e){S(this._config.error)?this._config.error(e):i&&this._config.error&&t.postMessage({workerId:s.WORKER_ID,error:e,finished:!1})}}function u(e){var t;(e||={}).chunkSize||(e.chunkSize=s.RemoteChunkSize),l.call(this,e),this._nextChunk=r?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),r||(t.onload=x(this._chunkLoaded,this),t.onerror=x(this._chunkError,this)),t.open(this._config.downloadRequestBody?`POST`:`GET`,this._input,!r),this._config.downloadRequestHeaders){var e,n=this._config.downloadRequestHeaders;for(e in n)t.setRequestHeader(e,n[e])}var i;this._config.chunkSize&&(i=this._start+this._config.chunkSize-1,t.setRequestHeader(`Range`,`bytes=`+this._start+`-`+i));try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}r&&t.status===0&&this._chunkError()}},this._chunkLoaded=function(){t.readyState===4&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize||t.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>(e=e.getResponseHeader(`Content-Range`))===null?-1:parseInt(e.substring(e.lastIndexOf(`/`)+1)))(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){e=t.statusText||e,this._sendError(Error(e))}}function d(e){(e||={}).chunkSize||(e.chunkSize=s.LocalChunkSize),l.call(this,e);var t,n,r=typeof FileReader<`u`;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=x(this._chunkLoaded,this),t.onerror=x(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input,i=(this._config.chunkSize&&(i=Math.min(this._start+this._config.chunkSize,this._input.size),e=n.call(e,this._start,i)),t.readAsText(e,this._config.encoding));r||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function f(e){var t;l.call(this,e||={}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){var e,n;if(!this._finished)return e=this._config.chunkSize,t=e?(n=t.substring(0,e),t.substring(e)):(n=t,``),this._finished=!t,this.parseChunk(n)}}function p(e){l.call(this,e||={});var t=[],n=!0,r=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(`data`,this._streamData),this._input.on(`end`,this._streamEnd),this._input.on(`error`,this._streamError)},this._checkIsFinished=function(){r&&t.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):n=!0},this._streamData=x(function(e){try{t.push(typeof e==`string`?e:e.toString(this._config.encoding)),n&&(n=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=x(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=x(function(){this._streamCleanUp(),r=!0,this._streamData(``)},this),this._streamCleanUp=x(function(){this._input.removeListener(`data`,this._streamData),this._input.removeListener(`end`,this._streamEnd),this._input.removeListener(`error`,this._streamError)},this)}function m(e){var t,n,r,i,a=2**53,o=-a,l=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,u=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,d=this,f=0,p=0,m=!1,_=!1,v=[],y={data:[],errors:[],meta:{}};function x(t){return e.skipEmptyLines===`greedy`?t.join(``).trim()===``:t.length===1&&t[0].length===0}function C(){if(y&&r&&(T(`Delimiter`,`UndetectableDelimiter`,`Unable to auto-detect delimiting character; defaulted to '`+s.DefaultDelimiter+`'`),r=!1),e.skipEmptyLines&&(y.data=y.data.filter(function(e){return!x(e)})),w()){if(y)if(Array.isArray(y.data[0])){for(var t=0;w()&&t<y.data.length;t++)y.data[t].forEach(n);y.data.splice(0,1)}else y.data.forEach(n);function n(t,n){t=c(t),S(e.transformHeader)&&(t=e.transformHeader(t,n)),v.push(t)}}function n(t,n){for(var r=e.header?{}:[],i=0;i<t.length;i++){var s=i,c=t[i],c=((t,n)=>(t=>(e.dynamicTypingFunction&&e.dynamicTyping[t]===void 0&&(e.dynamicTyping[t]=e.dynamicTypingFunction(t)),!0===(e.dynamicTyping[t]||e.dynamicTyping)))(t)?n===`true`||n===`TRUE`||n!==`false`&&n!==`FALSE`&&((e=>{if(l.test(e)&&(e=parseFloat(e),o<e&&e<a))return 1})(n)?parseFloat(n):u.test(n)?new Date(n):n===``?null:n):n)(s=e.header?i>=v.length?`__parsed_extra`:v[i]:s,c=e.transform?e.transform(c,s):c);s===`__parsed_extra`?(r[s]=r[s]||[],r[s].push(c)):r[s]=c}return e.header&&(i>v.length?T(`FieldMismatch`,`TooManyFields`,`Too many fields: expected `+v.length+` fields but parsed `+i,p+n):i<v.length&&T(`FieldMismatch`,`TooFewFields`,`Too few fields: expected `+v.length+` fields but parsed `+i,p+n)),r}var i;y&&(e.header||e.dynamicTyping||e.transform)&&(i=1,!y.data.length||Array.isArray(y.data[0])?(y.data=y.data.map(n),i=y.data.length):y.data=n(y.data,0),e.header&&y.meta&&(y.meta.fields=v),p+=i)}function w(){return e.header&&v.length===0}function T(e,t,n,r){e={type:e,code:t,message:n},r!==void 0&&(e.row=r),y.errors.push(e)}S(e.step)&&(i=e.step,e.step=function(t){y=t,w()?C():(C(),y.data.length!==0&&(f+=t.data.length,e.preview&&f>e.preview?n.abort():(y.data=y.data[0],i(y,d))))}),this.parse=function(i,a,o){var c=e.quoteChar||`"`,c=(e.newline||=this.guessLineEndings(i,c),r=!1,e.delimiter?S(e.delimiter)&&(e.delimiter=e.delimiter(i),y.meta.delimiter=e.delimiter):((c=((t,n,r,i,a)=>{var o,c,l,u;a||=[`,`,` `,`|`,`;`,s.RECORD_SEP,s.UNIT_SEP];for(var d=0;d<a.length;d++){for(var f,p=a[d],m=0,h=0,_=0,v=(l=void 0,new g({comments:i,delimiter:p,newline:n,preview:10}).parse(t)),y=0;y<v.data.length;y++)r&&x(v.data[y])?_++:(f=v.data[y].length,h+=f,l===void 0?l=f:0<f&&(m+=Math.abs(f-l),l=f));0<v.data.length&&(h/=v.data.length-_),(c===void 0||m<=c)&&(u===void 0||u<h)&&1.99<h&&(c=m,o=p,u=h)}return{successful:!!(e.delimiter=o),bestDelimiter:o}})(i,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess)).successful?e.delimiter=c.bestDelimiter:(r=!0,e.delimiter=s.DefaultDelimiter),y.meta.delimiter=e.delimiter),b(e));return e.preview&&e.header&&c.preview++,t=i,n=new g(c),y=n.parse(t,a,o),C(),m?{meta:{paused:!0}}:y||{meta:{paused:!1}}},this.paused=function(){return m},this.pause=function(){m=!0,n.abort(),t=S(e.chunk)?``:t.substring(n.getCharIndex())},this.resume=function(){d.streamer._halted?(m=!1,d.streamer.parseChunk(t,!0)):setTimeout(d.resume,3)},this.aborted=function(){return _},this.abort=function(){_=!0,n.abort(),y.meta.aborted=!0,S(e.complete)&&e.complete(y),t=``},this.guessLineEndings=function(e,t){e=e.substring(0,1048576);var t=RegExp(h(t)+`([^]*?)`+h(t),`gm`),n=(e=e.replace(t,``)).split(`\r`),t=e.split(`
|
|
2
|
-
`),e=1<t.length&&t[0].length<n[0].length;if(n.length===1||e)return`
|
|
3
|
-
`;for(var r=0,i=0;i<n.length;i++)n[i][0]===`
|
|
4
|
-
`&&r++;return r>=n.length/2?`\r
|
|
5
|
-
`:`\r`}}function h(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function g(e){var t=(e||={}).delimiter,n=e.newline,r=e.comments,i=e.step,a=e.preview,o=e.fastMode,l=null,u=!1,d=e.quoteChar==null?`"`:e.quoteChar,f=d;if(e.escapeChar!==void 0&&(f=e.escapeChar),(typeof t!=`string`||-1<s.BAD_DELIMITERS.indexOf(t))&&(t=`,`),r===t)throw Error(`Comment character same as delimiter`);!0===r?r=`#`:(typeof r!=`string`||-1<s.BAD_DELIMITERS.indexOf(r))&&(r=!1),n!==`
|
|
6
|
-
`&&n!==`\r`&&n!==`\r
|
|
7
|
-
`&&(n=`
|
|
8
|
-
`);var p=0,m=!1;this.parse=function(s,g,_){if(typeof s!=`string`)throw Error(`Input must be a string`);var v=s.length,y=t.length,b=n.length,x=r.length,C=S(i),w=[],T=[],E=[],D=p=0;if(!s)return R();if(o||!1!==o&&s.indexOf(d)===-1){for(var O=s.split(n),k=0;k<O.length;k++){if(E=O[k],p+=E.length,k!==O.length-1)p+=n.length;else if(_)return R();if(!r||E.substring(0,x)!==r){if(C){if(w=[],F(E.split(t)),z(),m)return R()}else F(E.split(t));if(a&&a<=k)return w=w.slice(0,a),R(!0)}}return R()}for(var A=s.indexOf(t,p),j=s.indexOf(n,p),M=new RegExp(h(f)+h(d),`g`),N=s.indexOf(d,p);;)if(s[p]===d)for(N=p,p++;;){if((N=s.indexOf(d,N+1))===-1)return _||T.push({type:`Quotes`,code:`MissingQuotes`,message:`Quoted field unterminated`,row:w.length,index:p}),L();if(N===v-1)return L(s.substring(p,N).replace(M,d));if(d===f&&s[N+1]===f)N++;else if(d===f||N===0||s[N-1]!==f){A!==-1&&A<N+1&&(A=s.indexOf(t,N+1));var P=I((j=j!==-1&&j<N+1?s.indexOf(n,N+1):j)===-1?A:Math.min(A,j));if(s.substr(N+1+P,y)===t){E.push(s.substring(p,N).replace(M,d)),s[p=N+1+P+y]!==d&&(N=s.indexOf(d,p)),A=s.indexOf(t,p),j=s.indexOf(n,p);break}if(P=I(j),s.substring(N+1+P,N+1+P+b)===n){if(E.push(s.substring(p,N).replace(M,d)),ee(N+1+P+b),A=s.indexOf(t,p),N=s.indexOf(d,p),C&&(z(),m))return R();if(a&&w.length>=a)return R(!0);break}T.push({type:`Quotes`,code:`InvalidQuotes`,message:`Trailing quote on quoted field is malformed`,row:w.length,index:p}),N++}}else if(r&&E.length===0&&s.substring(p,p+x)===r){if(j===-1)return R();p=j+b,j=s.indexOf(n,p),A=s.indexOf(t,p)}else if(A!==-1&&(A<j||j===-1))E.push(s.substring(p,A)),p=A+y,A=s.indexOf(t,p);else{if(j===-1)break;if(E.push(s.substring(p,j)),ee(j+b),C&&(z(),m))return R();if(a&&w.length>=a)return R(!0)}return L();function F(e){w.push(e),D=p}function I(e){var t=0;return t=e!==-1&&(e=s.substring(N+1,e))&&e.trim()===``?e.length:t}function L(e){return _||(e===void 0&&(e=s.substring(p)),E.push(e),p=v,F(E),C&&z()),R()}function ee(e){p=e,F(E),E=[],j=s.indexOf(n,p)}function R(r){if(e.header&&!g&&w.length&&!u){var i=w[0],a=Object.create(null),o=new Set(i);let t=!1;for(let n=0;n<i.length;n++){let r=c(i[n]);if(a[r=S(e.transformHeader)?e.transformHeader(r,n):r]){let e,s=a[r];for(;e=r+`_`+s,s++,o.has(e););o.add(e),i[n]=e,a[r]++,t=!0,(l=l===null?{}:l)[e]=r}else a[r]=1,i[n]=r;o.add(r)}t&&console.warn(`Duplicate headers found and renamed.`),u=!0}return{data:w,errors:T,meta:{delimiter:t,linebreak:n,aborted:m,truncated:!!r,cursor:D+(g||0),renamedHeaders:l}}}function z(){i(R()),w=[],T=[]}},this.abort=function(){m=!0},this.getCharIndex=function(){return p}}function _(e){var t=e.data,n=a[t.workerId],r=!1;if(t.error)n.userError(t.error,t.file);else if(t.results&&t.results.data){var i={abort:function(){r=!0,v(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:y,resume:y};if(S(n.userStep)){for(var o=0;o<t.results.data.length&&(n.userStep({data:t.results.data[o],errors:t.results.errors,meta:t.results.meta},i),!r);o++);delete t.results}else S(n.userChunk)&&(n.userChunk(t.results,i,t.file),delete t.results)}t.finished&&!r&&v(t.workerId,t.results)}function v(e,t){var n=a[e];S(n.userComplete)&&n.userComplete(t),n.terminate(),delete a[e]}function y(){throw Error(`Not implemented.`)}function b(e){if(typeof e!=`object`||!e)return e;var t,n=Array.isArray(e)?[]:{};for(t in e)n[t]=b(e[t]);return n}function x(e,t){return function(){e.apply(t,arguments)}}function S(e){return typeof e==`function`}return s.parse=function(n,r){var i=(r||={}).dynamicTyping||!1;if(S(i)&&(r.dynamicTypingFunction=i,i={}),r.dynamicTyping=i,r.transform=!!S(r.transform)&&r.transform,!r.worker||!s.WORKERS_SUPPORTED)return i=null,s.NODE_STREAM_INPUT,typeof n==`string`?(n=c(n),i=new(r.download?u:f)(r)):!0===n.readable&&S(n.read)&&S(n.on)?i=new p(r):(t.File&&n instanceof File||n instanceof Object)&&(i=new d(r)),i.stream(n);(i=(()=>{var n;return!!s.WORKERS_SUPPORTED&&(n=(()=>{var n=t.URL||t.webkitURL||null,r=e.toString();return s.BLOB_URL||=n.createObjectURL(new Blob([`var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; `,`(`,r,`)();`],{type:`text/javascript`}))})(),(n=new t.Worker(n)).onmessage=_,n.id=o++,a[n.id]=n)})()).userStep=r.step,i.userChunk=r.chunk,i.userComplete=r.complete,i.userError=r.error,r.step=S(r.step),r.chunk=S(r.chunk),r.complete=S(r.complete),r.error=S(r.error),delete r.worker,i.postMessage({input:n,config:r,workerId:i.id})},s.unparse=function(e,t){var n=!1,r=!0,i=`,`,a=`\r
|
|
9
|
-
`,o=`"`,c=o+o,l=!1,u=null,d=!1,f=((()=>{if(typeof t==`object`){if(typeof t.delimiter!=`string`||s.BAD_DELIMITERS.filter(function(e){return t.delimiter.indexOf(e)!==-1}).length||(i=t.delimiter),typeof t.quotes!=`boolean`&&typeof t.quotes!=`function`&&!Array.isArray(t.quotes)||(n=t.quotes),typeof t.skipEmptyLines!=`boolean`&&typeof t.skipEmptyLines!=`string`||(l=t.skipEmptyLines),typeof t.newline==`string`&&(a=t.newline),typeof t.quoteChar==`string`&&(o=t.quoteChar,c=o+o),typeof t.header==`boolean`&&(r=t.header),Array.isArray(t.columns)){if(t.columns.length===0)throw Error(`Option columns is empty`);u=t.columns}t.escapeChar!==void 0&&(c=t.escapeChar+o),t.escapeFormulae instanceof RegExp?d=t.escapeFormulae:typeof t.escapeFormulae==`boolean`&&t.escapeFormulae&&(d=/^[=+\-@\t\r].*$/)}})(),new RegExp(h(o),`g`));if(typeof e==`string`&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return p(null,e,l);if(typeof e[0]==`object`)return p(u||Object.keys(e[0]),e,l)}else if(typeof e==`object`)return typeof e.data==`string`&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||=e.meta&&e.meta.fields||u,e.fields||=Array.isArray(e.data[0])?e.fields:typeof e.data[0]==`object`?Object.keys(e.data[0]):[],Array.isArray(e.data[0])||typeof e.data[0]==`object`||(e.data=[e.data])),p(e.fields||[],e.data||[],l);throw Error(`Unable to serialize unrecognized input`);function p(e,t,n){var o=``,s=(typeof e==`string`&&(e=JSON.parse(e)),typeof t==`string`&&(t=JSON.parse(t)),Array.isArray(e)&&0<e.length),c=!Array.isArray(t[0]);if(s&&r){for(var l=0;l<e.length;l++)0<l&&(o+=i),o+=m(e[l],l);0<t.length&&(o+=a)}for(var u=0;u<t.length;u++){var d=(s?e:t[u]).length,f=!1,p=s?Object.keys(t[u]).length===0:t[u].length===0;if(n&&!s&&(f=n===`greedy`?t[u].join(``).trim()===``:t[u].length===1&&t[u][0].length===0),n===`greedy`&&s){for(var h=[],g=0;g<d;g++){var _=c?e[g]:g;h.push(t[u][_])}f=h.join(``).trim()===``}if(!f){for(var v=0;v<d;v++){0<v&&!p&&(o+=i);var y=s&&c?e[v]:v;o+=m(t[u][y],v)}u<t.length-1&&(!n||0<d&&!p)&&(o+=a)}}return o}function m(e,t){var r,a,l;return e==null?``:e.constructor===Date?JSON.stringify(e).slice(1,25):(l=!1,d&&typeof e==`string`&&d.test(e)&&(e=`'`+e,l=!0),a=(r=e.toString()).replace(f,c),(l=l||!0===n||typeof n==`function`&&n(e,t)||Array.isArray(n)&&n[t]||((e,t)=>{for(var n=0;n<t.length;n++)if(-1<e.indexOf(t[n]))return!0;return!1})(a,s.BAD_DELIMITERS)||-1<a.indexOf(i)||-1<r.indexOf(o)||a.charAt(0)===` `||a.charAt(a.length-1)===` `)?o+a+o:a)}},s.RECORD_SEP=``,s.UNIT_SEP=``,s.BYTE_ORDER_MARK=``,s.BAD_DELIMITERS=[`\r`,`
|
|
10
|
-
`,`"`,s.BYTE_ORDER_MARK],s.WORKERS_SUPPORTED=!r&&!!t.Worker,s.NODE_STREAM_INPUT=1,s.LocalChunkSize=10485760,s.RemoteChunkSize=5242880,s.DefaultDelimiter=`,`,s.Parser=g,s.ParserHandle=m,s.NetworkStreamer=u,s.FileStreamer=d,s.StringStreamer=f,s.ReadableStreamStreamer=p,t.jQuery&&((n=t.jQuery).fn.parse=function(e){var r=e.config||{},i=[];return this.each(function(e){if(!(n(this).prop(`tagName`).toUpperCase()===`INPUT`&&n(this).attr(`type`).toLowerCase()===`file`&&t.FileReader)||!this.files||this.files.length===0)return!0;for(var a=0;a<this.files.length;a++)i.push({file:this.files[a],inputElem:this,instanceConfig:n.extend({},r)})}),a(),this;function a(){if(i.length===0)S(e.complete)&&e.complete();else{var t,r,a,c,l=i[0];if(S(e.before)){var u=e.before(l.file,l.inputElem);if(typeof u==`object`){if(u.action===`abort`)return t=`AbortError`,r=l.file,a=l.inputElem,c=u.reason,void(S(e.error)&&e.error({name:t},r,a,c));if(u.action===`skip`)return void o();typeof u.config==`object`&&(l.instanceConfig=n.extend(l.instanceConfig,u.config))}else if(u===`skip`)return void o()}var d=l.instanceConfig.complete;l.instanceConfig.complete=function(e){S(d)&&d(e,l.file,l.inputElem),o()},s.parse(l.file,l.instanceConfig)}}function o(){i.splice(0,1),a()}}),i&&(t.onmessage=function(e){e=e.data,s.WORKER_ID===void 0&&e&&(s.WORKER_ID=e.workerId),typeof e.input==`string`?t.postMessage({workerId:s.WORKER_ID,results:s.parse(e.input,e.config),finished:!0}):(t.File&&e.input instanceof File||e.input instanceof Object)&&(e=s.parse(e.input,e.config))&&t.postMessage({workerId:s.WORKER_ID,results:e,finished:!0})}),(u.prototype=Object.create(l.prototype)).constructor=u,(d.prototype=Object.create(l.prototype)).constructor=d,(f.prototype=Object.create(f.prototype)).constructor=f,(p.prototype=Object.create(l.prototype)).constructor=p,s})})),Fn=e(S(),1),In=e(Pn(),1);function Ln(e){let t=In.default.parse(e,{header:!0,skipEmptyLines:!0});return!t.data||t.data.length<1?[]:t.data.map(e=>{let t={};for(let[n,r]of Object.entries(e))t[n]=typeof r==`string`?r:typeof r==`number`||typeof r==`boolean`?String(r):``;return t})}function Rn(e){return e.length===0?``:In.default.unparse(e,{quotes:!0})}function zn(e){let t=e.meta.stats.imported,n=e.meta.stats.invalid||[],r=n.length,i={},a=Rn(n.map(e=>{let{errors:t,...n}=e,r=t.map(e=>On(e).trim()).filter(Boolean);for(let e of r)i[e]?i[e].count+=1:i[e]={message:e,count:1};return{...n,error:r.join(`
|
|
11
|
-
`)}})),o=new Blob([a],{type:`text/csv`}),s=URL.createObjectURL(o),c=e.meta.import_label;return{importedCount:t,errorCount:r,errorCsvUrl:s,errorCsvName:c?`${c.name} - Errors.csv`:`Import ${(0,Fn.default)().format(`YYYY-MM-DD HH:mm`)} - Errors.csv`,errorList:Object.values(i),importLabel:e.meta.import_label||void 0}}function Bn(e,t){switch(t.type){case`SELECT_FILE`:return{...e,status:`MAPPING`,file:t.file,fileData:null,mapping:null,dataPreviewIndex:0,mappingError:null,showMappingErrors:!1,fileError:null};case`SET_FILE_ERROR`:return{...e,fileError:t.fileError};case`PARSE_SUCCESS`:return{...e,fileData:t.fileData,mapping:t.mapping,mappingError:t.mappingError};case`PARSE_FAILURE`:return{...e,fileData:[],mapping:null,mappingError:t.mappingError};case`UPDATE_MAPPING`:return{...e,mapping:t.mapping,mappingError:t.mappingError};case`SET_SELECTED_LABEL_SLUGS`:return{...e,selectedLabelSlugs:t.selectedLabelSlugs};case`SET_DATA_PREVIEW_INDEX`:return{...e,dataPreviewIndex:t.dataPreviewIndex};case`SET_SHOW_MAPPING_ERRORS`:return{...e,showMappingErrors:t.showMappingErrors};case`SET_DRAG_OVER`:return{...e,dragOver:t.dragOver};case`UPLOAD_START`:return{...e,status:`UPLOADING`,showMappingErrors:!1};case`UPLOAD_ACCEPTED`:return{...e,status:`PROCESSING`};case`UPLOAD_COMPLETE`:return{...e,status:`COMPLETE`,importResponse:t.importResponse};case`UPLOAD_ERROR`:return{...e,status:`ERROR`,errorMessage:t.errorMessage,errorHeader:t.errorHeader??`Import error`,showTryAgainButton:t.showTryAgainButton??!0};case`RESET`:return jn();default:return e}}function Vn({open:e,onOpenChange:t,onComplete:n,onClose:r}){let[i,o]=(0,X.useReducer)(Bn,void 0,jn),s=(0,X.useRef)(null),{mutateAsync:c}=ye(),f=st(`importMemberTier`),p=st(`membersCustomFields`),{data:m}=on({enabled:p}),h=(0,X.useMemo)(()=>sn(m?.members_custom_fields??[]),[m]),g=!p||m!==void 0,_=(0,X.useRef)({importMemberTier:f,customFieldColumns:h});_.current={importMemberTier:f,customFieldColumns:h};let v=(0,X.useMemo)(()=>Sn({importMemberTier:f,customFieldColumns:h}),[f,h]),b=ln({selectedSlugs:i.selectedLabelSlugs,onSelectionChange:e=>o({type:`SET_SELECTED_LABEL_SLUGS`,selectedLabelSlugs:e})}),x=(0,X.useCallback)(()=>{s.current&&typeof URL.revokeObjectURL==`function`?(URL.revokeObjectURL(s.current),s.current=null):s.current&&=null},[]),S=(0,X.useCallback)(()=>{x(),o({type:`RESET`})},[x]);(0,X.useEffect)(()=>()=>{x()},[x]);let C=(0,X.useCallback)(e=>{if(!(!e&&i.status===`UPLOADING`)){if(!e){let e=i.importResponse??void 0;S(),r?.(e)}t(e)}},[r,t,S,i.importResponse,i.status]);(0,X.useEffect)(()=>{if(!i.file||!g)return;let e=!1,t=new FileReader;return t.onload=t=>{if(!e)try{let e=t.target?.result,n=Ln(e);if(n.length>0){let e=new Tn(Dn(n,_.current));o({type:`PARSE_SUCCESS`,fileData:n,mapping:e,mappingError:e.getKeyByValue(`email`)?null:`Please map "Email" to one of the fields in the CSV.`})}else o({type:`PARSE_SUCCESS`,fileData:[],mapping:null,mappingError:`File is empty, nothing to import. Please select a different file.`})}catch{o({type:`PARSE_FAILURE`,mappingError:`Failed to parse this file. Please try another CSV file.`})}},t.onerror=()=>{e||o({type:`PARSE_FAILURE`,mappingError:`Failed to read file${t.error?.message?`: ${t.error.message}`:``}`})},t.onabort=()=>{e||o({type:`PARSE_FAILURE`,mappingError:`File read was interrupted. Please try again.`})},t.readAsText(i.file),()=>{e=!0,t.readyState===FileReader.LOADING&&t.abort()}},[i.file,g]);let w=(0,X.useCallback)(e=>{let t=/(?:\.([^.]+))?$/.exec(e.name)?.[1];return!t||t.toLowerCase()!==`csv`?(o({type:`SET_FILE_ERROR`,fileError:`The file type you uploaded is not supported`}),!1):(o({type:`SET_FILE_ERROR`,fileError:null}),!0)},[]),T=(0,X.useCallback)(e=>{w(e)&&o({type:`SELECT_FILE`,file:e})},[w]),E=(0,X.useCallback)((e,t)=>{if(!i.mapping)return;let n=i.mapping.updateMapping(e,t),r=i.fileData&&i.fileData.length===0?`File is empty, nothing to import. Please select a different file.`:n.getKeyByValue(`email`)?null:`Please map "Email" to one of the fields in the CSV.`;o({type:`UPDATE_MAPPING`,mapping:n,mappingError:r})},[i.fileData,i.mapping]),D=(0,X.useCallback)(async()=>{if(!i.file||i.mappingError){o({type:`SET_SHOW_MAPPING_ERRORS`,showMappingErrors:!0});return}o({type:`UPLOAD_START`});let e=[];for(let t of i.selectedLabelSlugs){let n=b.labels.find(e=>e.slug===t);n&&e.push(n.name)}try{let t=await c({file:i.file,labels:e,mapping:i.mapping?.toJSON()});if(St(t)){let e=zn(t);x(),s.current=e.errorCsvUrl,o({type:`UPLOAD_COMPLETE`,importResponse:e}),n?.(e);return}o({type:`UPLOAD_ACCEPTED`}),n?.()}catch(e){if(e instanceof d){o({type:`UPLOAD_ERROR`,errorMessage:`The file you uploaded was larger than the maximum file size your server allows.`});return}let t=e instanceof l?e.data?.errors?.[0]:null;if(e instanceof a&&t?.code===`EMAIL_VERIFICATION_NEEDED`){o({type:`UPLOAD_ERROR`,errorMessage:t.message,errorHeader:`Woah there cowboy, that's a big list`,showTryAgainButton:!1}),n?.();return}if(e instanceof u||t?.type===`DataImportError`){o({type:`UPLOAD_ERROR`,errorMessage:t?.message||(e instanceof Error?e.message:`An unexpected error occurred, please try again`)});return}o({type:`UPLOAD_ERROR`,errorMessage:`An unexpected error occurred, please try again`})}},[i.file,i.mapping,i.mappingError,i.selectedLabelSlugs,b.labels,c,x,n]),O=i.fileData?!!i.fileData[i.dataPreviewIndex+1]:!1,k=i.dataPreviewIndex>0,A=i.fileData?.length??0,j=i.status===`MAPPING`||i.status===`UPLOADING`,M=(0,X.useMemo)(()=>{switch(i.status){case`PROCESSING`:return`Import in progress`;case`COMPLETE`:return`Import complete`;case`ERROR`:return i.errorHeader;default:return`Import members`}},[i.errorHeader,i.status]);return(0,Z.jsx)(Me,{open:e,onOpenChange:C,children:(0,Z.jsxs)(xt,{className:y(`gap-0`,j&&`max-w-2xl`),children:[(0,Z.jsxs)(fe,{children:[(0,Z.jsx)(Te,{children:M}),(0,Z.jsx)(Pe,{className:`sr-only`,children:`Import members from a CSV file.`})]}),i.status===`INIT`&&(0,Z.jsx)(_n,{fileError:i.fileError,onClose:()=>C(!1),onDropAccepted:T,onDropRejected:()=>o({type:`SET_FILE_ERROR`,fileError:`The file type you uploaded is not supported`})}),(i.status===`MAPPING`||i.status===`UPLOADING`)&&(0,Z.jsx)(kn,{dataPreviewIndex:i.dataPreviewIndex,fieldMappings:v,fileData:i.fileData,hasNextRecord:O,hasPrevRecord:k,labelPicker:b,mapping:i.mapping,mappingError:i.mappingError,membersCount:A,showMappingErrors:i.showMappingErrors,status:i.status,onDataPreviewIndexChange:e=>{o({type:`SET_DATA_PREVIEW_INDEX`,dataPreviewIndex:e})},onStartOver:S,onUpdateMapping:E,onUpload:()=>void D()}),i.status===`PROCESSING`&&(0,Z.jsx)(An,{onClose:()=>C(!1),onUploadAnotherFile:S}),i.status===`COMPLETE`&&i.importResponse&&(0,Z.jsx)(Mn,{importResponse:i.importResponse,onClose:()=>C(!1),onReset:S}),i.status===`ERROR`&&(0,Z.jsx)(Nn,{errorMessage:i.errorMessage,showTryAgainButton:i.showTryAgainButton,onClose:()=>C(!1),onTryAgain:S})]})})}var Hn=`count.active_stripe_customers`,Un=`${Hn}:>1`,Wn=`${Hn}:<2`,Gn=$e({multipleActiveSubscriptionsBanner:$e({dismissedCount:ct().finite().optional().catch(void 0),dismissedAt:We().optional().catch(void 0)}).optional().catch(void 0)});function Kn(e){return e===Un}function qn(e){if(!e)return Gn.parse({});try{let t=JSON.parse(e);return Gn.parse(t)}catch{return Gn.parse({})}}function Jn(e){return qn(e).multipleActiveSubscriptionsBanner??{}}function Yn(e,t,n){let r=qn(e),i=Jn(e);return JSON.stringify({...r,multipleActiveSubscriptionsBanner:{...i,dismissedCount:t,dismissedAt:n}})}function Xn(e,t,n){return{...e,accessibility:Yn(e.accessibility,t,n)}}var Zn=[`is`,`contains`,`does-not-contain`,`starts-with`,`ends-with`],Qn=[`is`,`is-greater`,`is-less`],Q=[`is`,`is-not`],$n=[`is-any`,`is-not-any`],er=[{value:`active`,label:`Active`},{value:`trialing`,label:`Trialing`},{value:`canceled`,label:`Canceled`},{value:`unpaid`,label:`Unpaid`},{value:`past_due`,label:`Past Due`},{value:`incomplete`,label:`Incomplete`},{value:`incomplete_expired`,label:`Incomplete - Expired`}],tr={parse(){return null},serialize(e){let t=e.values[0];return e.operator!==`is`&&e.operator!==`is-not`?null:t===`email-disabled`?e.operator===`is`?[`(email_disabled:1)`]:[`(email_disabled:0)`]:t===`subscribed`?e.operator===`is`?[`(subscribed:true+email_disabled:0)`]:[`(subscribed:false,email_disabled:1)`]:t===`unsubscribed`?e.operator===`is`?[`(subscribed:false+email_disabled:0)`]:[`(subscribed:true,email_disabled:1)`]:null}},nr={parse(){return null},serialize(e,t){let n=t.params.slug,r=e.values[0];return!n||e.operator!==`is`?null:r===`subscribed`?[`(newsletters.slug:${n}+email_disabled:0)`]:r===`unsubscribed`?[`(newsletters.slug:-${n},email_disabled:1)`]:null}},rr={parse(){return null},serialize(e){let t=e.values[0];return typeof t!=`string`||!t||e.operator!==`1`&&e.operator!==`0`?null:[`(feedback.post_id:${p(t)}+feedback.score:${e.operator})`]}},ir={parse(e,t){let n=qt(e);return!n||n.field!==t.key?null:n.operator===`$gt`&&n.value===1?{field:t.key,operator:`is`,values:[`true`]}:n.operator===`$lt`&&n.value===2?{field:t.key,operator:`is`,values:[`false`]}:null},serialize(e){let t=e.values[0];return e.operator===`is`?t===`true`?[Un]:t===`false`?[Wn]:null:null}},ar=Ht({name:{operators:Zn,ui:{label:`Name`,type:`text`,placeholder:`Enter name...`,defaultOperator:`contains`,className:`w-48`},codec:It()},email:{operators:Zn,ui:{label:`Email`,type:`text`,placeholder:`Enter email...`,defaultOperator:`contains`,className:`w-48`},codec:It()},label:{operators:$n,ui:{label:`Label`,type:`multiselect`,searchable:!0,className:`w-64`,defaultOperator:`is-any`},metadata:{activeColumn:{key:`labels`,label:`Labels`,include:`labels`}},codec:zt()},subscribed:{operators:Q,ui:{label:`Newsletter subscription`,type:`select`,searchable:!1},options:[{value:`subscribed`,label:`Subscribed`},{value:`unsubscribed`,label:`Unsubscribed`},{value:`email-disabled`,label:`Email disabled`}],codec:tr},last_seen_at:{operators:Mt,ui:{label:`Last seen`,type:`date`,defaultOperator:Wt},codec:Ut()},created_at:{operators:Mt,ui:{label:`Created`,type:`date`,defaultOperator:Wt},codec:Ut()},signup:{operators:Q,ui:{label:`Signed up on post/page`,type:`select`,searchable:!0,placeholder:`Select a post or page...`,className:`w-64`},codec:Y({quoteStrings:!0})},"newsletters.:slug":{operators:[`is`],ui:{label:`Newsletter`,type:`select`,searchable:!1,hideOperatorSelect:!0},options:[{value:`subscribed`,label:`Subscribed`},{value:`unsubscribed`,label:`Unsubscribed`}],codec:nr},tier_id:{operators:$n,ui:{label:`Membership tier`,type:`multiselect`,searchable:!0,className:`w-64`,defaultOperator:`is-any`},metadata:{activeColumn:{key:`tiers`,label:`Tiers`,include:`tiers`}},codec:zt()},status:{operators:Q,ui:{label:`Member status`,type:`select`,searchable:!1},options:[{value:`paid`,label:`Paid`},{value:`free`,label:`Free`},{value:`comped`,label:`Complimentary`}],codec:Y()},"subscriptions.plan_interval":{operators:Q,ui:{label:`Billing period`,type:`select`,searchable:!1},options:[{value:`month`,label:`Monthly`},{value:`year`,label:`Yearly`}],metadata:{activeColumn:{key:`subscriptions.plan_interval`,label:`Billing period`,include:`subscriptions`}},codec:Y()},"subscriptions.status":{operators:Q,ui:{label:`Stripe subscription status`,type:`select`,searchable:!1},options:er,metadata:{activeColumn:{key:`subscriptions.status`,label:`Subscription status`,include:`subscriptions`}},codec:Y()},"subscriptions.start_date":{operators:Mt,ui:{label:`Paid start date`,type:`date`,defaultOperator:Wt},metadata:{activeColumn:{key:`subscriptions.start_date`,label:`Paid start date`,include:`subscriptions`}},codec:Ut()},"subscriptions.current_period_end":{operators:Mt,ui:{label:`Next billing date`,type:`date`,defaultOperator:Wt},metadata:{activeColumn:{key:`subscriptions.current_period_end`,label:`Next billing date`,include:`subscriptions`}},codec:Ut()},conversion:{operators:Q,ui:{label:`Subscription started on post/page`,type:`select`,searchable:!0,placeholder:`Select a post or page...`,className:`w-64`},codec:Y({quoteStrings:!0})},email_count:{operators:Qn,ui:{label:`Emails sent (all time)`,type:`number`,defaultOperator:`is-greater`,min:0,className:`w-24`},codec:jt()},email_opened_count:{operators:Qn,ui:{label:`Emails opened (all time)`,type:`number`,defaultOperator:`is-greater`,min:0,className:`w-24`},codec:jt()},email_open_rate:{operators:Qn,ui:{label:`Open rate (all time)`,type:`number`,defaultOperator:`is-greater`,min:0,max:100,suffix:`%`,className:`w-24`},codec:jt()},"emails.post_id":{operators:Q,ui:{label:`Sent email`,type:`select`,searchable:!0,placeholder:`Select an email...`,className:`w-64`},codec:Y({quoteStrings:!0})},"opened_emails.post_id":{operators:Q,ui:{label:`Opened email`,type:`select`,searchable:!0,placeholder:`Select an email...`,className:`w-64`},codec:Y({quoteStrings:!0})},"clicked_links.post_id":{operators:Q,ui:{label:`Clicked email`,type:`select`,searchable:!0,placeholder:`Select an email...`,className:`w-64`},codec:Y({quoteStrings:!0})},newsletter_feedback:{operators:[`1`,`0`],ui:{label:`Responded with feedback`,type:`select`,searchable:!0,placeholder:`Select an email...`,className:`w-64`,defaultOperator:`1`},codec:rr},offer_redemptions:{operators:$n,ui:{label:`Offer`,type:`multiselect`,searchable:!0,className:`w-64`,defaultOperator:`is-any`},metadata:{activeColumn:{key:`offer_redemptions`,label:`Offer`}},codec:zt({quoteStrings:!0,serializeSingletonAsScalar:!0})},[Hn]:{operators:[`is`],ui:{label:`Multiple active subscriptions`,type:`select`,searchable:!1,hideOperatorSelect:!0},options:[{value:`true`,label:`Yes`},{value:`false`,label:`No`}],codec:ir}}),or=Ht({...ar,last_seen_at:Gt(ar.last_seen_at),created_at:Gt(ar.created_at),"subscriptions.start_date":Gt(ar[`subscriptions.start_date`]),"subscriptions.current_period_end":wt(ar[`subscriptions.current_period_end`])});function sr(){return or}var cr=2;function lr(e){let t=new Map;for(let n of e){let e=At(or,n.field,`UTC`)?.definition.metadata?.activeColumn;e&&t.set(e.key,e)}return Array.from(t.values()).slice(0,cr)}function ur(e){let t=new Set([`labels`,`tiers`]);for(let n of lr(e))n.include&&t.add(n.include);return Array.from(t).join(`,`)}function dr({filters:e,nql:t,search:n}){if(!t&&!n)return;let r={include:ur(e),limit:`100`,order:`created_at desc`};return t&&(r.filter=t),n&&(r.search=n),r}function fr({nql:e,search:t}){return!e&&!t?{all:!0}:{...e?{filter:e}:{},...t?{search:t}:{}}}function pr(e,t){return e?{text:Fn.default.tz(e,t).format(`D MMM YYYY`),subtext:(0,Fn.default)(e).fromNow()}:null}function mr(e,t,n){switch(e.key){case`labels`:return t.labels?.length?{text:t.labels.map(e=>e.name).join(`, `)}:null;case`tiers`:return t.tiers?.length?{text:t.tiers.map(e=>e.name).join(`, `)}:null;case`subscriptions.plan_interval`:{let e=t.current_subscription?.plan?.interval;return e?{text:e===`month`?`Monthly`:`Yearly`}:null}case`subscriptions.status`:{let e=t.current_subscription?.status;return e?{text:e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}:null}case`subscriptions.start_date`:return pr(t.current_subscription?.start_date,n);case`subscriptions.current_period_end`:return pr(t.current_subscription?.current_period_end,n);case`offer_redemptions`:{let e=t.subscriptions?.map(e=>e.offer?.name).filter(Boolean);return e?.length?{text:e.join(`, `)}:null}default:return null}}async function hr(e,t){let n=new URLSearchParams({limit:`all`});e&&n.set(`filter`,e),t&&n.set(`search`,t),await c(`/members/upload/?${n}`,`members.csv`)}var gr=({hasFilterOrSearch:e,memberCount:t,nql:n,search:r,canBulkDelete:i,showMenu:a=!0,showNewMember:o=!0,onImportComplete:s})=>{let c=_(),l=v(),u=c.pathname===`/members/import`,d=c.search??``,p=c.pathname===`/members`?`${c.pathname}${d}`:`/members`,m=`#/members/new?back=${encodeURIComponent(p)}`,[h,g]=(0,X.useState)(!1),[y,x]=(0,X.useState)(!1),[S,C]=(0,X.useState)(!1),[w,T]=(0,X.useState)(!1),{data:E,isLoading:D}=Jt({searchParams:{filter:`status:-archived`,limit:`50`}}),O=E?.newsletters||[],{mutateAsync:k,isPending:A}=pe(),{mutate:j,isPending:M}=Ne(),[N,P]=(0,X.useState)(!1),F=fr({nql:n,search:r}),I=(0,X.useCallback)(async()=>{try{await hr(n,r)}catch(e){throw f.error(`Export failed`,{description:`There was a problem downloading your member data. Please check your connection and try again.`}),e}},[n,r]),L=(0,X.useCallback)(async e=>{try{for(let t of e)await k({...F,action:{type:`addLabel`,meta:{label:{id:t}}}});g(!1),f.success(e.length>1?`Labels added successfully`:`Label added successfully`)}catch{f.error(`Failed to add label`,{description:`There was a problem applying this label. Please try again.`})}},[k,F]),ee=(0,X.useCallback)(async e=>{try{for(let t of e)await k({...F,action:{type:`removeLabel`,meta:{label:{id:t}}}});x(!1),f.success(e.length>1?`Labels removed successfully`:`Label removed successfully`)}catch{f.error(`Failed to remove label`,{description:`There was a problem removing this label. Please try again.`})}},[k,F]),R=(0,X.useCallback)(async e=>{let t=F;if(e===null){try{await k({...t,action:{type:`unsubscribe`}}),C(!1),f.success(`Members unsubscribed successfully`)}catch{f.error(`Failed to unsubscribe members`,{description:`There was a problem unsubscribing these members. Please try again.`})}return}P(!0);try{let n=await Promise.allSettled(e.map(e=>k({...t,action:{type:`unsubscribe`,newsletter:e}}))),r=n.filter(e=>e.status===`fulfilled`).length,i=n.length;C(!1),r===i?f.success(`Unsubscribed from ${i} ${i===1?`newsletter`:`newsletters`}`):r>0?f.warning(`Unsubscribed from ${r} of ${i} newsletters`,{description:`Some newsletters could not be unsubscribed. Please try again.`}):f.error(`Failed to unsubscribe members`,{description:`There was a problem unsubscribing these members. Please try again.`})}catch{f.error(`Failed to unsubscribe members`,{description:`There was a problem unsubscribing these members. Please try again.`})}finally{P(!1)}},[k,F]),z=(0,X.useCallback)(()=>{j(F,{onSuccess:()=>{T(!1),f.success(`Members deleted successfully`)},onError:()=>{f.error(`Failed to delete members`,{description:`There was a problem deleting these members. Please try again.`})}})},[j,F]),B=(0,X.useCallback)(async()=>{try{await hr(n,r)}catch(e){throw f.error(`Export failed`,{description:`There was a problem downloading your backup. Please check your connection and try again.`}),e}},[n,r]),V=(0,X.useCallback)(()=>{},[]),te=(0,X.useCallback)(()=>{l(`/members/import${d}`)},[d,l]),H=(0,X.useCallback)(e=>{s?.(e)},[s]),U=(0,X.useCallback)(e=>{if(e?.importLabel){l(fn({filter:`label:[${e.importLabel.slug}]`}),{replace:!0});return}l(`/members${d}`,{replace:!0})},[d,l]);return(0,Z.jsxs)(Z.Fragment,{children:[a&&(0,Z.jsxs)(Be,{children:[(0,Z.jsx)(Ge,{asChild:!0,children:(0,Z.jsx)(q,{"data-testid":`members-actions`,variant:`outline`,children:(0,Z.jsx)(ve,{className:`size-4`})})}),(0,Z.jsxs)(Ve,{align:`end`,children:[(0,Z.jsxs)(ae,{onClick:te,children:[(0,Z.jsx)(se,{className:`mr-2 size-4`}),`Import members`]}),t>0&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(ae,{onClick:()=>void I(),children:[(0,Z.jsx)(Ae,{className:`mr-2 size-4`}),e?`Export ${b(t)} members`:`Export all members`]}),(0,Z.jsx)(dt,{}),(0,Z.jsxs)(ae,{onClick:()=>g(!0),children:[(0,Z.jsx)(ut,{className:`mr-2 size-4`}),`Add label to `,b(t),` `,t===1?`member`:`members`]}),(0,Z.jsxs)(ae,{onClick:()=>x(!0),children:[(0,Z.jsx)(at,{className:`mr-2 size-4`}),`Remove label from `,b(t),` `,t===1?`member`:`members`]}),(0,Z.jsxs)(ae,{disabled:D,onClick:()=>C(!0),children:[(0,Z.jsx)(Ze,{className:`mr-2 size-4`}),`Unsubscribe `,b(t),` `,t===1?`member`:`members`]}),(0,Z.jsx)(dt,{}),(0,Z.jsxs)(ae,{className:`text-destructive focus:text-destructive`,disabled:!i,onClick:()=>T(!0),children:[(0,Z.jsx)(ze,{className:`mr-2 size-4`}),`Delete `,b(t),` `,t===1?`member`:`members`]})]})]})]}),o&&(0,Z.jsx)(q,{asChild:!0,children:(0,Z.jsxs)(`a`,{"aria-label":`New member`,className:`inline-flex items-center`,href:m,children:[(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:`New member`}),(0,Z.jsx)(`span`,{className:`sm:hidden`,children:(0,Z.jsx)(de,{})})]})}),(0,Z.jsx)(Vn,{open:u,onClose:U,onComplete:H,onOpenChange:V}),(0,Z.jsx)(pn,{isLoading:A,memberCount:t,open:h,onConfirm:e=>void L(e),onOpenChange:g}),(0,Z.jsx)(mn,{isLoading:A,memberCount:t,nql:n,open:y,search:r,onConfirm:e=>void ee(e),onOpenChange:x}),(0,Z.jsx)(hn,{isLoading:A||N,memberCount:t,newsletters:O,open:S,onConfirm:e=>void R(e),onOpenChange:C}),(0,Z.jsx)(gn,{isLoading:M,memberCount:t,open:w,onConfirm:z,onExportBackup:B,onOpenChange:T})]})},_r=({membershipsEnabled:e,onMemberCreated:t})=>{let{data:n,isLoading:r}=s(),{mutateAsync:i,isPending:a}=je(),c=o(),l=(0,X.useCallback)(async()=>{if(!(!n||a))try{await i({email:n.email,name:n.name}),f.success(`You've been added as a member`),await t?.()}catch(e){c(e)}},[i,n,c,a,t]);return e?(0,Z.jsx)(`div`,{className:`flex h-full flex-col items-center justify-center px-4`,children:(0,Z.jsx)(L,{actions:(0,Z.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col items-center gap-2 sm:flex-row`,children:[(0,Z.jsx)(q,{asChild:!0,children:(0,Z.jsx)(`a`,{href:`#/members/new?back=%2Fmembers`,children:`New member`})}),(0,Z.jsx)(q,{disabled:a||r||!n,variant:`outline`,onClick:()=>void l(),children:a?`Adding...`:`Add yourself as a member`})]}),(0,Z.jsxs)(`p`,{className:`text-sm leading-tight text-pretty text-muted-foreground`,children:[`Already have members? `,(0,Z.jsx)(`a`,{className:`font-medium text-foreground underline-offset-4 hover:underline`,href:`#/members/import`,children:`Import with CSV`})]})]}),description:`Use memberships to allow your readers to sign up and subscribe to your content.`,title:`Start building your audience`,children:(0,Z.jsx)(be,{})})}):(0,Z.jsx)(`div`,{className:`flex h-full flex-col items-center justify-center px-4`,children:(0,Z.jsx)(L,{actions:(0,Z.jsx)(q,{variant:`outline`,asChild:!0,children:(0,Z.jsx)(`a`,{href:`#/settings/members`,children:`Membership settings`})}),description:`Adjust your membership settings to start adding members.`,title:`Memberships have been disabled`,children:(0,Z.jsx)(be,{})})})},vr=_t.extend({route:Ye(`members`),filter:it(We(),We().nullable()).refine(e=>typeof e.filter==`string`&&e.filter.length>0)}),yr=`A view with this name already exists`,br=`Saved view could not be found for update`,xr=`Multiple saved views matched update target`,Sr=`Saved view could not be found for delete`,Cr=`Multiple saved views matched delete target`;function wr(e){return vr.safeParse(e).success}function Tr(e){let t=He(e);return t.ok?{ok:!0,views:t.views.filter(wr)}:t}function Er(e,t){return{name:e.trim(),route:`members`,filter:{filter:t}}}function Dr(e,t,n,r){let i=Er(t,n);if(r){let t=rt(e,r);if(t.length===0)throw Error(br);if(t.length>1)throw Error(xr);let n=t[0];if(tt(e,i,n))throw Error(yr);return e.map((e,t)=>t===n?i:e)}if(tt(e,i))throw Error(yr);return[...e,i]}function Or(e,t){let n=rt(e,t);if(n.length===0)throw Error(Sr);if(n.length>1)throw Error(Cr);let r=n[0];return e.filter((e,t)=>t!==r)}var kr=`Cannot modify saved views because shared_views is invalid`;function Ar(e){return G(e?.settings??null,`shared_views`)??`[]`}function jr(){let{data:e}=ot(),t=o(),n=Ar(e),r=(0,X.useRef)(null),i=(0,X.useMemo)(()=>Tr(n),[n]);return(0,X.useEffect)(()=>{i.ok||r.current===n||(r.current=n,t(i.error,{withToast:!1}))},[t,i,n]),i.ok?i.views:[]}function Mr(){let{data:e}=ot(),{mutateAsync:t}=Ce(),n=o();return(0,X.useCallback)(async(r,i,a)=>{let o=He(Ar(e));if(!o.ok){let e=Error(kr,{cause:o.error});throw n(e,{withToast:!1}),e}let s=Dr(o.views,r,i,a);try{await t([{key:`shared_views`,value:JSON.stringify(s)}])}catch(e){throw n(e,{withToast:!1}),e}},[e,t,n])}function Nr(){let{data:e}=ot(),{mutateAsync:t}=Ce(),n=o();return(0,X.useCallback)(async r=>{let i=He(Ar(e));if(!i.ok){let e=Error(kr,{cause:i.error});throw n(e,{withToast:!1}),e}let a=Or(i.views,r);try{await t([{key:`shared_views`,value:JSON.stringify(a)}])}catch(e){throw n(e,{withToast:!1}),e}},[e,t,n])}function Pr(e,t){return(0,X.useMemo)(()=>!t||e.length===0?null:e.find(e=>e.filter.filter===t)??null,[e,t])}var Fr=({filter:e,existingViews:t,activeView:n,onDeleted:r,onClose:i})=>{let[a,o]=(0,X.useState)(()=>n?.name??``),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(!1),h=Mr(),g=Nr(),_=!!n,v=async()=>{let r=a.trim();if(!r){c(`Please enter a name`);return}if(!_&&t.find(e=>e.name.trim().toLowerCase()===r.toLowerCase())){c(`A view with this name already exists`);return}u(!0);try{await h(r,e,n??void 0),i()}catch(e){c(e instanceof Error?e.message:`Failed to save view`)}finally{u(!1)}},y=async()=>{if(n){f(!0);try{await g(n),i(),r?.()}catch(e){c(e instanceof Error?e.message:`Failed to delete view`)}finally{f(!1)}}};return(0,Z.jsx)(qe,{align:`end`,className:`w-72`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_?`Edit view`:`Save view`}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Z.jsx)(Je,{placeholder:`View name`,value:a,autoFocus:!0,onChange:e=>{o(e.target.value),s&&c(``)},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),v())}}),s&&(0,Z.jsx)(`p`,{className:`text-xs text-red-500`,children:s})]}),_?p?(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`Delete view?`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(q,{size:`sm`,variant:`outline`,onClick:()=>m(!1),children:`Cancel`}),(0,Z.jsx)(q,{disabled:d,size:`sm`,variant:`destructive`,onClick:()=>void y(),children:d?`Deleting...`:`Delete`})]})]}):(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(q,{className:`text-red hover:bg-red/5 hover:text-red`,size:`sm`,variant:`ghost`,onClick:()=>m(!0),children:`Delete`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(q,{size:`sm`,variant:`outline`,onClick:i,children:`Cancel`}),(0,Z.jsx)(q,{disabled:l||!a.trim(),size:`sm`,onClick:()=>void v(),children:l?`Saving...`:`Save`})]})]}):(0,Z.jsx)(q,{className:`w-full`,disabled:l||!a.trim(),onClick:()=>void v(),children:l?`Saving...`:`Save`})]})})},Ir=({filter:e,existingViews:t,activeView:n,onDeleted:r})=>{let[i,a]=(0,X.useState)(!1),o=n?`edit:${n.name}:${n.filter.filter}`:`save:${e}`;return(0,Z.jsxs)(vt,{open:i,onOpenChange:a,children:[(0,Z.jsx)(Ct,{asChild:!0,children:(0,Z.jsx)(q,{variant:`outline`,children:n?`Edit view`:`Save view`})}),i&&(0,Z.jsx)(Fr,{activeView:n,existingViews:t,filter:e,onClose:()=>a(!1),onDeleted:r},o)]})},Lr={"is-any":`is any of`,"is-not-any":`is none of`,"does-not-contain":`does not contain`,...Dt,...Kt,1:`More like this`,0:`Less like this`},Rr={"is-greater":`is greater than`,"is-less":`is less than`};function zr(e){switch(e){case`name`:return X.createElement(Se,{className:`size-4`});case`email`:case`subscribed`:return X.createElement(re,{className:`size-4`});case`label`:return X.createElement(at,{className:`size-4`});case`last_seen_at`:return X.createElement(Ee,{className:`size-4`});case`created_at`:return X.createElement(gt,{className:`size-4`});case`signup`:return X.createElement(ke,{className:`size-4`});case`tier_id`:case`subscriptions.status`:return X.createElement(ce,{className:`size-4`});case`status`:return X.createElement(_e,{className:`size-4`});case`subscriptions.plan_interval`:return X.createElement(et,{className:`size-4`});case`subscriptions.start_date`:return X.createElement(Xe,{className:`size-4`});case`subscriptions.current_period_end`:return X.createElement(lt,{className:`size-4`});case`conversion`:return X.createElement(Fe,{className:`size-4`});case`email_count`:case`emails.post_id`:return X.createElement(nt,{className:`size-4`});case`email_opened_count`:case`opened_emails.post_id`:return X.createElement(ft,{className:`size-4`});case`email_open_rate`:return X.createElement(xe,{className:`size-4`});case`clicked_links.post_id`:return X.createElement(oe,{className:`size-4`});case`newsletter_feedback`:return X.createElement(Le,{className:`size-4`});case`offer_redemptions`:return X.createElement(Re,{className:`size-4`});case Hn:return X.createElement(ht,{className:`size-4`});default:return e.startsWith(`newsletters.`)?X.createElement(Oe,{className:`size-4`}):void 0}}function $(e,t){return{options:e,valueSource:t}}function Br(e){let t=new Map,n=[],r=[];for(let t of e)t.redemption_type===`retention`&&(t.cadence===`month`?n.push(t.id):t.cadence===`year`&&r.push(t.id));return n.length>0&&t.set(`retention:month`,n),r.length>0&&t.set(`retention:year`,r),t}function Vr(e){return Array.isArray(e.metadata?.offerIds)?e.metadata.offerIds.filter(e=>typeof e==`string`):null}function Hr(e){let t=[],n=Br(e);for(let n of e)n.redemption_type!==`retention`&&t.push({value:n.id,label:n.name});return n.has(`retention:month`)&&t.push({value:`retention:month`,label:`Monthly Retention`,metadata:{offerIds:n.get(`retention:month`)}}),n.has(`retention:year`)&&t.push({value:`retention:year`,label:`Yearly Retention`,metadata:{offerIds:n.get(`retention:year`)}}),t}function Ur(e,t){let n=[],r=new Set;for(let i of t){let t=Vr(i);t&&t.length>0&&t.every(t=>e.includes(t))&&(n.push(String(i.value)),t.forEach(e=>{r.add(e)}))}for(let t of e)r.has(t)||n.push(t);return n}function Wr(e,t){let n=[];for(let r of e){let e=t.find(e=>e.value===r),i=e?Vr(e):null;i?n.push(...i):n.push(r)}return[...new Set(n)]}function Gr(e){return new Map(e.map(e=>[e.id,e.name]))}function Kr(e,t,n){let r=e.map(e=>t.find(t=>t.value===e)).filter(e=>!!e);return r.length===1?r[0].label:r.length>1?`${r.length} selected`:e.length===1?n.get(e[0])??`Select...`:e.length>1?`${e.length} selected`:`Select...`}function qr({labelValueSource:e,tierValueSource:t,newsletters:n=[],hydratedNewsletterSlugs:r=[],hasMultipleTiers:i=!1,paidMembersEnabled:a=!1,emailFiltersEnabled:o=!1,postValueSource:s,emailValueSource:c,offers:l=[],multipleActiveSubscriptionsCount:u=0,membersTrackSources:d=!1,emailTrackOpens:f=!1,emailTrackClicks:p=!1,siteTimezone:m=`UTC`}){return(0,X.useMemo)(()=>{let h=sr();function g(e,t={},n=Lr){let r=e.startsWith(`newsletters.`)?h[`newsletters.:slug`]:h[e];return{key:e,...r.ui,icon:zr(e),operators:Ft(r.operators,{labels:n}),...`options`in r&&r.options?{options:r.options}:{},...t}}function _(e,t,n={}){let r=h[e],i=g(e,{defaultValue:t,...n});return Tt(r)?{...i,customRenderer:kt(t)}:i}let v=[],y=n.filter(e=>e.status!==`archived`),b=new Set(y.map(e=>e.slug)),x=[...new Set(r)].map(e=>({slug:e,name:n.find(t=>t.slug===e)?.name??e})),S=x.filter(e=>!b.has(e.slug)),C=Hr(l),w=Gr(l),T=Nt(m),E=[g(`name`),g(`email`)];if(e&&E.push(g(`label`,{...$([],e),customRenderer:e=>X.createElement(dn,e)})),y.length<=1){E.push(g(`subscribed`));for(let e of x)E.push(g(`newsletters.${e.slug}`,{label:e.name}))}if(E.push(_(`last_seen_at`,T),_(`created_at`,T)),d&&E.push(g(`signup`,$([],s))),v.push({group:`Basic`,fields:E}),y.length>1){let e=[g(`subscribed`,{label:`All newsletters`,options:[{value:`subscribed`,label:`Subscribed to at least one`},{value:`unsubscribed`,label:`Unsubscribed from all`},{value:`email-disabled`,label:`Email disabled`}]})];for(let t of y)e.push(g(`newsletters.${t.slug}`,{label:t.name}));for(let t of S)e.push(g(`newsletters.${t.slug}`,{label:t.name}));v.push({group:`Newsletters`,fields:e})}if(a){let e=[];i&&e.push(g(`tier_id`,$([],t))),e.push(g(`status`,{options:[...h.status.options,{value:`gift`,label:`Gift subscription`}]})),u>0&&e.push(g(Hn)),e.push(g(`subscriptions.plan_interval`),g(`subscriptions.status`),_(`subscriptions.start_date`,T),_(`subscriptions.current_period_end`,T)),d&&e.push(g(`conversion`,$([],s))),l.length>0&&e.push(g(`offer_redemptions`,{options:C,customValueRenderer:e=>Kr(e,C,w)})),v.push({group:`Subscription`,fields:e})}if(o){let e=[g(`email_count`,{},Rr),g(`email_opened_count`,{},Rr)];f&&e.push(g(`email_open_rate`,{},Rr)),e.push(g(`emails.post_id`,$([],c))),f&&e.push(g(`opened_emails.post_id`,$([],c))),p&&e.push(g(`clicked_links.post_id`,$([],c))),e.push(g(`newsletter_feedback`,$([],c))),v.push({group:`Email`,fields:e})}return v},[o,c,p,f,i,e,d,u,n,l,r,a,s,m,t])}var Jr=[];function Yr(e,t){return e.map(e=>e.field===`offer_redemptions`?{...e,values:t(e.values)}:e)}var Xr=({filters:e,multipleActiveSubscriptionsCount:t,nql:n,onFiltersChange:r,savedViews:i=[],activeView:a,iconOnly:o=!1})=>{let{data:s}=m({}),{data:c}=Jt({searchParams:{limit:`100`}}),{data:l}=ot({}),u=l?.settings||[],d=G(u,`paid_members_enabled`)===!0,f=G(u,`editor_default_email_recipients`)!==`disabled`,p=G(u,`members_track_sources`)===!0,h=G(u,`email_track_opens`)===!0,g=G(u,`email_track_clicks`)===!0,_=an(u),v=c?.newsletters||[],b=(0,X.useMemo)(()=>s?.offers??Jr,[s?.offers]),x=(0,X.useMemo)(()=>Hr(b),[b]),S=(0,X.useMemo)(()=>[...new Set(e.map(e=>e.field).filter(e=>e.startsWith(`newsletters.`)).map(e=>e.slice(12)).filter(Boolean))],[e]),C=(0,X.useMemo)(()=>Yr(e,e=>Ur(e,x)),[e,x]),w=(0,X.useCallback)(e=>{r(Yr(e,e=>Wr(e,x)))},[r,x]),E=Qt(),D=Xt(),O=Zt(),{valueSource:k,hasMultipleTiers:A}=$t(),j=qr({newsletters:v,hydratedNewsletterSlugs:S,hasMultipleTiers:A,paidMembersEnabled:d,emailFiltersEnabled:f,labelValueSource:O,tierValueSource:k,offers:b,multipleActiveSubscriptionsCount:t,postValueSource:E,emailValueSource:D,membersTrackSources:p,emailTrackOpens:h,emailTrackClicks:g,siteTimezone:_}),M=e.length>0,N=y(`bg-white dark:bg-background`,o&&!M&&`min-w-[34px] gap-0 !px-3 text-[0px] lg:min-w-0 lg:gap-1.5 lg:px-3 lg:text-base`),P=M?(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4 sm:absolute sm:top-0 sm:right-0`,children:[(0,Z.jsxs)(q,{className:`hidden items-center gap-1 !px-0 text-sm font-normal text-muted-foreground hover:bg-transparent hover:text-foreground lg:inline-flex`,type:`button`,variant:`ghost`,onClick:()=>r([]),children:[(0,Z.jsx)(we,{className:`size-4`}),`Clear`]}),n&&(0,Z.jsx)(Ir,{activeView:a,existingViews:i,filter:n,onDeleted:()=>r([])})]}):void 0;return(0,Z.jsx)(T,{addButtonClassName:N,addButtonIcon:M?(0,Z.jsx)(he,{}):(0,Z.jsx)(bt,{}),addButtonText:M?`Add filter`:`Filter`,allowMultiple:!0,className:`[&>button]:order-last ${M?`sm:!pr-40 [&>button]:border-none`:`w-auto`}`,clearButton:P,fields:j,filters:C,keyboardShortcut:`f`,popoverAlign:`start`,popoverContentClassName:`z-[80] w-[280px] [&_[data-slot=command-list]]:max-h-[450px]`,showClearButton:M,showSearchInput:!0,onChange:w})},Zr=({search:e,onSearchChange:t,autoFocus:n=!1,ariaLabel:r=`Search members`})=>{let i=r===`Search members mobile`?`members-mobile-search-input`:`members-search-input`;return(0,Z.jsxs)(z,{className:`h-(--control-height) min-w-0 basis-full lg:w-[180px] lg:basis-auto xl:w-[240px]`,children:[(0,Z.jsx)(R,{children:(0,Z.jsx)(Ue,{className:`size-4`,strokeWidth:1.75})}),(0,Z.jsx)(ee,{"aria-label":r,autoFocus:n,className:`!h-[34px]`,"data-testid":i,placeholder:`Search members...`,value:e,onChange:e=>t(e.target.value)})]})},Qr=({children:e,description:t,title:n,url:r})=>(0,Z.jsx)(`a`,{className:`group/card block rounded-xl border bg-card p-6 transition-all hover:bg-table-row-hover hover:shadow-xs`,href:r,rel:`noopener noreferrer`,target:`_blank`,children:(0,Z.jsxs)(`div`,{className:`flex items-center gap-6`,children:[e,(0,Z.jsxs)(`div`,{className:`flex flex-col leading-tight`,children:[(0,Z.jsx)(`h4`,{className:`text-md font-medium tracking-normal text-pretty text-foreground`,children:n}),(0,Z.jsx)(`p`,{className:`mt-1.5 text-sm leading-tight text-pretty text-muted-foreground`,children:t})]})]})}),$r=`flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md p-4 opacity-80 transition-all group-hover/card:opacity-100`,ei=()=>(0,Z.jsxs)(`div`,{className:`grid w-full grid-cols-1 gap-4 lg:grid-cols-2`,children:[(0,Z.jsx)(Qr,{description:`Learn how to turn anonymous visitors into logged-in members with memberships in Ghost.`,title:`Building your audience with subscriber signups`,url:`https://ghost.org/resources/build-audience-subscriber-signups/`,children:(0,Z.jsx)(`div`,{className:y($r,`bg-gradient-to-tr from-[#22C55E]/20 to-[#84CC16]/20`),children:(0,Z.jsx)(ke,{className:`text-[#16A34A]`,size:20,strokeWidth:1.5})})}),(0,Z.jsx)(Qr,{description:`Starting from zero? Use this guide to find your founding audience members.`,title:`Get your first 100 email subscribers`,url:`https://ghost.org/resources/first-100-email-subscribers/`,children:(0,Z.jsx)(`div`,{className:y($r,`bg-gradient-to-tl from-[#A855F7]/20 to-[#EC4899]/20`),children:(0,Z.jsx)(re,{className:`text-[#DB2777]`,size:20,strokeWidth:1.5})})})]});function ti(e,t){let n=new URLSearchParams;t&&n.set(`back`,t);let r=n.toString();return`/members/${e}${r?`?${r}`:``}`}var ni={left:`100%`};function ri(e){if(!e)return{text:`Unknown`,isKnown:!1};try{let t=JSON.parse(e);return t.country?t.country_code===`US`&&t.region?{text:`${t.region}, US`,isKnown:!0}:{text:t.country,isKnown:!0}:{text:`Unknown`,isKnown:!1}}catch{return{text:`Unknown`,isKnown:!1}}}function ii(e){switch(e){case`paid`:return`Paid`;case`comped`:return`Complimentary`;case`gift`:return`Gift`;default:return`Free`}}function ai(e){return e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function oi(e,t){window.open(`#${ti(e,t)}`,`_blank`,`noopener`)}function si({item:e,backPath:t,onClick:n}){return(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(pt,{className:`size-8 min-w-8`,email:e.email,name:e.name,src:e.avatar_image}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`a`,{className:`block min-w-0 cursor-pointer`,href:`#${ti(e.id,t)}`,onClick:n?t=>{if(ai(t)){t.stopPropagation();return}t.preventDefault(),t.stopPropagation(),n(e.id)}:void 0,children:(0,Z.jsx)(`span`,{className:`block truncate text-md font-semibold`,children:e.name||e.email||`Anonymous`})}),e.name&&e.email&&(0,Z.jsx)(`div`,{className:`truncate text-muted-foreground`,"data-testid":`member-email`,children:e.email})]})]})}function ci({status:e,tiers:t}){let n=t?.map(e=>e.name).join(`, `);return(0,Z.jsx)(`div`,{className:`flex min-w-0 justify-start`,children:(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:`truncate`,children:ii(e)}),n&&(0,Z.jsx)(`div`,{className:`truncate text-sm text-muted-foreground`,children:n})]})})}function li({emailOpenRate:e}){let t=e!=null;return(0,Z.jsx)(`div`,{className:y(`text-base`,t?`text-foreground`:`text-muted-foreground`),children:t?x(e/100):`N/A`})}function ui({geolocation:e}){let t=ri(e);return(0,Z.jsx)(`div`,{className:y(`truncate text-base`,t.isKnown?`text-foreground`:`text-muted-foreground`),children:t.text})}function di({createdAt:e}){return(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`text-base`,children:Fn.default.utc(e).format(`D MMM YYYY`)}),(0,Z.jsx)(`div`,{className:`text-base text-muted-foreground`,children:Fn.default.utc(e).fromNow()})]})}function fi({column:e,member:t,timezone:n}){let r=mr(e,t,n);return r?(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:`truncate text-base`,children:r.text}),r.subtext&&(0,Z.jsx)(`div`,{className:`truncate text-base text-muted-foreground`,children:r.subtext})]}):(0,Z.jsx)(`span`,{className:`text-base text-muted-foreground`,children:`-`})}var pi=(0,X.forwardRef)(function({item:e,activeColumns:t,backPath:n,columnStyles:r,showPinnedEdge:i,showEmailOpenRate:a,timezone:o,onClick:s,...c},l){let u=t=>{if(ai(t)){oi(e.id,n);return}s(e.id)},d=t=>{t.button===1&&(t.preventDefault(),oi(e.id,n))};return(0,Z.jsxs)(V,{...c,ref:l,className:y(`group cursor-pointer`,c.className),"data-testid":`members-list-item`,onAuxClick:d,onClick:u,children:[(0,Z.jsxs)(H,{className:y(`min-w-0 bg-background px-4 py-3 group-hover:bg-[var(--members-sticky-hover-bg)] max-sm:!w-full max-sm:!min-w-0 lg:sticky lg:left-0 lg:z-20`),children:[(0,Z.jsx)(si,{backPath:n,item:e,onClick:s}),i&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-y-px hidden w-[24px] group-hover:opacity-0 lg:block`,style:{...ni,background:`linear-gradient(to right, var(--background) 0px, color-mix(in hsl, var(--background) 78%, transparent) 6px, color-mix(in hsl, var(--background) 28%, transparent) 16px, transparent 24px)`}}),(0,Z.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-y-px hidden w-[24px] opacity-0 group-hover:opacity-100 lg:block`,style:{...ni,background:`linear-gradient(to right, var(--members-sticky-hover-bg) 0px, color-mix(in hsl, var(--members-sticky-hover-bg) 78%, transparent) 6px, color-mix(in hsl, var(--members-sticky-hover-bg) 28%, transparent) 16px, transparent 24px)`}})]})]}),(0,Z.jsx)(H,{className:`hidden px-4 py-3 sm:table-cell`,style:r.status,children:(0,Z.jsx)(ci,{status:e.status,tiers:e.tiers})}),a&&(0,Z.jsx)(H,{className:`hidden px-4 py-3 lg:table-cell`,style:r.openRate,children:(0,Z.jsx)(li,{emailOpenRate:e.email_open_rate})}),(0,Z.jsx)(H,{className:`hidden px-4 py-3 lg:table-cell`,style:r.location,children:(0,Z.jsx)(ui,{geolocation:e.geolocation})}),(0,Z.jsx)(H,{className:`hidden px-4 py-3 lg:table-cell`,style:r.created,children:(0,Z.jsx)(di,{createdAt:e.created_at})}),t.map(t=>(0,Z.jsx)(H,{className:`hidden px-4 py-3 lg:table-cell`,style:r.dynamic,children:(0,Z.jsx)(fi,{column:t,member:e,timezone:o})},t.key))]})}),mi={left:`100%`,background:`linear-gradient(to right, var(--members-sticky-fade-base) 0px, color-mix(in hsl, var(--members-sticky-fade-base) 78%, transparent) 6px, color-mix(in hsl, var(--members-sticky-fade-base) 28%, transparent) 16px, transparent 24px)`},hi=({activeColumns:e,columnStyles:t,showEmailOpenRate:n})=>(0,Z.jsxs)(`colgroup`,{children:[(0,Z.jsx)(`col`,{className:`max-sm:!w-full max-sm:!min-w-0 sm:max-lg:!w-auto sm:max-lg:!min-w-0`,style:t.member}),(0,Z.jsx)(`col`,{className:`hidden sm:table-column`,style:t.status}),n&&(0,Z.jsx)(`col`,{className:`hidden lg:table-column`,style:t.openRate}),(0,Z.jsx)(`col`,{className:`hidden lg:table-column`,style:t.location}),(0,Z.jsx)(`col`,{className:`hidden lg:table-column`,style:t.created}),e.map(e=>(0,Z.jsx)(`col`,{className:`hidden lg:table-column`,style:t.dynamic},e.key))]}),gi=({activeColumns:e,className:t,columnStyles:n,headerRef:r,memberHeaderRef:i,showEmailOpenRate:a})=>(0,Z.jsx)(U,{ref:r,className:y(`hidden bg-transparent lg:table-header-group [&_th]:whitespace-nowrap`,t),children:(0,Z.jsxs)(V,{children:[(0,Z.jsx)(B,{ref:i,className:`sticky left-0 z-[70] bg-transparent px-4 [--members-sticky-fade-base:var(--background)]`,style:n.member,children:`Member`}),(0,Z.jsx)(B,{className:`bg-transparent px-4`,style:n.status,children:`Status`}),a&&(0,Z.jsx)(B,{className:`bg-transparent px-4`,style:n.openRate,children:`Open rate`}),(0,Z.jsx)(B,{className:`bg-transparent px-4`,style:n.location,children:`Location`}),(0,Z.jsx)(B,{className:`bg-transparent px-4`,style:n.created,children:`Created`}),e.map(e=>(0,Z.jsx)(B,{className:`bg-transparent px-4`,style:n.dynamic,children:e.label},e.key))]})}),_i=({columnStyle:e,showPinnedEdge:t})=>(0,Z.jsxs)(`div`,{className:`pointer-events-none absolute inset-y-0 left-0 z-[70] overflow-visible bg-transparent [--members-sticky-fade-base:var(--background)]`,style:e,children:[(0,Z.jsxs)(W,{className:`w-full table-fixed border-collapse`,children:[(0,Z.jsx)(`colgroup`,{children:(0,Z.jsx)(`col`,{style:{width:`100%`}})}),(0,Z.jsx)(U,{className:`bg-transparent lg:table-header-group [&_th]:whitespace-nowrap`,children:(0,Z.jsx)(V,{children:(0,Z.jsx)(B,{className:`bg-transparent px-4`,children:`Member`})})})]}),t&&(0,Z.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-y-px w-[24px]`,style:mi})]}),vi={member:40,status:15,openRate:10,location:17.5,created:17.5},yi={member:320,status:180,openRate:140,location:180,created:160},bi=17.5,xi=220;function Si(e){return Number.isFinite(e)?Math.max(0,Math.floor(e)):0}function Ci({showEmailOpenRate:e,activeColumnCount:t}){let n=[{key:`member`,width:vi.member},{key:`status`,width:vi.status},...e?[{key:`openRate`,width:vi.openRate}]:[],{key:`location`,width:vi.location},{key:`created`,width:vi.created}],r=Si(t),i=n.reduce((e,t)=>e+t.width,0),a=100+r*bi,o=bi/a*100,s=n.reduce((e,t)=>{let n=t.width/i*100;return e[t.key]=n/a*100,e},{member:0,status:0,openRate:0,location:0,created:0});return{tableWidthPercentage:a,minTableWidth:n.reduce((e,t)=>e+yi[t.key],0)+r*xi,dynamicColumnWidthPercentage:o,baseColumnWidthPercentages:s,baseColumnMinWidths:{member:yi.member,status:yi.status,openRate:yi.openRate,location:yi.location,created:yi.created},dynamicColumnMinWidth:xi}}function wi(e){let t=(e,t)=>({width:`${e}%`,minWidth:`${t}px`});return{tableStyle:{"--members-table-width":`${e.tableWidthPercentage}%`,"--members-table-min-width":`${e.minTableWidth}px`},columnStyles:{member:t(e.baseColumnWidthPercentages.member,e.baseColumnMinWidths.member),status:t(e.baseColumnWidthPercentages.status,e.baseColumnMinWidths.status),openRate:t(e.baseColumnWidthPercentages.openRate,e.baseColumnMinWidths.openRate),location:t(e.baseColumnWidthPercentages.location,e.baseColumnMinWidths.location),created:t(e.baseColumnWidthPercentages.created,e.baseColumnMinWidths.created),dynamic:t(e.dynamicColumnWidthPercentage,e.dynamicColumnMinWidth)}}}var Ti=({height:e})=>(0,Z.jsx)(`tr`,{"aria-hidden":`true`,style:{height:e},children:(0,Z.jsx)(`td`,{colSpan:999})}),Ei=(0,X.forwardRef)(function(e,t){return(0,Z.jsx)(V,{ref:t,...e,"aria-hidden":`true`,children:(0,Z.jsx)(H,{className:`h-[72px] px-4 py-3`,colSpan:999,children:(0,Z.jsx)(`div`,{className:`h-full animate-pulse rounded-md bg-muted`,"data-testid":`loading-placeholder`})})})});function Di({items:e,totalItems:t,backPath:n,hasNextPage:r,isFetchingNextPage:i,fetchNextPage:a,isLoading:o,showEmailOpenRate:s=!0,activeColumns:c,timezone:l,pageHeaderRef:u,onRowClick:d}){let f=(0,X.useRef)(null),p=(0,X.useRef)(null),m=(0,X.useRef)(null),h=(0,X.useRef)(null),g=(0,X.useRef)(null),[_,v]=(0,X.useState)(0),[y,b]=(0,X.useState)(0),[x,S]=(0,X.useState)(!1),{visibleItemCount:C,canLoadMore:w,loadMore:T}=nn(t),E=(0,X.useMemo)(()=>Ci({showEmailOpenRate:s,activeColumnCount:c.length}),[c.length,s]),{tableStyle:D,columnStyles:O}=(0,X.useMemo)(()=>wi(E),[E]);tn({parentRef:f,isLoading:o}),(0,X.useEffect)(()=>{let e=g.current;if(!e)return;let t=()=>{let t=e.scrollLeft;S(t>0),h.current&&(h.current.scrollLeft=t)};return t(),e.addEventListener(`scroll`,t,{passive:!0}),window.addEventListener(`resize`,t),()=>{e.removeEventListener(`scroll`,t),window.removeEventListener(`resize`,t)}},[c.length,e.length,s]),(0,X.useEffect)(()=>{let e=u?.current,t=p.current,n=m.current;if(!e||!t||!n){v(0),b(0);return}let r=e.style.paddingBottom,i=e.style.marginBottom,a=parseFloat(getComputedStyle(e).paddingBottom)||0,o=parseFloat(getComputedStyle(e).marginBottom)||0,s=()=>{r?e.style.setProperty(`padding-bottom`,r):e.style.removeProperty(`padding-bottom`),i?e.style.setProperty(`margin-bottom`,i):e.style.removeProperty(`margin-bottom`)},c=()=>{if(!window.matchMedia(`(min-width: 1024px)`).matches){s(),v(0),b(0);return}let r=t.getBoundingClientRect().height,i=n.getBoundingClientRect().width;e.style.setProperty(`padding-bottom`,`${a+r}px`,`important`),e.style.setProperty(`margin-bottom`,`${o-r}px`,`important`);let c=e.getBoundingClientRect().height;v(i),b(Math.max(c-r,0))};c();let l=new ResizeObserver(()=>{c()});return l.observe(e),l.observe(t),l.observe(n),window.addEventListener(`resize`,c),()=>{s(),l.disconnect(),window.removeEventListener(`resize`,c)}},[c.length,u,s]);let{visibleItems:k,spaceBefore:A,spaceAfter:j}=en({items:e,totalItems:C,hasNextPage:r,isFetchingNextPage:i,fetchNextPage:a,parentRef:f,estimateSize:()=>72}),M=e=>{d?d(e):window.location.hash=ti(e,n)};return(0,Z.jsxs)(`div`,{ref:f,className:`w-full min-w-0`,"data-testid":`members-list-scroll-root`,children:[(0,Z.jsx)(`div`,{className:`sticky z-[50] hidden overflow-visible bg-transparent lg:block`,style:{top:y},children:(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(_i,{columnStyle:_>0?{width:_}:O.member,showPinnedEdge:x}),(0,Z.jsx)(`div`,{ref:h,className:`w-full overflow-hidden`,style:_>0?{clipPath:`inset(0 0 0 ${_}px)`}:void 0,children:(0,Z.jsxs)(W,{"aria-hidden":`true`,className:`w-full border-collapse lg:w-[var(--members-table-width)] lg:min-w-[var(--members-table-min-width)] lg:table-fixed`,style:D,children:[(0,Z.jsx)(hi,{activeColumns:c,columnStyles:O,showEmailOpenRate:s}),(0,Z.jsx)(gi,{activeColumns:c,columnStyles:O,headerRef:p,memberHeaderRef:m,showEmailOpenRate:s})]})})]})}),(0,Z.jsx)(`div`,{ref:g,className:`w-full overflow-x-auto overflow-y-visible`,children:(0,Z.jsxs)(W,{className:`w-full border-collapse max-sm:table-fixed sm:max-lg:table-auto lg:w-[var(--members-table-width)] lg:min-w-[var(--members-table-min-width)] lg:table-fixed`,"data-testid":`members-list`,style:D,children:[(0,Z.jsx)(hi,{activeColumns:c,columnStyles:O,showEmailOpenRate:s}),(0,Z.jsx)(gi,{activeColumns:c,className:`lg:h-0 lg:overflow-hidden lg:[&_th]:pointer-events-none lg:[&_th]:h-0 lg:[&_th]:border-0 lg:[&_th]:p-0 lg:[&_th]:text-[0px] lg:[&_th]:leading-none lg:[&_th]:opacity-0 lg:[&_tr]:h-0 lg:[&_tr]:border-0`,columnStyles:O,showEmailOpenRate:s}),(0,Z.jsxs)(te,{children:[(0,Z.jsx)(Ti,{height:A}),k.map(({key:t,virtualItem:r,item:i,props:a})=>r.index>e.length-1?(0,Z.jsx)(Ei,{...a},t):(0,Z.jsx)(pi,{...a,activeColumns:c,backPath:n,columnStyles:O,item:i,showEmailOpenRate:s,showPinnedEdge:x,timezone:l,onClick:M},t)),(0,Z.jsx)(Ti,{height:j})]})]})}),w&&(0,Z.jsx)(rn,{isLoading:i,onClick:T})]})}function Oi({count:e,hasResolvedCount:t,nql:n,search:r}){let i=h(),{data:a}=s(),{mutateAsync:o,isPending:c}=ne(),[l,u]=(0,X.useState)(null),d=Kn(n),p=!r&&(!n||d),m=(0,X.useMemo)(()=>Jn(a?.accessibility),[a?.accessibility]),g=l??m.dismissedCount??0,_=!d,v=p&&(d||e>g);return(0,X.useEffect)(()=>{let n=m.dismissedCount;!a||l!==null||c||n===void 0||!t||e>=n||(u(e),o(Xn(a,e,m.dismissedAt??new Date().toISOString())).then(()=>{u(null)}).catch(e=>{u(null),console.log(`Unable to update multiple active subscriptions banner dismissed count`,e)}))},[e,a,o,t,c,l,m.dismissedAt,m.dismissedCount]),{canDismiss:_,count:e,handleDismiss:(0,X.useCallback)(()=>{if(!a||c)return;let t=l;u(e),o(Xn(a,e,new Date().toISOString())).then(()=>{u(null)}).catch(()=>{u(t),f.error(`Unable to dismiss notification. Please try again.`)})},[e,a,o,c,l]),handleViewMembers:(0,X.useCallback)(()=>{i(fn({filter:Un}))},[i]),shouldShow:v}}var ki=({count:e,hasResolvedCount:t,nql:n,search:r})=>{let i=Oi({count:e,hasResolvedCount:t,nql:n,search:r});return i.shouldShow?(0,Z.jsx)(De,{role:`status`,variant:`warning`,...i.canDismiss?{dismissible:!0,onDismiss:i.handleDismiss}:{dismissible:!1},children:(0,Z.jsxs)(`div`,{className:`flex flex-col items-baseline gap-3 pr-8 sm:flex-row`,children:[`We found `,b(i.count),` `,i.count===1?`member`:`members`,` with more than one active paid subscription.`,` `,(0,Z.jsxs)(`div`,{className:`flex items-baseline gap-3`,children:[i.canDismiss&&(0,Z.jsx)(`button`,{className:`nowrap font-semibold !underline`,type:`button`,onClick:i.handleViewMembers,children:`View members`}),(0,Z.jsx)(`a`,{className:`nowrap font-semibold underline`,href:`https://ghost.org/help/duplicate-subscription-warning/`,rel:`noopener noreferrer`,target:`_blank`,children:`Learn more`})]})]})}):null},Ai=[`subscriptions.plan_interval`,`subscriptions.status`,`subscriptions.start_date`,`subscriptions.current_period_end`,`conversion`,`offer_redemptions`,Hn];function ji(e,t){return t&&e.length===0?!1:!e.some(e=>Ai.includes(e.field))}function Mi({isFetching:e,isFetchingNextPage:t}){return e&&!t}var Ni=Bt(or,`date`);function Pi(e,t){return At(t,e.field,`UTC`)?.definition.operators.includes(e.operator)??!1}function Fi(e){return Array.isArray(e.$and)?{operator:`$and`,children:e.$and}:Array.isArray(e.$or)?{operator:`$or`,children:e.$or}:null}function Ii(e){if(typeof e.subscribed==`boolean`)return{field:`subscribed`,operator:`is`,values:[e.subscribed?`subscribed`:`unsubscribed`]};if(typeof e.email_disabled==`number`){if(e.email_disabled===1)return{field:`subscribed`,operator:`is`,values:[`email-disabled`]};if(e.email_disabled===0)return{field:`subscribed`,operator:`is-not`,values:[`email-disabled`]}}let t=Fi(e);if(!t||t.children.length!==2)return null;let n,r;for(let e of t.children)typeof e.subscribed==`boolean`&&(n=e.subscribed),typeof e.email_disabled==`number`&&(r=e.email_disabled);return t.operator===`$and`&&r===0&&n!==void 0?{field:`subscribed`,operator:`is`,values:[n?`subscribed`:`unsubscribed`]}:t.operator===`$or`&&r===1&&n!==void 0?{field:`subscribed`,operator:`is-not`,values:[n?`unsubscribed`:`subscribed`]}:null}function Li(e){let t=Fi(e);if(!t||t.children.length!==2)return null;let n,r;for(let e of t.children){let t=e[`newsletters.slug`];typeof t==`string`&&(n=t),t&&typeof t==`object`&&!Array.isArray(t)&&typeof t.$ne==`string`&&(n=t.$ne),typeof e.email_disabled==`number`&&(r=e.email_disabled)}return n?t.operator===`$and`&&r===0?{field:`newsletters.${n}`,operator:`is`,values:[`subscribed`]}:t.operator===`$or`&&r===1?{field:`newsletters.${n}`,operator:`is`,values:[`unsubscribed`]}:null:null}function Ri(e){let t=Fi(e);if(!t||t.operator!==`$and`||t.children.length!==2)return null;let n,r;for(let e of t.children)typeof e[`feedback.post_id`]==`string`&&(n=e[`feedback.post_id`]),typeof e[`feedback.score`]==`number`&&(r=e[`feedback.score`]);return!n||r!==0&&r!==1?null:{field:`newsletter_feedback`,operator:String(r),values:[n]}}var zi=[Ii,Li,Ri];function Bi(e,t){for(let t of zi){let n=t(e);if(n)return[n]}let n=Fi(e);return n?.operator===`$and`?n.children.flatMap(e=>Bi(e,t)):Lt([e],or,t)}function Vi(e,t){let n=Ot(e??``);return n?Vt(Bi(n,t)):[]}function Hi(e){let t=Ot(e??``);return t?Pt(t,Ni):!1}function Ui(e,t){return Rt(e,or,t)}function Wi(e,t,n=!t){return!!e&&n&&!t&&Hi(e)}function Gi(e,t){return e.filter(e=>Pi(e,t))}function Ki({baseSearchParams:e,filters:t,search:n,timezone:r,fields:i}){let a=new URLSearchParams(e),o=Ui(Gi(t,i),r);return a.delete(`filter`),a.delete(`search`),o&&a.set(`filter`,o),n&&a.set(`search`,n),a}function qi(e){let t=(0,X.useMemo)(()=>sr(),[]),[n,r]=g(),i=(0,X.useRef)(null),a=(0,X.useMemo)(()=>n.get(`filter`)??void 0,[n]),o=(0,X.useMemo)(()=>n.toString(),[n]),s=(0,X.useMemo)(()=>Gi(Vi(a,e),t),[a,e,t]),[c,l]=(0,X.useState)(s),u=(0,X.useMemo)(()=>n.get(`search`)??``,[n]),d=(0,X.useMemo)(()=>Ui(Gi(c,t),e),[c,e,t]);return(0,X.useEffect)(()=>{o!==i.current&&(l(s),i.current=o)},[o,s]),(0,X.useEffect)(()=>{if(i.current!==null&&o!==i.current)return;let a=Ki({baseSearchParams:n,filters:c,search:u,timezone:e,fields:t}),s=a.toString();s!==o&&(i.current=s,r(a,{replace:!0}))},[o,c,u,n,r,e,t]),{filters:c,nql:d,search:u,setFilters:(0,X.useCallback)((a,o={})=>{let s=o.replace??!0,c=Ki({baseSearchParams:n,filters:a,search:u,timezone:e,fields:t});l(a),i.current=c.toString(),r(c,{replace:s})},[u,n,r,e,t]),setSearch:(0,X.useCallback)((a,o={})=>{let s=o.replace??!0,l=Ki({baseSearchParams:n,filters:c,search:a,timezone:e,fields:t});i.current=l.toString(),r(l,{replace:s})},[c,n,r,e,t]),clearFilters:(0,X.useCallback)(({replace:a=!0}={})=>{let o=Ki({baseSearchParams:n,filters:[],search:u,timezone:e,fields:t});l([]),i.current=o.toString(),r(o,{replace:a})},[u,n,r,e,t]),clearAll:(0,X.useCallback)(({replace:a=!0}={})=>{let o=Ki({baseSearchParams:n,filters:[],search:``,timezone:e,fields:t});l([]),i.current=o.toString(),r(o,{replace:a})},[n,r,e,t]),hasFilterOrSearch:!!d||u.length>0}}function Ji({enabled:e}){let{data:t}=ue({searchParams:{filter:Un,limit:`1`,fields:`id`,order:`id`},defaultErrorHandler:!1,enabled:e,refetchOnMount:`always`,staleTime:0});return{count:t?.meta?.pagination?.total??0,hasResolvedCount:t!==void 0}}var Yi=250,Xi=6,Zi=({emailAnalyticsEnabled:e,hasStripeEnabled:t,membershipsEnabled:n,timezone:r})=>{let a=(0,X.useRef)(null),o=(0,X.useCallback)(e=>{a.current=e?.closest(`[data-list-page="header"]`)},[]),{filters:s,nql:c,search:l,setFilters:u,setSearch:d,hasFilterOrSearch:f,clearAll:p}=qi(r),m=_(),h=jr(),g=Pr(h,c),[v,x]=(0,X.useState)(!1),[S,T]=(0,X.useState)(!1),[E,D]=(0,X.useState)(l),O=Ie(e=>{d(e)},Yi),{count:k,hasResolvedCount:A}=Ji({enabled:t}),j=(0,X.useMemo)(()=>lr(s),[s]),M=(0,X.useMemo)(()=>ji(s,c),[s,c]),{data:N,isError:P,isFetching:F,isFetchingNextPage:I,refetch:ee,fetchNextPage:R,hasNextPage:z}=yt({searchParams:(0,X.useMemo)(()=>dr({filters:s,nql:c,search:l}),[s,c,l]),placeholderData:i}),B=Mi({isFetching:F,isFetchingNextPage:I}),V=N?.meta?.pagination?.total??0,te=s.length>0,H=v,U=te,W=f||V>0,ne=!f&&!B&&!P&&V<Xi;(0,X.useEffect)(()=>{D(l),O.cancel()},[l,O]);let re=e=>{D(e),O(e)};return(0,Z.jsx)(C,{className:`size-full`,children:(0,Z.jsx)(w,{className:`relative flex h-full flex-col`,size:`page`,children:(0,Z.jsxs)(Yt,{"data-testid":`members-page`,children:[(0,Z.jsx)(Yt.Header,{className:`py-4 sidebar:py-5`,children:(0,Z.jsxs)(`div`,{ref:o,className:`flex flex-col gap-4 sidebar:gap-6`,children:[(0,Z.jsxs)(J,{blurredBackground:!1,sticky:!1,children:[(0,Z.jsx)(J.Left,{children:(0,Z.jsxs)(J.Title,{children:[`Members`,` `,!B&&V>0&&(0,Z.jsx)(J.Count,{className:`hidden sm:inline`,children:b(V)})]})}),(0,Z.jsx)(J.Actions,{children:(0,Z.jsxs)(J.ActionGroup,{className:`ml-auto flex-wrap justify-end sm:ml-0 sm:flex-nowrap`,children:[W&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`hidden lg:flex`,children:(0,Z.jsx)(Zr,{search:E,onSearchChange:re})}),(0,Z.jsx)(q,{"aria-label":v?`Hide member search`:`Show member search`,className:y(`lg:hidden`,v&&`bg-secondary hover:bg-secondary`),variant:`outline`,onClick:()=>{if(v){x(!1),T(!1);return}T(!0),x(!0)},children:(0,Z.jsx)(Ue,{className:`size-4`})}),!te&&(0,Z.jsx)(Xr,{activeView:g,filters:s,iconOnly:!0,multipleActiveSubscriptionsCount:k,nql:c,savedViews:h,onFiltersChange:u})]}),(0,Z.jsx)(gr,{canBulkDelete:M,hasFilterOrSearch:f,memberCount:V,nql:c,search:l,showMenu:W,showNewMember:W,onImportComplete:()=>{ee()}})]})})]}),W&&(U||H)&&(0,Z.jsxs)(Et,{className:y(`flex-col gap-4 lg:flex-row lg:items-center sidebar:gap-6 lg:gap-6`,!U&&`lg:hidden`),children:[H&&(0,Z.jsx)(`div`,{className:`w-full lg:hidden`,children:(0,Z.jsx)(Zr,{ariaLabel:`Search members mobile`,autoFocus:S,search:E,onSearchChange:re})}),U&&(0,Z.jsx)(Xr,{activeView:g,filters:s,multipleActiveSubscriptionsCount:k,nql:c,savedViews:h,onFiltersChange:u})]}),t&&(0,Z.jsx)(ki,{count:k,hasResolvedCount:A,nql:c,search:l})]})}),(0,Z.jsxs)(Yt.Body,{children:[B?(0,Z.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,Z.jsx)(Ke,{size:`lg`})}):P?(0,Z.jsxs)(`div`,{className:`mb-16 flex flex-1 flex-col items-center justify-center`,children:[(0,Z.jsx)(`h2`,{className:`mb-2 text-xl font-medium`,children:`Error loading members`}),(0,Z.jsx)(`p`,{className:`mb-4 text-muted-foreground`,children:`Please reload the page to try again`}),(0,Z.jsx)(q,{onClick:()=>window.location.reload(),children:`Reload page`})]}):N?.members.length?(0,Z.jsx)(Di,{activeColumns:j,backPath:`${m.pathname}${m.search}`,fetchNextPage:()=>void R(),hasNextPage:z,isFetchingNextPage:I,isLoading:F&&!I,items:N.members,pageHeaderRef:a,showEmailOpenRate:e,timezone:r,totalItems:V}):f?(0,Z.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:(0,Z.jsx)(L,{actions:(0,Z.jsx)(q,{variant:`outline`,onClick:()=>{O.cancel(),D(``),p({replace:!1})},children:`Show all members`}),title:`No matching members found.`,children:(0,Z.jsx)(be,{})})}):(0,Z.jsx)(_r,{membershipsEnabled:n,onMemberCreated:async()=>{await ee()}}),ne&&(0,Z.jsx)(`div`,{className:y(N?.members.length&&`mt-8`),children:(0,Z.jsx)(ei,{})})]})]})})})},Qi=()=>{let[e]=g(),{data:t,isLoading:n}=ot({}),{data:r,isLoading:i}=le(),a=Wi(e.get(`filter`)??void 0,!!t?.settings,n);if(n||i||!t?.settings||!r?.config||a)return(0,Z.jsx)(C,{className:`size-full`,children:(0,Z.jsx)(w,{className:`relative flex h-full flex-col`,size:`page`,children:(0,Z.jsxs)(Yt,{children:[(0,Z.jsx)(Yt.Header,{className:`py-4 sidebar:py-6`,children:(0,Z.jsx)(J,{blurredBackground:!1,sticky:!1,children:(0,Z.jsx)(J.Left,{children:(0,Z.jsx)(J.Title,{children:`Members`})})})}),(0,Z.jsx)(Yt.Body,{children:(0,Z.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,Z.jsx)(Ke,{size:`lg`})})})]})})});let o=an(t.settings),s=G(t.settings,`members_signup_access`)!==`none`,c=r.config.emailAnalytics===!0,l=me(t.settings,r.config);return(0,Z.jsx)(Zi,{emailAnalyticsEnabled:c,hasStripeEnabled:l,membershipsEnabled:s,timezone:o})};export{Qi as default};
|
|
@@ -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-DX3WBWVO.js";import{i as r}from"./hooks-D6EE7BIt.js";import{n as i}from"./dist-Ndy-PuGN.js";import{i as a,r as o}from"./stats-B2KW8E2y.js";import{t as s}from"./posts-CxG7v0-M.js";import{o as c}from"./post-helpers-C5OQMBoi.js";import{m as l}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as u}from"./router-provider-DSQfprxH.js";import{_ as d,f,m as p,p as m}from"./dist-Cb5RSHSg.js";import{i as h,r as g,t as _}from"./tabs-BaWRfg8j.js";import{a as v,i as y,n as b,o as x,r as S,t as C}from"./card-aUHX0hyR.js";import{c as w,l as T,n as ee,o as te,r as ne,s as re,t as ie,u as ae}from"./data-list-CupF7bjM.js";import{i as oe,n as se,o as E,r as D,t as O}from"./use-simple-pagination-D5rL3YwO.js";import{Fa as ce,Gr as k,Pr as A,Ps as le,Qi as j,Ss as ue,Ur as M,Vs as de,Xn as N,Zi as P,aa as F,cr as fe,es as I,ir as pe,nr as L,sr as me,tr as he}from"./index-DUXM0NlS.js";import{t as ge}from"./member-route-0Aa52Ntz.js";import{a as R,i as z,n as B,r as V,t as H}from"./kpi-card-J8Mj1sDX.js";import{r as _e,t as ve}from"./post-analytics-header-DK27VjJm.js";import{n as ye}from"./post-analytics-context-D0Mw-Pmv.js";import{a as be,i as xe,n as U,o as W,r as G}from"./link-helpers-Bzkk68GD.js";var K=r({dataType:`FeedbackResponseType`,path:e=>`/feedback/${e}/`}),q=e(t(),1),J=(e,t)=>{let{data:n,isLoading:r,error:i}=K(e,{searchParams:{limit:`50`,...t===void 0?{}:{score:t.toString()}}});return{feedback:(0,q.useMemo)(()=>n?.feedback?n.feedback:[],[n]),isLoading:r,error:i}},Y=n(),Se=({feedbackStats:e})=>{let{postId:t}=l(),n=u(),[r,i]=(0,q.useState)(`positive`),{feedback:a,isLoading:o}=J(t||``,+(r===`positive`)),{totalPages:s,paginatedData:c,nextPage:f,previousPage:w,hasNextPage:T,hasPreviousPage:ee}=O({data:a,itemsPerPage:9}),te=o;return(0,Y.jsxs)(C,{children:[(0,Y.jsxs)(v,{className:`pb-5`,children:[(0,Y.jsx)(x,{children:`Feedback`}),(0,Y.jsx)(S,{children:`What did your readers think?`})]}),e.totalFeedback>0?(0,Y.jsxs)(b,{className:`pb-3`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,Y.jsx)(_,{className:`pb-3`,defaultValue:`positive`,value:r,variant:`button`,onValueChange:e=>i(e),children:(0,Y.jsxs)(g,{className:`gap-1`,children:[(0,Y.jsx)(h,{className:`h-7`,value:`positive`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 text-xs`,children:[(0,Y.jsx)(P,{size:14,strokeWidth:1.25}),(0,Y.jsx)(`span`,{className:`hidden font-medium sm:visible! sm:inline!`,children:`More like this`}),(0,Y.jsx)(`span`,{className:`font-semibold tracking-tight`,children:m(e.positiveFeedback/e.totalFeedback)})]})}),(0,Y.jsx)(h,{className:`h-7`,value:`negative`,children:(0,Y.jsxs)(`div`,{className:`flex items-center gap-1 text-xs`,children:[(0,Y.jsx)(j,{size:14,strokeWidth:1.25}),(0,Y.jsx)(`span`,{className:`hidden font-medium sm:visible! sm:inline!`,children:`Less like this`}),(0,Y.jsx)(`span`,{className:`font-semibold tracking-tight`,children:m(e.negativeFeedback/e.totalFeedback)})]})})]})}),(0,Y.jsx)(le,{className:`mr-2 mb-3 lg:hidden xl:visible! xl:block!`,children:`Date`})]}),(0,Y.jsx)(N,{}),te?(0,Y.jsx)(me,{className:`mt-3`,lines:3}):c&&c.length>0?(0,Y.jsx)(`div`,{className:`flex w-full flex-col py-3`,children:c.map(e=>(0,Y.jsxs)(`div`,{className:`flex h-10 w-full items-center justify-between gap-3 rounded-sm border-none px-2 text-sm hover:cursor-pointer hover:bg-accent`,onClick:()=>{n(`/members/${e.member.id}`,{crossApp:!0})},children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 font-medium`,children:[(0,Y.jsxs)(he,{className:`size-7`,children:[e.member?.avatar_image&&(0,Y.jsx)(`img`,{className:`absolute aspect-square size-full`,src:e.member?.avatar_image}),(0,Y.jsx)(L,{className:`text-white`,style:{backgroundColor:`${d(M(e.member),`45`,`55`)}`},children:k(e.member)})]}),M(e.member)]}),(0,Y.jsx)(`div`,{className:`whitespace-nowrap text-muted-foreground`,children:p(e.created_at)})]},e.id))}):(0,Y.jsx)(`div`,{className:`flex h-full items-center justify-center py-8 text-center text-sm text-muted-foreground`,children:(0,Y.jsxs)(`div`,{children:[`No `,r===`positive`?`positive`:`negative`,` feedback yet`]})})]}):(0,Y.jsxs)(b,{className:`flex grow flex-col items-center justify-center text-center text-sm text-muted-foreground`,children:[(0,Y.jsx)(`div`,{children:`No members have given feedback yet`}),(0,Y.jsx)(`div`,{children:`When someone does, you'll see their response here.`})]}),e.totalFeedback>0&&(0,Y.jsx)(y,{className:`grow-0`,children:(0,Y.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-3`,children:[(0,Y.jsxs)(A,{variant:`outline`,onClick:()=>{let e=`(feedback.post_id:'${t}'+feedback.score:1)`,i=`(feedback.post_id:'${t}'+feedback.score:0)`,a=`${encodeURIComponent(e)}&post=${t}`,o=`${encodeURIComponent(i)}&post=${t}`;n(`/members?filter=${r===`positive`?a:o}`,{crossApp:!0})},children:[`View all`,(0,Y.jsx)(F,{})]}),s>1&&(0,Y.jsx)(se,{className:`pb-0`,children:(0,Y.jsxs)(D,{children:[(0,Y.jsx)(E,{disabled:!ee,onClick:w}),(0,Y.jsx)(oe,{disabled:!T,onClick:f})]})})]})})]})},Ce=e=>{let{data:t,isLoading:n}=s(e),{data:r,isLoading:i}=s(e,{searchParams:{include:`count.positive_feedback,count.negative_feedback`}}),c=(0,q.useMemo)(()=>t?.posts[0],[t]),l=(0,q.useMemo)(()=>r?.posts[0],[r]),u=(0,q.useMemo)(()=>c?{sent:c.email?.email_count||0,opened:c.email?.opened_count||0,clicked:c.count?.clicks||0,openedRate:c.email?.opened_count?c.email.opened_count/c.email.email_count:0,clickedRate:c.count?.clicks&&c.email?.email_count?c.count.clicks/c.email.email_count:0}:{sent:0,opened:0,clicked:0,openedRate:0,clickedRate:0},[c]),d=(0,q.useMemo)(()=>{if(!l?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};let e=l.count.positive_feedback||0,t=l.count.negative_feedback||0;return{positiveFeedback:e,negativeFeedback:t,totalFeedback:e+t}},[l]),f=(0,q.useMemo)(()=>c?.newsletter?.id,[c]),{data:p,isLoading:m}=o({searchParams:f?{newsletter_id:f}:{},enabled:!!f}),h=(0,q.useMemo)(()=>p?.stats?p.stats.map(e=>e.post_id):[],[p]),{data:g,isLoading:_}=a({searchParams:f&&h.length>0?{newsletter_id:f,post_ids:h.join(`,`)}:{},enabled:!!f&&h.length>0}),v=(0,q.useMemo)(()=>{if(!p?.stats)return;let e=p.stats,t=g?.stats||[],n=new Map;t.forEach(e=>{n.set(e.post_id,e)});let r=e.map(e=>{let t=n.get(e.post_id);return{...e,total_clicks:t?.total_clicks||0,click_rate:t?.click_rate||0}});return{...p,stats:r}},[p,g]),y=m||_,{data:b,isLoading:x,refetch:S}=be({searchParams:{filter:`post_id:'${e}'`}}),C=(0,q.useMemo)(()=>{if(!v||!v.stats)return{openRate:0,clickRate:0};let e=v.stats;if(e.length===0)return{openRate:0,clickRate:0};let t=e.reduce((e,t)=>e+(t.open_rate||0),0),n=e.reduce((e,t)=>e+(t.click_rate||0),0);return{openRate:Number((t/e.length).toFixed(2)),clickRate:Number((n/e.length).toFixed(2))}},[v]),w=(0,q.useMemo)(()=>G(b),[b]);return{post:c,stats:u,feedbackStats:d,averageStats:(0,q.useMemo)(()=>({openedRate:C.openRate,clickedRate:C.clickRate}),[C]),topLinks:w,refetchTopLinks:S,isLoading:n||i||y||x}},we=({breakpoints:e={sm:1080,md:1280,lg:1360}}={})=>{let[t,n]=(0,q.useState)(`md`);return(0,q.useEffect)(()=>{let t=()=>{let t=window.innerWidth;t<e.sm?n(`sm`):t<e.md?n(`md`):n(`lg`)};return t(),window.addEventListener(`resize`,t),()=>window.removeEventListener(`resize`,t)},[e]),{chartSize:t,isSmall:t===`sm`,isMedium:t===`md`,isLarge:t===`lg`}},Te=()=>(0,Y.jsx)(`div`,{className:`absolute top-1/2 -right-4 z-10 hidden size-8 -translate-y-1/2 items-center justify-center rounded-full border bg-background text-muted-foreground md:visible! md:flex!`,children:(0,Y.jsx)(I,{className:`ml-0.5`,size:16,strokeWidth:1.5})}),Ee=({dataColor:e,value:t,avgValue:n})=>(0,Y.jsxs)(`div`,{className:`absolute top-6 left-1/2 z-50 flex w-[200px] -translate-x-1/2 flex-col items-stretch gap-1.5 rounded-md bg-background px-4 py-2 text-sm opacity-0 shadow-md transition-all group-hover/block:top-3 group-hover/block:opacity-100`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,Y.jsx)(`div`,{className:`size-2 rounded-full bg-chart-blue opacity-50`,style:{backgroundColor:e}}),`This newsletter`]}),(0,Y.jsx)(`div`,{className:`text-right font-mono`,children:t})]}),(0,Y.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,Y.jsx)(`div`,{className:`size-2 rounded-full bg-chart-gray opacity-80`}),`Average`]}),(0,Y.jsx)(`div`,{className:`text-right font-mono`,children:n})]})]}),X=()=>{let e=u(),[t,n]=(0,q.useState)(null),[r,a]=(0,q.useState)(``),o=(0,q.useRef)(null),s=(0,q.useRef)(null),{chartSize:l}=we(),{appSettings:d}=de(),{emailTrackClicks:p,emailTrackOpens:h}=d?.analytics||{},{post:g,isPostLoading:_,postId:k}=ye(),j=t=>e(ge({filter:t}),{crossApp:!0}),M=g,P=c(M);(0,q.useEffect)(()=>{!_&&!P&&e(`/posts/analytics/${k}`)},[e,k,_,P]);let{stats:F,averageStats:I,topLinks:L,isLoading:he,refetchTopLinks:be}=Ce(k),{mutate:G}=xe(),K=(0,q.useMemo)(()=>{if(!M?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};let e=M.count.positive_feedback||0,t=M.count.negative_feedback||0;return{positiveFeedback:e,negativeFeedback:t,totalFeedback:e+t}},[M]),J=(0,q.useMemo)(()=>M?.newsletter?.feedback_enabled===!0,[M]),X=(0,q.useMemo)(()=>K.totalFeedback>0?!0:J,[K.totalFeedback,J]),De=e=>{let t=U(L,e);t&&(n(e),a(t.link.to))},Oe=()=>{if(!t)return;let e=U(L,t);if(!e)return;let o=r.trim();if(o===``||o===e.link.to){n(null),a(``);return}G({originalUrl:e.link.originalTo,editedUrl:r,postId:k},{onSuccess:()=>{n(null),a(``),be()},onError:()=>{i.error(`Couldn’t update the link. Please try again.`)}})},{totalPages:ke,paginatedData:Ae,nextPage:je,previousPage:Me,hasNextPage:Ne,hasPreviousPage:Pe}=O({data:L,itemsPerPage:10});(0,q.useEffect)(()=>{if(t&&o.current){o.current.focus();let e=U(L,t),i=t=>{s.current&&!s.current.contains(t.target)&&r===e?.link.to&&(n(null),a(``))};return document.addEventListener(`mousedown`,i),()=>{document.removeEventListener(`mousedown`,i)}}},[t,r,L]);let Z=he||_,Fe=[{datatype:`Sent`,value:1,fill:`url(#gradientPurple)`,color:`var(--chart-purple)`}],Ie={percentage:{label:`O`},Average:{label:`Average`},"This newsletter":{label:`This newsletter`}},Le=[{datatype:`Average`,value:I.openedRate,fill:`url(#gradientGray)`,color:`var(--chart-gray)`},{datatype:`This newsletter`,value:F.openedRate,fill:`url(#gradientBlue)`,color:`var(--chart-blue)`}],Re={percentage:{label:`Opened`},Average:{label:`Average`},"This newsletter":{label:`This newsletter`}},ze=[{datatype:`Average`,value:I.clickedRate,fill:`url(#gradientGray)`,color:`var(--chart-gray)`},{datatype:`This newsletter`,value:F.clickedRate,fill:`url(#gradientTeal)`,color:`var(--chart-teal)`}],Be={percentage:{label:`Clicked`},Average:{label:`Average`},"This newsletter":{label:`This newsletter`}},Q=`grid-cols-3`,$=`aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-[10/14] md:max-w-none lg:aspect-square`;return(!p||!h)&&(Q=`grid-cols-2`,$=`aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-square md:max-w-none lg:aspect-[15/10]`),!p&&!h&&(Q=`grid-cols-1`,$=`aspect-square w-full sm:aspect-[16/10] md:max-w-[320px] md:max-h-[320px] lg:aspect-[12/10]`),(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(ve,{currentTab:`Newsletter`}),(0,Y.jsx)(_e,{children:(0,Y.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 ${X&&p&&`lg:grid-cols-2`}`,children:[(0,Y.jsxs)(C,{className:X&&p?`lg:col-span-2`:``,children:[(0,Y.jsxs)(v,{className:`hidden`,children:[(0,Y.jsx)(x,{children:`Newsletters`}),(0,Y.jsx)(S,{children:`How did this post perform`})]}),Z?(0,Y.jsx)(b,{className:`h-[25vw] p-6`,children:(0,Y.jsx)(pe,{})}):(0,Y.jsxs)(b,{className:`p-0`,children:[(0,Y.jsxs)(`div`,{className:`grid ${Q} items-stretch border-b`,children:[(0,Y.jsxs)(H,{className:`group relative isolate grow p-3 md:px-6 md:py-5`,children:[(0,Y.jsx)(z,{onClick:()=>{j(`emails.post_id:${k}`)},children:`View members →`}),(0,Y.jsxs)(V,{onClick:()=>{j(`emails.post_id:${k}`)},children:[(0,Y.jsx)(`div`,{className:`ml-0.5 size-[9px] rounded-full bg-chart-purple opacity-50`}),`Sent`]}),(0,Y.jsx)(B,{children:(0,Y.jsx)(R,{className:`text-xl leading-none sm:text-2xl md:text-[2.6rem]`,children:f(F.sent)})})]}),h&&(0,Y.jsxs)(H,{className:`p-3 md:px-6 md:py-5`,children:[(0,Y.jsx)(z,{onClick:()=>{j(`opened_emails.post_id:${k}`)},children:`View members →`}),(0,Y.jsxs)(V,{onClick:()=>{j(`opened_emails.post_id:${k}`)},children:[(0,Y.jsx)(`div`,{className:`ml-0.5 size-[9px] rounded-full bg-chart-blue opacity-50`}),`Opened`]}),(0,Y.jsx)(B,{children:(0,Y.jsx)(R,{className:`text-xl leading-none sm:text-2xl md:text-[2.6rem]`,children:f(F.opened)})})]}),p&&(0,Y.jsxs)(H,{className:`group relative isolate grow p-3 md:px-6 md:py-5`,children:[(0,Y.jsx)(z,{onClick:()=>{j(`clicked_links.post_id:${k}`)},children:`View members →`}),(0,Y.jsxs)(V,{onClick:()=>{j(`clicked_links.post_id:${k}`)},children:[(0,Y.jsx)(`div`,{className:`ml-0.5 size-[9px] rounded-full bg-chart-teal opacity-50`}),`Clicked`]}),(0,Y.jsx)(B,{children:(0,Y.jsx)(R,{className:`text-xl leading-none sm:text-2xl md:text-[2.6rem]`,children:f(F.clicked)})})]})]}),(0,Y.jsxs)(`div`,{className:`$ mx-auto grid grid-cols-1 items-center justify-center gap-4 transition-all md:gap-0 ${Q===`grid-cols-2`&&`md:grid-cols-2`} ${Q===`grid-cols-3`&&`md:grid-cols-3`}`,children:[(0,Y.jsxs)(`div`,{className:`relative border-r-0 px-6 ${(h||p)&&`md:border-r`}`,children:[(0,Y.jsx)(W,{className:$,config:Ie,data:Fe,percentageLabel:`Sent`,percentageValue:m(1),size:l,tooltip:!1}),(h||p)&&(0,Y.jsx)(Te,{})]}),h&&(0,Y.jsxs)(`div`,{className:`group/block relative border-r-0 px-6 transition-all hover:bg-muted/25 ${p&&`md:border-r`}`,children:[(0,Y.jsx)(Ee,{avgValue:m(I.openedRate),dataColor:`var(--chart-blue)`,value:m(F.openedRate)}),(0,Y.jsx)(W,{className:$,config:Re,data:Le,percentageLabel:`Open rate`,percentageValue:m(F.openedRate),size:l,tooltip:!1}),p&&(0,Y.jsx)(Te,{})]}),p&&(0,Y.jsxs)(`div`,{className:`group/block relative px-6 transition-all hover:bg-muted/25`,children:[(0,Y.jsx)(Ee,{avgValue:m(I.clickedRate),dataColor:`var(--chart-teal)`,value:m(F.clickedRate)}),(0,Y.jsx)(W,{className:$,config:Be,data:ze,percentageLabel:`Click rate`,percentageValue:m(F.clickedRate),size:l,tooltip:!1})]})]})]})]}),X&&(0,Y.jsx)(Se,{feedbackStats:K}),p&&(0,Y.jsxs)(C,{className:`group/datalist overflow-hidden`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between p-6`,children:[(0,Y.jsxs)(v,{className:`p-0`,children:[(0,Y.jsx)(x,{children:`Newsletter clicks`}),(0,Y.jsx)(S,{children:`Which links resonated with your readers`})]}),(0,Y.jsx)(le,{className:`mr-2`,children:`Members`})]}),Z?(0,Y.jsxs)(b,{className:`p-6 pt-0`,children:[(0,Y.jsx)(N,{}),(0,Y.jsx)(me,{className:`mt-6`})]}):(0,Y.jsxs)(b,{className:`pb-0`,children:[(0,Y.jsx)(N,{}),L.length>0?(0,Y.jsx)(ie,{className:``,children:(0,Y.jsx)(ne,{children:Ae?.map(e=>{let n=F.clicked>0?e.count/F.clicked:0,i=e.link.link_id,c=e.link.title,l=e.link.to,u=e.link.edited;return(0,Y.jsxs)(ae,{children:[t!==i&&(0,Y.jsx)(ee,{style:{width:`${n?Math.round(n*100):0}%`}}),(0,Y.jsx)(te,{className:`w-full`,children:t===i?(0,Y.jsxs)(`div`,{ref:s,className:`flex w-full items-center gap-2`,children:[(0,Y.jsx)(fe,{ref:o,className:`z-50 h-7 w-full border-border bg-background text-sm`,value:r,onChange:e=>a(e.target.value)}),(0,Y.jsx)(A,{size:`sm`,onClick:Oe,children:`Update`})]}):(0,Y.jsxs)(Y.Fragment,{children:[(0,Y.jsx)(A,{className:`mr-2 shrink-0 bg-background`,size:`sm`,variant:`outline`,onClick:()=>De(i),children:(0,Y.jsx)(ce,{})}),(0,Y.jsx)(`a`,{className:`block truncate font-medium hover:underline`,href:l,rel:`noreferrer`,target:`_blank`,title:c,children:c}),u&&(0,Y.jsx)(`span`,{className:`ml-1 text-gray-500`,children:`(edited)`})]})}),(0,Y.jsxs)(re,{children:[(0,Y.jsx)(w,{children:f(e.count||0)}),(0,Y.jsx)(T,{children:m(n)})]})]},i)})})}):(0,Y.jsx)(`div`,{className:`py-20 text-center text-sm text-gray-700`,children:`You have no links in your post.`})]}),!Z&&L.length>1&&(0,Y.jsx)(y,{children:(0,Y.jsxs)(`div`,{className:`flex w-full items-start justify-between gap-3`,children:[(0,Y.jsxs)(`div`,{className:`mt-2 flex items-start gap-2 pl-4 text-sm text-green`,children:[(0,Y.jsx)(ue,{size:20,strokeWidth:1.5}),`Sent a broken link? You can update it!`]}),ke>1&&(0,Y.jsx)(se,{className:`pb-0`,children:(0,Y.jsxs)(D,{children:[(0,Y.jsx)(E,{disabled:!Pe,onClick:Me}),(0,Y.jsx)(oe,{disabled:!Ne,onClick:je})]})})]})})]})]})})]})};export{X as default};
|
|
@@ -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-DX3WBWVO.js";import{m as r}from"./hooks-D6EE7BIt.js";import{n as i}from"./dist-Ndy-PuGN.js";import{t as a}from"./use-form-vRjI0Kwk.js";import{m as o}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{x as s}from"./dist-Cb5RSHSg.js";import{t as c}from"./inline-Cw-gigDW.js";import{t as l}from"./stack-CIfOAAVf.js";import{i as u,n as d,r as f,t as p}from"./tabs-BaWRfg8j.js";import{t as m}from"./switch-CE2NuMn-.js";import{i as h,n as g,o as _,s as v,t as y}from"./select-CkXqNJDJ.js";import{s as b,t as x}from"./use-settings-navigation-BmROPrls.js";import{a as S,c as C,i as w,n as T,o as E,r as D,s as O,t as k}from"./field-B3OPenbP.js";import{t as A}from"./textarea-d9qEkMOP.js";import{n as ee,t as j}from"./toggle-group-CVl-Xigr.js";import{r as te}from"./components-CwL6a6As-B0E0-NBJ.js";import{Dn as M,Ir as N,Lr as P,Ls as F,On as I,Pr as L,Qi as R,Rs as ne,Ui as z,Wi as B,Xn as V,Zi as re,bo as ie,ca as ae,cr as H,hs as oe,ma as se,na as ce,qa as le,qo as ue,sa as U,ta as de,zr as fe,zs as pe}from"./index-DUXM0NlS.js";import{i as me,r as he}from"./newsletters-Du0lzskS.js";import{t as ge}from"./validator-Cr0sMKuW.js";import{n as _e}from"./confirmation-modal-CYD7x3UQ.js";import{t as ve}from"./limit-modal-COmLevuY.js";import{n as ye,t as be}from"./use-limiter-Dwg8ivgQ.js";import{n as W}from"./global-data-provider-RzW6Bnlf.js";import{t as xe}from"./use-setting-group-Cmp_sy-d.js";import{t as Se}from"./use-feature-flag-BmJoc5WN.js";import{t as G}from"./color-picker-field-8NoSnhNI.js";import{i as Ce,r as we,t as K}from"./newsletter-emails-B-OLfrvr.js";import{t as Te}from"./html-field-CVZ2sMxw.js";import{t as q}from"./color-utils-Dzeeuj1F.js";import{t as Ee}from"./preview-modal-DctYx20m.js";``+new URL(`user-cover-yM4cP_Mo.jpg`,import.meta.url).href,``+new URL(`latest-posts-1-D7-ilqhR.jpg`,import.meta.url).href,``+new URL(`latest-posts-2-BPfbGB8B.jpg`,import.meta.url).href,``+new URL(`latest-posts-3-D72O3dn8.jpg`,import.meta.url).href;var J=n(),De=({senderName:e,senderEmail:t,senderReplyTo:n,headerImage:r,headerIcon:i,headerTitle:a,headerSubtitle:o,showPostTitleSection:c,showExcerpt:l,titleAlignment:u,titleFontCategory:d,titleFontWeight:f,bodyFontCategory:p,authorPlaceholder:m,showCommentCta:h,showFeatureImage:g,showFeedback:_,showShareButton:v,showLatestPosts:y,showSubscriptionDetails:b,siteTitle:x,footerContent:S,showBadge:C,backgroundColor:w,headerBackgroundColor:T,accentColor:E,textColor:D,secondaryTextColor:O,headerTextColor:k,secondaryHeaderTextColor:A,postTitleColor:ee,sectionTitleColor:j,dividerColor:M,buttonColor:N,buttonTextColor:P,linkColor:F,buttonCorners:I,buttonStyle:L,imageCorners:z,linkStyle:B,dividerStyle:V})=>{let ie=i||a,{config:ae}=W(),H=new Date().toLocaleDateString(`default`,{year:`numeric`,month:`short`,day:`numeric`}),oe=new Date().getFullYear(),ce=S?S.replace(/<a/g,`<a target="_blank" rel="noopener noreferrer"`):``,ue;ue=ne(ae)?(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`p`,{className:`leading-normal`,children:[(0,J.jsx)(`span`,{className:`font-semibold text-grey-900`,children:`From: `}),(0,J.jsxs)(`span`,{children:[e,` (`,t,`)`]})]}),(0,J.jsxs)(`p`,{className:`leading-normal`,children:[(0,J.jsx)(`span`,{className:`font-semibold text-grey-900`,children:`Reply-to: `}),n||t]})]}):(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`p`,{className:`leading-normal`,children:[(0,J.jsx)(`span`,{className:`font-semibold text-grey-900`,children:e}),(0,J.jsxs)(`span`,{children:[` `,t]})]}),(0,J.jsxs)(`p`,{className:`leading-normal`,children:[(0,J.jsx)(`span`,{className:`font-semibold text-grey-900`,children:`To:`}),` Jamie Larson jamie@example.com`]})]});let U=`mb-5 text-pretty leading-[1.7] text-black`;return U=d===`serif`&&p===`serif`?s(U,`mb-8 font-serif text-[2.0rem] leading-tight`):d!==`serif`&&p===`serif`?s(U,`mb-8 text-[1.7rem] leading-tight tracking-tight`):d===`serif`&&p!==`serif`?s(U,`mb-8 font-serif text-[2.0rem] leading-tight`):s(U,`mb-8 text-[1.9rem] leading-tight tracking-tight`),u===`center`&&(U=s(U,`text-center`)),(0,J.jsx)(`div`,{className:`relative flex grow flex-col`,children:(0,J.jsx)(`div`,{className:`absolute inset-0 m-5 flex items-center justify-center`,children:(0,J.jsxs)(`div`,{className:`mx-auto my-0 flex max-h-full w-full max-w-[700px] flex-col overflow-hidden rounded-[4px] text-black shadow-sm`,children:[(0,J.jsx)(`div`,{className:`flex-column flex min-h-[77px] justify-center gap-1 rounded-t-sm border-b border-grey-200 bg-white px-6 text-grey-700`,children:ue}),(0,J.jsxs)(`div`,{className:`overflow-y-auto`,style:{backgroundColor:w},children:[(0,J.jsxs)(`div`,{className:`px-[7rem]`,style:{backgroundColor:T},children:[r&&(0,J.jsx)(`div`,{children:(0,J.jsx)(`img`,{alt:``,className:`mb-4 block pt-6`,src:r})}),ie&&(0,J.jsxs)(`div`,{className:`py-3`,children:[i&&(0,J.jsx)(`img`,{alt:``,className:`mx-auto mb-2 size-10`,role:`presentation`,src:i}),a&&(0,J.jsx)(`h4`,{className:`mb-1 text-center text-[1.6rem] leading-tight font-bold tracking-tight text-grey-900 uppercase`,style:{color:k},children:a}),o&&(0,J.jsx)(`h5`,{className:`mb-1 text-center text-[1.3rem] font-normal text-grey-700`,style:{color:A},children:o})]}),c&&(0,J.jsxs)(`div`,{className:s(`flex flex-col py-8`,u===`center`?`items-center`:`items-start`),children:[(0,J.jsx)(`h2`,{className:s(`text-4xl leading-supertight font-bold text-black`,d===`serif`&&`font-serif`,f===`normal`&&`font-normal`,f===`medium`&&`font-medium`,f===`semibold`&&`font-semibold`,f===`bold`&&`font-bold`,u===`center`?`text-center`:`text-left`,l?`mb-2`:`mb-8`),style:{color:ee},children:`Your email newsletter`}),l&&(0,J.jsx)(`p`,{className:U,style:{color:k},children:`A subtitle to highlight key points and engage your readers.`}),(0,J.jsxs)(`div`,{className:s(`flex w-full justify-between text-center text-md leading-none text-grey-700`,u===`center`?`flex-col gap-1`:`flex-row`),children:[(0,J.jsxs)(`p`,{className:`pb-1 text-[1.3rem]`,style:{color:A},children:[`By `,m,(0,J.jsx)(`span`,{className:`before:pr-1 before:pl-0.5 before:content-['•']`,children:H})]}),(0,J.jsx)(`p`,{className:`pb-1 text-[1.3rem] underline`,style:{color:A},children:(0,J.jsx)(`span`,{children:`View in browser`})})]})]}),g&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`div`,{className:s(`h-[unset] w-full max-w-[600px] bg-cover bg-no-repeat`,c?``:`pt-6`),children:(0,J.jsx)(`img`,{alt:`Feature`,className:s(`min-h-full min-w-full shrink-0`,z===`square`&&`rounded-none`,z===`rounded`&&`rounded-md`),src:``+new URL(`user-cover-yM4cP_Mo.jpg`,import.meta.url).href})}),(0,J.jsx)(`div`,{className:`mt-1 w-full max-w-[600px] pb-8 text-center text-[1.3rem] text-grey-700`,style:{color:A},children:`Feature image caption`})]})]}),(0,J.jsxs)(`div`,{className:s(`px-[7rem]`,T!==`transparent`&&`pt-10`),children:[(0,J.jsxs)(`div`,{className:s(`max-w-[600px] border-b border-grey-200 pb-[52px] leading-[27.2px] text-black`,V===`dashed`&&`border-dashed`,V===`dotted`&&`border-b-2 border-dotted`,p===`serif`?`font-serif text-[1.8rem]`:`text-[1.7rem] tracking-tight`,g||c?``:`pt-8`),style:{borderColor:M},children:[(0,J.jsx)(`p`,{className:`mb-6`,style:{color:D},children:`This is what your content will look like when you send one of your posts as an email newsletter to your subscribers.`}),(0,J.jsx)(`p`,{className:`mb-6`,style:{color:D},children:`Over there on the right you'll see some settings that allow you to customize the look and feel of this template – from colors and typography to layout and buttons – to make it perfectly suited to your brand.`}),(0,J.jsx)(`p`,{className:`mb-[52px]`,style:{color:D},children:`Email templates are exceptionally finnicky to make, but we've spent a long time optimising this one to make it work beautifully across devices, email clients and content types. So, you can trust that every email you send with Ghost will look great and work well. Just like the rest of your site.`}),(0,J.jsx)(`hr`,{className:s(`my-[52px] border-[#e0e7eb]`,V===`dashed`&&`border-dashed`,V===`dotted`&&`border-t-0 border-b-2 border-dotted`),style:{borderColor:M}}),(0,J.jsx)(`h3`,{className:s(`mb-[13px] text-[2.6rem] leading-supertight`,d===`serif`&&`font-serif`,d===`sans_serif`&&`font-sans`,f===`normal`&&`font-normal`,f===`medium`&&`font-medium`,f===`semibold`&&`font-semibold`,f===`bold`&&`font-bold`),style:{color:j},children:`Need inspiration?`}),(0,J.jsxs)(`p`,{className:`mb-[27px]`,style:{color:D},children:[`We've put together a `,(0,J.jsx)(`a`,{className:s(B===`underline`&&`underline`,B===`bold`&&`font-bold`),href:`https://ghost.org/help/email-design/`,rel:`noopener noreferrer`,style:{color:F||E},target:`_blank`,children:`quick guide`}),` that walks through all of the available settings, along with a few examples of what's possible.`]}),(0,J.jsx)(`a`,{className:s(`inline-block border px-[18px] py-2 font-sans text-[15px]`,I===`rounded`&&`rounded-[6px]`,I===`pill`&&`rounded-full`,I===`square`&&`rounded-none`,L===`outline`?`bg-transparent`:`border-transparent text-white`,B===`bold`?`font-bold`:`font-semibold`),href:`https://ghost.org/help/email-design/`,rel:`noopener noreferrer`,style:L===`outline`?{borderColor:N||E,color:N||E}:{backgroundColor:N||E,color:P},target:`_blank`,children:`Learn more`})]}),(_||h||v)&&(0,J.jsx)(`div`,{className:s(`grid gap-5 border-b border-grey-200 px-6 py-5`,V===`dashed`&&`border-dashed`,V===`dotted`&&`border-b-2 border-dotted`),style:{borderColor:M},children:(0,J.jsxs)(`div`,{className:`grid auto-cols-fr grid-flow-col gap-4`,children:[_&&(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`pointer-events-none flex min-w-[120px] cursor-default flex-col items-center gap-[11px] text-center`,children:[(0,J.jsx)(`span`,{className:`inline-flex size-[54px] items-center justify-center rounded-full border`,style:{borderColor:M,color:D},children:(0,J.jsx)(re,{className:`size-5`})}),(0,J.jsx)(`span`,{className:`font-sans text-[1.3rem] leading-[1.4] font-medium`,style:{color:D},children:`More like this`})]}),(0,J.jsxs)(`div`,{className:`pointer-events-none flex min-w-[120px] cursor-default flex-col items-center gap-[11px] text-center`,children:[(0,J.jsx)(`span`,{className:`inline-flex size-[54px] items-center justify-center rounded-full border`,style:{borderColor:M,color:D},children:(0,J.jsx)(R,{className:`size-5`})}),(0,J.jsx)(`span`,{className:`font-sans text-[1.3rem] leading-[1.4] font-medium`,style:{color:D},children:`Less like this`})]})]}),h&&(0,J.jsxs)(`div`,{className:`pointer-events-none flex min-w-[120px] cursor-default flex-col items-center gap-[11px] text-center`,children:[(0,J.jsx)(`span`,{className:`inline-flex size-[54px] items-center justify-center rounded-full border`,style:{borderColor:M,color:D},children:(0,J.jsx)(le,{className:`size-5`})}),(0,J.jsx)(`span`,{className:`font-sans text-[1.3rem] leading-[1.4] font-medium`,style:{color:D},children:`Comment`})]}),v&&(0,J.jsxs)(`div`,{className:`pointer-events-none flex min-w-[120px] cursor-default flex-col items-center gap-[11px] text-center`,children:[(0,J.jsx)(`span`,{className:`inline-flex size-[54px] items-center justify-center rounded-full border`,style:{borderColor:M,color:D},children:(0,J.jsx)(se,{className:`size-5`})}),(0,J.jsx)(`span`,{className:`font-sans text-[1.3rem] leading-[1.4] font-medium`,style:{color:D},children:`Share`})]})]})}),y&&(0,J.jsxs)(`div`,{className:s(`border-b border-grey-200 py-6`,V===`dashed`&&`border-dashed`,V===`dotted`&&`border-b-2 border-dotted`),style:{borderColor:M},children:[(0,J.jsx)(`h3`,{className:`mt-2 mb-4 pb-1 text-[1.2rem] font-semibold tracking-wide text-black uppercase`,style:{color:D},children:`Keep reading`}),(0,J.jsxs)(`div`,{className:`flex justify-between gap-4 py-2`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`h4`,{className:s(`mt-0.5 text-[1.9rem] text-black`,d===`serif`&&`font-serif`,f===`normal`&&`font-normal`,f===`medium`&&`font-medium`,f===`semibold`&&`font-semibold`,f===`bold`&&`font-bold`),style:{color:j},children:`The three latest posts published on your site`}),(0,J.jsx)(`p`,{className:`m-0 text-base text-grey-700`,style:{color:O},children:`Posts sent as an email only will never be shown here.`})]}),(0,J.jsx)(`div`,{className:`aspect-square h-auto w-full max-w-[100px] bg-cover bg-no-repeat`,children:(0,J.jsx)(`img`,{alt:`Latest post`,className:s(z===`square`&&`rounded-none`,z===`rounded`&&`rounded-md`),src:``+new URL(`latest-posts-1-D7-ilqhR.jpg`,import.meta.url).href})})]}),(0,J.jsxs)(`div`,{className:`flex justify-between gap-4 py-2`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`h4`,{className:s(`mt-0.5 text-[1.9rem] text-black`,d===`serif`&&`font-serif`,f===`normal`&&`font-normal`,f===`medium`&&`font-medium`,f===`semibold`&&`font-semibold`,f===`bold`&&`font-bold`),style:{color:j},children:`Displayed at the bottom of each newsletter`}),(0,J.jsx)(`p`,{className:`m-0 text-base text-grey-700`,style:{color:O},children:`Giving your readers one more place to discover your stories.`})]}),(0,J.jsx)(`div`,{className:`aspect-square h-auto w-full max-w-[100px] bg-cover bg-no-repeat`,children:(0,J.jsx)(`img`,{alt:`Latest post`,className:s(z===`square`&&`rounded-none`,z===`rounded`&&`rounded-md`),src:``+new URL(`latest-posts-2-BPfbGB8B.jpg`,import.meta.url).href})})]}),(0,J.jsxs)(`div`,{className:`flex justify-between gap-4 py-2`,children:[(0,J.jsxs)(`div`,{children:[(0,J.jsx)(`h4`,{className:s(`mt-0.5 text-[1.9rem] text-black`,d===`serif`&&`font-serif`,f===`normal`&&`font-normal`,f===`medium`&&`font-medium`,f===`semibold`&&`font-semibold`,f===`bold`&&`font-bold`),style:{color:j},children:`To keep your work front and center`}),(0,J.jsx)(`p`,{className:`m-0 text-base text-grey-700`,style:{color:O},children:`Making sure that your audience stays engaged.`})]}),(0,J.jsx)(`div`,{className:`aspect-square h-auto w-full max-w-[100px] bg-cover bg-no-repeat`,children:(0,J.jsx)(`img`,{alt:`Latest post`,className:s(z===`square`&&`rounded-none`,z===`rounded`&&`rounded-md`),src:``+new URL(`latest-posts-3-D72O3dn8.jpg`,import.meta.url).href})})]})]}),b&&(0,J.jsxs)(`div`,{className:s(`border-b border-grey-200 py-8`,V===`dashed`&&`border-dashed`,V===`dotted`&&`border-b-2 border-dotted`),style:{borderColor:M},children:[(0,J.jsx)(`h4`,{className:`mb-3 text-[1.2rem] tracking-wide text-black uppercase`,style:{color:D},children:`Subscription details`}),(0,J.jsxs)(`p`,{className:`m-0 mb-4 text-base`,style:{color:D},children:[`You are receiving this because you are a paid subscriber to `,x,`. Your subscription will renew on 17 Jul 2024.`]}),(0,J.jsxs)(`div`,{className:`flex`,children:[(0,J.jsxs)(`div`,{className:`shrink-0 text-base`,children:[(0,J.jsx)(`p`,{style:{color:D},children:`Name: Jamie Larson`}),(0,J.jsx)(`p`,{style:{color:D},children:`Email: jamie@example.com`}),(0,J.jsx)(`p`,{style:{color:D},children:`Member since: 17 July 2023`})]}),(0,J.jsx)(`span`,{className:s(`w-full self-end text-right text-base whitespace-nowrap`,B===`underline`&&`underline`,B===`bold`&&`font-bold`),style:{color:F||E},children:`Manage subscription`})]})]}),(0,J.jsxs)(`div`,{className:`flex flex-col items-center pt-10`,children:[(0,J.jsx)(`div`,{dangerouslySetInnerHTML:{__html:ce||``},className:`text px-8 py-3 text-center text-[1.3rem] leading-base break-words text-grey-700 [&_a]:underline`,style:{color:O}}),(0,J.jsxs)(`div`,{className:`px-8 pt-3 pb-14 text-center text-[1.3rem] text-grey-700`,children:[(0,J.jsxs)(`span`,{style:{color:O},children:[x,` © `,oe,` — `]}),(0,J.jsx)(`span`,{className:`pointer-events-none cursor-auto underline`,style:{color:O},children:`Unsubscribe`})]}),C&&(0,J.jsx)(`div`,{className:`flex flex-col items-center pt-[10px] pb-[40px]`,children:(0,J.jsxs)(`a`,{className:`pointer-events-none inline-flex cursor-auto items-center px-2 py-1 text-[1.25rem] font-semibold tracking-tight text-grey-900`,href:`https://ghost.org`,style:{color:D},children:[(0,J.jsx)(te,{className:`mr-[6px] size-4`}),(0,J.jsx)(`span`,{children:`Powered by Ghost`})]})})]})]})]})]})})})},Y=e(t(),1),Oe=({newsletter:e})=>{let{currentUser:t,settings:n,siteData:r,config:i}=W(),[a,o,s,c,l]=I(n,[`title`,`icon`,`comments_enabled`,`support_email_address`,`default_email_address`]),u=null;e.show_header_title?u=a||null:e.show_header_name&&(u=e.name);let d=e.show_header_title&&e.show_header_name?e.name:void 0,f=e.show_comment_cta&&s!==`off`,p=e.feedback_enabled,m=e.show_share_button,h=()=>{let t=e.background_color;return/#([0-9a-f]{3}){1,2}$/i.test(t)?t:`#ffffff`},g=()=>{let t=e.header_background_color;return!t||t===`transparent`?`transparent`:/#([0-9a-f]{3}){1,2}$/i.test(t)?t:`transparent`},_=()=>{let t=e.button_color;return/#([0-9a-f]{3}){1,2}$/i.test(t||``)?t:t===null?q(h()).hex():r.accent_color},v=()=>{let t=e.button_style,n=_();if(n&&t===`fill`)return q(n).hex()},y=()=>{let t=e.link_color===void 0?`accent`:e.link_color;return t===`accent`?r.accent_color:/#([0-9a-f]{3}){1,2}$/i.test(t||``)?t:q(h()).hex()},b=()=>{let t=e.post_title_color;if(/#([0-9a-f]{3}){1,2}$/i.test(t||``))return t;if(t===`accent`)return r.accent_color;let n=g();return q(n===`transparent`?h():n).hex()},x=()=>{let t=e.section_title_color;return/#([0-9a-f]{3}){1,2}$/i.test(t||``)?t:t===`accent`?r.accent_color:q(h()).hex()},S=()=>{let t=e.divider_color;return/#([0-9a-f]{3}){1,2}$/i.test(t||``)?t:t===`accent`?r.accent_color:`#e0e7eb`},C=q(h()).hex(),w=q(h()).alpha(.5).toString(),T=g()===`transparent`?C:q(g()).hex(),E=g()===`transparent`?w:q(g()).alpha(.5).toString(),D={backgroundColor:h(),headerBackgroundColor:g(),postTitleColor:b()||void 0,sectionTitleColor:x()||void 0,buttonColor:_()||void 0,buttonTextColor:v()||void 0,linkColor:y()||void 0,dividerColor:S()||void 0,textColor:C,secondaryTextColor:w,headerTextColor:T,secondaryHeaderTextColor:E};return(0,J.jsx)(De,{accentColor:r.accent_color,authorPlaceholder:t.name||t.email,backgroundColor:D.backgroundColor||`#ffffff`,bodyFontCategory:e.body_font_category,buttonCorners:e.button_corners||`rounded`,buttonStyle:e.button_style||`fill`,dividerStyle:e.divider_style||`solid`,footerContent:e.footer_content,headerBackgroundColor:D.headerBackgroundColor||`transparent`,headerIcon:e.show_header_icon?o:void 0,headerImage:e.header_image,headerSubtitle:d,headerTitle:u,imageCorners:e.image_corners||`square`,linkStyle:e.link_style||`underline`,senderEmail:we(e,i,l),senderName:e.sender_name||a,senderReplyTo:K(e,i,c,l),showBadge:e.show_badge,showCommentCta:f,showExcerpt:e.show_excerpt,showFeatureImage:e.show_feature_image,showFeedback:p,showLatestPosts:e.show_latest_posts,showPostTitleSection:e.show_post_title_section,showShareButton:m,showSubscriptionDetails:e.show_subscription_details,siteTitle:a,titleAlignment:e.title_alignment,titleFontCategory:e.title_font_category,titleFontWeight:e.title_font_weight||`bold`,...D})},X=e(ge(),1),Z=({label:e,value:t,options:n,onValueChange:r})=>(0,J.jsx)(j,{"aria-label":e,type:`single`,value:t,onValueChange:e=>e&&r(e),children:n.map(e=>(0,J.jsxs)(N,{children:[(0,J.jsx)(fe,{asChild:!0,children:(0,J.jsx)(ee,{"aria-label":e.label,disabled:e.disabled,value:e.value,children:e.icon})}),(0,J.jsx)(P,{children:e.label})]},e.value))}),ke=({newsletter:e,updateNewsletter:t,errors:n,clearError:r})=>{let{settings:i,config:a}=W(),[o,s]=I(i,[`default_email_address`,`support_email_address`]),[c,l]=(0,Y.useState)(K(e,a,s,o)||``),u=we(e,a,o),d=(0,Y.useCallback)(e=>{l(e.target.value),t({sender_reply_to:e.target.value||`newsletter`})},[t,l]);return(0,J.jsxs)(k,{"data-invalid":!!n.sender_reply_to||void 0,children:[(0,J.jsx)(E,{htmlFor:`newsletter-reply-to`,children:`Reply-to email`}),(0,J.jsx)(H,{"aria-invalid":!!n.sender_reply_to||void 0,id:`newsletter-reply-to`,maxLength:191,placeholder:u||``,value:c,onBlur:()=>{let t=K(e,a,s,o)||``;l(t)},onChange:d,onKeyDown:()=>r(`sender_reply_to`)}),n.sender_reply_to&&(0,J.jsx)(w,{children:n.sender_reply_to})]})},Ae=({newsletter:e,onlyOne:t,updateNewsletter:n,validate:a,errors:o,clearError:s})=>{let{updateRoute:ee}=x(),{mutateAsync:j}=me(),te=ye(),{settings:N,config:P,siteData:R}=W(),[re,se]=I(N,[`icon`,`default_email_address`]),[le,fe]=(0,Y.useState)(`generalSettings`),{localSettings:pe}=xe(),[ge]=I(pe,[`title`]),Se=r(),{data:{newsletters:K}={}}=he(),Ee=[`all`,`paid`].includes(M(N,`comments_enabled`)||``),De=we(e,P,se),[Oe,X]=(0,Y.useState)(K||[]),Ae=Oe.filter(e=>e.status===`active`);(0,Y.useEffect)(()=>{X(K||[])},[K]);let je=[{value:`serif`,label:`Elegant serif`,className:`font-serif`},{value:`sans_serif`,label:`Clean sans-serif`}],Q={sans_serif:{options:[{value:`normal`,label:`Regular`,className:`font-normal`},{value:`medium`,label:`Medium`,className:`font-medium`},{value:`semibold`,label:`Semi-bold`,className:`font-semibold`},{value:`bold`,label:`Bold`,className:`font-bold`}]},serif:{options:[{value:`normal`,label:`Regular`,className:`font-normal`},{value:`bold`,label:`Bold`,className:`font-bold`}],map:{medium:`normal`,semibold:`bold`}}},$=()=>e.background_color===`light`?!1:q(e.background_color).hex().toLowerCase()===`#ffffff`,Me=async()=>{if(e.status===`active`)b.show(_e,{title:`Archive newsletter`,prompt:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(`div`,{className:`mb-6`,children:[`Your newsletter `,(0,J.jsx)(`strong`,{children:e.name}),` will no longer be visible to members or available as an option when publishing new posts.`]}),(0,J.jsx)(`div`,{children:`Existing posts previously sent as this newsletter will remain unchanged.`})]}),okLabel:`Archive`,okVariant:`destructive`,onOk:async t=>{try{await j({...e,status:`archived`}),t?.remove(),i.success(`Newsletter archived`)}catch(e){Se(e)}}});else{try{await te?.errorIfWouldGoOverLimit(`newsletters`)}catch(e){if(e instanceof be){b.show(ve,{prompt:e.message||`Your current plan doesn't support more newsletters.`,onOk:()=>ee({route:`/pro`,isExternal:!0})});return}else throw e}b.show(_e,{title:`Reactivate newsletter`,prompt:(0,J.jsxs)(J.Fragment,{children:[`Reactivating `,(0,J.jsx)(`strong`,{children:e.name}),` will immediately make it visible to members and re-enable it as an option when publishing new posts.`]}),okLabel:`Reactivate`,onOk:async t=>{await j({...e,status:`active`}),t?.remove(),i.success(`Newsletter reactivated`)}})}},Ne=()=>{if(!ne(P))return(0,J.jsxs)(k,{"data-invalid":!!o.sender_email||void 0,children:[(0,J.jsx)(E,{htmlFor:`newsletter-sender-email`,children:`Sender email address`}),(0,J.jsx)(H,{"aria-invalid":!!o.sender_email||void 0,id:`newsletter-sender-email`,placeholder:De||``,value:e.sender_email||``,onChange:e=>n({sender_email:e.target.value}),onKeyDown:()=>s(`sender_email`)}),o.sender_email&&(0,J.jsx)(w,{children:o.sender_email})]});if(F(P))return(0,J.jsxs)(k,{"data-invalid":!!o.sender_email||void 0,children:[(0,J.jsx)(E,{htmlFor:`newsletter-sender-email`,children:`Sender email address`}),(0,J.jsx)(H,{"aria-invalid":!!o.sender_email||void 0,id:`newsletter-sender-email`,maxLength:191,placeholder:se,value:e.sender_email||``,onChange:e=>{n({sender_email:e.target.value})},onKeyDown:()=>s(`sender_email`)}),o.sender_email&&(0,J.jsx)(w,{children:o.sender_email})]})},Pe=Q[e.title_font_category||`sans_serif`].options,Fe=[{id:`generalSettings`,title:`General`,contents:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(C,{className:`mt-8`,children:[(0,J.jsx)(O,{className:`text-lg! font-semibold`,children:`Name and description`}),(0,J.jsxs)(S,{children:[(0,J.jsxs)(k,{"data-invalid":!!o.name||void 0,children:[(0,J.jsx)(E,{htmlFor:`newsletter-detail-name`,children:`Name`}),(0,J.jsx)(H,{"aria-invalid":!!o.name||void 0,id:`newsletter-detail-name`,maxLength:191,placeholder:`Weekly Roundup`,value:e.name||``,onChange:e=>n({name:e.target.value}),onKeyDown:()=>s(`name`)}),o.name&&(0,J.jsx)(w,{children:o.name})]}),(0,J.jsxs)(k,{children:[(0,J.jsx)(E,{htmlFor:`newsletter-description`,children:`Description`}),(0,J.jsx)(A,{id:`newsletter-description`,maxLength:2e3,rows:2,value:e.description||``,onChange:e=>n({description:e.target.value})})]})]})]}),(0,J.jsxs)(C,{className:`mt-8`,children:[(0,J.jsx)(O,{className:`text-lg! font-semibold`,children:`Email info`}),(0,J.jsxs)(S,{children:[(0,J.jsxs)(k,{children:[(0,J.jsx)(E,{htmlFor:`newsletter-sender-name`,children:`Sender name`}),(0,J.jsx)(H,{id:`newsletter-sender-name`,maxLength:191,placeholder:ge,value:e.sender_name||``,onChange:e=>n({sender_name:e.target.value})})]}),Ne(),(0,J.jsx)(ke,{clearError:s,errors:o,newsletter:e,updateNewsletter:n,validate:a})]})]}),(0,J.jsxs)(C,{className:`mt-8`,children:[(0,J.jsx)(O,{className:`text-lg! font-semibold`,children:`Member settings`}),(0,J.jsx)(S,{children:(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-subscribe-on-signup`,children:`Subscribe new members on signup`}),(0,J.jsx)(m,{checked:!!e.subscribe_on_signup,id:`newsletter-subscribe-on-signup`,onCheckedChange:e=>n({subscribe_on_signup:e})})]})})]}),(0,J.jsx)(`div`,{className:`mt-10 mb-5`,children:e.status===`active`?!t&&(0,J.jsx)(L,{className:`text-destructive hover:text-destructive`,disabled:Ae.length===1,type:`button`,variant:`ghost`,onClick:Me,children:`Archive newsletter`}):(0,J.jsx)(L,{className:`text-green hover:text-green`,type:`button`,variant:`ghost`,onClick:Me,children:`Reactivate newsletter`})})]})},{id:`content`,title:`Content`,contents:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(C,{className:`mt-8`,children:[(0,J.jsx)(O,{className:`text-lg! font-semibold`,children:`Header`}),(0,J.jsxs)(S,{children:[(0,J.jsx)(Ce,{inputId:`newsletter-header-image`,value:e.header_image||``,onChange:e=>n({header_image:e||null}),onUploadError:Se}),(0,J.jsxs)(l,{gap:`md`,children:[re&&(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-header-icon`,children:`Publication icon`}),(0,J.jsx)(m,{checked:!!e.show_header_icon,id:`newsletter-show-header-icon`,onCheckedChange:e=>n({show_header_icon:e})})]}),(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-header-title`,children:`Publication title`}),(0,J.jsx)(m,{checked:!!e.show_header_title,id:`newsletter-show-header-title`,onCheckedChange:e=>n({show_header_title:e})})]}),(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-header-name`,children:`Newsletter name`}),(0,J.jsx)(m,{checked:!!e.show_header_name,id:`newsletter-show-header-name`,onCheckedChange:e=>n({show_header_name:e})})]})]})]})]}),(0,J.jsxs)(C,{className:`mt-8`,children:[(0,J.jsx)(O,{className:`text-lg! font-semibold`,children:`Title section`}),(0,J.jsxs)(S,{children:[(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-post-title`,children:`Post title`}),(0,J.jsx)(m,{checked:!!e.show_post_title_section,id:`newsletter-show-post-title`,onCheckedChange:e=>n({show_post_title_section:e})})]}),e.show_post_title_section&&(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-excerpt`,children:`Post excerpt`}),(0,J.jsx)(m,{checked:!!e.show_excerpt,id:`newsletter-show-excerpt`,onCheckedChange:e=>n({show_excerpt:e})})]}),(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-feature-image`,children:`Feature image`}),(0,J.jsx)(m,{checked:!!e.show_feature_image,id:`newsletter-show-feature-image`,onCheckedChange:e=>n({show_feature_image:e})})]})]})]}),(0,J.jsxs)(C,{className:`mt-8`,children:[(0,J.jsx)(O,{className:`text-lg! font-semibold`,children:`Footer`}),(0,J.jsxs)(S,{children:[(0,J.jsxs)(l,{gap:`lg`,children:[(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-feedback-enabled`,children:`Ask your readers for feedback`}),(0,J.jsx)(m,{checked:!!e.feedback_enabled,id:`newsletter-feedback-enabled`,onCheckedChange:e=>n({feedback_enabled:e})})]}),Ee&&(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-comment-cta`,children:`Add a link to your comments`}),(0,J.jsx)(m,{checked:!!e.show_comment_cta,id:`newsletter-show-comment-cta`,onCheckedChange:e=>n({show_comment_cta:e})})]}),(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-share-button`,children:`Show share button`}),(0,J.jsx)(m,{checked:!!e.show_share_button,id:`newsletter-show-share-button`,onCheckedChange:e=>n({show_share_button:e})})]}),(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-latest-posts`,children:`Share your latest posts`}),(0,J.jsx)(m,{checked:!!e.show_latest_posts,id:`newsletter-show-latest-posts`,onCheckedChange:e=>n({show_latest_posts:e})})]}),(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-subscription-details`,children:`Show subscription details`}),(0,J.jsx)(m,{checked:!!e.show_subscription_details,id:`newsletter-show-subscription-details`,onCheckedChange:e=>n({show_subscription_details:e})})]})]}),(0,J.jsx)(Te,{hint:`Any extra information or legal text`,nodes:`MINIMAL_NODES`,placeholder:` `,title:`Email footer`,value:e.footer_content||``,onChange:e=>n({footer_content:e})})]})]}),(0,J.jsx)(V,{className:`mt-8`}),(0,J.jsxs)(`div`,{className:`my-5 flex w-full items-start`,children:[(0,J.jsx)(`span`,{children:(0,J.jsx)(ie,{className:`mt-[-1px] mr-2 size-5 text-red`})}),(0,J.jsx)(S,{className:`gap-8`,children:(0,J.jsxs)(k,{orientation:`horizontal`,children:[(0,J.jsxs)(T,{children:[(0,J.jsx)(E,{htmlFor:`newsletter-show-badge`,children:`Promote independent publishing`}),(0,J.jsx)(D,{children:`Show you're a part of the indie publishing movement with a small badge in the footer`})]}),(0,J.jsx)(m,{checked:!!e.show_badge,id:`newsletter-show-badge`,onCheckedChange:e=>n({show_badge:e})})]})})]})]})},{id:`design`,title:`Design`,contents:(0,J.jsxs)(J.Fragment,{children:[(0,J.jsxs)(C,{className:`mt-8`,children:[(0,J.jsx)(O,{className:`text-lg! font-semibold`,children:`Global`}),(0,J.jsxs)(S,{children:[(0,J.jsx)(`div`,{className:`mb-1`,children:(0,J.jsx)(G,{direction:`rtl`,eyedropper:!0,swatches:[{hex:`#ffffff`,value:`light`,title:`White`}],title:`Background color`,value:e.background_color||`light`,onChange:e=>n({background_color:e})})}),(0,J.jsxs)(c,{className:`w-full`,gap:`sm`,justify:`between`,children:[(0,J.jsx)(`div`,{className:`shrink-0`,children:`Heading font`}),(0,J.jsxs)(k,{className:`max-w-[200px]`,children:[(0,J.jsx)(E,{className:`sr-only`,children:`Heading font`}),(0,J.jsxs)(y,{value:e.title_font_category,onValueChange:t=>{let r=e.title_font_weight,i=r;return Q[t].options.find(e=>e.value===r)||(i=Q[t].map?.[r]||`bold`),n({title_font_category:t,title_font_weight:i})},children:[(0,J.jsx)(_,{"aria-label":`Heading font`,children:(0,J.jsx)(v,{})}),(0,J.jsx)(g,{children:je.map(e=>(0,J.jsx)(h,{value:e.value,children:(0,J.jsx)(`span`,{className:e.className,children:e.label})},e.value))})]})]})]}),(0,J.jsxs)(c,{className:`w-full`,gap:`sm`,justify:`between`,children:[(0,J.jsx)(`div`,{className:`shrink-0`,children:`Heading weight`}),(0,J.jsxs)(k,{className:`max-w-[200px]`,children:[(0,J.jsx)(E,{className:`sr-only`,children:`Heading weight`}),(0,J.jsxs)(y,{value:(()=>{let t=e.title_font_category||`sans_serif`,n=e.title_font_weight,r=Q[t].map,i=r&&r[n]||n;return Pe.find(e=>e.value===i)||Pe[0]})().value,onValueChange:e=>n({title_font_weight:e}),children:[(0,J.jsx)(_,{"aria-label":`Heading weight`,children:(0,J.jsx)(v,{})}),(0,J.jsx)(g,{children:Pe.map(e=>(0,J.jsx)(h,{value:e.value,children:(0,J.jsx)(`span`,{className:e.className,children:e.label})},e.value))})]})]})]}),(0,J.jsxs)(c,{className:`w-full`,gap:`sm`,justify:`between`,children:[(0,J.jsx)(`div`,{className:`shrink-0`,children:`Body font`}),(0,J.jsxs)(k,{className:`max-w-[200px]`,children:[(0,J.jsx)(E,{className:`sr-only`,children:`Body font`}),(0,J.jsxs)(y,{value:e.body_font_category,onValueChange:e=>n({body_font_category:e}),children:[(0,J.jsx)(_,{"aria-label":`Body font`,"data-testid":`body-font-select`,children:(0,J.jsx)(v,{})}),(0,J.jsx)(g,{children:je.map(e=>(0,J.jsx)(h,{value:e.value,children:(0,J.jsx)(`span`,{className:e.className,children:e.label})},e.value))})]})]})]})]})]}),(0,J.jsxs)(C,{className:`mt-8`,children:[(0,J.jsx)(O,{className:`text-lg! font-semibold`,children:`Header`}),(0,J.jsxs)(S,{children:[(0,J.jsx)(`div`,{className:`mb-1`,children:(0,J.jsx)(G,{direction:`rtl`,eyedropper:!0,swatches:[{value:`transparent`,title:`Transparent`,hex:`#00000000`}],title:`Header background color`,value:e.header_background_color||`transparent`,onChange:e=>n({header_background_color:e})})}),(0,J.jsx)(`div`,{className:`mb-1`,children:(0,J.jsx)(G,{direction:`rtl`,eyedropper:!0,swatches:[{value:null,title:`Auto`,hex:$()?`#ffffff`:`#000000`},{value:`accent`,title:`Accent`,hex:R.accent_color}],title:`Post title color`,value:e.post_title_color,onChange:e=>n({post_title_color:e})})}),(0,J.jsxs)(c,{className:`w-full`,gap:`sm`,justify:`between`,children:[(0,J.jsx)(`div`,{children:`Title alignment`}),(0,J.jsx)(Z,{label:`Title alignment`,options:[{value:`left`,label:`Left`,icon:(0,J.jsx)(de,{className:`size-3.5!`}),disabled:!e.show_post_title_section},{value:`center`,label:`Center`,icon:(0,J.jsx)(ce,{className:`size-3.5!`}),disabled:!e.show_post_title_section}],value:e.title_alignment,onValueChange:e=>n({title_alignment:e})})]})]})]}),(0,J.jsxs)(C,{className:`mt-8`,children:[(0,J.jsx)(O,{className:`text-lg! font-semibold`,children:`Body`}),(0,J.jsxs)(S,{children:[(0,J.jsx)(`div`,{className:`mb-1`,children:(0,J.jsx)(G,{direction:`rtl`,eyedropper:!0,swatches:[{value:null,title:`Auto`,hex:$()?`#ffffff`:`#000000`},{value:`accent`,title:`Accent`,hex:R.accent_color}],title:`Section title color`,value:e.section_title_color,onChange:e=>n({section_title_color:e})})}),(0,J.jsx)(`div`,{className:`mb-1`,children:(0,J.jsx)(G,{direction:`rtl`,eyedropper:!0,swatches:[{value:`accent`,title:`Accent`,hex:R.accent_color},{value:null,title:`Auto`,hex:$()?`#ffffff`:`#000000`}],title:`Button color`,value:e.button_color,onChange:e=>n({button_color:e})})}),(0,J.jsxs)(c,{className:`w-full`,gap:`sm`,justify:`between`,children:[(0,J.jsx)(`div`,{children:`Button style`}),(0,J.jsx)(Z,{label:`Button style`,options:[{value:`fill`,label:`Fill`,icon:(0,J.jsx)(U,{className:`size-3.5!`,fill:`currentColor`})},{value:`outline`,label:`Outline`,icon:(0,J.jsx)(U,{className:`size-3.5!`})}],value:e.button_style||`fill`,onValueChange:e=>n({button_style:e})})]}),(0,J.jsxs)(c,{className:`w-full`,gap:`sm`,justify:`between`,children:[(0,J.jsx)(`div`,{children:`Button corners`}),(0,J.jsx)(Z,{label:`Button corners`,options:[{value:`square`,label:`Squared`,icon:(0,J.jsx)(ae,{className:`size-3.5!`})},{value:`rounded`,label:`Rounded`,icon:(0,J.jsx)(U,{className:`size-3.5!`})},{value:`pill`,label:`Pill`,icon:(0,J.jsx)(ue,{className:`size-3.5!`})}],value:e.button_corners||`rounded`,onValueChange:e=>n({button_corners:e})})]}),(0,J.jsx)(`div`,{className:`mb-1`,children:(0,J.jsx)(G,{direction:`rtl`,eyedropper:!0,swatches:[{value:`accent`,title:`Accent`,hex:R.accent_color},{value:null,title:`Auto`,hex:$()?`#ffffff`:`#000000`}],title:`Link color`,value:e.link_color,onChange:e=>n({link_color:e})})}),(0,J.jsxs)(c,{className:`w-full`,gap:`sm`,justify:`between`,children:[(0,J.jsx)(`div`,{children:`Link style`}),(0,J.jsx)(Z,{label:`Link style`,options:[{value:`underline`,label:`Underline`,icon:(0,J.jsx)(z,{className:`size-3.5!`})},{value:`regular`,label:`Regular`,icon:(0,J.jsx)(B,{className:`size-3.5!`})},{value:`bold`,label:`Bold`,icon:(0,J.jsx)(oe,{className:`size-3.5!`})}],value:e.link_style||`underline`,onValueChange:e=>n({link_style:e})})]}),(0,J.jsxs)(c,{className:`w-full`,gap:`sm`,justify:`between`,children:[(0,J.jsx)(`div`,{children:`Image corners`}),(0,J.jsx)(Z,{label:`Image corners`,options:[{value:`square`,label:`Squared`,icon:(0,J.jsx)(ae,{className:`size-3.5!`})},{value:`rounded`,label:`Rounded`,icon:(0,J.jsx)(U,{className:`size-3.5!`})}],value:e.image_corners||`square`,onValueChange:e=>n({image_corners:e})})]}),(0,J.jsx)(`div`,{className:`mb-1`,children:(0,J.jsx)(G,{direction:`rtl`,eyedropper:!0,swatches:[{value:`light`,title:`Light`,hex:`#e0e7eb`},{value:`accent`,title:`Accent`,hex:R.accent_color}],title:`Divider color`,value:e.divider_color||`light`,onChange:e=>n({divider_color:e})})})]})]})]})}];return(0,J.jsx)(`div`,{className:`flex flex-col`,children:(0,J.jsx)(`div`,{className:`px-7 pt-0 pb-7`,children:(0,J.jsxs)(p,{value:le,variant:`underline`,onValueChange:e=>{fe(e)},children:[(0,J.jsx)(f,{className:`sticky top-0 z-50 bg-surface-elevated-2`,children:Fe.map(e=>(0,J.jsx)(u,{value:e.id,children:e.title},e.id))}),Fe.map(e=>(0,J.jsx)(d,{value:e.id,children:e.contents},e.id))]})})})},je=({newsletter:e,onlyOne:t})=>{let{config:n}=W(),{mutateAsync:o}=me(),{updateRoute:s}=x(),c=Se(`automations`)?`emails`:`newsletters`,{formState:l,saveState:u,updateForm:d,setFormState:f,handleSave:p,validate:m,errors:h,clearError:g,okProps:_}=a({initialState:e,savingDelay:500,onSave:async()=>{let{meta:{sent_email_verification:[e]=[]}={}}=await o(l),t;(e&&e===`sender_email`||e&&e===`sender_reply_to`)&&(t=(0,J.jsx)(`div`,{children:`We‘ve sent a confirmation email to the new address.`})),t&&i.info(t)},onSaveError:r(),onValidate:()=>{let e={};return l.name||(e.name=`A name is required for your newsletter`),l.sender_email&&!X.default.isEmail(l.sender_email)?e.sender_email=`Enter a valid email address`:l.sender_email&&F(n)&&l.sender_email.split(`@`)[1]!==pe(n)&&(e.sender_email=`Email address must end with @${pe(n)}`),l.sender_reply_to&&!X.default.isEmail(l.sender_reply_to)&&![`newsletter`,`support`].includes(l.sender_reply_to)&&(e.sender_reply_to=`Enter a valid email address`),e}}),v=e=>{d(t=>({...t,...e}))};(0,Y.useEffect)(()=>{f(()=>e)},[f,e]);let y=(0,J.jsx)(Oe,{newsletter:l}),b=(0,J.jsx)(Ae,{clearError:g,errors:h,newsletter:l,onlyOne:t,updateNewsletter:v,validate:m});return(0,J.jsx)(Ee,{buttonsDisabled:_.disabled,cancelLabel:`Close`,dirty:u===`unsaved`,okLabel:_.label||`Save`,okVariant:_.variant,preview:y,previewBgColor:`grey`,previewToolbar:!1,sidebar:b,sidebarPadding:!1,testId:`newsletter-modal`,title:`Newsletter`,onClose:()=>s(c),onOk:async()=>{await p({fakeWhenUnchanged:!0})}})},Q=()=>{let{newsletterId:e}=o(),{data:{newsletters:t,isEnd:n}={},fetchNextPage:r}=he(),i=t?.find(({id:t})=>t===e);return(0,Y.useEffect)(()=>{!i&&!n&&r()},[r,n,i]),i?(0,J.jsx)(je,{newsletter:i,onlyOne:t.length===1}):null};export{Q as default};
|
|
@@ -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-DX3WBWVO.js";import{c as r,g as i,i as a,r as o}from"./stats-B2KW8E2y.js";import{g as s}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as c,t as l}from"./router-provider-DSQfprxH.js";import{f as u,l as d,p as f}from"./dist-Cb5RSHSg.js";import{g as p,n as m,o as h,r as g}from"./chart-BnXyfH11.js";import{a as _,c as v,i as y,l as b,n as x,t as ee,u as te}from"./chart-helpers-DGxvWnBT.js";import{n as ne,t as S}from"./sort-button-B-k54ow2.js";import{r as re,t as ie}from"./tabs-BaWRfg8j.js";import{a as C,i as w,n as T,o as E,r as D,s as O,t as k}from"./select-CkXqNJDJ.js";import{a as A,n as j,o as M,r as N,t as P}from"./card-aUHX0hyR.js";import{t as F}from"./empty-indicator-WB1WgT9h.js";import{a as I,c as L,n as R,r as z,s as B,t as V}from"./table-BtLcEi1M.js";import{$a as H,$r as U,Br as ae,Kr as W,Pr as G,Qa as oe,Vs as K,Wr as q,Yr as se,Zr as ce,ai as le,ir as J,p as Y,sr as ue}from"./index-DUXM0NlS.js";import{i as de,n as fe,r as pe,t as me}from"./stats-view-CVzU2-p5.js";import{n as X,r as Z,t as he}from"./kpi-tabs-R6BjsKhd.js";import{t as ge}from"./use-analytics-data-BiWvcf1u.js";import{r as _e}from"./newsletters-Du0lzskS.js";var Q=e(t(),1),$=n(),ve=({active:e,payload:t})=>{if(!e||!t?.length)return null;let n=t[0].payload,r=typeof n.send_date==`string`?n.send_date:n.send_date.toISOString().split(`T`)[0];return(0,$.jsxs)(`div`,{className:`max-w-[240px] min-w-[220px] rounded-lg border bg-background px-3 py-2 shadow-lg`,children:[(0,$.jsxs)(`div`,{className:`mb-2 flex w-full flex-col border-b pb-2`,children:[(0,$.jsx)(`span`,{className:`text-sm leading-tight font-semibold`,children:n.post_title}),(0,$.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`Sent on `,d(r)]})]}),(0,$.jsxs)(`div`,{className:`mb-1 flex w-full justify-between`,children:[(0,$.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:`Sent`}),(0,$.jsx)(`div`,{className:`ml-2 w-full text-right font-mono`,children:u(n.sent_to)})]}),(0,$.jsxs)(`div`,{className:`mb-1 flex w-full justify-between`,children:[(0,$.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:`Opens`}),(0,$.jsxs)(`div`,{className:`ml-2 w-full text-right font-mono`,children:[(0,$.jsxs)(`span`,{className:`text-muted-foreground`,children:[u(n.total_opens),` / `]}),f(n.open_rate)]})]}),(0,$.jsxs)(`div`,{className:`mb-1 flex w-full justify-between`,children:[(0,$.jsx)(`span`,{className:`font-medium text-muted-foreground`,children:`Clicks`}),(0,$.jsxs)(`div`,{className:`ml-2 w-full text-right font-mono`,children:[(0,$.jsxs)(`span`,{className:`text-muted-foreground`,children:[u(n.total_clicks),` / `]}),f(n.click_rate)]})]})]})},ye=({subscribersData:e,avgsData:t,totals:n,isLoading:r,isAvgsLoading:i,initialTab:a=`total-subscribers`})=>{let[o,l]=(0,Q.useState)(a),[d,S]=(0,Q.useState)(!1),{range:C}=Y(),w=c(),[T]=s(),{appSettings:E}=K(),{emailTrackClicks:D,emailTrackOpens:O}=E?.analytics||{},{totalSubscribers:k,avgOpenRate:A,avgClickRate:j}=n,M=(0,Q.useMemo)(()=>{if(!e||e.length===0)return[];let t=[];return t=y(e,C,`value`,`exact`),t.map(e=>({...e,formattedValue:u(e.value),label:`Total Subscribers`}))},[e,C]),N=(0,Q.useMemo)(()=>ee(C,e||[]),[e,C]),P=(0,Q.useMemo)(()=>{if(!M||M.length<=1)return{direction:`same`,value:`0%`};let e=M[0]?.value??0,t=M[M.length-1]?.value??0,n=`same`;t>e?n=`up`:t<e&&(n=`down`);let r;if(e===0)r=t===0?`0%`:`+100%`;else{let n=(t-e)/e*100,i=Math.round(n*10)/10;r=`${n>=0?`+`:``}${i}%`}return{direction:n,value:r}},[M]);(0,Q.useEffect)(()=>{l(a)},[a]);let I=e=>{l(e);let t=new URLSearchParams(T);t.set(`tab`,e),w(`?${t.toString()}`,{replace:!0})},L={open_rate:{label:`Open rate`}},R=(0,Q.useMemo)(()=>({"total-subscribers":{color:`var(--chart-darkblue)`,datakey:`value`},"avg-open-rate":{color:`var(--chart-blue)`,datakey:`open_rate`},"avg-click-rate":{color:`var(--chart-teal)`,datakey:`click_rate`}}),[]),{barDomain:z,barTicks:B}=(0,Q.useMemo)(()=>{if(!t||t.length===0||o===`total-subscribers`)return{barDomain:[0,1],barTicks:[0,1]};let e=R[o]?.datakey;if(!e)return{barDomain:[0,1],barTicks:[0,1]};let n=t.map(t=>t[e]).filter(e=>typeof e==`number`);if(n.length===0)return{barDomain:[0,1],barTicks:[0,1]};let r=o===`avg-open-rate`?A:j,i=Math.max(Math.max(...n),r),a;return a=i<.01?.01:i<.1?(Math.floor(i*100)+1)/100:(Math.floor(i*10)+1)/10,{barDomain:[0,a],barTicks:[0,a]}},[t,o,R,A,j]);if(r)return(0,$.jsx)(`div`,{className:`-mb-6 flex h-[calc(16vw+132px)] w-full items-start justify-center`,children:(0,$.jsx)(J,{})});let V=`grid-cols-3`;(!D||!O)&&(V=`grid-cols-2`),!D&&!O&&(V=`grid-cols-1`);let W=o===`avg-open-rate`&&A>z[0]&&A<z[1]||o===`avg-click-rate`&&j>z[0]&&j<z[1],G=o===`avg-open-rate`?A:j;return(0,$.jsxs)(ie,{defaultValue:a,variant:`kpis`,children:[(0,$.jsxs)(re,{className:`-mx-6 hidden grid-cols-3 md:visible! md:grid! ${V}`,children:[(0,$.jsx)(X,{className:`${!O&&!D&&`cursor-auto after:hidden`}`,value:`total-subscribers`,onClick:()=>{I(`total-subscribers`)},children:(0,$.jsx)(Z,{color:R[`total-subscribers`].color,"data-testid":`total-subscribers-value`,diffDirection:P.direction,diffValue:P.value,label:`Total subscribers`,value:u(k)})}),O&&(0,$.jsx)(X,{value:`avg-open-rate`,onClick:()=>{I(`avg-open-rate`)},children:(0,$.jsx)(Z,{className:i?`opacity-50`:``,color:R[`avg-open-rate`].color,label:`Avg. open rate`,value:f(A)})}),D&&(0,$.jsx)(X,{value:`avg-click-rate`,onClick:()=>{I(`avg-click-rate`)},children:(0,$.jsx)(Z,{className:i?`opacity-50`:``,color:R[`avg-click-rate`].color,label:`Avg. click rate`,value:f(j)})})]}),(0,$.jsxs)(se,{children:[(0,$.jsx)(le,{className:`md:hidden`,asChild:!0,children:(0,$.jsxs)(he,{children:[o===`total-subscribers`&&(0,$.jsx)(Z,{color:R[`total-subscribers`].color,label:`Total subscribers`,value:u(k)}),o===`avg-open-rate`&&O&&(0,$.jsx)(Z,{className:i?`opacity-50`:``,color:R[`avg-open-rate`].color,label:`Avg. open rate`,value:f(A)}),o===`avg-click-rate`&&D&&(0,$.jsx)(Z,{className:i?`opacity-50`:``,color:R[`avg-click-rate`].color,label:`Avg. click rate`,value:f(j)})]})}),(0,$.jsxs)(ce,{align:`end`,className:`w-56`,children:[(0,$.jsx)(U,{onClick:()=>I(`total-subscribers`),children:`Total subscribers`}),O&&(0,$.jsx)(U,{onClick:()=>I(`avg-open-rate`),children:`Avg. open rate`}),D&&(0,$.jsx)(U,{onClick:()=>I(`avg-click-rate`),children:`Avg. click rate`})]})]}),(0,$.jsxs)(`div`,{className:`my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500`,children:[o===`total-subscribers`&&(0,$.jsx)(_,{className:`-mb-3 h-[16vw] max-h-[320px] min-h-[180px] w-full`,color:R[`total-subscribers`].color,data:M,id:`mrr`,range:N}),(o===`avg-open-rate`&&O||o===`avg-click-rate`&&D)&&(0,$.jsx)($.Fragment,{children:i?(0,$.jsx)(`div`,{className:`h-[320px] w-full items-center justify-center`,children:(0,$.jsx)(J,{})}):t&&t.length>0?(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(m,{className:`aspect-auto h-[200px] w-full md:h-[220px] xl:h-[320px]`,config:L,children:(0,$.jsxs)(ne,{className:d?`cursor-pointer!`:``,data:t,margin:{top:20},onClick:e=>{let t=(e.activePayload?.[0])?.payload?.post_id;t&&w(`/posts/analytics/${t}`,{crossApp:!0})},onMouseLeave:()=>S(!1),onMouseMove:e=>{let t=(e.activePayload?.[0])?.payload?.post_id;S(!!t)},children:[(0,$.jsx)(`defs`,{children:(0,$.jsxs)(`linearGradient`,{id:`barGradient`,x1:`0`,x2:`0`,y1:`0`,y2:`1`,children:[(0,$.jsx)(`stop`,{offset:`0%`,stopColor:R[o].color,stopOpacity:.8}),(0,$.jsx)(`stop`,{offset:`100%`,stopColor:R[o].color,stopOpacity:.6})]})}),(0,$.jsx)(te,{horizontal:!0,stroke:`var(--border)`,vertical:!1}),(0,$.jsx)(b,{axisLine:{stroke:`var(--border)`,strokeWidth:1},dataKey:`post_id`,interval:0,stroke:`var(--border)`,tickFormatter:()=>``,tickLine:!1,tickMargin:10}),(0,$.jsx)(v,{axisLine:!1,domain:z,tickFormatter:e=>f(e),tickLine:!1,ticks:B,width:ae(B,e=>f(e))}),(0,$.jsx)(g,{content:(0,$.jsx)(ve,{}),cursor:!1,isAnimationActive:!1,position:{y:10}}),W&&(0,$.jsx)(h,{label:{value:`${f(G)}`,position:`left`,offset:8,fill:`var(--muted-foreground)`},opacity:.5,stroke:`var(--muted-foreground)`,strokeDasharray:`4 4`,y:G}),(0,$.jsx)(p,{activeBar:{fillOpacity:1},dataKey:R[o].datakey,fill:`url(#barGradient)`,fillOpacity:.6,isAnimationActive:!1,maxBarSize:32,minPointSize:3,radius:4})]})}),(0,$.jsxs)(`div`,{className:`-mt-4 text-center text-sm text-muted-foreground`,children:[`Newsletters `,o===`avg-open-rate`?`opens`:`clicks`,` in this period`]})]}):(0,$.jsx)(F,{className:`size-full py-20`,title:`No newsletters ${x(C)}`,children:(0,$.jsx)(H,{strokeWidth:1.5})})})]})]})},be=({newsletters:e})=>{let{selectedNewsletterId:t,setSelectedNewsletterId:n}=Y(),r=(0,Q.useMemo)(()=>e?.filter(e=>e.status===`active`)||[],[e]);return(0,Q.useEffect)(()=>{if(r.length>0&&!t){let e=r.find(e=>e.sort_order===0);n(e?e.id:r[0].id)}},[r,t,n]),r.length<=1?null:(0,$.jsxs)(k,{value:t||``,onValueChange:e=>{n(e)},children:[(0,$.jsxs)(E,{className:`w-auto`,children:[(0,$.jsx)(oe,{className:`mr-2`,size:16,strokeWidth:1.5}),(0,$.jsx)(O,{placeholder:`Select a newsletter`})]}),(0,$.jsx)(T,{align:`end`,children:(0,$.jsxs)(D,{children:[(0,$.jsx)(C,{children:`Newsletters`}),r.map(e=>(0,$.jsx)(w,{value:e.id,children:e.name},e.id))]})})]})},xe=(e,t,n=!0)=>{let i=e??30,{startDate:a,endDate:o}=(0,Q.useMemo)(()=>W(i),[i]),s=r({searchParams:(0,Q.useMemo)(()=>{let e={date_from:q(a),date_to:q(o)};return t&&(e.newsletter_id=t),e},[a,o,t]),enabled:n});return n?s:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:s.refetch}},Se=(e,t,n,r=!0)=>{let i=e??30,a=t??`date desc`,{startDate:s,endDate:c}=(0,Q.useMemo)(()=>W(i),[i]),l=o({searchParams:(0,Q.useMemo)(()=>{let e={date_from:q(s),date_to:q(c),order:a};return n&&(e.newsletter_id=n),e},[s,c,a,n]),enabled:r});return r?l:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:l.refetch}},Ce=(e,t=[],n=!0)=>{let r=a({searchParams:(0,Q.useMemo)(()=>{let n={};return e&&(n.newsletter_id=e),t.length>0&&(n.post_ids=t.join(`,`)),n},[e,t]),enabled:n});return n?r:{data:void 0,isLoading:!1,error:null,isError:!1,refetch:r.refetch}},we=(e,t,n,r=!0)=>{let i=Se(e,t,n,r),a=(0,Q.useMemo)(()=>i.data?.stats?i.data.stats.map(e=>e.post_id):[],[i.data]),o=Ce(n,a,r&&a.length>0);return{data:(0,Q.useMemo)(()=>{if(!i.data?.stats)return;let e=i.data.stats,t=o.data?.stats||[],n=new Map;t.forEach(e=>{n.set(e.post_id,e)});let r=e.map(e=>{let t=n.get(e.post_id);return{...e,total_clicks:t?.total_clicks||0,click_rate:t?.click_rate||0}});return{...i.data,stats:r}},[i.data,o.data]),isLoading:i.isLoading,isClicksLoading:o.isLoading,error:i.error||o.error,isError:i.isError||o.isError,refetch:()=>{i.refetch(),o.refetch()}}},Te=Q.memo(({range:e,selectedNewsletterId:t,shouldFetchStats:n,sortBy:r})=>{let i=c(),{settings:a}=ge(),o=String(a.find(e=>e.key===`timezone`)?.value||`Etc/UTC`),{data:s,isLoading:l,isClicksLoading:p}=we(e,r,t||void 0,!!n),{appSettings:m}=K(),{emailTrackClicks:h,emailTrackOpens:g}=m?.analytics||{},_=(0,Q.useMemo)(()=>s?.stats||[],[s]),v=g&&h?5:g||h?4:3,y=(0,Q.useMemo)(()=>(0,$.jsx)($.Fragment,{children:(0,$.jsx)(L,{className:`last:border-none [&>td]:py-2.5`,children:(0,$.jsx)(z,{className:`font-medium`,colSpan:v,children:(0,$.jsx)(ue,{className:`mt-5`})})})}),[v]),b=(0,Q.useMemo)(()=>_.length>0?(0,$.jsx)($.Fragment,{children:_.map(e=>(0,$.jsxs)(L,{className:`last:border-none [&>td]:py-2.5`,children:[(0,$.jsx)(z,{className:`font-medium`,children:(0,$.jsx)(`div`,{className:`group/link inline-flex items-center gap-2`,children:e.post_id?(0,$.jsx)(G,{className:`h-auto p-0 text-left whitespace-normal hover:underline!`,title:`View post analytics`,variant:`link`,onClick:()=>{i(`/posts/analytics/${e.post_id}/`,{crossApp:!0})},children:e.post_title}):(0,$.jsx)($.Fragment,{children:e.post_title})})}),(0,$.jsx)(z,{className:`text-sm whitespace-nowrap`,children:d(e.send_date,o)}),(0,$.jsx)(z,{className:`text-right font-mono text-sm`,children:u(e.sent_to)}),g&&(0,$.jsxs)(z,{className:`text-right font-mono text-sm`,children:[(0,$.jsx)(`span`,{className:`group-hover:hidden`,children:f(e.open_rate)}),(0,$.jsx)(`span`,{className:`hidden group-hover:visible! group-hover:block!`,children:u(e.total_opens)})]}),h&&(0,$.jsx)(z,{className:`text-right font-mono text-sm`,children:p?(0,$.jsx)(`span`,{className:`inline-block h-4 w-8 animate-pulse rounded bg-gray-200`}):(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(`span`,{className:`group-hover:hidden`,children:f(e.click_rate)}),(0,$.jsx)(`span`,{className:`hidden group-hover:visible! group-hover:block!`,children:u(e.total_clicks)})]})})]},e.post_id))}):(0,$.jsx)(L,{className:`border-none hover:bg-transparent`,children:(0,$.jsx)(z,{className:`text-center group-hover:bg-transparent!`,colSpan:v,children:(0,$.jsx)(F,{className:`size-full py-20`,title:`No newsletters ${x(e)}`,children:(0,$.jsx)(H,{strokeWidth:1.5})})})}),[_,p,i,h,g,e]);return l||!s?y:b});Te.displayName=`NewsletterTableRows`;var Ee=Q.memo(({sortBy:e,setSortBy:t,range:n})=>{let r=(0,Q.useMemo)(()=>(0,$.jsxs)(A,{children:[(0,$.jsx)(M,{children:`Top newsletters`}),(0,$.jsxs)(N,{children:[` Your best performing newsletters `,x(n)]})]}),[n]),{appSettings:i}=K(),{emailTrackClicks:a,emailTrackOpens:o}=i?.analytics||{};return(0,$.jsx)(B,{children:(0,$.jsxs)(L,{children:[(0,$.jsx)(I,{className:`min-w-[320px]`,variant:`cardhead`,children:r}),(0,$.jsx)(I,{className:`w-[65px]`,children:(0,$.jsx)(S,{activeSortBy:e,setSortBy:t,sortBy:`date desc`,children:`Date`})}),(0,$.jsx)(I,{className:`w-[90px] text-right`,children:(0,$.jsx)(S,{activeSortBy:e,setSortBy:t,sortBy:`sent_to desc`,children:`Sent`})}),o&&(0,$.jsx)(I,{className:`w-[90px] text-right`,children:(0,$.jsx)(S,{activeSortBy:e,setSortBy:t,sortBy:`open_rate desc`,children:`Opens`})}),a&&(0,$.jsx)(I,{className:`w-[90px] text-right`,children:(0,$.jsx)(S,{activeSortBy:e,setSortBy:t,sortBy:`click_rate desc`,children:`Clicks`})})]})})});Ee.displayName=`NewsletterTableHeader`;var De=Q.memo(({range:e,selectedNewsletterId:t,shouldFetchStats:n})=>{let[r,i]=(0,Q.useState)(`open_rate desc`);return(0,$.jsx)(P,{className:`w-full max-w-[calc(100vw-64px)] overflow-x-auto sidebar:max-w-[calc(100vw-64px-280px)]`,"data-testid":`top-newsletters-card`,children:(0,$.jsx)(j,{children:(0,$.jsxs)(V,{children:[(0,$.jsx)(Ee,{range:e,setSortBy:i,sortBy:r}),(0,$.jsx)(R,{children:(0,$.jsx)(Te,{range:e,selectedNewsletterId:t,shouldFetchStats:n,sortBy:r})})]})})})});De.displayName=`TopNewslettersTable`;var Oe=()=>{let{range:e,selectedNewsletterId:t}=Y(),[n]=s(),{appSettings:r}=K(),a=n.get(`tab`)||`total-subscribers`,{data:o,isLoading:c}=_e({searchParams:{limit:`50`}}),u=!c&&o&&o.newsletters.length>0&&!!t,{data:d,isLoading:f}=xe(e,t||void 0,u||!1),{data:p,isLoading:m,isClicksLoading:h}=we(e,`date asc`,t||void 0,u||!1),g=(0,Q.useMemo)(()=>!o?.newsletters||!t?null:o.newsletters.find(e=>e.id===t)||null,[o,t]),_=(0,Q.useMemo)(()=>{let e=g?.count?.active_members||d?.stats?.[0]?.total||0,t=0,n=0;if(p?.stats&&p.stats.length>0){let e=p.stats,r=e.reduce((e,t)=>e+(t.open_rate||0),0),i=e.reduce((e,t)=>e+(t.click_rate||0),0);t=r/e.length,n=i/e.length}return{totalSubscribers:e,avgOpenRate:t,avgClickRate:n}},[g,d,p]),v=(0,Q.useMemo)(()=>{if(!d?.stats?.[0]?.values||d.stats[0].values.length===0){let{startDate:t,endDate:n}=W(e),r=[],i=t.clone().toDate(),a=n.toDate();for(;i<=a;)r.push({date:i.toISOString().split(`T`)[0],value:0}),i.setDate(i.getDate()+1);return r}let t=d.stats[0].values;if(t.length===1){let n=t[0],r=new Date,i=e,a=new Date(r.getTime()-i*24*60*60*1e3);return[{...n,date:a.toISOString().split(`T`)[0]},{...n,date:r.toISOString().split(`T`)[0]}]}return t},[d,e]),y=(0,Q.useMemo)(()=>p?.stats?p.stats.map(e=>({post_id:e.post_id,post_title:e.post_title,send_date:e.send_date,sent_to:e.sent_to,total_opens:e.total_opens,open_rate:e.open_rate,total_clicks:e.total_clicks||0,click_rate:e.click_rate||0})):[],[p]),b=f||h||m;return r&&!r.newslettersEnabled?(0,$.jsx)(l,{to:`/analytics`}):(0,$.jsxs)(fe,{children:[(0,$.jsx)(pe,{children:(0,$.jsxs)(i,{children:[(0,$.jsx)(be,{newsletters:o?.newsletters}),(0,$.jsx)(de,{})]})}),(0,$.jsx)(me,{isLoading:!1,loadingComponent:(0,$.jsx)($.Fragment,{}),children:(0,$.jsxs)($.Fragment,{children:[(0,$.jsx)(P,{"data-testid":`newsletters-card`,children:(0,$.jsx)(j,{children:(0,$.jsx)(ye,{avgsData:y,initialTab:a,isAvgsLoading:!1,isLoading:b,subscribersData:v,totals:_})})}),(0,$.jsx)(De,{range:e,selectedNewsletterId:t,shouldFetchStats:!!u})]})})]})};export{Oe as default};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import{a as e,i as t,n,r,t as i}from"./rolldown-runtime-DAXXjFlN.js";var a=i(((e,t)=>{t.exports=function(){if(typeof Symbol!=`function`||typeof Object.getOwnPropertySymbols!=`function`)return!1;if(typeof Symbol.iterator==`symbol`)return!0;var e={},t=Symbol(`test`),n=Object(t);if(typeof t==`string`||Object.prototype.toString.call(t)!==`[object Symbol]`||Object.prototype.toString.call(n)!==`[object Symbol]`)return!1;var r=42;for(var i in e[t]=r,e)return!1;if(typeof Object.keys==`function`&&Object.keys(e).length!==0||typeof Object.getOwnPropertyNames==`function`&&Object.getOwnPropertyNames(e).length!==0)return!1;var a=Object.getOwnPropertySymbols(e);if(a.length!==1||a[0]!==t||!Object.prototype.propertyIsEnumerable.call(e,t))return!1;if(typeof Object.getOwnPropertyDescriptor==`function`){var o=Object.getOwnPropertyDescriptor(e,t);if(o.value!==r||o.enumerable!==!0)return!1}return!0}})),o=i(((e,t)=>{var n=a();t.exports=function(){return n()&&!!Symbol.toStringTag}})),s=i(((e,t)=>{t.exports=Object})),c=i(((e,t)=>{t.exports=Error})),l=i(((e,t)=>{t.exports=EvalError})),u=i(((e,t)=>{t.exports=RangeError})),d=i(((e,t)=>{t.exports=ReferenceError})),f=i(((e,t)=>{t.exports=SyntaxError})),p=i(((e,t)=>{t.exports=TypeError})),m=i(((e,t)=>{t.exports=URIError})),h=i(((e,t)=>{t.exports=Math.abs})),g=i(((e,t)=>{t.exports=Math.floor})),_=i(((e,t)=>{t.exports=Math.max})),v=i(((e,t)=>{t.exports=Math.min})),y=i(((e,t)=>{t.exports=Math.pow})),b=i(((e,t)=>{t.exports=Math.round})),x=i(((e,t)=>{t.exports=Number.isNaN||function(e){return e!==e}})),S=i(((e,t)=>{var n=x();t.exports=function(e){return n(e)||e===0?e:e<0?-1:1}})),C=i(((e,t)=>{t.exports=Object.getOwnPropertyDescriptor})),w=i(((e,t)=>{var n=C();if(n)try{n([],`length`)}catch{n=null}t.exports=n})),T=i(((e,t)=>{var n=Object.defineProperty||!1;if(n)try{n({},`a`,{value:1})}catch{n=!1}t.exports=n})),E=i(((e,t)=>{var n=typeof Symbol<`u`&&Symbol,r=a();t.exports=function(){return typeof n!=`function`||typeof Symbol!=`function`||typeof n(`foo`)!=`symbol`||typeof Symbol(`bar`)!=`symbol`?!1:r()}})),D=i(((e,t)=>{t.exports=typeof Reflect<`u`&&Reflect.getPrototypeOf||null})),O=i(((e,t)=>{t.exports=s().getPrototypeOf||null})),k=i(((e,t)=>{var n=Object.prototype.toString,r=Math.max,i=`[object Function]`,a=function(e,t){for(var n=[],r=0;r<e.length;r+=1)n[r]=e[r];for(var i=0;i<t.length;i+=1)n[i+e.length]=t[i];return n},o=function(e,t){for(var n=[],r=t||0,i=0;r<e.length;r+=1,i+=1)n[i]=e[r];return n},s=function(e,t){for(var n=``,r=0;r<e.length;r+=1)n+=e[r],r+1<e.length&&(n+=t);return n};t.exports=function(e){var t=this;if(typeof t!=`function`||n.apply(t)!==i)throw TypeError(`Function.prototype.bind called on incompatible `+t);for(var c=o(arguments,1),l,u=function(){if(this instanceof l){var n=t.apply(this,a(c,arguments));return Object(n)===n?n:this}return t.apply(e,a(c,arguments))},d=r(0,t.length-c.length),f=[],p=0;p<d;p++)f[p]=`$`+p;if(l=Function(`binder`,`return function (`+s(f,`,`)+`){ return binder.apply(this,arguments); }`)(u),t.prototype){var m=function(){};m.prototype=t.prototype,l.prototype=new m,m.prototype=null}return l}})),A=i(((e,t)=>{var n=k();t.exports=Function.prototype.bind||n})),j=i(((e,t)=>{t.exports=Function.prototype.call})),M=i(((e,t)=>{t.exports=Function.prototype.apply})),ee=i(((e,t)=>{t.exports=typeof Reflect<`u`&&Reflect&&Reflect.apply})),N=i(((e,t)=>{var n=A(),r=M(),i=j();t.exports=ee()||n.call(i,r)})),P=i(((e,t)=>{var n=A(),r=p(),i=j(),a=N();t.exports=function(e){if(e.length<1||typeof e[0]!=`function`)throw new r(`a function is required`);return a(n,i,e)}})),F=i(((e,t)=>{var n=P(),r=w(),i;try{i=[].__proto__===Array.prototype}catch(e){if(!e||typeof e!=`object`||!(`code`in e)||e.code!==`ERR_PROTO_ACCESS`)throw e}var a=!!i&&r&&r(Object.prototype,`__proto__`),o=Object,s=o.getPrototypeOf;t.exports=a&&typeof a.get==`function`?n([a.get]):typeof s==`function`?function(e){return s(e==null?e:o(e))}:!1})),I=i(((e,t)=>{var n=D(),r=O(),i=F();t.exports=n?function(e){return n(e)}:r?function(e){if(!e||typeof e!=`object`&&typeof e!=`function`)throw TypeError(`getProto: not an object`);return r(e)}:i?function(e){return i(e)}:null})),L=i(((e,t)=>{var n=Function.prototype.call,r=Object.prototype.hasOwnProperty;t.exports=A().call(n,r)})),R=i(((e,t)=>{var n,r=s(),i=c(),a=l(),o=u(),x=d(),C=f(),k=p(),ee=m(),N=h(),P=g(),F=_(),R=v(),z=y(),te=b(),B=S(),V=Function,ne=function(e){try{return V(`"use strict"; return (`+e+`).constructor;`)()}catch{}},H=w(),re=T(),ie=function(){throw new k},ae=H?function(){try{return arguments.callee,ie}catch{try{return H(arguments,`callee`).get}catch{return ie}}}():ie,U=E()(),W=I(),oe=O(),se=D(),ce=M(),G=j(),K={},le=typeof Uint8Array>`u`||!W?n:W(Uint8Array),q={__proto__:null,"%AggregateError%":typeof AggregateError>`u`?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>`u`?n:ArrayBuffer,"%ArrayIteratorPrototype%":U&&W?W([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":K,"%AsyncGenerator%":K,"%AsyncGeneratorFunction%":K,"%AsyncIteratorPrototype%":K,"%Atomics%":typeof Atomics>`u`?n:Atomics,"%BigInt%":typeof BigInt>`u`?n:BigInt,"%BigInt64Array%":typeof BigInt64Array>`u`?n:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>`u`?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>`u`?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":a,"%Float16Array%":typeof Float16Array>`u`?n:Float16Array,"%Float32Array%":typeof Float32Array>`u`?n:Float32Array,"%Float64Array%":typeof Float64Array>`u`?n:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>`u`?n:FinalizationRegistry,"%Function%":V,"%GeneratorFunction%":K,"%Int8Array%":typeof Int8Array>`u`?n:Int8Array,"%Int16Array%":typeof Int16Array>`u`?n:Int16Array,"%Int32Array%":typeof Int32Array>`u`?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":U&&W?W(W([][Symbol.iterator]())):n,"%JSON%":typeof JSON==`object`?JSON:n,"%Map%":typeof Map>`u`?n:Map,"%MapIteratorPrototype%":typeof Map>`u`||!U||!W?n:W(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":r,"%Object.getOwnPropertyDescriptor%":H,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>`u`?n:Promise,"%Proxy%":typeof Proxy>`u`?n:Proxy,"%RangeError%":o,"%ReferenceError%":x,"%Reflect%":typeof Reflect>`u`?n:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>`u`?n:Set,"%SetIteratorPrototype%":typeof Set>`u`||!U||!W?n:W(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>`u`?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":U&&W?W(``[Symbol.iterator]()):n,"%Symbol%":U?Symbol:n,"%SyntaxError%":C,"%ThrowTypeError%":ae,"%TypedArray%":le,"%TypeError%":k,"%Uint8Array%":typeof Uint8Array>`u`?n:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>`u`?n:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>`u`?n:Uint16Array,"%Uint32Array%":typeof Uint32Array>`u`?n:Uint32Array,"%URIError%":ee,"%WeakMap%":typeof WeakMap>`u`?n:WeakMap,"%WeakRef%":typeof WeakRef>`u`?n:WeakRef,"%WeakSet%":typeof WeakSet>`u`?n:WeakSet,"%Function.prototype.call%":G,"%Function.prototype.apply%":ce,"%Object.defineProperty%":re,"%Object.getPrototypeOf%":oe,"%Math.abs%":N,"%Math.floor%":P,"%Math.max%":F,"%Math.min%":R,"%Math.pow%":z,"%Math.round%":te,"%Math.sign%":B,"%Reflect.getPrototypeOf%":se};if(W)try{null.error}catch(e){q[`%Error.prototype%`]=W(W(e))}var ue=function e(t){var n;if(t===`%AsyncFunction%`)n=ne(`async function () {}`);else if(t===`%GeneratorFunction%`)n=ne(`function* () {}`);else if(t===`%AsyncGeneratorFunction%`)n=ne(`async function* () {}`);else if(t===`%AsyncGenerator%`){var r=e(`%AsyncGeneratorFunction%`);r&&(n=r.prototype)}else if(t===`%AsyncIteratorPrototype%`){var i=e(`%AsyncGenerator%`);i&&W&&(n=W(i.prototype))}return q[t]=n,n},de={__proto__:null,"%ArrayBufferPrototype%":[`ArrayBuffer`,`prototype`],"%ArrayPrototype%":[`Array`,`prototype`],"%ArrayProto_entries%":[`Array`,`prototype`,`entries`],"%ArrayProto_forEach%":[`Array`,`prototype`,`forEach`],"%ArrayProto_keys%":[`Array`,`prototype`,`keys`],"%ArrayProto_values%":[`Array`,`prototype`,`values`],"%AsyncFunctionPrototype%":[`AsyncFunction`,`prototype`],"%AsyncGenerator%":[`AsyncGeneratorFunction`,`prototype`],"%AsyncGeneratorPrototype%":[`AsyncGeneratorFunction`,`prototype`,`prototype`],"%BooleanPrototype%":[`Boolean`,`prototype`],"%DataViewPrototype%":[`DataView`,`prototype`],"%DatePrototype%":[`Date`,`prototype`],"%ErrorPrototype%":[`Error`,`prototype`],"%EvalErrorPrototype%":[`EvalError`,`prototype`],"%Float32ArrayPrototype%":[`Float32Array`,`prototype`],"%Float64ArrayPrototype%":[`Float64Array`,`prototype`],"%FunctionPrototype%":[`Function`,`prototype`],"%Generator%":[`GeneratorFunction`,`prototype`],"%GeneratorPrototype%":[`GeneratorFunction`,`prototype`,`prototype`],"%Int8ArrayPrototype%":[`Int8Array`,`prototype`],"%Int16ArrayPrototype%":[`Int16Array`,`prototype`],"%Int32ArrayPrototype%":[`Int32Array`,`prototype`],"%JSONParse%":[`JSON`,`parse`],"%JSONStringify%":[`JSON`,`stringify`],"%MapPrototype%":[`Map`,`prototype`],"%NumberPrototype%":[`Number`,`prototype`],"%ObjectPrototype%":[`Object`,`prototype`],"%ObjProto_toString%":[`Object`,`prototype`,`toString`],"%ObjProto_valueOf%":[`Object`,`prototype`,`valueOf`],"%PromisePrototype%":[`Promise`,`prototype`],"%PromiseProto_then%":[`Promise`,`prototype`,`then`],"%Promise_all%":[`Promise`,`all`],"%Promise_reject%":[`Promise`,`reject`],"%Promise_resolve%":[`Promise`,`resolve`],"%RangeErrorPrototype%":[`RangeError`,`prototype`],"%ReferenceErrorPrototype%":[`ReferenceError`,`prototype`],"%RegExpPrototype%":[`RegExp`,`prototype`],"%SetPrototype%":[`Set`,`prototype`],"%SharedArrayBufferPrototype%":[`SharedArrayBuffer`,`prototype`],"%StringPrototype%":[`String`,`prototype`],"%SymbolPrototype%":[`Symbol`,`prototype`],"%SyntaxErrorPrototype%":[`SyntaxError`,`prototype`],"%TypedArrayPrototype%":[`TypedArray`,`prototype`],"%TypeErrorPrototype%":[`TypeError`,`prototype`],"%Uint8ArrayPrototype%":[`Uint8Array`,`prototype`],"%Uint8ClampedArrayPrototype%":[`Uint8ClampedArray`,`prototype`],"%Uint16ArrayPrototype%":[`Uint16Array`,`prototype`],"%Uint32ArrayPrototype%":[`Uint32Array`,`prototype`],"%URIErrorPrototype%":[`URIError`,`prototype`],"%WeakMapPrototype%":[`WeakMap`,`prototype`],"%WeakSetPrototype%":[`WeakSet`,`prototype`]},J=A(),Y=L(),fe=J.call(G,Array.prototype.concat),X=J.call(ce,Array.prototype.splice),Z=J.call(G,String.prototype.replace),Q=J.call(G,String.prototype.slice),$=J.call(G,RegExp.prototype.exec),pe=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,me=/\\(\\)?/g,he=function(e){var t=Q(e,0,1),n=Q(e,-1);if(t===`%`&&n!==`%`)throw new C("invalid intrinsic syntax, expected closing `%`");if(n===`%`&&t!==`%`)throw new C("invalid intrinsic syntax, expected opening `%`");var r=[];return Z(e,pe,function(e,t,n,i){r[r.length]=n?Z(i,me,`$1`):t||e}),r},ge=function(e,t){var n=e,r;if(Y(de,n)&&(r=de[n],n=`%`+r[0]+`%`),Y(q,n)){var i=q[n];if(i===K&&(i=ue(n)),i===void 0&&!t)throw new k(`intrinsic `+e+` exists, but is not available. Please file an issue!`);return{alias:r,name:n,value:i}}throw new C(`intrinsic `+e+` does not exist!`)};t.exports=function(e,t){if(typeof e!=`string`||e.length===0)throw new k(`intrinsic name must be a non-empty string`);if(arguments.length>1&&typeof t!=`boolean`)throw new k(`"allowMissing" argument must be a boolean`);if($(/^%?[^%]*%?$/,e)===null)throw new C("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var n=he(e),r=n.length>0?n[0]:``,i=ge(`%`+r+`%`,t),a=i.name,o=i.value,s=!1,c=i.alias;c&&(r=c[0],X(n,fe([0,1],c)));for(var l=1,u=!0;l<n.length;l+=1){var d=n[l],f=Q(d,0,1),p=Q(d,-1);if((f===`"`||f===`'`||f==="`"||p===`"`||p===`'`||p==="`")&&f!==p)throw new C(`property names with quotes must have matching quotes`);if((d===`constructor`||!u)&&(s=!0),r+=`.`+d,a=`%`+r+`%`,Y(q,a))o=q[a];else if(o!=null){if(!(d in o)){if(!t)throw new k(`base intrinsic for `+e+` exists, but the property is not available.`);return}if(H&&l+1>=n.length){var m=H(o,d);u=!!m,o=u&&`get`in m&&!(`originalValue`in m.get)?m.get:o[d]}else u=Y(o,d),o=o[d];u&&!s&&(q[a]=o)}}return o}})),z=i(((e,t)=>{var n=R(),r=P(),i=r([n(`%String.prototype.indexOf%`)]);t.exports=function(e,t){var a=n(e,!!t);return typeof a==`function`&&i(e,`.prototype.`)>-1?r([a]):a}})),te=i(((e,t)=>{var n=o()(),r=z()(`Object.prototype.toString`),i=function(e){return n&&e&&typeof e==`object`&&Symbol.toStringTag in e?!1:r(e)===`[object Arguments]`},a=function(e){return i(e)?!0:typeof e==`object`&&!!e&&`length`in e&&typeof e.length==`number`&&e.length>=0&&r(e)!==`[object Array]`&&`callee`in e&&r(e.callee)===`[object Function]`},s=function(){return i(arguments)}();i.isLegacyArguments=a,t.exports=s?i:a})),B=i(((e,t)=>{var n=z(),r=o()(),i=L(),a=w(),s;if(r){var c=n(`RegExp.prototype.exec`),l={},u=function(){throw l},d={toString:u,valueOf:u};typeof Symbol.toPrimitive==`symbol`&&(d[Symbol.toPrimitive]=u),s=function(e){if(!e||typeof e!=`object`)return!1;var t=a(e,`lastIndex`);if(!(t&&i(t,`value`)))return!1;try{c(e,d)}catch(e){return e===l}}}else{var f=n(`Object.prototype.toString`),p=`[object RegExp]`;s=function(e){return!e||typeof e!=`object`&&typeof e!=`function`?!1:f(e)===p}}t.exports=s})),V=i(((e,t)=>{var n=z(),r=B(),i=n(`RegExp.prototype.exec`),a=p();t.exports=function(e){if(!r(e))throw new a("`regex` must be a RegExp");return function(t){return i(e,t)!==null}}})),ne=i(((e,t)=>{var n=function*(){}.constructor;t.exports=()=>n})),H=i(((e,t)=>{var n=z(),r=V()(/^\s*(?:function)?\*/),i=o()(),a=I(),s=n(`Object.prototype.toString`),c=n(`Function.prototype.toString`),l=ne();t.exports=function(e){if(typeof e!=`function`)return!1;if(r(c(e)))return!0;if(!i)return s(e)===`[object GeneratorFunction]`;if(!a)return!1;var t=l();return t&&a(e)===t.prototype}})),re=i(((e,t)=>{var n=Function.prototype.toString,r=typeof Reflect==`object`&&Reflect!==null&&Reflect.apply,i,a;if(typeof r==`function`&&typeof Object.defineProperty==`function`)try{i=Object.defineProperty({},"length",{get:function(){throw a}}),a={},r(function(){throw 42},null,i)}catch(e){e!==a&&(r=null)}else r=null;var o=/^\s*class\b/,s=function(e){try{var t=n.call(e);return o.test(t)}catch{return!1}},c=function(e){try{return s(e)?!1:(n.call(e),!0)}catch{return!1}},l=Object.prototype.toString,u=`[object Object]`,d=`[object Function]`,f=`[object GeneratorFunction]`,p=`[object HTMLAllCollection]`,m=`[object HTML document.all class]`,h=`[object HTMLCollection]`,g=typeof Symbol==`function`&&!!Symbol.toStringTag,_=!(0 in[,]),v=function(){return!1};if(typeof document==`object`){var y=document.all;l.call(y)===l.call(document.all)&&(v=function(e){if((_||!e)&&(e===void 0||typeof e==`object`))try{var t=l.call(e);return(t===p||t===m||t===h||t===u)&&e(``)==null}catch{}return!1})}t.exports=r?function(e){if(v(e))return!0;if(!e||typeof e!=`function`&&typeof e!=`object`)return!1;try{r(e,null,i)}catch(e){if(e!==a)return!1}return!s(e)&&c(e)}:function(e){if(v(e))return!0;if(!e||typeof e!=`function`&&typeof e!=`object`)return!1;if(g)return c(e);if(s(e))return!1;var t=l.call(e);return t!==d&&t!==f&&!/^\[object HTML/.test(t)?!1:c(e)}})),ie=i(((e,t)=>{var n=re(),r=Object.prototype.toString,i=Object.prototype.hasOwnProperty,a=function(e,t,n){for(var r=0,a=e.length;r<a;r++)i.call(e,r)&&(n==null?t(e[r],r,e):t.call(n,e[r],r,e))},o=function(e,t,n){for(var r=0,i=e.length;r<i;r++)n==null?t(e.charAt(r),r,e):t.call(n,e.charAt(r),r,e)},s=function(e,t,n){for(var r in e)i.call(e,r)&&(n==null?t(e[r],r,e):t.call(n,e[r],r,e))};function c(e){return r.call(e)===`[object Array]`}t.exports=function(e,t,r){if(!n(t))throw TypeError(`iterator must be a function`);var i;arguments.length>=3&&(i=r),c(e)?a(e,t,i):typeof e==`string`?o(e,t,i):s(e,t,i)}})),ae=i(((e,t)=>{t.exports=[`Float16Array`,`Float32Array`,`Float64Array`,`Int8Array`,`Int16Array`,`Int32Array`,`Uint8Array`,`Uint8ClampedArray`,`Uint16Array`,`Uint32Array`,`BigInt64Array`,`BigUint64Array`]})),U=i(((e,t)=>{var n=ae(),r=typeof globalThis>`u`?global:globalThis;t.exports=function(){for(var e=[],t=0;t<n.length;t++)typeof r[n[t]]==`function`&&(e[e.length]=n[t]);return e}})),W=i(((e,t)=>{var n=T(),r=f(),i=p(),a=w();t.exports=function(e,t,o){if(!e||typeof e!=`object`&&typeof e!=`function`)throw new i("`obj` must be an object or a function`");if(typeof t!=`string`&&typeof t!=`symbol`)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!=`boolean`&&arguments[3]!==null)throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!=`boolean`&&arguments[4]!==null)throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!=`boolean`&&arguments[5]!==null)throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!=`boolean`)throw new i("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,c=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,u=arguments.length>6?arguments[6]:!1,d=!!a&&a(e,t);if(n)n(e,t,{configurable:l===null&&d?d.configurable:!l,enumerable:s===null&&d?d.enumerable:!s,value:o,writable:c===null&&d?d.writable:!c});else if(u||!s&&!c&&!l)e[t]=o;else throw new r(`This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.`)}})),oe=i(((e,t)=>{var n=T(),r=function(){return!!n};r.hasArrayLengthDefineBug=function(){if(!n)return null;try{return n([],`length`,{value:1}).length!==1}catch{return!0}},t.exports=r})),se=i(((e,t)=>{var n=R(),r=W(),i=oe()(),a=w(),o=p(),s=n(`%Math.floor%`);t.exports=function(e,t){if(typeof e!=`function`)throw new o("`fn` is not a function");if(typeof t!=`number`||t<0||t>4294967295||s(t)!==t)throw new o("`length` must be a positive 32-bit integer");var n=arguments.length>2&&!!arguments[2],c=!0,l=!0;if(`length`in e&&a){var u=a(e,`length`);u&&!u.configurable&&(c=!1),u&&!u.writable&&(l=!1)}return(c||l||!n)&&(i?r(e,`length`,t,!0,!0):r(e,`length`,t)),e}})),ce=i(((e,t)=>{var n=A(),r=M(),i=N();t.exports=function(){return i(n,r,arguments)}})),G=i(((e,t)=>{var n=se(),r=T(),i=P(),a=ce();t.exports=function(e){var t=i(arguments),r=1+e.length-(arguments.length-1);return n(t,r>0?r:0,!0)},r?r(t.exports,`apply`,{value:a}):t.exports.apply=a})),K=i(((e,t)=>{var n=ie(),r=U(),i=G(),a=z(),s=w(),c=I(),l=a(`Object.prototype.toString`),u=o()(),d=typeof globalThis>`u`?global:globalThis,f=r(),p=a(`String.prototype.slice`),m=a(`Array.prototype.indexOf`,!0)||function(e,t){for(var n=0;n<e.length;n+=1)if(e[n]===t)return n;return-1},h={__proto__:null};u&&s&&c?n(f,function(e){var t=new d[e];if(Symbol.toStringTag in t&&c){var n=c(t),r=s(n,Symbol.toStringTag);if(!r&&n&&(r=s(c(n),Symbol.toStringTag)),r&&r.get){var a=i(r.get);h[`$`+e]=a}}}):n(f,function(e){var t=new d[e],n=t.slice||t.set;if(n){var r=i(n);h[`$`+e]=r}});function g(e){var t=!1;return n(h,function(n,r){if(!t)try{`$`+n(e)===r&&(t=p(r,1))}catch{}}),t}function _(e){var t=!1;return n(h,function(n,r){if(!t)try{n(e),t=p(r,1)}catch{}}),t}function v(e){return m(f,e)>-1}t.exports=function(e){if(!e||typeof e!=`object`)return!1;if(!u){var t=p(l(e),8,-1);return v(t)?t:t===`Object`?_(e):!1}return s?g(e):null}})),le=i(((e,t)=>{var n=K();t.exports=function(e){return!!n(e)}})),q=i((e=>{var t=te(),n=H(),r=K(),i=le();function a(e){return e.call.bind(e)}var o=typeof BigInt<`u`,s=typeof Symbol<`u`,c=a(Object.prototype.toString),l=a(Number.prototype.valueOf),u=a(String.prototype.valueOf),d=a(Boolean.prototype.valueOf);if(o)var f=a(BigInt.prototype.valueOf);if(s)var p=a(Symbol.prototype.valueOf);function m(e,t){if(typeof e!=`object`)return!1;try{return t(e),!0}catch{return!1}}e.isArgumentsObject=t,e.isGeneratorFunction=n,e.isTypedArray=i;function h(e){return typeof Promise<`u`&&e instanceof Promise||typeof e==`object`&&!!e&&typeof e.then==`function`&&typeof e.catch==`function`}e.isPromise=h;function g(e){return typeof ArrayBuffer<`u`&&ArrayBuffer.isView?ArrayBuffer.isView(e):i(e)||R(e)}e.isArrayBufferView=g;function _(e){return r(e)===`Uint8Array`}e.isUint8Array=_;function v(e){return r(e)===`Uint8ClampedArray`}e.isUint8ClampedArray=v;function y(e){return r(e)===`Uint16Array`}e.isUint16Array=y;function b(e){return r(e)===`Uint32Array`}e.isUint32Array=b;function x(e){return r(e)===`Int8Array`}e.isInt8Array=x;function S(e){return r(e)===`Int16Array`}e.isInt16Array=S;function C(e){return r(e)===`Int32Array`}e.isInt32Array=C;function w(e){return r(e)===`Float32Array`}e.isFloat32Array=w;function T(e){return r(e)===`Float64Array`}e.isFloat64Array=T;function E(e){return r(e)===`BigInt64Array`}e.isBigInt64Array=E;function D(e){return r(e)===`BigUint64Array`}e.isBigUint64Array=D;function O(e){return c(e)===`[object Map]`}O.working=typeof Map<`u`&&O(new Map);function k(e){return typeof Map>`u`?!1:O.working?O(e):e instanceof Map}e.isMap=k;function A(e){return c(e)===`[object Set]`}A.working=typeof Set<`u`&&A(new Set);function j(e){return typeof Set>`u`?!1:A.working?A(e):e instanceof Set}e.isSet=j;function M(e){return c(e)===`[object WeakMap]`}M.working=typeof WeakMap<`u`&&M(new WeakMap);function ee(e){return typeof WeakMap>`u`?!1:M.working?M(e):e instanceof WeakMap}e.isWeakMap=ee;function N(e){return c(e)===`[object WeakSet]`}N.working=typeof WeakSet<`u`&&N(new WeakSet);function P(e){return N(e)}e.isWeakSet=P;function F(e){return c(e)===`[object ArrayBuffer]`}F.working=typeof ArrayBuffer<`u`&&F(new ArrayBuffer);function I(e){return typeof ArrayBuffer>`u`?!1:F.working?F(e):e instanceof ArrayBuffer}e.isArrayBuffer=I;function L(e){return c(e)===`[object DataView]`}L.working=typeof ArrayBuffer<`u`&&typeof DataView<`u`&&L(new DataView(new ArrayBuffer(1),0,1));function R(e){return typeof DataView>`u`?!1:L.working?L(e):e instanceof DataView}e.isDataView=R;var z=typeof SharedArrayBuffer<`u`?SharedArrayBuffer:void 0;function B(e){return c(e)===`[object SharedArrayBuffer]`}function V(e){return z===void 0?!1:(B.working===void 0&&(B.working=B(new z)),B.working?B(e):e instanceof z)}e.isSharedArrayBuffer=V;function ne(e){return c(e)===`[object AsyncFunction]`}e.isAsyncFunction=ne;function re(e){return c(e)===`[object Map Iterator]`}e.isMapIterator=re;function ie(e){return c(e)===`[object Set Iterator]`}e.isSetIterator=ie;function ae(e){return c(e)===`[object Generator]`}e.isGeneratorObject=ae;function U(e){return c(e)===`[object WebAssembly.Module]`}e.isWebAssemblyCompiledModule=U;function W(e){return m(e,l)}e.isNumberObject=W;function oe(e){return m(e,u)}e.isStringObject=oe;function se(e){return m(e,d)}e.isBooleanObject=se;function ce(e){return o&&m(e,f)}e.isBigIntObject=ce;function G(e){return s&&m(e,p)}e.isSymbolObject=G;function q(e){return W(e)||oe(e)||se(e)||ce(e)||G(e)}e.isBoxedPrimitive=q;function ue(e){return typeof Uint8Array<`u`&&(I(e)||V(e))}e.isAnyArrayBuffer=ue,[`isProxy`,`isExternal`,`isModuleNamespaceObject`].forEach(function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw Error(t+` is not supported in userland`)}})})})),ue=i(((e,t)=>{t.exports=function(e){return e&&typeof e==`object`&&typeof e.copy==`function`&&typeof e.fill==`function`&&typeof e.readUInt8==`function`}})),de=i(((e,t)=>{typeof Object.create==`function`?t.exports=function(e,t){t&&(e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}))}:t.exports=function(e,t){if(t){e.super_=t;var n=function(){};n.prototype=t.prototype,e.prototype=new n,e.prototype.constructor=e}}})),J=i((e=>{var t=Object.getOwnPropertyDescriptors||function(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++)n[t[r]]=Object.getOwnPropertyDescriptor(e,t[r]);return n},n=/%[sdj%]/g;e.format=function(e){if(!x(e)){for(var t=[],r=0;r<arguments.length;r++)t.push(o(arguments[r]));return t.join(` `)}for(var r=1,i=arguments,a=i.length,s=String(e).replace(n,function(e){if(e===`%%`)return`%`;if(r>=a)return e;switch(e){case`%s`:return String(i[r++]);case`%d`:return Number(i[r++]);case`%j`:try{return JSON.stringify(i[r++])}catch{return`[Circular]`}default:return e}}),c=i[r];r<a;c=i[++r])v(c)||!T(c)?s+=` `+c:s+=` `+o(c);return s},e.deprecate=function(t,n){if(typeof process<`u`&&process.noDeprecation===!0)return t;if(typeof process>`u`)return function(){return e.deprecate(t,n).apply(this,arguments)};var r=!1;function i(){if(!r){if(process.throwDeprecation)throw Error(n);process.traceDeprecation?console.trace(n):console.error(n),r=!0}return t.apply(this,arguments)}return i};var r={},i=/^$/;if({}.NODE_DEBUG){var a={}.NODE_DEBUG;a=a.replace(/[|\\{}()[\]^$+?.]/g,`\\$&`).replace(/\*/g,`.*`).replace(/,/g,`$|^`).toUpperCase(),i=RegExp(`^`+a+`$`,`i`)}e.debuglog=function(t){if(t=t.toUpperCase(),!r[t])if(i.test(t)){var n=process.pid;r[t]=function(){var r=e.format.apply(e,arguments);console.error(`%s %d: %s`,t,n,r)}}else r[t]=function(){};return r[t]};function o(t,n){var r={seen:[],stylize:c};return arguments.length>=3&&(r.depth=arguments[2]),arguments.length>=4&&(r.colors=arguments[3]),_(n)?r.showHidden=n:n&&e._extend(r,n),C(r.showHidden)&&(r.showHidden=!1),C(r.depth)&&(r.depth=2),C(r.colors)&&(r.colors=!1),C(r.customInspect)&&(r.customInspect=!0),r.colors&&(r.stylize=s),u(r,t,r.depth)}e.inspect=o,o.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},o.styles={special:`cyan`,number:`yellow`,boolean:`yellow`,undefined:`grey`,null:`bold`,string:`green`,date:`magenta`,regexp:`red`};function s(e,t){var n=o.styles[t];return n?`\x1B[`+o.colors[n][0]+`m`+e+`\x1B[`+o.colors[n][1]+`m`:e}function c(e,t){return e}function l(e){var t={};return e.forEach(function(e,n){t[e]=!0}),t}function u(t,n,r){if(t.customInspect&&n&&O(n.inspect)&&n.inspect!==e.inspect&&!(n.constructor&&n.constructor.prototype===n)){var i=n.inspect(r,t);return x(i)||(i=u(t,i,r)),i}var a=d(t,n);if(a)return a;var o=Object.keys(n),s=l(o);if(t.showHidden&&(o=Object.getOwnPropertyNames(n)),D(n)&&(o.indexOf(`message`)>=0||o.indexOf(`description`)>=0))return f(n);if(o.length===0){if(O(n)){var c=n.name?`: `+n.name:``;return t.stylize(`[Function`+c+`]`,`special`)}if(w(n))return t.stylize(RegExp.prototype.toString.call(n),`regexp`);if(E(n))return t.stylize(Date.prototype.toString.call(n),`date`);if(D(n))return f(n)}var _=``,v=!1,y=[`{`,`}`];if(g(n)&&(v=!0,y=[`[`,`]`]),O(n)&&(_=` [Function`+(n.name?`: `+n.name:``)+`]`),w(n)&&(_=` `+RegExp.prototype.toString.call(n)),E(n)&&(_=` `+Date.prototype.toUTCString.call(n)),D(n)&&(_=` `+f(n)),o.length===0&&(!v||n.length==0))return y[0]+_+y[1];if(r<0)return w(n)?t.stylize(RegExp.prototype.toString.call(n),`regexp`):t.stylize(`[Object]`,`special`);t.seen.push(n);var b=v?p(t,n,r,s,o):o.map(function(e){return m(t,n,r,s,e,v)});return t.seen.pop(),h(b,_,y)}function d(e,t){if(C(t))return e.stylize(`undefined`,`undefined`);if(x(t)){var n=`'`+JSON.stringify(t).replace(/^"|"$/g,``).replace(/'/g,`\\'`).replace(/\\"/g,`"`)+`'`;return e.stylize(n,`string`)}if(b(t))return e.stylize(``+t,`number`);if(_(t))return e.stylize(``+t,`boolean`);if(v(t))return e.stylize(`null`,`null`)}function f(e){return`[`+Error.prototype.toString.call(e)+`]`}function p(e,t,n,r,i){for(var a=[],o=0,s=t.length;o<s;++o)N(t,String(o))?a.push(m(e,t,n,r,String(o),!0)):a.push(``);return i.forEach(function(i){i.match(/^\d+$/)||a.push(m(e,t,n,r,i,!0))}),a}function m(e,t,n,r,i,a){var o,s,c=Object.getOwnPropertyDescriptor(t,i)||{value:t[i]};if(c.get?s=c.set?e.stylize(`[Getter/Setter]`,`special`):e.stylize(`[Getter]`,`special`):c.set&&(s=e.stylize(`[Setter]`,`special`)),N(r,i)||(o=`[`+i+`]`),s||(e.seen.indexOf(c.value)<0?(s=v(n)?u(e,c.value,null):u(e,c.value,n-1),s.indexOf(`
|
|
2
|
-
`)>-1&&(s=a?s.split(`
|
|
3
|
-
`).map(function(e){return` `+e}).join(`
|
|
4
|
-
`).slice(2):`
|
|
5
|
-
`+s.split(`
|
|
6
|
-
`).map(function(e){return` `+e}).join(`
|
|
7
|
-
`))):s=e.stylize(`[Circular]`,`special`)),C(o)){if(a&&i.match(/^\d+$/))return s;o=JSON.stringify(``+i),o.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(o=o.slice(1,-1),o=e.stylize(o,`name`)):(o=o.replace(/'/g,`\\'`).replace(/\\"/g,`"`).replace(/(^"|"$)/g,`'`),o=e.stylize(o,`string`))}return o+`: `+s}function h(e,t,n){var r=0;return e.reduce(function(e,t){return r++,t.indexOf(`
|
|
8
|
-
`)>=0&&r++,e+t.replace(/\u001b\[\d\d?m/g,``).length+1},0)>60?n[0]+(t===``?``:t+`
|
|
9
|
-
`)+` `+e.join(`,
|
|
10
|
-
`)+` `+n[1]:n[0]+t+` `+e.join(`, `)+` `+n[1]}e.types=q();function g(e){return Array.isArray(e)}e.isArray=g;function _(e){return typeof e==`boolean`}e.isBoolean=_;function v(e){return e===null}e.isNull=v;function y(e){return e==null}e.isNullOrUndefined=y;function b(e){return typeof e==`number`}e.isNumber=b;function x(e){return typeof e==`string`}e.isString=x;function S(e){return typeof e==`symbol`}e.isSymbol=S;function C(e){return e===void 0}e.isUndefined=C;function w(e){return T(e)&&A(e)===`[object RegExp]`}e.isRegExp=w,e.types.isRegExp=w;function T(e){return typeof e==`object`&&!!e}e.isObject=T;function E(e){return T(e)&&A(e)===`[object Date]`}e.isDate=E,e.types.isDate=E;function D(e){return T(e)&&(A(e)===`[object Error]`||e instanceof Error)}e.isError=D,e.types.isNativeError=D;function O(e){return typeof e==`function`}e.isFunction=O;function k(e){return e===null||typeof e==`boolean`||typeof e==`number`||typeof e==`string`||typeof e==`symbol`||e===void 0}e.isPrimitive=k,e.isBuffer=ue();function A(e){return Object.prototype.toString.call(e)}function j(e){return e<10?`0`+e.toString(10):e.toString(10)}var M=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`];function ee(){var e=new Date,t=[j(e.getHours()),j(e.getMinutes()),j(e.getSeconds())].join(`:`);return[e.getDate(),M[e.getMonth()],t].join(` `)}e.log=function(){console.log(`%s - %s`,ee(),e.format.apply(e,arguments))},e.inherits=de(),e._extend=function(e,t){if(!t||!T(t))return e;for(var n=Object.keys(t),r=n.length;r--;)e[n[r]]=t[n[r]];return e};function N(e,t){return Object.prototype.hasOwnProperty.call(e,t)}var P=typeof Symbol<`u`?Symbol(`util.promisify.custom`):void 0;e.promisify=function(e){if(typeof e!=`function`)throw TypeError(`The "original" argument must be of type Function`);if(P&&e[P]){var n=e[P];if(typeof n!=`function`)throw TypeError(`The "util.promisify.custom" argument must be of type Function`);return Object.defineProperty(n,P,{value:n,enumerable:!1,writable:!1,configurable:!0}),n}function n(){for(var t,n,r=new Promise(function(e,r){t=e,n=r}),i=[],a=0;a<arguments.length;a++)i.push(arguments[a]);i.push(function(e,r){e?n(e):t(r)});try{e.apply(this,i)}catch(e){n(e)}return r}return Object.setPrototypeOf(n,Object.getPrototypeOf(e)),P&&Object.defineProperty(n,P,{value:n,enumerable:!1,writable:!1,configurable:!0}),Object.defineProperties(n,t(e))},e.promisify.custom=P;function F(e,t){if(!e){var n=Error(`Promise was rejected with a falsy value`);n.reason=e,e=n}return t(e)}function I(e){if(typeof e!=`function`)throw TypeError(`The "original" argument must be of type Function`);function n(){for(var t=[],n=0;n<arguments.length;n++)t.push(arguments[n]);var r=t.pop();if(typeof r!=`function`)throw TypeError(`The last argument must be of type Function`);var i=this,a=function(){return r.apply(i,arguments)};e.apply(this,t).then(function(e){process.nextTick(a.bind(null,null,e))},function(e){process.nextTick(F.bind(null,e,a))})}return Object.setPrototypeOf(n,Object.getPrototypeOf(e)),Object.defineProperties(n,t(e)),n}e.callbackify=I}));function Y(e){"@babel/helpers - typeof";return Y=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},Y(e)}var fe=n((()=>{}));function X(e){if(e===null||e===!0||e===!1)return NaN;var t=Number(e);return isNaN(t)?t:t<0?Math.ceil(t):Math.floor(t)}var Z=n((()=>{}));function Q(e,t){if(t.length<e)throw TypeError(e+` argument`+(e>1?`s`:``)+` required, but only `+t.length+` present`)}var $=n((()=>{}));function pe(e){Q(1,arguments);var t=Object.prototype.toString.call(e);return e instanceof Date||Y(e)===`object`&&t===`[object Date]`?new Date(e.getTime()):typeof e==`number`||t===`[object Number]`?new Date(e):((typeof e==`string`||t===`[object String]`)&&typeof console<`u`&&(console.warn("Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#string-arguments"),console.warn(Error().stack)),new Date(NaN))}var me=n((()=>{fe(),$()}));function he(e,t){Q(2,arguments);var n=pe(e),r=X(t);return isNaN(r)?new Date(NaN):(r&&n.setDate(n.getDate()+r),n)}var ge=n((()=>{Z(),me(),$()}));function _e(e,t){Q(2,arguments);var n=pe(e),r=X(t);if(isNaN(r))return new Date(NaN);if(!r)return n;var i=n.getDate(),a=new Date(n.getTime());return a.setMonth(n.getMonth()+r+1,0),i>=a.getDate()?a:(n.setFullYear(a.getFullYear(),a.getMonth(),i),n)}var ve=n((()=>{Z(),me(),$()})),ye=r({default:()=>be});function be(e,t){if(Q(2,arguments),!t||Y(t)!==`object`)return new Date(NaN);var n=t.years?X(t.years):0,r=t.months?X(t.months):0,i=t.weeks?X(t.weeks):0,a=t.days?X(t.days):0,o=t.hours?X(t.hours):0,s=t.minutes?X(t.minutes):0,c=t.seconds?X(t.seconds):0,l=pe(e),u=r||n?_e(l,r+n*12):l,d=a||i?he(u,a+i*7):u,f=(c+(s+o*60)*60)*1e3;return new Date(d.getTime()+f)}var xe=n((()=>{fe(),ge(),ve(),me(),$(),Z()}));function Se(e,t){return Q(2,arguments),he(e,-X(t))}var Ce=n((()=>{ge(),$(),Z()}));function we(e,t){return Q(2,arguments),_e(e,-X(t))}var Te=n((()=>{Z(),ve(),$()})),Ee=r({default:()=>De});function De(e,t){if(Q(2,arguments),!t||Y(t)!==`object`)return new Date(NaN);var n=t.years?X(t.years):0,r=t.months?X(t.months):0,i=t.weeks?X(t.weeks):0,a=t.days?X(t.days):0,o=t.hours?X(t.hours):0,s=t.minutes?X(t.minutes):0,c=t.seconds?X(t.seconds):0,l=Se(we(e,r+n*12),a+i*7),u=(c+(s+o*60)*60)*1e3;return new Date(l.getTime()-u)}var Oe=n((()=>{fe(),Ce(),Te(),$(),Z()})),ke=i(((t,n)=>{J();var r={add:(xe(),e(ye)),sub:(Oe(),e(Ee))},i={d:`days`,w:`weeks`,M:`months`,y:`years`,h:`hours`,m:`minutes`,s:`seconds`},a=e=>e.toISOString().replace(`T`,` `).replace(/\.[0-9]{3}Z/,``);n.exports={ungroup(e){return e.yg?e.yg:e},unescape(e){let t=RegExp(`\\\\(['"])`,`g`);return e.replace(t,`$1`)},stringToRegExp(e,t){let n=e.replace(/[.*+?^$(){}|[\]\\]/g,`\\$&`);return t===`^`?n=`^`+n:t===`$`&&(n+=`$`),new RegExp(n,`i`)},relDateToAbsolute(e,t,n){if(this.preserveRelativeDates)return{$relativeDate:{op:e,amount:Number(t),unit:i[n]}};let o=new Date;return a(r[e](o,{[i[n]]:t}))},debug(){}}})),Ae=i(((e,t)=>{t.exports={}})),je=i(((e,n)=>{var r=(function(){var e=function(e,t,n,r){for(n||={},r=e.length;r--;n[e[r]]=t);return n},t=[1,5],n=[1,7],r=[1,8],i=[1,6,10],a=[1,9],o=[1,6,8,10],s=[1,24],c=[1,25],l=[1,26],u=[1,27],d=[1,28],f=[1,29],p=[1,30],m=[1,17],h=[1,18],g=[1,19],_=[22,23,24,25,26,30,31],v=[1,6,8,10,18],y=[1,49],b=[6,18],x=[2,17],S=[8,18],C={trace:function(){},yy:{},symbols_:{error:2,expressions:3,expression:4,andCondition:5,OR:6,filterExpr:7,AND:8,LPAREN:9,RPAREN:10,propExpr:11,valueExpr:12,PROP:13,NOT:14,REGEXPOP:15,LBRACKET:16,inExpr:17,RBRACKET:18,allExpr:19,OP:20,VALUE:21,NULL:22,TRUE:23,FALSE:24,NUMBER:25,NOW:26,DATEOP:27,AMOUNT:28,INTERVAL:29,LITERAL:30,STRING:31,ADD:32,SUB:33,CONTAINS:34,STARTSWITH:35,ENDSWITH:36,GT:37,LT:38,GTE:39,LTE:40,$accept:0,$end:1},terminals_:{2:`error`,6:`OR`,8:`AND`,9:`LPAREN`,10:`RPAREN`,13:`PROP`,14:`NOT`,16:`LBRACKET`,18:`RBRACKET`,22:`NULL`,23:`TRUE`,24:`FALSE`,25:`NUMBER`,26:`NOW`,28:`AMOUNT`,29:`INTERVAL`,30:`LITERAL`,31:`STRING`,32:`ADD`,33:`SUB`,34:`CONTAINS`,35:`STARTSWITH`,36:`ENDSWITH`,37:`GT`,38:`LT`,39:`GTE`,40:`LTE`},productions_:[0,[3,1],[4,1],[4,3],[5,1],[5,3],[7,3],[7,2],[11,1],[12,2],[12,1],[12,4],[12,3],[12,3],[12,2],[12,1],[17,3],[17,1],[19,3],[19,3],[21,1],[21,1],[21,1],[21,1],[21,4],[21,1],[21,1],[27,1],[27,1],[15,2],[15,2],[15,2],[20,1],[20,1],[20,1],[20,1],[20,1]],performAction:function(e,t,n,r,i,a,o,s){var c=a.length-1;switch(i){case 1:return r.debug(`expression`,a[c]),r.debug(`opt`,s),a[c]&&a[c].yg?a[c].yg:a[c];case 2:r.debug(`andCondition`,a[c]),this.$=a[c];break;case 3:r.debug(`expression OR andCondition`,a[c-2],a[c]),a[c-2]=a[c-2].$or?a[c-2]:{$or:[r.ungroup(a[c-2])]},a[c-2].$or.push(r.ungroup(a[c])),this.$=a[c-2];break;case 4:r.debug(`filterExpr`,a[c]),this.$=a[c];break;case 5:r.debug(`andCondition AND filterExpr`,a[c-2],a[c]),a[c-2]=a[c-2].$and?a[c-2]:{$and:[r.ungroup(a[c-2])]},a[c-2].$and.push(r.ungroup(a[c])),this.$=a[c-2];break;case 6:r.debug(`LPAREN expression RPAREN`,a[c-1]),this.$={yg:a[c-1]};break;case 7:this.$={[a[c-1]]:a[c]};break;case 8:a[c]=a[c].replace(/:$/,``),a[c]=s.aliases&&s.aliases[a[c]]?s.aliases[a[c]]:a[c],this.$=a[c];break;case 9:this.$={$not:a[c]};break;case 10:this.$={$regex:a[c]};break;case 11:this.$={$nin:a[c-1]};break;case 12:this.$={$in:a[c-1]};break;case 13:this.$={$all:a[c-1]};break;case 14:this.$={},this.$[a[c-1]]=a[c];break;case 15:this.$=a[c];break;case 16:case 18:this.$.push(a[c]);break;case 17:this.$=[a[c]];break;case 19:this.$=[a[c-2],a[c]];break;case 20:this.$=null;break;case 21:this.$=!0;break;case 22:this.$=!1;break;case 23:this.$=parseInt(e);break;case 24:this.$=r.relDateToAbsolute(a[c-2],a[c-1],a[c]);break;case 25:this.$=r.unescape(a[c]);break;case 26:a[c]=a[c].replace(/^'|'$/g,``),this.$=r.unescape(a[c]);break;case 27:this.$=`add`;break;case 28:this.$=`sub`;break;case 29:a[c]=a[c].replace(/^'|'$/g,``),a[c]=r.unescape(a[c]),this.$=r.stringToRegExp(a[c]);break;case 30:a[c]=a[c].replace(/^'|'$/g,``),a[c]=r.unescape(a[c]),this.$=r.stringToRegExp(a[c],`^`);break;case 31:a[c]=a[c].replace(/^'|'$/g,``),a[c]=r.unescape(a[c]),this.$=r.stringToRegExp(a[c],`$`);break;case 32:this.$=`$ne`;break;case 33:this.$=`$gt`;break;case 34:this.$=`$lt`;break;case 35:this.$=`$gte`;break;case 36:this.$=`$lte`;break}},table:[{3:1,4:2,5:3,7:4,9:t,11:6,13:n},{1:[3]},{1:[2,1],6:r},e(i,[2,2],{8:a}),e(o,[2,4]),{4:10,5:3,7:4,9:t,11:6,13:n},{12:11,14:[1,12],15:13,16:[1,14],20:15,21:16,22:s,23:c,24:l,25:u,26:d,30:f,31:p,34:m,35:h,36:g,37:[1,20],38:[1,21],39:[1,22],40:[1,23]},e([14,16,22,23,24,25,26,30,31,34,35,36,37,38,39,40],[2,8]),{5:31,7:4,9:t,11:6,13:n},{7:32,9:t,11:6,13:n},{6:r,10:[1,33]},e(o,[2,7]),e(_,[2,32],{15:34,16:[1,35],34:m,35:h,36:g}),e(o,[2,10]),{17:36,19:37,21:38,22:s,23:c,24:l,25:u,26:d,30:f,31:p},{21:39,22:s,23:c,24:l,25:u,26:d,30:f,31:p},e(o,[2,15]),{31:[1,40]},{31:[1,41]},{31:[1,42]},e(_,[2,33]),e(_,[2,34]),e(_,[2,35]),e(_,[2,36]),e(v,[2,20]),e(v,[2,21]),e(v,[2,22]),e(v,[2,23]),{27:43,32:[1,44],33:[1,45]},e(v,[2,25]),e(v,[2,26]),e(i,[2,3],{8:a}),e(o,[2,5]),e(o,[2,6]),e(o,[2,9]),{17:46,21:47,22:s,23:c,24:l,25:u,26:d,30:f,31:p},{6:y,18:[1,48]},{8:[1,51],18:[1,50]},e(b,x,{8:[1,52]}),e(o,[2,14]),e(o,[2,29]),e(o,[2,30]),e(o,[2,31]),{28:[1,53]},{28:[2,27]},{28:[2,28]},{6:y,18:[1,54]},e(b,x),e(o,[2,12]),{21:55,22:s,23:c,24:l,25:u,26:d,30:f,31:p},e(o,[2,13]),{21:56,22:s,23:c,24:l,25:u,26:d,30:f,31:p},{21:57,22:s,23:c,24:l,25:u,26:d,30:f,31:p},{29:[1,58]},e(o,[2,11]),e(b,[2,16]),e(S,[2,18]),e(S,[2,19]),e(v,[2,24])],defaultActions:{44:[2,27],45:[2,28]},parseError:function(e,t){if(t.recoverable)this.trace(e);else{var n=Error(e);throw n.hash=t,n}},parse:function(e){var t=this,n=[0],r=[null],i=[],a=this.table,o=``,s=0,c=0,l=0,u=2,d=1,f=i.slice.call(arguments,1),p=Object.create(this.lexer),m={yy:{}};for(var h in this.yy)Object.prototype.hasOwnProperty.call(this.yy,h)&&(m.yy[h]=this.yy[h]);p.setInput(e,m.yy),m.yy.lexer=p,m.yy.parser=this,p.yylloc===void 0&&(p.yylloc={});var g=p.yylloc;i.push(g);var _=p.options&&p.options.ranges;typeof m.yy.parseError==`function`?this.parseError=m.yy.parseError:this.parseError=Object.getPrototypeOf(this).parseError;_token_stack:var v=function(){var e=p.lex()||d;return typeof e!=`number`&&(e=t.symbols_[e]||e),e};for(var y,b,x,S,C,w={},T,E,D,O;;){if(x=n[n.length-1],this.defaultActions[x]?S=this.defaultActions[x]:(y??=v(),S=a[x]&&a[x][y]),S===void 0||!S.length||!S[0]){var k=``;for(T in O=[],a[x])this.terminals_[T]&&T>u&&O.push(`'`+this.terminals_[T]+`'`);k=p.showPosition?`Parse error on line `+(s+1)+`:
|
|
11
|
-
`+p.showPosition()+`
|
|
12
|
-
Expecting `+O.join(`, `)+`, got '`+(this.terminals_[y]||y)+`'`:`Parse error on line `+(s+1)+`: Unexpected `+(y==d?`end of input`:`'`+(this.terminals_[y]||y)+`'`),this.parseError(k,{text:p.match,token:this.terminals_[y]||y,line:p.yylineno,loc:g,expected:O})}if(S[0]instanceof Array&&S.length>1)throw Error(`Parse Error: multiple actions possible at state: `+x+`, token: `+y);switch(S[0]){case 1:n.push(y),r.push(p.yytext),i.push(p.yylloc),n.push(S[1]),y=null,b?(y=b,b=null):(c=p.yyleng,o=p.yytext,s=p.yylineno,g=p.yylloc,l>0&&l--);break;case 2:if(E=this.productions_[S[1]][1],w.$=r[r.length-E],w._$={first_line:i[i.length-(E||1)].first_line,last_line:i[i.length-1].last_line,first_column:i[i.length-(E||1)].first_column,last_column:i[i.length-1].last_column},_&&(w._$.range=[i[i.length-(E||1)].range[0],i[i.length-1].range[1]]),C=this.performAction.apply(w,[o,c,s,m.yy,S[1],r,i].concat(f)),C!==void 0)return C;E&&(n=n.slice(0,-1*E*2),r=r.slice(0,-1*E),i=i.slice(0,-1*E)),n.push(this.productions_[S[1]][0]),r.push(w.$),i.push(w._$),D=a[n[n.length-2]][n[n.length-1]],n.push(D);break;case 3:return!0}}return!0}};C.parseError=function(e,t){var n=e.split(`
|
|
13
|
-
`);throw n[0]=`Query Error: unexpected character in filter at char `+(t.loc.first_column+1),Error(n.join(`
|
|
14
|
-
`))},C.lexer=(function(){var e={EOF:1,parseError:function(e,t){if(this.yy.parser)this.yy.parser.parseError(e,t);else throw Error(e)},setInput:function(e,t){return this.yy=t||this.yy||{},this._input=e,this._more=this._backtrack=this.done=!1,this.yylineno=this.yyleng=0,this.yytext=this.matched=this.match=``,this.conditionStack=[`INITIAL`],this.yylloc={first_line:1,first_column:0,last_line:1,last_column:0},this.options.ranges&&(this.yylloc.range=[0,0]),this.offset=0,this},input:function(){var e=this._input[0];return this.yytext+=e,this.yyleng++,this.offset++,this.match+=e,this.matched+=e,e.match(/(?:\r\n?|\n).*/g)?(this.yylineno++,this.yylloc.last_line++):this.yylloc.last_column++,this.options.ranges&&this.yylloc.range[1]++,this._input=this._input.slice(1),e},unput:function(e){var t=e.length,n=e.split(/(?:\r\n?|\n)/g);this._input=e+this._input,this.yytext=this.yytext.substr(0,this.yytext.length-t),this.offset-=t;var r=this.match.split(/(?:\r\n?|\n)/g);this.match=this.match.substr(0,this.match.length-1),this.matched=this.matched.substr(0,this.matched.length-1),n.length-1&&(this.yylineno-=n.length-1);var i=this.yylloc.range;return this.yylloc={first_line:this.yylloc.first_line,last_line:this.yylineno+1,first_column:this.yylloc.first_column,last_column:n?(n.length===r.length?this.yylloc.first_column:0)+r[r.length-n.length].length-n[0].length:this.yylloc.first_column-t},this.options.ranges&&(this.yylloc.range=[i[0],i[0]+this.yyleng-t]),this.yyleng=this.yytext.length,this},more:function(){return this._more=!0,this},reject:function(){if(this.options.backtrack_lexer)this._backtrack=!0;else return this.parseError(`Lexical error on line `+(this.yylineno+1)+`. You can only invoke reject() in the lexer when the lexer is of the backtracking persuasion (options.backtrack_lexer = true).
|
|
15
|
-
`+this.showPosition(),{text:``,token:null,line:this.yylineno});return this},less:function(e){this.unput(this.match.slice(e))},pastInput:function(){var e=this.matched.substr(0,this.matched.length-this.match.length);return(e.length>20?`...`:``)+e.substr(-20).replace(/\n/g,``)},upcomingInput:function(){var e=this.match;return e.length<20&&(e+=this._input.substr(0,20-e.length)),(e.substr(0,20)+(e.length>20?`...`:``)).replace(/\n/g,``)},showPosition:function(){var e=this.pastInput(),t=Array(e.length+1).join(`-`);return e+this.upcomingInput()+`
|
|
16
|
-
`+t+`^`},test_match:function(e,t){var n,r,i;if(this.options.backtrack_lexer&&(i={yylineno:this.yylineno,yylloc:{first_line:this.yylloc.first_line,last_line:this.last_line,first_column:this.yylloc.first_column,last_column:this.yylloc.last_column},yytext:this.yytext,match:this.match,matches:this.matches,matched:this.matched,yyleng:this.yyleng,offset:this.offset,_more:this._more,_input:this._input,yy:this.yy,conditionStack:this.conditionStack.slice(0),done:this.done},this.options.ranges&&(i.yylloc.range=this.yylloc.range.slice(0))),r=e[0].match(/(?:\r\n?|\n).*/g),r&&(this.yylineno+=r.length),this.yylloc={first_line:this.yylloc.last_line,last_line:this.yylineno+1,first_column:this.yylloc.last_column,last_column:r?r[r.length-1].length-r[r.length-1].match(/\r?\n?/)[0].length:this.yylloc.last_column+e[0].length},this.yytext+=e[0],this.match+=e[0],this.matches=e,this.yyleng=this.yytext.length,this.options.ranges&&(this.yylloc.range=[this.offset,this.offset+=this.yyleng]),this._more=!1,this._backtrack=!1,this._input=this._input.slice(e[0].length),this.matched+=e[0],n=this.performAction.call(this,this.yy,this,t,this.conditionStack[this.conditionStack.length-1]),this.done&&this._input&&(this.done=!1),n)return n;if(this._backtrack){for(var a in i)this[a]=i[a];return!1}return!1},next:function(){if(this.done)return this.EOF;this._input||(this.done=!0);var e,t,n,r;this._more||(this.yytext=``,this.match=``);for(var i=this._currentRules(),a=0;a<i.length;a++)if(n=this._input.match(this.rules[i[a]]),n&&(!t||n[0].length>t[0].length)){if(t=n,r=a,this.options.backtrack_lexer){if(e=this.test_match(n,i[a]),e!==!1)return e;if(this._backtrack){t=!1;continue}else return!1}else if(!this.options.flex)break}return t?(e=this.test_match(t,i[r]),e===!1?!1:e):this._input===``?this.EOF:this.parseError(`Lexical error on line `+(this.yylineno+1)+`. Unrecognized text.
|
|
17
|
-
`+this.showPosition(),{text:``,token:null,line:this.yylineno})},lex:function(){return this.next()||this.lex()},begin:function(e){this.conditionStack.push(e)},popState:function(){return this.conditionStack.length-1>0?this.conditionStack.pop():this.conditionStack[0]},_currentRules:function(){return this.conditionStack.length&&this.conditionStack[this.conditionStack.length-1]?this.conditions[this.conditionStack[this.conditionStack.length-1]].rules:this.conditions.INITIAL.rules},topState:function(e){return e=this.conditionStack.length-1-Math.abs(e||0),e>=0?this.conditionStack[e]:`INITIAL`},pushState:function(e){this.begin(e)},stateStackSize:function(){return this.conditionStack.length},options:{},performAction:function(e,t,n,r){switch(n){case 0:break;case 1:return 22;case 2:return 23;case 3:return 24;case 4:return 13;case 5:return 25;case 6:return 16;case 7:return 18;case 8:return this.pushState(`reldate`),26;case 9:return 33;case 10:return 32;case 11:return 28;case 12:return this.popState(),29;case 13:return 30;case 14:return 31;case 15:return 9;case 16:return 10;case 17:return 6;case 18:return 8;case 19:return 14;case 20:return 39;case 21:return 40;case 22:return 37;case 23:return 38;case 24:return 35;case 25:return 36;case 26:return 34;case 27:return 30}},rules:[/^(?:\s+)/,/^(?:(?:null|NULL|Null)(?!(\\(['"\+\,\(\)\>\<=\[\]\~\^\$])|([^\s'"\+\,\(\)\>\<=\[\]\~]))+))/,/^(?:(?:true|TRUE|True)(?!(\\(['"\+\,\(\)\>\<=\[\]\~\^\$])|([^\s'"\+\,\(\)\>\<=\[\]\~]))+))/,/^(?:(?:false|FALSE|False)(?!(\\(['"\+\,\(\)\>\<=\[\]\~\^\$])|([^\s'"\+\,\(\)\>\<=\[\]\~]))+))/,/^(?:[a-zA-Z_][a-zA-Z0-9_\.]*[:])/,/^(?:[0-9]+(\.[0-9]+)?\b(?![\-]))/,/^(?:\[)/,/^(?:\])/,/^(?:now(?=[-+]\d+[dwMyhms](?:([\+\,\(\)\[\]])|$)))/,/^(?:-)/,/^(?:\+)/,/^(?:\d+)/,/^(?:[dwMyhms])/,/^(?:([^\s'"\+\,\(\)\>\<=\[\]\~\-])(\\(['"\+\,\(\)\>\<=\[\]\~\^\$])|([^\s'"\+\,\(\)\>\<=\[\]\~]))+)/,/^(?:['](\\['"]|[^'"])+?['])/,/^(?:\()/,/^(?:\))/,/^(?:,)/,/^(?:\+)/,/^(?:-)/,/^(?:>=)/,/^(?:<=)/,/^(?:>)/,/^(?:<)/,/^(?:~\^)/,/^(?:~\$)/,/^(?:~)/,/^(?:([a-zA-Z])(?![a-zA-Z'"\,\(\)\>\<=\[\]\~]))/],conditions:{reldate:{rules:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],inclusive:!0},INITIAL:{rules:[0,1,2,3,4,5,6,7,8,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27],inclusive:!0}}};return e.parseError=function(e,t){var n=e.split(`
|
|
18
|
-
`),r=n[2].indexOf(`^`);throw n[0]=`Query Error: unrecognized text "`+n[1].charAt(r)+`" in filter at char `+(r+1),Error(n.join(`
|
|
19
|
-
`))},e})();function w(){this.yy={}}return w.prototype=C,C.Parser=w,new w})();t!==void 0&&e!==void 0&&(e.parser=r,e.Parser=r.Parser,e.parse=function(){return r.parse.apply(r,arguments)},e.main=function(t){t[1]||(console.log(`Usage: `+t[0]+` FILE`),process.exit(1));var n=Ae().readFileSync(Ae().normalize(t[1]),`utf8`);return e.parser.parse(n)},n!==void 0&&t.main===n&&e.main(process.argv.slice(1)))})),Me=i((e=>{var t=ke(),n=je().parser;n.yy=t,e.lex=e=>{n.lexer.setInput(e);let t=n.lexer.lex(),r=[];for(;t!==n.lexer.EOF;)r.push({token:n.terminals_[t],matched:n.lexer.match}),t=n.lexer.lex();return r},e.parse=(e,r)=>{let i=r||{};t.preserveRelativeDates=i.preserveRelativeDates===!0;try{return n.parse(e,i)}finally{t.preserveRelativeDates=!1}}})),Ne=i(((e,t)=>{t.exports=Me()}));export{Ne as t};
|