ghost 6.63.0 → 6.64.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/bin/lib/duplicate-deps.js +204 -0
- package/bin/validate-adapters.js +50 -6
- package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
- package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
- package/components/tryghost-api-framework-0.0.0.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/{tryghost-kg-default-cards-10.3.5.tgz → tryghost-kg-default-cards-10.3.6.tgz} +0 -0
- package/components/tryghost-kg-default-nodes-2.2.1.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.1.tgz +0 -0
- package/components/tryghost-limit-service-0.0.0.tgz +0 -0
- package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/css/screen.css +1 -1
- package/content/themes/source/package.json +7 -7
- package/core/boot.js +10 -4
- package/core/built/admin/assets/Combination-DWfJPcz9.js +41 -0
- package/core/built/admin/assets/{PolarAngleAxis-pkMyqz8g.js → PolarAngleAxis-a81ieQUO.js} +2 -2
- package/core/built/admin/assets/RadialBarChart-CHRBhiBN.js +1 -0
- package/core/built/admin/assets/_baseAssignValue-DcPokYW8.js +1 -0
- package/core/built/admin/assets/about-39CAfroa.js +1 -0
- package/core/built/admin/assets/accordion-CJmRaqK7.js +1 -0
- package/core/built/admin/assets/account-migration-DYf7skbb.js +1 -0
- package/core/built/admin/assets/action-list-Crnh-_UI.js +1 -0
- package/core/built/admin/assets/add-integration-modal-B12oRifD.js +1 -0
- package/core/built/admin/assets/add-newsletter-modal-CTvXiIqY.js +1 -0
- package/core/built/admin/assets/add-recommendation-modal-CJf92edY.js +1 -0
- package/core/built/admin/assets/analytics-PHR1Fggi.js +1 -0
- package/core/built/admin/assets/announcement-bar-modal-Bql0CXdp.js +1 -0
- package/core/built/admin/assets/api-keys-CubH-7_H.js +1 -0
- package/core/built/admin/assets/{api-keys-BGPzLHzA.js → api-keys-omLA6iYn.js} +1 -1
- package/core/built/admin/assets/{audience-ceV3XVHq.js → audience-6GXevic-.js} +1 -1
- package/core/built/admin/assets/automated-emails-DJQ4uNZo.js +1 -0
- package/core/built/admin/assets/automations-DcZSLFDU.js +1 -0
- package/core/built/admin/assets/automations-hDVcRPjh.js +1 -0
- package/core/built/admin/assets/avatar-flipboard-DiAGgshK.js +1 -0
- package/core/built/admin/assets/badge-qP06OT7C.js +1 -0
- package/core/built/admin/assets/bluesky-sharing-CJw4d4Mf.js +1 -0
- package/core/built/admin/assets/box-CZ_LSVSy.js +1 -0
- package/core/built/admin/assets/brand-icon-D3ffDYaC.js +1 -0
- package/core/built/admin/assets/breadcrumb-Chn1Ip_q.js +1 -0
- package/core/built/admin/assets/button-DvIh2Bq-.js +1 -0
- package/core/built/admin/assets/calendar-1QGoStFM.js +1 -0
- package/core/built/admin/assets/card-FHQ4D10L.js +1 -0
- package/core/built/admin/assets/chart-helpers-CNpA7re_.js +1 -0
- package/core/built/admin/assets/{chart-BrhA41Zi.js → chart-jVz9Nf9t.js} +9 -9
- package/core/built/admin/assets/checkbox-DKht9xMl.js +1 -0
- package/core/built/admin/assets/{chunk-KS7C4IRE-DCsL4i4D.js → chunk-KS7C4IRE-DhOcHQOU.js} +1 -1
- package/core/built/admin/assets/{chunk.254.035b85ec456ebbd7336b.js → chunk.368.22ce1b732c0b40abd3f1.js} +159 -120
- package/core/built/admin/assets/chunk.524.cc9be98e44890cedc8c8.js +25 -0
- package/core/built/admin/assets/{chunk.582.98b485f9b2802f540897.js → chunk.582.e6fe742b3217207b11a6.js} +23 -30
- package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js → chunk.972.4b8c97f93d66db15e751.js} +10625 -10088
- package/core/built/admin/assets/clean-tracked-url-dkN05vOf.js +1 -0
- package/core/built/admin/assets/code-editor-view-BLQIV85-.js +1 -0
- package/core/built/admin/assets/code-editor-view-Cg5eJxcr.js +1 -0
- package/core/built/admin/assets/color-picker-DQoghc0t.js +3 -0
- package/core/built/admin/assets/color-picker-field-BbeK5RRs.js +1 -0
- package/core/built/admin/assets/combobox-weO4FBbv.js +1 -0
- package/core/built/admin/assets/command-DlLrCm9V.js +1 -0
- package/core/built/admin/assets/comments-BjTitLmP.js +1 -0
- package/core/built/admin/assets/components-CwL6a6As-CCRaoCeP.js +1 -0
- package/core/built/admin/assets/{config-kSHvwdTG.js → config-BPljH6wF.js} +1 -1
- package/core/built/admin/assets/confirmation-context-IyqoXVk-.js +1 -0
- package/core/built/admin/assets/container-DAimjOF_.js +1 -0
- package/core/built/admin/assets/content-api-modal-0ZjuLcQ8.js +1 -0
- package/core/built/admin/assets/context-menu-BtioYFrg.js +1 -0
- package/core/built/admin/assets/copy-field-C6ujqJlP.js +1 -0
- package/core/built/admin/assets/create-ghost-browse-value-source-DAZMWZNq.js +1 -0
- package/core/built/admin/assets/custom-integration-modal-Dm8QI_J4.js +1 -0
- package/core/built/admin/assets/data-list-C0CKkeWW.js +1 -0
- package/core/built/admin/assets/date-range-select-DrjHQdgz.js +1 -0
- package/core/built/admin/assets/design-and-theme-modal-CXVOzBWu.js +2 -0
- package/core/built/admin/assets/detail-page-QpLIL-EO.js +1 -0
- package/core/built/admin/assets/dirty-confirm-dialog-DWwxREGh.js +1 -0
- package/core/built/admin/assets/disabled-sources-indicator-CLZhMv8J.js +1 -0
- package/core/built/admin/assets/dist-BRQkNYN1.js +11 -0
- package/core/built/admin/assets/{dist-B3keLvjj.js → dist-BXHrDV19.js} +2 -2
- package/core/built/admin/assets/dist-Bf-HQtVL.js +1 -0
- package/core/built/admin/assets/dist-Bm-PB47a.js +6 -0
- package/core/built/admin/assets/{dist-B6bJuxL3.js → dist-C2lYC76d.js} +1 -1
- package/core/built/admin/assets/dist-CUwte9v_.js +1 -0
- package/core/built/admin/assets/dist-Cm2qbZKL.js +1 -0
- package/core/built/admin/assets/{dist-BtaTA7Ii.js → dist-D7yMk931.js} +1 -1
- package/core/built/admin/assets/{dist-zwwGt8Yf.js → dist-DNAdeRyr.js} +1 -1
- package/core/built/admin/assets/dist-DS6zpxid.js +1 -0
- package/core/built/admin/assets/dist-DVVKsyPh.js +23 -0
- package/core/built/admin/assets/dist-DxfQlAmn.js +1 -0
- package/core/built/admin/assets/dist-DziNzWI2.js +1 -0
- package/core/built/admin/assets/dist-FEQQAwTe.js +1 -0
- package/core/built/admin/assets/dist-nmRzULcD.js +1 -0
- package/core/built/admin/assets/domain-DBrBic6q.js +1 -0
- package/core/built/admin/assets/dropzone-D61QVcEY.js +5 -0
- package/core/built/admin/assets/edit-profile-jCqJBxqw.js +1 -0
- package/core/built/admin/assets/editor-8Fm4UBEd.js +8 -0
- package/core/built/admin/assets/editor-screen-BSX_uC2B.js +27 -0
- package/core/built/admin/assets/email-previews-Bs-JDhIw.js +1 -0
- package/core/built/admin/assets/email-sending-status-context-C76KYL1V.js +1 -0
- package/core/built/admin/assets/email-sending-status-provider-DnNhlIvt.js +1 -0
- package/core/built/admin/assets/{emails-vFMk4yYl.js → emails-CgvIIz3q.js} +1 -1
- package/core/built/admin/assets/{embed-signup-form-modal-DGqsORxS.js → embed-signup-form-modal-DqtBs1WE.js} +1 -1
- package/core/built/admin/assets/empty-indicator-L4Ql5Db7.js +1 -0
- package/core/built/admin/assets/en-Cx75dJv5.js +1 -0
- package/core/built/admin/assets/esm--rhhUGIG.js +2 -0
- package/core/built/admin/assets/explore-DXhDCtKw.js +1 -0
- package/core/built/admin/assets/feature-flag-overrides-context-CrcQKm9Z.js +1 -0
- package/core/built/admin/assets/feature-image-placeholder-e2q6TcH6.js +1 -0
- package/core/built/admin/assets/feed-mmt4noNL.js +1 -0
- package/core/built/admin/assets/feedback-BTPBQLT5.js +1 -0
- package/core/built/admin/assets/field-p7KnP98B.js +1 -0
- package/core/built/admin/assets/filter-bar-CiIKBg3D.js +1 -0
- package/core/built/admin/assets/filter-sources-I-dRaQxl.js +1 -0
- package/core/built/admin/assets/filters-1injvyxJ.js +1 -0
- package/core/built/admin/assets/filters-DnpO6GWX.js +1 -0
- package/core/built/admin/assets/first-promoter-modal-wr73Dldc.js +1 -0
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-CkFA8EkI.js +1 -0
- package/core/built/admin/assets/framework-provider-DB-svAju.js +4 -0
- package/core/built/admin/assets/{ghost-b4e8a403baba61905cd7560e30b9732d.js → ghost-a1e6e172c6917e8ef8fa6b0007756d9b.js} +39 -30
- package/core/built/admin/assets/gift-link-modal-C3H7YFXO.js +1 -0
- package/core/built/admin/assets/{gift-links-CfLSnst2.js → gift-links-D8gl_yJS.js} +1 -1
- package/core/built/admin/assets/global-data-context-3MItMry2.js +1 -0
- package/core/built/admin/assets/grid-5vplBYri.js +1 -0
- package/core/built/admin/assets/growth-B1og1kQp.js +1 -0
- package/core/built/admin/assets/growth-Bf6OHZlK.js +3 -0
- package/core/built/admin/assets/heading-BB21QAbb.js +1 -0
- package/core/built/admin/assets/history-modal-t_qEnxPx.js +1 -0
- package/core/built/admin/assets/hooks-DYfTEQLk.js +2 -0
- package/core/built/admin/assets/html-field-COLQbV4r.js +1 -0
- package/core/built/admin/assets/iframe-buffering-Bq1el-gw.js +1 -0
- package/core/built/admin/assets/images-4mvoc3lB.js +1 -0
- package/core/built/admin/assets/{inbox-gJHG7_xd.js → inbox-DgSZ6w2p.js} +34 -34
- package/core/built/admin/assets/index-B3HZU2i8.css +2 -0
- package/core/built/admin/assets/index-DDd-zhNL.js +4 -0
- package/core/built/admin/assets/index.es-Ct5XQNSj.js +1 -0
- package/core/built/admin/assets/inline-B8H6NzIw.js +1 -0
- package/core/built/admin/assets/input-group-CLIN2ykI.js +1 -0
- package/core/built/admin/assets/{input-surface-BsrIZeSF.js → input-surface-wSO5CRy5.js} +1 -1
- package/core/built/admin/assets/integration-header-CKGrXNVP.js +1 -0
- package/core/built/admin/assets/{integrations-B4kuRBFY.js → integrations-DnJrZnHv.js} +1 -1
- package/core/built/admin/assets/invite-user-modal-BaN2mdhI.js +1 -0
- package/core/built/admin/assets/jsx-runtime-BlNNh7jY.js +1 -0
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +3 -3
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +1 -1
- package/core/built/admin/assets/{koenig-lexical-CGXb0F8o.js → koenig-lexical-CXVgQFUk.js} +1 -1
- package/core/built/admin/assets/koenig-loader-B1XPPY5C.js +2 -0
- package/core/built/admin/assets/kpi-card-CRLPVlFW.js +1 -0
- package/core/built/admin/assets/kpi-card-CRPbW8NZ.js +1 -0
- package/core/built/admin/assets/kpi-helpers-D7zT96bp.js +1 -0
- package/core/built/admin/assets/kpi-tabs-DE_yh9Go.js +1 -0
- package/core/built/admin/assets/label-CgeBxy4o.js +1 -0
- package/core/built/admin/assets/label-picker-DGDp4Vwr.js +1 -0
- package/core/built/admin/assets/labels-KMkFoRG6.js +1 -0
- package/core/built/admin/assets/layout-DWnOMly4.js +1 -0
- package/core/built/admin/assets/lib-_QYaUU89.js +2 -0
- package/core/built/admin/assets/link-helpers-8J7ixADV.js +1 -0
- package/core/built/admin/assets/links-FwNCVyVe.js +1 -0
- package/core/built/admin/assets/list-page-DLMP0PxC.js +1 -0
- package/core/built/admin/assets/luxon-BXCsmep3.js +1 -0
- package/core/built/admin/assets/member-activity-ClMWFyvN.js +1 -0
- package/core/built/admin/assets/member-activity-feed-BQY5Rwaj.js +1 -0
- package/core/built/admin/assets/member-custom-fields-Dd_ie1zG.js +1 -0
- package/core/built/admin/assets/member-detail-DjwkGVne.js +1 -0
- package/core/built/admin/assets/members--N9lhk1N.js +4 -0
- package/core/built/admin/assets/modal-page-Dz-9TP4E.js +1 -0
- package/core/built/admin/assets/moderation-DfYBKq9s.js +1 -0
- package/core/built/admin/assets/multi-select-combobox-BcBEzUW_.js +1 -0
- package/core/built/admin/assets/navigation-modal-Cd-scywg.js +1 -0
- package/core/built/admin/assets/newsletter-detail-modal-CFRY6vg_.js +1 -0
- package/core/built/admin/assets/newsletter-emails-4ntck1AC.js +1 -0
- package/core/built/admin/assets/newsletter-o6eCJtab.js +1 -0
- package/core/built/admin/assets/newsletters-Bmlv0edG.js +1 -0
- package/core/built/admin/assets/{newsletters-Rq1M3GD-.js → newsletters-Dz77m__5.js} +1 -1
- package/core/built/admin/assets/note-CWs3LF-0.js +1 -0
- package/core/built/admin/assets/notifications-BjSvTJqh.js +1 -0
- package/core/built/admin/assets/{nql-BLpCn7qX.js → nql-DnDc7UuU.js} +1 -1
- package/core/built/admin/assets/nql-lang-CeTB_Bhv.js +19 -0
- package/core/built/admin/assets/{offers--e2nGvkW.js → offers-ByWSK0rR.js} +1 -1
- package/core/built/admin/assets/offers-container-modal-Bc9A196w.js +1 -0
- package/core/built/admin/assets/onboarding-B4hfBi9a.js +1 -0
- package/core/built/admin/assets/onboarding-DV_XbHts.js +1 -0
- package/core/built/admin/assets/onboarding-route-Di1LJYEE.js +1 -0
- package/core/built/admin/assets/overview-DE7NHZQN.js +1 -0
- package/core/built/admin/assets/overview-DEF-ZY6x.js +1 -0
- package/core/built/admin/assets/page-header-B-G_g42C.js +1 -0
- package/core/built/admin/assets/pagemenu-CnkTDO71.js +1 -0
- package/core/built/admin/assets/{pages-CjDY2CBI.js → pages-DZ_YGB1D.js} +1 -1
- package/core/built/admin/assets/pages-route-VT7r7YhG.js +1 -0
- package/core/built/admin/assets/papaparse.min-BlhnCUXn.js +10 -0
- package/core/built/admin/assets/pintura-modal-BljM7hf8.js +1 -0
- package/core/built/admin/assets/portal-frame-D9V8iq5x.js +1 -0
- package/core/built/admin/assets/portal-modal-B5OOR9ZD.js +1 -0
- package/core/built/admin/assets/post-analytics-context-bt2YTBAC.js +1 -0
- package/core/built/admin/assets/post-analytics-header-J0WciLx6.js +1 -0
- package/core/built/admin/assets/post-analytics-provider-CgreZDjS.js +1 -0
- package/core/built/admin/assets/post-analytics-rGb-PgD-.js +1 -0
- package/core/built/admin/assets/post-share-modal-D0BbTo4W.js +1 -0
- package/core/built/admin/assets/posts-list-screen-CO5jAWoU.js +2 -0
- package/core/built/admin/assets/posts-route-DV-CXWK9.js +1 -0
- package/core/built/admin/assets/{posts-pCPrhQeR.js → posts-tcoO3iRG.js} +1 -1
- package/core/built/admin/assets/preferences-Tac29oG6.js +5 -0
- package/core/built/admin/assets/preview-chrome-C2lQgZBZ.js +1 -0
- package/core/built/admin/assets/preview-modal-CjRbBr8U.js +1 -0
- package/core/built/admin/assets/profile-yiM1f_Og.js +1 -0
- package/core/built/admin/assets/prop-types-6lTeqvom.js +1 -0
- package/core/built/admin/assets/radio-group-CKROWsw4.js +1 -0
- package/core/built/admin/assets/react-BXwhMTuc.js +1 -0
- package/core/built/admin/assets/{jsx-runtime-DX3WBWVO.js → react-dom-CMOtJ5MH.js} +2 -2
- package/core/built/admin/assets/{referrers-D8oHPmDB.js → referrers-1R8bPpoV.js} +1 -1
- package/core/built/admin/assets/router-provider-CU87qxXw.js +1 -0
- package/core/built/admin/assets/select-CKaC4ggu.js +1 -0
- package/core/built/admin/assets/settings-81kxUa28.js +1 -0
- package/core/built/admin/assets/settings-BVXFqBVK.js +4 -0
- package/core/built/admin/assets/settings-breadcrumbs-czGRx-iu.js +1 -0
- package/core/built/admin/assets/{shade-app-CcS3f8MZ-vwURazk8.js → shade-app-CcS3f8MZ-D5BnfHck.js} +1 -1
- package/core/built/admin/assets/share-modal-BL-16PiB.js +1 -0
- package/core/built/admin/assets/skeleton-DwCva0-b.js +1 -0
- package/core/built/admin/assets/slack-modal-D7W_fNON.js +1 -0
- package/core/built/admin/assets/sort-button-Dquc83jY.js +1 -0
- package/core/built/admin/assets/source-icon-CQboPZQ3.js +1 -0
- package/core/built/admin/assets/stack-BURz77VS.js +1 -0
- package/core/built/admin/assets/{stats-D9PDLS3x.js → stats-Cvp8Ep5m.js} +1 -1
- package/core/built/admin/assets/stats-view-NDja_g96.js +1 -0
- package/core/built/admin/assets/step-1-BKhjy0PV.js +1 -0
- package/core/built/admin/assets/step-2-PxA1OM7R.js +1 -0
- package/core/built/admin/assets/step-3-BJbAiq16.js +2 -0
- package/core/built/admin/assets/stripe-button-C3cfCAou.js +1 -0
- package/core/built/admin/assets/stripe-connect-modal-FyE3Ey2c.js +1 -0
- package/core/built/admin/assets/switch-zfUUy9Jh.js +1 -0
- package/core/built/admin/assets/table-dE4GTIRT.js +1 -0
- package/core/built/admin/assets/tabs-B3XK93sR.js +1 -0
- package/core/built/admin/assets/tag-detail-D4P-tZdM.js +2 -0
- package/core/built/admin/assets/tag-picker-BNSZ6Qxw.js +1 -0
- package/core/built/admin/assets/tags-BsZcaJ6h.js +1 -0
- package/core/built/admin/assets/{tags-ChfdwJyS.js → tags-NwZ7BPK6.js} +1 -1
- package/core/built/admin/assets/testimonials-modal-Dkt6ODLW.js +1 -0
- package/core/built/admin/assets/text-DC-ot6u2.js +1 -0
- package/core/built/admin/assets/textarea-B4FffFmE.js +1 -0
- package/core/built/admin/assets/themes-DtcEFQWm.js +1 -0
- package/core/built/admin/assets/tier-detail-modal-a77Z2VMH.js +1 -0
- package/core/built/admin/assets/{tiers-BCpIOGQr.js → tiers-6mPzCXlM.js} +1 -1
- package/core/built/admin/assets/toggle-group-D2p4okmJ.js +1 -0
- package/core/built/admin/assets/topic-filter-DVOe3D-b.js +1 -0
- package/core/built/admin/assets/transistor-modal-C8RMkhOD.js +1 -0
- package/core/built/admin/assets/trend-badge-B9v7kMF8.js +1 -0
- package/core/built/admin/assets/unsplash-modal-DXt7Brum.js +1 -0
- package/core/built/admin/assets/use-analytics-data-ChHqiZXv.js +1 -0
- package/core/built/admin/assets/use-availability-hPdeG76y.js +1 -0
- package/core/built/admin/assets/{use-check-theme-limit-error-DRUjK4YM.js → use-check-theme-limit-error-JD-J5aaZ.js} +2 -2
- package/core/built/admin/assets/use-email-sending-status-DNMtL5B9.js +1 -0
- package/core/built/admin/assets/use-filter-params-BSFigDIn.js +1 -0
- package/core/built/admin/assets/use-filterable-api-CEMSAYPg.js +1 -0
- package/core/built/admin/assets/use-form-DJKZJhQh.js +1 -0
- package/core/built/admin/assets/use-growth-stats-CqqdnESN.js +1 -0
- package/core/built/admin/assets/use-host-limits-mpTkZIq8.js +1 -0
- package/core/built/admin/assets/use-limiter-DBGjYqu7.js +19 -0
- package/core/built/admin/assets/use-navigate-with-base-path-88EQpw2k.js +1 -0
- package/core/built/admin/assets/use-pintura-config-BmU45Ruy.js +1 -0
- package/core/built/admin/assets/use-pintura-editor-Bz2bZ4iT.js +1 -0
- package/core/built/admin/assets/use-post-referrers-DyPjyBSN.js +1 -0
- package/core/built/admin/assets/use-query-params-DlOHCo-R.js +1 -0
- package/core/built/admin/assets/use-reply-chain-data-DmD2yX5D.js +1 -0
- package/core/built/admin/assets/use-router-history-entry-CKx9LhqD.js +1 -0
- package/core/built/admin/assets/use-sending-eta-CQeG6OP_.js +1 -0
- package/core/built/admin/assets/use-setting-group-Dza6bQ7W.js +1 -0
- package/core/built/admin/assets/use-settings-navigation-BIjI5mL3.js +1 -0
- package/core/built/admin/assets/use-simple-pagination-DwVxe-Lo.js +1 -0
- package/core/built/admin/assets/use-staff-users-i_Mq9OGR.js +1 -0
- package/core/built/admin/assets/{use-tinybird-query-CmdbCS9X.js → use-tinybird-query-DXoF74NM.js} +1 -1
- package/core/built/admin/assets/use-tinybird-token-Lk1RSn0t.js +1 -0
- package/core/built/admin/assets/use-unsaved-changes-guard-CKVPWz_F.js +1 -0
- package/core/built/admin/assets/use-upgrade-route-CVjDlNSs.js +1 -0
- package/core/built/admin/assets/{use-url-input-fvp-TpPx.js → use-url-input-DpmbDppC.js} +1 -1
- package/core/built/admin/assets/user-detail-modal-BU4QCHE7.js +1 -0
- package/core/built/admin/assets/{users-DVNWrqg9.js → users-C60_hpn6.js} +1 -1
- package/core/built/admin/assets/{validator-Cr0sMKuW.js → validator-DlFQP70j.js} +1 -1
- package/core/built/admin/assets/virtual-list-DScLNuU8.js +1 -0
- package/core/built/admin/assets/web-BZS-t4H0.js +1 -0
- package/core/built/admin/assets/web-DxAUxnK3.js +2 -0
- package/core/built/admin/assets/zapier-modal-BafLUO4R.js +1 -0
- package/core/built/admin/index.html +35 -32
- package/core/cli/command.js +17 -2
- package/core/frontend/meta/asset-url.js +1 -16
- package/core/frontend/services/asset-hash/index.js +32 -2
- package/core/frontend/services/routing/controllers/unsubscribe.js +2 -1
- package/core/frontend/services/rss/generate-feed.js +1 -1
- package/core/frontend/services/theme-engine/active.js +2 -4
- package/core/frontend/services/theme-engine/i18n/i18n.js +11 -1
- package/core/frontend/services/theme-engine/i18next/theme-i18n.js +1 -1
- package/core/frontend/web/middleware/llms-discovery.js +34 -43
- package/core/server/adapters/route-settings/S3RouteSettingsStore.js +1 -1
- package/core/server/adapters/storage/LocalFilesStorage.js +12 -2
- package/core/server/adapters/storage/LocalStorageBase.js +13 -0
- package/core/server/api/endpoints/actions.js +2 -1
- package/core/server/api/endpoints/automated-emails.js +3 -2
- package/core/server/api/endpoints/automations.js +77 -49
- package/core/server/api/endpoints/emails.js +8 -3
- package/core/server/api/endpoints/index.js +1 -1
- package/core/server/api/endpoints/invites.js +2 -1
- package/core/server/api/endpoints/labels.js +6 -2
- package/core/server/api/endpoints/member-metafields.js +2 -2
- package/core/server/api/endpoints/members.js +22 -6
- package/core/server/api/endpoints/pages.js +2 -6
- package/core/server/api/endpoints/posts.js +3 -11
- package/core/server/api/endpoints/snippets.js +2 -1
- package/core/server/api/endpoints/tags.js +6 -2
- package/core/server/api/endpoints/users.js +2 -6
- package/core/server/api/endpoints/utils/api-filter-utils.js +62 -3
- package/core/server/api/endpoints/utils/serializers/output/utils/clean.js +2 -0
- package/core/server/api/endpoints/utils/serializers/output/utils/extra-attrs.js +3 -0
- package/core/server/api/endpoints/utils/validators/input/settings.js +15 -1
- package/core/server/data/exporter/exporter.js +2 -1
- package/core/server/data/exporter/table-lists.js +3 -5
- package/core/server/data/importer/importers/data/settings-importer.js +8 -2
- package/core/server/data/migrations/versions/6.64/2026-09-03-15-40-25-add-member-access-to-members-metafields.js +12 -0
- package/core/server/data/migrations/versions/6.64/2026-09-08-11-01-12-add-posts-auto-excerpt-and-reading-time-columns.js +17 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-automation-run-updated-at-indexes.js +6 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-tinybird-syncs-table.js +10 -0
- package/core/server/data/schema/schema.js +28 -2
- package/core/server/data/seeders/importers/automations-importer.js +0 -1
- package/core/server/data/seeders/importers/comments-importer.js +1 -1
- package/core/server/data/seeders/importers/email-recipients-importer.js +1 -1
- package/core/server/data/seeders/importers/emails-importer.js +1 -1
- package/core/server/data/seeders/importers/members-importer.js +1 -1
- package/core/server/data/seeders/importers/members-login-events-importer.js +1 -1
- package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +1 -1
- package/core/server/data/seeders/utils/blog-info.js +4 -3
- package/core/server/data/seeders/utils/event-generator.js +72 -46
- package/core/server/data/tinybird/datasources/_mv_automation_run_steps.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_pending_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/automation_run_events.datasource +12 -0
- package/core/server/data/tinybird/datasources/automation_run_step_events.datasource +12 -0
- package/core/server/data/tinybird/endpoints/api_automation_browse_stats.pipe +43 -0
- package/core/server/data/tinybird/fixtures/automation_run_events.ndjson +7 -0
- package/core/server/data/tinybird/fixtures/automation_run_step_events.ndjson +8 -0
- package/core/server/data/tinybird/pipes/mv_automation_run_steps.pipe +13 -0
- package/core/server/data/tinybird/pipes/mv_automation_runs.pipe +15 -0
- package/core/server/data/tinybird/pipes/mv_pending_automation_runs.pipe +7 -0
- package/core/server/data/tinybird/tests/api_automation_browse_stats.yaml +18 -0
- package/core/server/ghost-server.js +3 -3
- package/core/server/lib/generate-password.js +54 -0
- package/core/server/lib/public-jwk.js +77 -0
- package/core/server/models/user.js +11 -9
- package/core/server/services/adapter-manager/base-classes.js +21 -3
- package/core/server/services/automations/automations-api.js +46 -1
- package/core/server/services/automations/tinybird-automation-stats.js +56 -0
- package/core/server/services/content-import/import/media.js +1 -1
- package/core/server/services/email-analytics/email-analytics-service-wrapper.js +15 -29
- package/core/server/services/email-analytics/email-analytics-service.js +19 -3
- package/core/server/services/email-analytics/index.js +9 -4
- package/core/server/services/email-rendering/finalize.js +7 -2
- package/core/server/services/email-service/README.md +3 -0
- package/core/server/services/email-service/email-renderer.js +7 -2
- package/core/server/services/email-service/email-service-wrapper.js +1 -1
- package/core/server/services/email-service/email-service.js +43 -34
- package/core/server/services/email-service/sending-status.js +10 -4
- package/core/server/services/gifts/gift-email-service.js +10 -3
- package/core/server/services/gifts/index.js +1 -0
- package/core/server/services/i18n.js +1 -1
- package/core/server/services/identity-tokens/identity-token-service-wrapper.js +3 -4
- package/core/server/services/limits.js +17 -1
- package/core/server/services/member-welcome-emails/service.js +1 -1
- package/core/server/services/members/import-export/index.js +5 -4
- package/core/server/services/members/members-api/controllers/router-controller.js +7 -2
- package/core/server/services/members/members-api/controllers/well-known-controller.js +2 -1
- package/core/server/services/members/members-api/repositories/event-repository.js +4 -0
- package/core/server/services/members/members-api/services/member-bread-service.js +15 -12
- package/core/server/services/members/members-api/services/token-service.js +11 -12
- package/core/server/services/members/middleware.js +9 -2
- package/core/server/services/members/request-integrity-token-provider.js +2 -1
- package/core/server/services/members-metafields/access.js +31 -20
- package/core/server/services/members-metafields/actions.js +1 -0
- package/core/server/services/members-metafields/codec.js +9 -2
- package/core/server/services/members-metafields/definitions-service.js +56 -46
- package/core/server/services/members-metafields/index.js +2 -2
- package/core/server/services/members-metafields/models.js +2 -0
- package/core/server/services/members-metafields/queries.js +39 -11
- package/core/server/services/members-metafields/schema.js +2 -0
- package/core/server/services/members-metafields/serializers.js +1 -0
- package/core/server/services/members-metafields/values-service.js +20 -11
- package/core/server/services/mentions/mention-discovery-service.js +1 -1
- package/core/server/services/mentions/mention-sending-service.js +1 -1
- package/core/server/services/mentions/mention.js +1 -1
- package/core/server/services/oembed/oembed-service.js +36 -11
- package/core/server/services/posts/post-scheduling.js +20 -0
- package/core/server/services/staff/staff-service-emails.js +5 -1
- package/core/server/services/stats/stats-service.js +12 -3
- package/core/server/services/tier-checkout-config/service.js +17 -1
- package/core/server/services/tinybird/tinybird-service.js +1 -0
- package/core/server/services/tinybird-sync/get-ingest-config.js +39 -0
- package/core/server/services/tinybird-sync/index.js +28 -0
- package/core/server/services/tinybird-sync/sync-table-to-tinybird.js +149 -0
- package/core/server/services/tinybird-sync/tinybird-sync-service.js +62 -0
- package/core/server/web/api/endpoints/admin/routes.js +33 -34
- package/core/server/web/well-known.js +12 -16
- package/core/shared/config/defaults.json +1 -2
- package/core/shared/{flush-logs.js → flush.js} +7 -3
- package/core/shared/labs.js +2 -0
- package/core/shared/timing-safe-string-equal.js +26 -0
- package/package.json +42 -42
- package/patches/@elastic__elasticsearch@8.19.2.patch +67 -0
- package/patches/juice@11.1.1.patch +46 -0
- package/pnpm-lock.yaml +457 -1391
- package/pnpm-workspace.yaml +34 -21
- package/scripts/prune.mts +70 -3
- package/components/tryghost-kg-lexical-html-renderer-1.5.0.tgz +0 -0
- package/core/built/admin/assets/Combination-B0l4MKVh.js +0 -41
- package/core/built/admin/assets/RadialBarChart-JAKoS4KT.js +0 -1
- package/core/built/admin/assets/_baseAssignValue-C_vooEQc.js +0 -1
- package/core/built/admin/assets/about-C1C3s5-g.js +0 -1
- package/core/built/admin/assets/accordion-CxGsDKwa.js +0 -1
- package/core/built/admin/assets/account-migration-CbUhW6gk.js +0 -1
- package/core/built/admin/assets/action-list-C4v0-du8.js +0 -1
- package/core/built/admin/assets/add-integration-modal-BT_onDJy.js +0 -1
- package/core/built/admin/assets/add-newsletter-modal-Cx1kQpiY.js +0 -1
- package/core/built/admin/assets/add-recommendation-modal-B5nvAhvr.js +0 -1
- package/core/built/admin/assets/analytics-DjoJWPI7.js +0 -1
- package/core/built/admin/assets/announcement-bar-modal-Dwd0EGFP.js +0 -1
- package/core/built/admin/assets/api-keys-BoeacM-s.js +0 -1
- package/core/built/admin/assets/automated-emails-BLesE41L.js +0 -1
- package/core/built/admin/assets/automations-BN4u3GR8.js +0 -1
- package/core/built/admin/assets/automations-C-ZTUwW3.js +0 -1
- package/core/built/admin/assets/avatar-flipboard-C6Kj3Awu.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-vzh-oPXL.js +0 -1
- package/core/built/admin/assets/box-CdfQAP_F.js +0 -1
- package/core/built/admin/assets/brand-icon-CrIGOA3Z.js +0 -1
- package/core/built/admin/assets/breadcrumb-CaLk2b7D.js +0 -1
- package/core/built/admin/assets/build-CsiH26uS.js +0 -1
- package/core/built/admin/assets/button-Dvcv1QSR.js +0 -1
- package/core/built/admin/assets/calendar-Bl9RLcZX.js +0 -1
- package/core/built/admin/assets/card--VNbfgo3.js +0 -1
- package/core/built/admin/assets/chart-helpers-FHywU0pj.js +0 -1
- package/core/built/admin/assets/checkbox-BtayFtjg.js +0 -1
- package/core/built/admin/assets/chunk.524.e6975095fccdf22d90f8.js +0 -32
- package/core/built/admin/assets/code-editor-view-C3ZfoF1X.js +0 -1
- package/core/built/admin/assets/code-editor-view-CAyRWy1s.js +0 -1
- package/core/built/admin/assets/color-picker-G4kGR7rp.js +0 -3
- package/core/built/admin/assets/color-picker-field-DQFVTNnT.js +0 -1
- package/core/built/admin/assets/combobox-BnYzgEB4.js +0 -1
- package/core/built/admin/assets/command-C_vyTikI.js +0 -1
- package/core/built/admin/assets/comments-aBrxfnZf.js +0 -1
- package/core/built/admin/assets/components-CwL6a6As-B0E0-NBJ.js +0 -1
- package/core/built/admin/assets/confirmation-context-DwXX_Y5h.js +0 -1
- package/core/built/admin/assets/container-BuQG1wuP.js +0 -1
- package/core/built/admin/assets/content-api-modal-D2G0nJP6.js +0 -1
- package/core/built/admin/assets/context-menu-DOVB6yaz.js +0 -1
- package/core/built/admin/assets/copy-field-DCJwh9qf.js +0 -1
- package/core/built/admin/assets/create-ghost-browse-value-source-5C53jJaX.js +0 -1
- package/core/built/admin/assets/custom-field-type-option-BAuW0F-E.js +0 -1
- package/core/built/admin/assets/custom-integration-modal-AbJGVyKc.js +0 -1
- package/core/built/admin/assets/data-list-CA2jYGPq.js +0 -1
- package/core/built/admin/assets/date-range-select-BY3K-ukj.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +0 -2
- package/core/built/admin/assets/detail-page-Dnv-CdR1.js +0 -1
- package/core/built/admin/assets/dirty-confirm-dialog-DVPuGz3U.js +0 -1
- package/core/built/admin/assets/disabled-sources-indicator-Cy7Zp4c8.js +0 -1
- package/core/built/admin/assets/dist-4m6pHdc0.js +0 -23
- package/core/built/admin/assets/dist-8YJUlf3B.js +0 -1
- package/core/built/admin/assets/dist-CZgIBXQN.js +0 -1
- package/core/built/admin/assets/dist-CiHx7vA5.js +0 -6
- package/core/built/admin/assets/dist-DIC8yz5C.js +0 -1
- package/core/built/admin/assets/dist-Dcsslyo72.js +0 -1
- package/core/built/admin/assets/dist-Dgt2cr6a.js +0 -1
- package/core/built/admin/assets/dist-ECAUrdGc.js +0 -1
- package/core/built/admin/assets/dist-JLOy8o0Q.js +0 -1
- package/core/built/admin/assets/dist-Ndy-PuGN.js +0 -1
- package/core/built/admin/assets/dist-Z97pCNqS.js +0 -11
- package/core/built/admin/assets/domain-Dl61QGuk.js +0 -1
- package/core/built/admin/assets/dropzone-Dtz5Rmjt.js +0 -5
- package/core/built/admin/assets/edit-profile-DNJSMDwm.js +0 -1
- package/core/built/admin/assets/editor-DbAen9zf.js +0 -8
- package/core/built/admin/assets/editor-screen-BFWThIai.js +0 -26
- package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +0 -1
- package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +0 -1
- package/core/built/admin/assets/empty-indicator-D9QdpuNX.js +0 -1
- package/core/built/admin/assets/en-B1jX3WMs.js +0 -1
- package/core/built/admin/assets/esm-CXo5SEPy.js +0 -2
- package/core/built/admin/assets/explore-nnRr1Fja.js +0 -1
- package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +0 -1
- package/core/built/admin/assets/feature-image-placeholder-BrIHmPs8.js +0 -1
- package/core/built/admin/assets/feed-BNUcNu-W.js +0 -1
- package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +0 -1
- package/core/built/admin/assets/field-C93_Mg6j.js +0 -1
- package/core/built/admin/assets/filter-bar-Da1qxybu.js +0 -1
- package/core/built/admin/assets/filter-sources-CGJb4C5r.js +0 -1
- package/core/built/admin/assets/filters--kKP-EC8.js +0 -1
- package/core/built/admin/assets/filters-DxA_a4FP.js +0 -1
- package/core/built/admin/assets/first-promoter-modal-BYDtrz2S.js +0 -1
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +0 -1
- package/core/built/admin/assets/framework-provider-DqI25epG.js +0 -4
- package/core/built/admin/assets/gift-link-modal-B7u5bD4e.js +0 -1
- package/core/built/admin/assets/global-data-context-gAMDH9u1.js +0 -1
- package/core/built/admin/assets/grid-Dj29PY05.js +0 -1
- package/core/built/admin/assets/growth-Cd1uO9d2.js +0 -1
- package/core/built/admin/assets/growth-aG32xfdE.js +0 -3
- package/core/built/admin/assets/heading-Dh5SFVjL.js +0 -1
- package/core/built/admin/assets/history-modal-Df8lW8h-.js +0 -1
- package/core/built/admin/assets/hooks-Cy_-oZ4o.js +0 -2
- package/core/built/admin/assets/html-field-DA4eU7eq.js +0 -1
- package/core/built/admin/assets/iframe-buffering-B2OKJzbz.js +0 -1
- package/core/built/admin/assets/images-KXmyO3Ss.js +0 -1
- package/core/built/admin/assets/index-BHHXtR5C.css +0 -2
- package/core/built/admin/assets/index-CgMCwsxN.js +0 -4
- package/core/built/admin/assets/index.es-CY6-yuw9.js +0 -1
- package/core/built/admin/assets/inline-BWSs_VzR.js +0 -1
- package/core/built/admin/assets/input-group-BE8rM2y1.js +0 -1
- package/core/built/admin/assets/integration-header-Bm6IDb1A.js +0 -1
- package/core/built/admin/assets/invite-user-modal-B4CuNcx4.js +0 -1
- package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +0 -2
- package/core/built/admin/assets/kpi-card-B21aToe8.js +0 -1
- package/core/built/admin/assets/kpi-card-pz6Wv4Ae.js +0 -1
- package/core/built/admin/assets/kpi-helpers-Dq5jelmP.js +0 -1
- package/core/built/admin/assets/kpi-tabs-DEZHpKUt.js +0 -1
- package/core/built/admin/assets/label-OLCzze8N.js +0 -1
- package/core/built/admin/assets/label-picker-BigOvMPV.js +0 -1
- package/core/built/admin/assets/labels-Dr0SgUQD.js +0 -1
- package/core/built/admin/assets/layout-DUTL8SH5.js +0 -1
- package/core/built/admin/assets/lib-7QPTI0FS.js +0 -1
- package/core/built/admin/assets/limit-service-BhiEvqcP.js +0 -20
- package/core/built/admin/assets/link-helpers-BRAg9SCj.js +0 -1
- package/core/built/admin/assets/links-BDHPTlyj.js +0 -1
- package/core/built/admin/assets/list-page-BucXJ0hi.js +0 -1
- package/core/built/admin/assets/luxon-D1RVjjpq.js +0 -1
- package/core/built/admin/assets/member-custom-fields-TRTHCAz9.js +0 -1
- package/core/built/admin/assets/member-detail-b6dRwc3C.js +0 -1
- package/core/built/admin/assets/members-Czt5lJSc.js +0 -4
- package/core/built/admin/assets/modal-page-xCivTMvI.js +0 -1
- package/core/built/admin/assets/moderation-ZWefD9uH.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-CT13MTo-.js +0 -1
- package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +0 -1
- package/core/built/admin/assets/newsletter-5VYW4RyJ.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +0 -1
- package/core/built/admin/assets/newsletter-emails-DZH6I-PY.js +0 -1
- package/core/built/admin/assets/newsletters-DOC9KBcX.js +0 -1
- package/core/built/admin/assets/note-DIV-Pojr.js +0 -1
- package/core/built/admin/assets/notifications-s20-H49V.js +0 -1
- package/core/built/admin/assets/nql-lang-CaWrLesS.js +0 -19
- package/core/built/admin/assets/offers-container-modal-BmG5M5Tv.js +0 -1
- package/core/built/admin/assets/onboarding-CUuy9unR.js +0 -1
- package/core/built/admin/assets/onboarding-pXyct0Jm.js +0 -1
- package/core/built/admin/assets/onboarding-route-CK4pcXoR.js +0 -1
- package/core/built/admin/assets/overview-CaPsciMs.js +0 -1
- package/core/built/admin/assets/overview-a8GfcsKX.js +0 -1
- package/core/built/admin/assets/page-header-DM_KyoFI.js +0 -1
- package/core/built/admin/assets/pagemenu-vgZVUVKR.js +0 -1
- package/core/built/admin/assets/pages-route-BzKZYdV5.js +0 -1
- package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +0 -10
- package/core/built/admin/assets/pintura-modal-DExCF1ii.js +0 -1
- package/core/built/admin/assets/portal-frame-Cqanidq4.js +0 -1
- package/core/built/admin/assets/portal-modal-oinBgA27.js +0 -1
- package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +0 -1
- package/core/built/admin/assets/post-analytics-context-D0Mw-Pmv.js +0 -1
- package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +0 -1
- package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +0 -1
- package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +0 -1
- package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +0 -2
- package/core/built/admin/assets/posts-route-9F--xdIb.js +0 -1
- package/core/built/admin/assets/preferences--vNubsqD.js +0 -5
- package/core/built/admin/assets/preview-chrome-BljUBlOk.js +0 -1
- package/core/built/admin/assets/preview-modal-YYbzlYdO.js +0 -1
- package/core/built/admin/assets/profile-BllKV3dR.js +0 -1
- package/core/built/admin/assets/prop-types-DeUPn3oD.js +0 -1
- package/core/built/admin/assets/radio-group-DL8GI8rt.js +0 -1
- package/core/built/admin/assets/react-Bb3IsNbi.js +0 -1
- package/core/built/admin/assets/rolldown-runtime-DAXXjFlN.js +0 -1
- package/core/built/admin/assets/router-provider-BSvTXgZY.js +0 -1
- package/core/built/admin/assets/select-v5YbA3Mw.js +0 -1
- package/core/built/admin/assets/settings-PEsZupw1.js +0 -4
- package/core/built/admin/assets/settings-breadcrumbs-NwPnCTC7.js +0 -1
- package/core/built/admin/assets/settings-u_s1CRkr.js +0 -1
- package/core/built/admin/assets/share-modal-SskCmVGL.js +0 -1
- package/core/built/admin/assets/skeleton-Ce9GgUpf.js +0 -1
- package/core/built/admin/assets/slack-modal-XxSJiYgo.js +0 -1
- package/core/built/admin/assets/sort-button-Cx1KtINE.js +0 -1
- package/core/built/admin/assets/source-icon-Bdp9Im_5.js +0 -1
- package/core/built/admin/assets/stack-B2eszIiq.js +0 -1
- package/core/built/admin/assets/stats-view-W2g6Jsd-.js +0 -1
- package/core/built/admin/assets/step-1-BQYzvBzr.js +0 -1
- package/core/built/admin/assets/step-2-xES32xJV.js +0 -1
- package/core/built/admin/assets/step-3-DA_XK5kW.js +0 -2
- package/core/built/admin/assets/stripe-button-CVsLHelt.js +0 -1
- package/core/built/admin/assets/stripe-connect-modal-ClmLOMGS.js +0 -1
- package/core/built/admin/assets/switch-CI4gLWqb.js +0 -1
- package/core/built/admin/assets/table-BenqVupI.js +0 -1
- package/core/built/admin/assets/tabs-eBBlxPp8.js +0 -1
- package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +0 -2
- package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +0 -1
- package/core/built/admin/assets/tags-B-kJxCs7.js +0 -1
- package/core/built/admin/assets/testimonials-modal-9Q6fT06V.js +0 -1
- package/core/built/admin/assets/text-BQDSDsKs.js +0 -1
- package/core/built/admin/assets/textarea-DJ1Q5V39.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +0 -1
- package/core/built/admin/assets/toggle-group-CviIkyok.js +0 -1
- package/core/built/admin/assets/topic-filter-I2jCBGxm.js +0 -1
- package/core/built/admin/assets/transistor-modal-p53u3W8y.js +0 -1
- package/core/built/admin/assets/trend-badge-CideVzQd.js +0 -1
- package/core/built/admin/assets/unsplash-modal-DY8UcKcE.js +0 -1
- package/core/built/admin/assets/use-analytics-data-DAIGcr2f.js +0 -1
- package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +0 -1
- package/core/built/admin/assets/use-filterable-api-BVEVMrhZ.js +0 -1
- package/core/built/admin/assets/use-form-vRjI0Kwk.js +0 -1
- package/core/built/admin/assets/use-growth-stats-937CUj6j.js +0 -1
- package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +0 -1
- package/core/built/admin/assets/use-limiter-CohWfzvK.js +0 -2
- package/core/built/admin/assets/use-navigate-with-base-path-BkxcPj5l.js +0 -1
- package/core/built/admin/assets/use-pintura-config-xgytjU35.js +0 -1
- package/core/built/admin/assets/use-pintura-editor-CaV1mbfO.js +0 -1
- package/core/built/admin/assets/use-post-referrers-BCQI7fDg.js +0 -1
- package/core/built/admin/assets/use-query-params-BfzuqbcD.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-CYRhoaxY.js +0 -1
- package/core/built/admin/assets/use-router-history-entry-NOKcd--l.js +0 -1
- package/core/built/admin/assets/use-setting-group-bLKMwoBT.js +0 -1
- package/core/built/admin/assets/use-settings-navigation-B-qrriKD.js +0 -1
- package/core/built/admin/assets/use-simple-pagination-CNPd6Rf6.js +0 -1
- package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +0 -1
- package/core/built/admin/assets/use-tinybird-token-KLne235s.js +0 -1
- package/core/built/admin/assets/use-unsaved-changes-guard-7-ug0JdH.js +0 -1
- package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +0 -1
- package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +0 -1
- package/core/built/admin/assets/virtual-list-CZ3RK2Yf.js +0 -1
- package/core/built/admin/assets/web-ClEJsCAj.js +0 -2
- package/core/built/admin/assets/web-X9rdnrtq.js +0 -1
- package/core/built/admin/assets/zapier-modal-DfVhV17j.js +0 -1
- /package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js.LICENSE.txt → chunk.972.4b8c97f93d66db15e751.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,r as t}from"./react-BXwhMTuc.js";var n=e({DateTime:()=>$,Duration:()=>X,FixedOffsetZone:()=>U,IANAZone:()=>V,Info:()=>Q,Interval:()=>ri,InvalidZone:()=>qn,Settings:()=>W,SystemZone:()=>jn,VERSION:()=>bi,Zone:()=>B});function r(e){let t=Mn.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(`en-US`,{hour12:!1,timeZone:e,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`,second:`2-digit`,era:`short`}),Mn.set(e,t)),t}function i(e,t){let n=e.format(t).replace(/\u200E/g,``),[,r,i,a,o,s,c,l]=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(n);return[a,r,i,o,s,c,l]}function a(e,t){let n=e.formatToParts(t),r=[];for(let e=0;e<n.length;e++){let{type:t,value:i}=n[e],a=Nn[t];t===`era`?r[a]=i:x(a)||(r[a]=parseInt(i,10))}return r}function o(e,t={}){let n=JSON.stringify([e,t]),r=Fn[n];return r||(r=new Intl.ListFormat(e,t),Fn[n]=r),r}function s(e,t={}){let n=JSON.stringify([e,t]),r=In.get(n);return r===void 0&&(r=new Intl.DateTimeFormat(e,t),In.set(n,r)),r}function c(e,t={}){let n=JSON.stringify([e,t]),r=Ln.get(n);return r===void 0&&(r=new Intl.NumberFormat(e,t),Ln.set(n,r)),r}function l(e,t={}){let{base:n,...r}=t,i=JSON.stringify([e,r]),a=Rn.get(i);return a===void 0&&(a=new Intl.RelativeTimeFormat(e,t),Rn.set(i,a)),a}function u(){return zn||(zn=new Intl.DateTimeFormat().resolvedOptions().locale,zn)}function d(e){let t=Bn.get(e);return t===void 0&&(t=new Intl.DateTimeFormat(e).resolvedOptions(),Bn.set(e,t)),t}function f(e){let t=Vn.get(e);if(!t){let n=new Intl.Locale(e);t=`getWeekInfo`in n?n.getWeekInfo():n.weekInfo,`minimalDays`in t||(t={...Gn,...t}),Vn.set(e,t)}return t}function p(e){let t=e.indexOf(`-x-`);t!==-1&&(e=e.substring(0,t));let n=e.indexOf(`-u-`);if(n===-1)return[e];{let t,r;try{t=s(e).resolvedOptions(),r=e}catch{let i=e.substring(0,n);t=s(i).resolvedOptions(),r=i}let{numberingSystem:i,calendar:a}=t;return[r,i,a]}}function m(e,t,n){return n||t?(e.includes(`-u-`)||(e+=`-u`),n&&(e+=`-ca-${n}`),t&&(e+=`-nu-${t}`),e):e}function h(e){let t=[];for(let n=1;n<=12;n++){let r=$.utc(2009,n,1);t.push(e(r))}return t}function ee(e){let t=[];for(let n=1;n<=7;n++){let r=$.utc(2016,11,13+n);t.push(e(r))}return t}function g(e,t,n,r){let i=e.listingMode();return i===`error`?null:i===`en`?n(t):r(t)}function te(e){return e.numberingSystem&&e.numberingSystem!==`latn`?!1:e.numberingSystem===`latn`||!e.locale||e.locale.startsWith(`en`)||d(e.locale).numberingSystem===`latn`}function _(e,t){if(x(e)||e===null)return t;if(e instanceof B)return e;if(_e(e)){let n=e.toLowerCase();return n==="default"?t:n===`local`||n===`system`?jn.instance:n===`utc`||n===`gmt`?U.utcInstance:U.parseSpecifier(n)||V.create(e)}else if(S(e))return U.instance(e);else if(typeof e==`object`&&`offset`in e&&typeof e.offset==`function`)return e;else return new qn(e)}function ne(e){let t=parseInt(e,10);if(isNaN(t)){t=``;for(let n=0;n<e.length;n++){let r=e.charCodeAt(n);if(e[n].search(Jn.hanidec)!==-1)t+=Xn.indexOf(e[n]);else for(let e in Yn){let[n,i]=Yn[e];r>=n&&r<=i&&(t+=r-n)}}return parseInt(t,10)}else return t}function re(){Zn.clear()}function v({numberingSystem:e},t=``){let n=e||`latn`,r=Zn.get(n);r===void 0&&(r=new Map,Zn.set(n,r));let i=r.get(t);return i===void 0&&(i=RegExp(`${Jn[n]}${t}`),r.set(t,i)),i}function y(e,t){return new G(`unit out of range`,`you specified ${t} (of type ${typeof t}) as a ${e}, which is invalid`)}function b(e,t,n){let r=new Date(Date.UTC(e,t-1,n));e<100&&e>=0&&r.setUTCFullYear(r.getUTCFullYear()-1900);let i=r.getUTCDay();return i===0?7:i}function ie(e,t,n){return n+(ke(e)?sr:or)[t-1]}function ae(e,t){let n=ke(e)?sr:or,r=n.findIndex(e=>e<t),i=t-n[r];return{month:r+1,day:i}}function oe(e,t){return(e-t+7)%7+1}function se(e,t=4,n=1){let{year:r,month:i,day:a}=e,o=ie(r,i,a),s=oe(b(r,i,a),n),c=Math.floor((o-s+14-t)/7),l;return c<1?(l=r-1,c=Pe(l,t,n)):c>Pe(r,t,n)?(l=r+1,c=1):l=r,{weekYear:l,weekNumber:c,weekday:s,...Ve(e)}}function ce(e,t=4,n=1){let{weekYear:r,weekNumber:i,weekday:a}=e,o=oe(b(r,1,t),n),s=Ae(r),c=i*7+a-o-7+t,l;c<1?(l=r-1,c+=Ae(l)):c>s?(l=r+1,c-=Ae(r)):l=r;let{month:u,day:d}=ae(l,c);return{year:l,month:u,day:d,...Ve(e)}}function le(e){let{year:t,month:n,day:r}=e;return{year:t,ordinal:ie(t,n,r),...Ve(e)}}function ue(e){let{year:t,ordinal:n}=e,{month:r,day:i}=ae(t,n);return{year:t,month:r,day:i,...Ve(e)}}function de(e,t){if(!x(e.localWeekday)||!x(e.localWeekNumber)||!x(e.localWeekYear)){if(!x(e.weekday)||!x(e.weekNumber)||!x(e.weekYear))throw new P(`Cannot mix locale-based week fields with ISO-based week fields`);return x(e.localWeekday)||(e.weekday=e.localWeekday),x(e.localWeekNumber)||(e.weekNumber=e.localWeekNumber),x(e.localWeekYear)||(e.weekYear=e.localWeekYear),delete e.localWeekday,delete e.localWeekNumber,delete e.localWeekYear,{minDaysInFirstWeek:t.getMinDaysInFirstWeek(),startOfWeek:t.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function fe(e,t=4,n=1){let r=ge(e.weekYear),i=C(e.weekNumber,1,Pe(e.weekYear,t,n)),a=C(e.weekday,1,7);return r?i?a?!1:y(`weekday`,e.weekday):y(`week`,e.weekNumber):y(`weekYear`,e.weekYear)}function pe(e){let t=ge(e.year),n=C(e.ordinal,1,Ae(e.year));return t?n?!1:y(`ordinal`,e.ordinal):y(`year`,e.year)}function me(e){let t=ge(e.year),n=C(e.month,1,12),r=C(e.day,1,je(e.year,e.month));return t?n?r?!1:y(`day`,e.day):y(`month`,e.month):y(`year`,e.year)}function he(e){let{hour:t,minute:n,second:r,millisecond:i}=e,a=C(t,0,23)||t===24&&n===0&&r===0&&i===0,o=C(n,0,59),s=C(r,0,59),c=C(i,0,999);return a?o?s?c?!1:y(`millisecond`,i):y(`second`,r):y(`minute`,n):y(`hour`,t)}function x(e){return e===void 0}function S(e){return typeof e==`number`}function ge(e){return typeof e==`number`&&e%1==0}function _e(e){return typeof e==`string`}function ve(e){return Object.prototype.toString.call(e)===`[object Date]`}function ye(){try{return typeof Intl<`u`&&!!Intl.RelativeTimeFormat}catch{return!1}}function be(){try{return typeof Intl<`u`&&!!Intl.Locale&&(`weekInfo`in Intl.Locale.prototype||`getWeekInfo`in Intl.Locale.prototype)}catch{return!1}}function xe(e){return Array.isArray(e)?e:[e]}function Se(e,t,n){if(e.length!==0)return e.reduce((e,r)=>{let i=[t(r),r];return e&&n(e[0],i[0])===e[0]?e:i},null)[1]}function Ce(e,t){return t.reduce((t,n)=>(t[n]=e[n],t),{})}function we(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Te(e){if(e==null)return null;if(typeof e!=`object`)throw new F(`Week settings must be an object`);if(!C(e.firstDay,1,7)||!C(e.minimalDays,1,7)||!Array.isArray(e.weekend)||e.weekend.some(e=>!C(e,1,7)))throw new F(`Invalid week settings`);return{firstDay:e.firstDay,minimalDays:e.minimalDays,weekend:Array.from(e.weekend)}}function C(e,t,n){return ge(e)&&e>=t&&e<=n}function Ee(e,t){return e-t*Math.floor(e/t)}function w(e,t=2){let n=e<0,r;return r=n?`-`+(``+-e).padStart(t,`0`):(``+e).padStart(t,`0`),r}function T(e){if(!(x(e)||e===null||e===``))return parseInt(e,10)}function E(e){if(!(x(e)||e===null||e===``))return parseFloat(e)}function De(e){if(!(x(e)||e===null||e===``)){let t=parseFloat(`0.`+e)*1e3;return Math.floor(t)}}function Oe(e,t,n=`round`){let r=10**t;switch(n){case`expand`:return e>0?Math.ceil(e*r)/r:Math.floor(e*r)/r;case`trunc`:return Math.trunc(e*r)/r;case`round`:return Math.round(e*r)/r;case`floor`:return Math.floor(e*r)/r;case`ceil`:return Math.ceil(e*r)/r;default:throw RangeError(`Value rounding ${n} is out of range`)}}function ke(e){return e%4==0&&(e%100!=0||e%400==0)}function Ae(e){return ke(e)?366:365}function je(e,t){let n=Ee(t-1,12)+1,r=e+(t-n)/12;return n===2?ke(r)?29:28:[31,null,31,30,31,30,31,31,30,31,30,31][n-1]}function Me(e){let t=Date.UTC(e.year,e.month-1,e.day,e.hour,e.minute,e.second,e.millisecond);return e.year<100&&e.year>=0&&(t=new Date(t),t.setUTCFullYear(e.year,e.month-1,e.day)),+t}function Ne(e,t,n){return-oe(b(e,1,t),n)+t-1}function Pe(e,t=4,n=1){let r=Ne(e,t,n),i=Ne(e+1,t,n);return(Ae(e)-r+i)/7}function Fe(e){return e>99?e:e>W.twoDigitCutoffYear?1900+e:2e3+e}function Ie(e,t,n,r=null){let i=new Date(e),a={hourCycle:`h23`,year:`numeric`,month:`2-digit`,day:`2-digit`,hour:`2-digit`,minute:`2-digit`};r&&(a.timeZone=r);let o={timeZoneName:t,...a},s=new Intl.DateTimeFormat(n,o).formatToParts(i).find(e=>e.type.toLowerCase()===`timezonename`);return s?s.value:null}function Le(e,t){let n=parseInt(e,10);Number.isNaN(n)&&(n=0);let r=parseInt(t,10)||0,i=n<0||Object.is(n,-0)?-r:r;return n*60+i}function Re(e){let t=Number(e);if(typeof e==`boolean`||e===``||!Number.isFinite(t))throw new F(`Invalid unit value ${e}`);return t}function ze(e,t){let n={};for(let r in e)if(we(e,r)){let i=e[r];if(i==null)continue;n[t(r)]=Re(i)}return n}function Be(e,t){let n=Math.trunc(Math.abs(e/60)),r=Math.trunc(Math.abs(e%60)),i=e>=0?`+`:`-`;switch(t){case`short`:return`${i}${w(n,2)}:${w(r,2)}`;case`narrow`:return`${i}${n}${r>0?`:${r}`:``}`;case`techie`:return`${i}${w(n,2)}${w(r,2)}`;default:throw RangeError(`Value format ${t} is out of range for property format`)}}function Ve(e){return Ce(e,[`hour`,`minute`,`second`,`millisecond`])}function He(e){switch(e){case`narrow`:return[...ur];case`short`:return[...lr];case`long`:return[...cr];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`,`8`,`9`,`10`,`11`,`12`];case`2-digit`:return[`01`,`02`,`03`,`04`,`05`,`06`,`07`,`08`,`09`,`10`,`11`,`12`];default:return null}}function Ue(e){switch(e){case`narrow`:return[...pr];case`short`:return[...fr];case`long`:return[...dr];case`numeric`:return[`1`,`2`,`3`,`4`,`5`,`6`,`7`];default:return null}}function We(e){switch(e){case`narrow`:return[..._r];case`short`:return[...gr];case`long`:return[...hr];default:return null}}function Ge(e){return mr[e.hour<12?0:1]}function Ke(e,t){return Ue(t)[e.weekday-1]}function qe(e,t){return He(t)[e.month-1]}function Je(e,t){return We(t)[e.year<0?0:1]}function Ye(e,t,n=`always`,r=!1){let i={years:[`year`,`yr.`],quarters:[`quarter`,`qtr.`],months:[`month`,`mo.`],weeks:[`week`,`wk.`],days:[`day`,`day`,`days`],hours:[`hour`,`hr.`],minutes:[`minute`,`min.`],seconds:[`second`,`sec.`]},a=[`hours`,`minutes`,`seconds`].indexOf(e)===-1;if(n===`auto`&&a){let n=e===`days`;switch(t){case 1:return n?`tomorrow`:`next ${i[e][0]}`;case-1:return n?`yesterday`:`last ${i[e][0]}`;case 0:return n?`today`:`this ${i[e][0]}`}}let o=Object.is(t,-0)||t<0,s=Math.abs(t),c=s===1,l=i[e],u=r?c?l[1]:l[2]||l[1]:c?i[e][0]:e;return o?`${s} ${u} ago`:`in ${s} ${u}`}function Xe(e,t){let n=``;for(let r of e)r.literal?n+=r.val:n+=t(r.val);return n}function D(...e){let t=e.reduce((e,t)=>e+t.source,``);return RegExp(`^${t}$`)}function O(...e){return t=>e.reduce(([e,n,r],i)=>{let[a,o,s]=i(t,r);return[{...e,...a},o||n,s]},[{},null,1]).slice(0,2)}function Ze(e,...t){if(e==null)return[null,null];for(let[n,r]of t){let t=n.exec(e);if(t)return r(t)}return[null,null]}function Qe(...e){return(t,n)=>{let r={},i;for(i=0;i<e.length;i++)r[e[i]]=T(t[n+i]);return[r,null,n+i]}}function $e(e,t,n){let r=e[t];return x(r)?n:T(r)}function et(e,t){return[{year:$e(e,t),month:$e(e,t+1,1),day:$e(e,t+2,1)},null,t+3]}function tt(e,t){return[{hours:$e(e,t,0),minutes:$e(e,t+1,0),seconds:$e(e,t+2,0),milliseconds:De(e[t+3])},null,t+4]}function nt(e,t){let n=!e[t]&&!e[t+1],r=Le(e[t+1],e[t+2]);return[{},n?null:U.instance(r),t+3]}function rt(e,t){return[{},e[t]?V.create(e[t]):null,t+1]}function it(e){let[t,n,r,i,a,o,s,c,l]=e,u=t[0]===`-`,d=c&&c[0]===`-`,f=(e,t=!1)=>e!==void 0&&(t||e&&u)?-e:e;return[{years:f(E(n)),months:f(E(r)),weeks:f(E(i)),days:f(E(a)),hours:f(E(o)),minutes:f(E(s)),seconds:f(E(c),c===`-0`),milliseconds:f(De(l),d)}]}function at(e,t,n,r,i,a,o){let s={year:t.length===2?Fe(T(t)):T(t),month:lr.indexOf(n)+1,day:T(r),hour:T(i),minute:T(a)};return o&&(s.second=T(o)),e&&(s.weekday=e.length>3?dr.indexOf(e)+1:fr.indexOf(e)+1),s}function ot(e){let[,t,n,r,i,a,o,s,c,l,u,d]=e,f=at(t,i,r,n,a,o,s),p;return p=c?Fr[c]:l?0:Le(u,d),[f,new U(p)]}function st(e){return e.replace(/\([^()]*\)|[\n\t]/g,` `).replace(/(\s\s+)/g,` `).trim()}function ct(e){let[,t,n,r,i,a,o,s]=e;return[at(t,i,r,n,a,o,s),U.utcInstance]}function lt(e){let[,t,n,r,i,a,o,s]=e;return[at(t,s,n,r,i,a,o),U.utcInstance]}function ut(e){return Ze(e,[Br,Wr],[Vr,Gr],[Hr,Kr],[Ur,qr])}function dt(e){return Ze(st(e),[Ir,ot])}function ft(e){return Ze(e,[Lr,ct],[Rr,ct],[zr,lt])}function pt(e){return Ze(e,[Pr,it])}function mt(e){return Ze(e,[Nr,Jr])}function ht(e){return Ze(e,[Yr,Wr],[Xr,Zr])}function k(e,t,n=!1){let r={values:n?t.values:{...e.values,...t.values||{}},loc:e.loc.clone(t.loc),conversionAccuracy:t.conversionAccuracy||e.conversionAccuracy,matrix:t.matrix||e.matrix};return new X(r)}function gt(e,t){let n=t.milliseconds??0;for(let r of ni.slice(1))t[r]&&(n+=t[r]*e[r].milliseconds);return n}function _t(e,t){let n=gt(e,t)<0?-1:1;Y.reduceRight((r,i)=>{if(x(t[i]))return r;if(r){let a=t[r]*n,o=e[i][r],s=Math.floor(a/o);t[i]+=s*n,t[r]-=s*o*n}return i},null),Y.reduce((n,r)=>{if(x(t[r]))return n;if(n){let i=t[n]%1;t[n]-=i,t[r]+=i*e[n][r]}return r},null)}function vt(e){let t={};for(let[n,r]of Object.entries(e))r!==0&&(t[n]=r);return t}function yt(e,t){return!e||!e.isValid?ri.invalid(`missing or invalid start`):!t||!t.isValid?ri.invalid(`missing or invalid end`):t<e?ri.invalid(`end before start`,`The end of an interval must be after its start, but you had start=${e.toISO()} and end=${t.toISO()}`):null}function bt(e,t){let n=e=>e.toUTC(0,{keepLocalTime:!0}).startOf(`day`).valueOf(),r=n(t)-n(e);return Math.floor(X.fromMillis(r).as(`days`))}function xt(e,t,n){let r=[[`years`,(e,t)=>t.year-e.year],[`quarters`,(e,t)=>t.quarter-e.quarter+(t.year-e.year)*4],[`months`,(e,t)=>t.month-e.month+(t.year-e.year)*12],[`weeks`,(e,t)=>{let n=bt(e,t);return(n-n%7)/7}],[`days`,bt]],i={},a=e,o,s;for(let[c,l]of r)n.indexOf(c)>=0&&(o=c,i[c]=l(e,t),s=a.plus(i),s>t?(i[c]--,e=a.plus(i),e>t&&(s=e,i[c]--,e=a.plus(i))):e=s);return[e,i,s,o]}function St(e,t,n,r){let[i,a,o,s]=xt(e,t,n),c=t-i,l=n.filter(e=>[`hours`,`minutes`,`seconds`,`milliseconds`].indexOf(e)>=0);l.length===0&&(o<t&&(o=i.plus({[s]:1})),o!==i&&(a[s]=(a[s]||0)+c/(o-i)));let u=X.fromObject(a,r);return l.length>0?X.fromMillis(c,r).shiftTo(...l).plus(u):u}function A(e,t=e=>e){return{regex:e,deser:([e])=>t(ne(e))}}function Ct(e){return e.replace(/\./g,`\\.?`).replace(oi,ai)}function wt(e){return e.replace(/\./g,``).replace(oi,` `).toLowerCase()}function j(e,t){return e===null?null:{regex:RegExp(e.map(Ct).join(`|`)),deser:([n])=>e.findIndex(e=>wt(n)===wt(e))+t}}function Tt(e,t){return{regex:e,deser:([,e,t])=>Le(e,t),groups:t}}function Et(e){return{regex:e,deser:([e])=>e}}function Dt(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,`\\$&`)}function Ot(e,t){let n=v(t),r=v(t,`{2}`),i=v(t,`{3}`),a=v(t,`{4}`),o=v(t,`{6}`),s=v(t,`{1,2}`),c=v(t,`{1,3}`),l=v(t,`{1,6}`),u=v(t,`{1,9}`),d=v(t,`{2,4}`),f=v(t,`{4,6}`),p=e=>({regex:RegExp(Dt(e.val)),deser:([e])=>e,literal:!0}),m=(m=>{if(e.literal)return p(m);switch(m.val){case`G`:return j(t.eras(`short`),0);case`GG`:return j(t.eras(`long`),0);case`y`:return A(l);case`yy`:return A(d,Fe);case`yyyy`:return A(a);case`yyyyy`:return A(f);case`yyyyyy`:return A(o);case`M`:return A(s);case`MM`:return A(r);case`MMM`:return j(t.months(`short`,!0),1);case`MMMM`:return j(t.months(`long`,!0),1);case`L`:return A(s);case`LL`:return A(r);case`LLL`:return j(t.months(`short`,!1),1);case`LLLL`:return j(t.months(`long`,!1),1);case`d`:return A(s);case`dd`:return A(r);case`o`:return A(c);case`ooo`:return A(i);case`HH`:return A(r);case`H`:return A(s);case`hh`:return A(r);case`h`:return A(s);case`mm`:return A(r);case`m`:return A(s);case`q`:return A(s);case`qq`:return A(r);case`s`:return A(s);case`ss`:return A(r);case`S`:return A(c);case`SSS`:return A(i);case`u`:return Et(u);case`uu`:return Et(s);case`uuu`:return A(n);case`a`:return j(t.meridiems(),0);case`kkkk`:return A(a);case`kk`:return A(d,Fe);case`W`:return A(s);case`WW`:return A(r);case`E`:case`c`:return A(n);case`EEE`:return j(t.weekdays(`short`,!1),1);case`EEEE`:return j(t.weekdays(`long`,!1),1);case`ccc`:return j(t.weekdays(`short`,!0),1);case`cccc`:return j(t.weekdays(`long`,!0),1);case`Z`:case`ZZ`:return Tt(RegExp(`([+-]${s.source})(?::(${r.source}))?`),2);case`ZZZ`:return Tt(RegExp(`([+-]${s.source})(${r.source})?`),2);case`z`:return Et(/[a-z_+-/]{1,256}?/i);case` `:return Et(/[^\S\n\r]/);default:return p(m)}})(e)||{invalidReason:ii};return m.token=e,m}function kt(e,t,n){let{type:r,value:i}=e;if(r===`literal`){let e=/^\s+$/.test(i);return{literal:!e,val:e?` `:i}}let a=t[r],o=r;r===`hour`&&(o=t.hour12==null?t.hourCycle==null?n.hour12?`hour12`:`hour24`:t.hourCycle===`h11`||t.hourCycle===`h12`?`hour12`:`hour24`:t.hour12?`hour12`:`hour24`);let s=si[o];if(typeof s==`object`&&(s=s[a]),s)return{literal:!1,val:s}}function At(e){return[`^${e.map(e=>e.regex).reduce((e,t)=>`${e}(${t.source})`,``)}$`,e]}function jt(e,t,n){let r=e.match(t);if(r){let e={},t=1;for(let i in n)if(we(n,i)){let a=n[i],o=a.groups?a.groups+1:1;!a.literal&&a.token&&(e[a.token.val[0]]=a.deser(r.slice(t,t+o))),t+=o}return[r,e]}else return[r,{}]}function Mt(e){let t=e=>{switch(e){case`S`:return`millisecond`;case`s`:return`second`;case`m`:return`minute`;case`h`:case`H`:return`hour`;case`d`:return`day`;case`o`:return`ordinal`;case`L`:case`M`:return`month`;case`y`:return`year`;case`E`:case`c`:return`weekday`;case`W`:return`weekNumber`;case`k`:return`weekYear`;case`q`:return`quarter`;default:return null}},n=null,r;return x(e.z)||(n=V.create(e.z)),x(e.Z)||(n||=new U(e.Z),r=e.Z),x(e.q)||(e.M=(e.q-1)*3+1),x(e.h)||(e.h<12&&e.a===1?e.h+=12:e.h===12&&e.a===0&&(e.h=0)),e.G===0&&e.y&&(e.y=-e.y),x(e.u)||(e.S=De(e.u)),[Object.keys(e).reduce((n,r)=>{let i=t(r);return i&&(n[i]=e[r]),n},{}),n,r]}function Nt(){return ci||=$.fromMillis(1555555555555),ci}function Pt(e,t){if(e.literal)return e;let n=Rt(K.macroTokenToFormatOpts(e.val),t);return n==null||n.includes(void 0)?e:n}function Ft(e,t){return Array.prototype.concat(...e.map(e=>Pt(e,t)))}function It(e,t,n){return new li(e,n).explainFromTokens(t)}function Lt(e,t,n){let{result:r,zone:i,specificOffset:a,invalidReason:o}=It(e,t,n);return[r,i,a,o]}function Rt(e,t){if(!e)return null;let n=K.create(t,e).dtFormatter(Nt()),r=n.formatToParts(),i=n.resolvedOptions();return r.map(t=>kt(t,e,i))}function zt(e){return new G(`unsupported zone`,`the zone "${e.name}" is not supported`)}function Bt(e){return e.weekData===null&&(e.weekData=se(e.c)),e.weekData}function Vt(e){return e.localWeekData===null&&(e.localWeekData=se(e.c,e.loc.getMinDaysInFirstWeek(),e.loc.getStartOfWeek())),e.localWeekData}function M(e,t){let n={ts:e.ts,zone:e.zone,c:e.c,o:e.o,loc:e.loc,invalid:e.invalid};return new $({...n,...t,old:n})}function Ht(e,t,n){let r=e-t*60*1e3,i=n.offset(r);if(t===i)return[r,t];r-=(i-t)*60*1e3;let a=n.offset(r);return i===a?[r,i]:[e-Math.min(i,a)*60*1e3,Math.max(i,a)]}function Ut(e,t){e+=t*60*1e3;let n=new Date(e);return{year:n.getUTCFullYear(),month:n.getUTCMonth()+1,day:n.getUTCDate(),hour:n.getUTCHours(),minute:n.getUTCMinutes(),second:n.getUTCSeconds(),millisecond:n.getUTCMilliseconds()}}function Wt(e,t,n){return Ht(Me(e),t,n)}function Gt(e,t){let n=e.o,r=e.c.year+Math.trunc(t.years),i=e.c.month+Math.trunc(t.months)+Math.trunc(t.quarters)*3,a={...e.c,year:r,month:i,day:Math.min(e.c.day,je(r,i))+Math.trunc(t.days)+Math.trunc(t.weeks)*7},o=X.fromObject({years:t.years-Math.trunc(t.years),quarters:t.quarters-Math.trunc(t.quarters),months:t.months-Math.trunc(t.months),weeks:t.weeks-Math.trunc(t.weeks),days:t.days-Math.trunc(t.days),hours:t.hours,minutes:t.minutes,seconds:t.seconds,milliseconds:t.milliseconds}).as(`milliseconds`),[s,c]=Ht(Me(a),n,e.zone);return o!==0&&(s+=o,c=e.zone.offset(s)),{ts:s,o:c}}function Kt(e,t,n,r,i,a){let{setZone:o,zone:s}=n;if(e&&Object.keys(e).length!==0||t){let r=t||s,i=$.fromObject(e,{...n,zone:r,specificOffset:a});return o?i:i.setZone(s)}else return $.invalid(new G(`unparsable`,`the input "${i}" can't be parsed as ${r}`))}function qt(e,t,n=!0){return e.isValid?K.create(H.create(`en-US`),{allowZ:n,forceSimple:!0}).formatDateTimeFromString(e,t):null}function Jt(e,t,n){let r=e.c.year>9999||e.c.year<0,i=``;if(r&&e.c.year>=0&&(i+=`+`),i+=w(e.c.year,r?6:4),n===`year`)return i;if(t){if(i+=`-`,i+=w(e.c.month),n===`month`)return i;i+=`-`}else if(i+=w(e.c.month),n===`month`)return i;return i+=w(e.c.day),i}function Yt(e,t,n,r,i,a,o){let s=!n||e.c.millisecond!==0||e.c.second!==0,c=``;switch(o){case`day`:case`month`:case`year`:break;default:if(c+=w(e.c.hour),o===`hour`)break;if(t){if(c+=`:`,c+=w(e.c.minute),o===`minute`)break;s&&(c+=`:`,c+=w(e.c.second))}else{if(c+=w(e.c.minute),o===`minute`)break;s&&(c+=w(e.c.second))}if(o===`second`)break;s&&(!r||e.c.millisecond!==0)&&(c+=`.`,c+=w(e.c.millisecond,3))}return i&&(e.isOffsetFixed&&e.offset===0&&!a?c+=`Z`:e.o<0?(c+=`-`,c+=w(Math.trunc(-e.o/60)),c+=`:`,c+=w(Math.trunc(-e.o%60))):(c+=`+`,c+=w(Math.trunc(e.o/60)),c+=`:`,c+=w(Math.trunc(e.o%60)))),a&&(c+=`[`+e.zone.ianaName+`]`),c}function Xt(e){let t={year:`year`,years:`year`,month:`month`,months:`month`,day:`day`,days:`day`,hour:`hour`,hours:`hour`,minute:`minute`,minutes:`minute`,quarter:`quarter`,quarters:`quarter`,second:`second`,seconds:`second`,millisecond:`millisecond`,milliseconds:`millisecond`,weekday:`weekday`,weekdays:`weekday`,weeknumber:`weekNumber`,weeksnumber:`weekNumber`,weeknumbers:`weekNumber`,weekyear:`weekYear`,weekyears:`weekYear`,ordinal:`ordinal`}[e.toLowerCase()];if(!t)throw new sn(e);return t}function Zt(e){switch(e.toLowerCase()){case`localweekday`:case`localweekdays`:return`localWeekday`;case`localweeknumber`:case`localweeknumbers`:return`localWeekNumber`;case`localweekyear`:case`localweekyears`:return`localWeekYear`;default:return Xt(e)}}function Qt(e){if(vi===void 0&&(vi=W.now()),e.type!==`iana`)return e.offset(vi);let t=e.name,n=yi.get(t);return n===void 0&&(n=e.offset(vi),yi.set(t,n)),n}function $t(e,t){let n=_(t.zone,W.defaultZone);if(!n.isValid)return $.invalid(zt(n));let r=H.fromObject(t),i,a;if(x(e.year))i=W.now();else{for(let t of hi)x(e[t])&&(e[t]=fi[t]);let t=me(e)||he(e);if(t)return $.invalid(t);let r=Qt(n);[i,a]=Wt(e,r,n)}return new $({ts:i,zone:n,loc:r,o:a})}function en(e,t,n){let r=x(n.round)?!0:n.round,i=x(n.rounding)?`trunc`:n.rounding,a=(e,a)=>(e=Oe(e,r||n.calendary?0:2,n.calendary?`round`:i),t.loc.clone(n).relFormatter(n).format(e,a)),o=r=>n.calendary?t.hasSame(e,r)?0:t.startOf(r).diff(e.startOf(r),r).get(r):t.diff(e,r).get(r);if(n.unit)return a(o(n.unit),n.unit);for(let e of n.units){let t=o(e);if(Math.abs(t)>=1)return a(t,e)}return a(e>t?-0:0,n.units[n.units.length-1])}function tn(e){let t={},n;return e.length>0&&typeof e[e.length-1]==`object`?(t=e[e.length-1],n=Array.from(e).slice(0,e.length-1)):n=Array.from(e),[t,n]}function nn(e){if($.isDateTime(e))return e;if(e&&e.valueOf&&S(e.valueOf()))return $.fromJSDate(e);if(e&&typeof e==`object`)return $.fromObject(e);throw new F(`Unknown datetime argument: ${e}, of type ${typeof e}`)}var N,rn,an,on,P,sn,F,I,L,R,z,cn,ln,un,dn,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,wn,Tn,En,Dn,On,kn,B,An,jn,Mn,Nn,Pn,V,Fn,In,Ln,Rn,zn,Bn,Vn,Hn,Un,Wn,Gn,H,Kn,U,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr,nr,rr,ir,ar,W,G,or,sr,cr,lr,ur,dr,fr,pr,mr,hr,gr,_r,vr,K,yr,br,xr,Sr,Cr,wr,Tr,Er,Dr,Or,kr,Ar,jr,Mr,Nr,Pr,Fr,Ir,Lr,Rr,zr,Br,Vr,Hr,Ur,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,q,J,ti,Y,ni,X,Z,ri,Q,ii,ai,oi,si,ci,li,ui,di,fi,pi,mi,hi,gi,_i,vi,yi,$,bi,xi=t((()=>{N=class extends Error{},rn=class extends N{constructor(e){super(`Invalid DateTime: ${e.toMessage()}`)}},an=class extends N{constructor(e){super(`Invalid Interval: ${e.toMessage()}`)}},on=class extends N{constructor(e){super(`Invalid Duration: ${e.toMessage()}`)}},P=class extends N{},sn=class extends N{constructor(e){super(`Invalid unit ${e}`)}},F=class extends N{},I=class extends N{constructor(){super(`Zone is an abstract class`)}},L=`numeric`,R=`short`,z=`long`,cn={year:L,month:L,day:L},ln={year:L,month:R,day:L},un={year:L,month:R,day:L,weekday:R},dn={year:L,month:z,day:L},fn={year:L,month:z,day:L,weekday:z},pn={hour:L,minute:L},mn={hour:L,minute:L,second:L},hn={hour:L,minute:L,second:L,timeZoneName:R},gn={hour:L,minute:L,second:L,timeZoneName:z},_n={hour:L,minute:L,hourCycle:`h23`},vn={hour:L,minute:L,second:L,hourCycle:`h23`},yn={hour:L,minute:L,second:L,hourCycle:`h23`,timeZoneName:R},bn={hour:L,minute:L,second:L,hourCycle:`h23`,timeZoneName:z},xn={year:L,month:L,day:L,hour:L,minute:L},Sn={year:L,month:L,day:L,hour:L,minute:L,second:L},Cn={year:L,month:R,day:L,hour:L,minute:L},wn={year:L,month:R,day:L,hour:L,minute:L,second:L},Tn={year:L,month:R,day:L,weekday:R,hour:L,minute:L},En={year:L,month:z,day:L,hour:L,minute:L,timeZoneName:R},Dn={year:L,month:z,day:L,hour:L,minute:L,second:L,timeZoneName:R},On={year:L,month:z,day:L,weekday:z,hour:L,minute:L,timeZoneName:z},kn={year:L,month:z,day:L,weekday:z,hour:L,minute:L,second:L,timeZoneName:z},B=class{get type(){throw new I}get name(){throw new I}get ianaName(){return this.name}get isUniversal(){throw new I}offsetName(e,t){throw new I}formatOffset(e,t){throw new I}offset(e){throw new I}equals(e){throw new I}get isValid(){throw new I}},An=null,jn=class e extends B{static get instance(){return An===null&&(An=new e),An}get type(){return`system`}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Ie(e,t,n)}formatOffset(e,t){return Be(this.offset(e),t)}offset(e){return-new Date(e).getTimezoneOffset()}equals(e){return e.type===`system`}get isValid(){return!0}},Mn=new Map,Nn={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6},Pn=new Map,V=class e extends B{static create(t){let n=Pn.get(t);return n===void 0&&Pn.set(t,n=new e(t)),n}static resetCache(){Pn.clear(),Mn.clear()}static isValidSpecifier(e){return this.isValidZone(e)}static isValidZone(e){if(!e)return!1;try{return new Intl.DateTimeFormat(`en-US`,{timeZone:e}).format(),!0}catch{return!1}}constructor(t){super(),this.zoneName=t,this.valid=e.isValidZone(t)}get type(){return`iana`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(e,{format:t,locale:n}){return Ie(e,t,n,this.name)}formatOffset(e,t){return Be(this.offset(e),t)}offset(e){if(!this.valid)return NaN;let t=new Date(e);if(isNaN(t))return NaN;let n=r(this.name),[o,s,c,l,u,d,f]=n.formatToParts?a(n,t):i(n,t);l===`BC`&&(o=-Math.abs(o)+1);let p=Me({year:o,month:s,day:c,hour:u===24?0:u,minute:d,second:f,millisecond:0}),m=+t,h=m%1e3;return m-=h>=0?h:1e3+h,(p-m)/(60*1e3)}equals(e){return e.type===`iana`&&e.name===this.name}get isValid(){return this.valid}},Fn={},In=new Map,Ln=new Map,Rn=new Map,zn=null,Bn=new Map,Vn=new Map,Hn=class{constructor(e,t,n){this.padTo=n.padTo||0,this.floor=n.floor||!1;let{padTo:r,floor:i,...a}=n;if(!t||Object.keys(a).length>0){let t={useGrouping:!1,...n};n.padTo>0&&(t.minimumIntegerDigits=n.padTo),this.inf=c(e,t)}}format(e){if(this.inf){let t=this.floor?Math.floor(e):e;return this.inf.format(t)}else return w(this.floor?Math.floor(e):Oe(e,3),this.padTo)}},Un=class{constructor(e,t,n){this.opts=n,this.originalZone=void 0;let r;if(this.opts.timeZone)this.dt=e;else if(e.zone.type===`fixed`){let t=-1*(e.offset/60),n=t>=0?`Etc/GMT+${t}`:`Etc/GMT${t}`;e.offset!==0&&V.create(n).valid?(r=n,this.dt=e):(r=`UTC`,this.dt=e.offset===0?e:e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone)}else e.zone.type===`system`?this.dt=e:e.zone.type===`iana`?(this.dt=e,r=e.zone.name):(r=`UTC`,this.dt=e.setZone(`UTC`).plus({minutes:e.offset}),this.originalZone=e.zone);let i={...this.opts};i.timeZone=i.timeZone||r,this.dtf=s(t,i)}format(){return this.originalZone?this.formatToParts().map(({value:e})=>e).join(``):this.dtf.format(this.dt.toJSDate())}formatToParts(){let e=this.dtf.formatToParts(this.dt.toJSDate());return this.originalZone?e.map(e=>{if(e.type===`timeZoneName`){let t=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...e,value:t}}else return e}):e}resolvedOptions(){return this.dtf.resolvedOptions()}},Wn=class{constructor(e,t,n){this.opts={style:`long`,...n},!t&&ye()&&(this.rtf=l(e,n))}format(e,t){return this.rtf?this.rtf.format(e,t):Ye(t,e,this.opts.numeric,this.opts.style!==`long`)}formatToParts(e,t){return this.rtf?this.rtf.formatToParts(e,t):[]}},Gn={firstDay:1,minimalDays:4,weekend:[6,7]},H=class e{static fromOpts(t){return e.create(t.locale,t.numberingSystem,t.outputCalendar,t.weekSettings,t.defaultToEN)}static create(t,n,r,i,a=!1){let o=t||W.defaultLocale,s=o||(a?`en-US`:u()),c=n||W.defaultNumberingSystem,l=r||W.defaultOutputCalendar,d=Te(i)||W.defaultWeekSettings;return new e(s,c,l,d,o)}static resetCache(){zn=null,In.clear(),Ln.clear(),Rn.clear(),Bn.clear(),Vn.clear()}static fromObject({locale:t,numberingSystem:n,outputCalendar:r,weekSettings:i}={}){return e.create(t,n,r,i)}constructor(e,t,n,r,i){let[a,o,s]=p(e);this.locale=a,this.numberingSystem=t||o||null,this.outputCalendar=n||s||null,this.weekSettings=r,this.intl=m(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=i,this.fastNumbersCached=null}get fastNumbers(){return this.fastNumbersCached??=te(this),this.fastNumbersCached}listingMode(){let e=this.isEnglish(),t=(this.numberingSystem===null||this.numberingSystem===`latn`)&&(this.outputCalendar===null||this.outputCalendar===`gregory`);return e&&t?`en`:`intl`}clone(t){return!t||Object.getOwnPropertyNames(t).length===0?this:e.create(t.locale||this.specifiedLocale,t.numberingSystem||this.numberingSystem,t.outputCalendar||this.outputCalendar,Te(t.weekSettings)||this.weekSettings,t.defaultToEN||!1)}redefaultToEN(e={}){return this.clone({...e,defaultToEN:!0})}redefaultToSystem(e={}){return this.clone({...e,defaultToEN:!1})}months(e,t=!1){return g(this,e,He,()=>{let n=this.intl===`ja`||this.intl.startsWith(`ja-`);t&=!n;let r=t?{month:e,day:`numeric`}:{month:e},i=t?`format`:`standalone`;if(!this.monthsCache[i][e]){let t=n?e=>this.dtFormatter(e,r).format():e=>this.extract(e,r,`month`);this.monthsCache[i][e]=h(t)}return this.monthsCache[i][e]})}weekdays(e,t=!1){return g(this,e,Ue,()=>{let n=t?{weekday:e,year:`numeric`,month:`long`,day:`numeric`}:{weekday:e},r=t?`format`:`standalone`;return this.weekdaysCache[r][e]||(this.weekdaysCache[r][e]=ee(e=>this.extract(e,n,`weekday`))),this.weekdaysCache[r][e]})}meridiems(){return g(this,void 0,()=>mr,()=>{if(!this.meridiemCache){let e={hour:`numeric`,hourCycle:`h12`};this.meridiemCache=[$.utc(2016,11,13,9),$.utc(2016,11,13,19)].map(t=>this.extract(t,e,`dayperiod`))}return this.meridiemCache})}eras(e){return g(this,e,We,()=>{let t={era:e};return this.eraCache[e]||(this.eraCache[e]=[$.utc(-40,1,1),$.utc(2017,1,1)].map(e=>this.extract(e,t,`era`))),this.eraCache[e]})}extract(e,t,n){let r=this.dtFormatter(e,t).formatToParts().find(e=>e.type.toLowerCase()===n);return r?r.value:null}numberFormatter(e={}){return new Hn(this.intl,e.forceSimple||this.fastNumbers,e)}dtFormatter(e,t={}){return new Un(e,this.intl,t)}relFormatter(e={}){return new Wn(this.intl,this.isEnglish(),e)}listFormatter(e={}){return o(this.intl,e)}isEnglish(){return this.locale===`en`||this.locale.toLowerCase()===`en-us`||d(this.intl).locale.startsWith(`en-us`)}getWeekSettings(){return this.weekSettings?this.weekSettings:be()?f(this.locale):Gn}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(e){return this.locale===e.locale&&this.numberingSystem===e.numberingSystem&&this.outputCalendar===e.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}},Kn=null,U=class e extends B{static get utcInstance(){return Kn===null&&(Kn=new e(0)),Kn}static instance(t){return t===0?e.utcInstance:new e(t)}static parseSpecifier(t){if(t){let n=t.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(n)return new e(Le(n[1],n[2]))}return null}constructor(e){super(),this.fixed=e}get type(){return`fixed`}get name(){return this.fixed===0?`UTC`:`UTC${Be(this.fixed,`narrow`)}`}get ianaName(){return this.fixed===0?`Etc/UTC`:`Etc/GMT${Be(-this.fixed,`narrow`)}`}offsetName(){return this.name}formatOffset(e,t){return Be(this.fixed,t)}get isUniversal(){return!0}offset(){return this.fixed}equals(e){return e.type===`fixed`&&e.fixed===this.fixed}get isValid(){return!0}},qn=class extends B{constructor(e){super(),this.zoneName=e}get type(){return`invalid`}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return``}offset(){return NaN}equals(){return!1}get isValid(){return!1}},Jn={arab:`[٠-٩]`,arabext:`[۰-۹]`,bali:`[᭐-᭙]`,beng:`[০-৯]`,deva:`[०-९]`,fullwide:`[0-9]`,gujr:`[૦-૯]`,hanidec:`[〇|一|二|三|四|五|六|七|八|九]`,khmr:`[០-៩]`,knda:`[೦-೯]`,laoo:`[໐-໙]`,limb:`[᥆-᥏]`,mlym:`[൦-൯]`,mong:`[᠐-᠙]`,mymr:`[၀-၉]`,orya:`[୦-୯]`,tamldec:`[௦-௯]`,telu:`[౦-౯]`,thai:`[๐-๙]`,tibt:`[༠-༩]`,latn:`\\d`},Yn={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},Xn=Jn.hanidec.replace(/[\[|\]]/g,``).split(``),Zn=new Map,Qn=()=>Date.now(),$n=`system`,er=null,tr=null,nr=null,rr=60,ar=null,W=class{static get now(){return Qn}static set now(e){Qn=e}static set defaultZone(e){$n=e}static get defaultZone(){return _($n,jn.instance)}static get defaultLocale(){return er}static set defaultLocale(e){er=e}static get defaultNumberingSystem(){return tr}static set defaultNumberingSystem(e){tr=e}static get defaultOutputCalendar(){return nr}static set defaultOutputCalendar(e){nr=e}static get defaultWeekSettings(){return ar}static set defaultWeekSettings(e){ar=Te(e)}static get twoDigitCutoffYear(){return rr}static set twoDigitCutoffYear(e){rr=e%100}static get throwOnInvalid(){return ir}static set throwOnInvalid(e){ir=e}static resetCaches(){H.resetCache(),V.resetCache(),$.resetCache(),re()}},G=class{constructor(e,t){this.reason=e,this.explanation=t}toMessage(){return this.explanation?`${this.reason}: ${this.explanation}`:this.reason}},or=[0,31,59,90,120,151,181,212,243,273,304,334],sr=[0,31,60,91,121,152,182,213,244,274,305,335],cr=[`January`,`February`,`March`,`April`,`May`,`June`,`July`,`August`,`September`,`October`,`November`,`December`],lr=[`Jan`,`Feb`,`Mar`,`Apr`,`May`,`Jun`,`Jul`,`Aug`,`Sep`,`Oct`,`Nov`,`Dec`],ur=[`J`,`F`,`M`,`A`,`M`,`J`,`J`,`A`,`S`,`O`,`N`,`D`],dr=[`Monday`,`Tuesday`,`Wednesday`,`Thursday`,`Friday`,`Saturday`,`Sunday`],fr=[`Mon`,`Tue`,`Wed`,`Thu`,`Fri`,`Sat`,`Sun`],pr=[`M`,`T`,`W`,`T`,`F`,`S`,`S`],mr=[`AM`,`PM`],hr=[`Before Christ`,`Anno Domini`],gr=[`BC`,`AD`],_r=[`B`,`A`],vr={D:cn,DD:ln,DDD:dn,DDDD:fn,t:pn,tt:mn,ttt:hn,tttt:gn,T:_n,TT:vn,TTT:yn,TTTT:bn,f:xn,ff:Cn,fff:En,ffff:On,F:Sn,FF:wn,FFF:Dn,FFFF:kn},K=class e{static create(t,n={}){return new e(t,n)}static parseFormat(e){let t=null,n=``,r=!1,i=[];for(let a=0;a<e.length;a++){let o=e.charAt(a);o===`'`?((n.length>0||r)&&i.push({literal:r||/^\s+$/.test(n),val:n===``?`'`:n}),t=null,n=``,r=!r):r||o===t?n+=o:(n.length>0&&i.push({literal:/^\s+$/.test(n),val:n}),n=o,t=o)}return n.length>0&&i.push({literal:r||/^\s+$/.test(n),val:n}),i}static macroTokenToFormatOpts(e){return vr[e]}constructor(e,t){this.opts=t,this.loc=e,this.systemLoc=null}formatWithSystemDefault(e,t){return this.systemLoc===null&&(this.systemLoc=this.loc.redefaultToSystem()),this.systemLoc.dtFormatter(e,{...this.opts,...t}).format()}dtFormatter(e,t={}){return this.loc.dtFormatter(e,{...this.opts,...t})}formatDateTime(e,t){return this.dtFormatter(e,t).format()}formatDateTimeParts(e,t){return this.dtFormatter(e,t).formatToParts()}formatInterval(e,t){return this.dtFormatter(e.start,t).dtf.formatRange(e.start.toJSDate(),e.end.toJSDate())}resolvedOptions(e,t){return this.dtFormatter(e,t).resolvedOptions()}num(e,t=0,n=void 0){if(this.opts.forceSimple)return w(e,t);let r={...this.opts};return t>0&&(r.padTo=t),n&&(r.signDisplay=n),this.loc.numberFormatter(r).format(e)}formatDateTimeFromString(t,n){let r=this.loc.listingMode()===`en`,i=this.loc.outputCalendar&&this.loc.outputCalendar!==`gregory`,a=(e,n)=>this.loc.extract(t,e,n),o=e=>t.isOffsetFixed&&t.offset===0&&e.allowZ?`Z`:t.isValid?t.zone.formatOffset(t.ts,e.format):``,s=()=>r?Ge(t):a({hour:`numeric`,hourCycle:`h12`},`dayperiod`),c=(e,n)=>r?qe(t,e):a(n?{month:e}:{month:e,day:`numeric`},`month`),l=(e,n)=>r?Ke(t,e):a(n?{weekday:e}:{weekday:e,month:`long`,day:`numeric`},`weekday`),u=n=>{let r=e.macroTokenToFormatOpts(n);return r?this.formatWithSystemDefault(t,r):n},d=e=>r?Je(t,e):a({era:e},`era`);return Xe(e.parseFormat(n),e=>{switch(e){case`S`:return this.num(t.millisecond);case`u`:case`SSS`:return this.num(t.millisecond,3);case`s`:return this.num(t.second);case`ss`:return this.num(t.second,2);case`uu`:return this.num(Math.floor(t.millisecond/10),2);case`uuu`:return this.num(Math.floor(t.millisecond/100));case`m`:return this.num(t.minute);case`mm`:return this.num(t.minute,2);case`h`:return this.num(t.hour%12==0?12:t.hour%12);case`hh`:return this.num(t.hour%12==0?12:t.hour%12,2);case`H`:return this.num(t.hour);case`HH`:return this.num(t.hour,2);case`Z`:return o({format:`narrow`,allowZ:this.opts.allowZ});case`ZZ`:return o({format:`short`,allowZ:this.opts.allowZ});case`ZZZ`:return o({format:`techie`,allowZ:this.opts.allowZ});case`ZZZZ`:return t.zone.offsetName(t.ts,{format:`short`,locale:this.loc.locale});case`ZZZZZ`:return t.zone.offsetName(t.ts,{format:`long`,locale:this.loc.locale});case`z`:return t.zoneName;case`a`:return s();case`d`:return i?a({day:`numeric`},`day`):this.num(t.day);case`dd`:return i?a({day:`2-digit`},`day`):this.num(t.day,2);case`c`:return this.num(t.weekday);case`ccc`:return l(`short`,!0);case`cccc`:return l(`long`,!0);case`ccccc`:return l(`narrow`,!0);case`E`:return this.num(t.weekday);case`EEE`:return l(`short`,!1);case`EEEE`:return l(`long`,!1);case`EEEEE`:return l(`narrow`,!1);case`L`:return i?a({month:`numeric`,day:`numeric`},`month`):this.num(t.month);case`LL`:return i?a({month:`2-digit`,day:`numeric`},`month`):this.num(t.month,2);case`LLL`:return c(`short`,!0);case`LLLL`:return c(`long`,!0);case`LLLLL`:return c(`narrow`,!0);case`M`:return i?a({month:`numeric`},`month`):this.num(t.month);case`MM`:return i?a({month:`2-digit`},`month`):this.num(t.month,2);case`MMM`:return c(`short`,!1);case`MMMM`:return c(`long`,!1);case`MMMMM`:return c(`narrow`,!1);case`y`:return i?a({year:`numeric`},`year`):this.num(t.year);case`yy`:return i?a({year:`2-digit`},`year`):this.num(t.year.toString().slice(-2),2);case`yyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,4);case`yyyyyy`:return i?a({year:`numeric`},`year`):this.num(t.year,6);case`G`:return d(`short`);case`GG`:return d(`long`);case`GGGGG`:return d(`narrow`);case`kk`:return this.num(t.weekYear.toString().slice(-2),2);case`kkkk`:return this.num(t.weekYear,4);case`W`:return this.num(t.weekNumber);case`WW`:return this.num(t.weekNumber,2);case`n`:return this.num(t.localWeekNumber);case`nn`:return this.num(t.localWeekNumber,2);case`ii`:return this.num(t.localWeekYear.toString().slice(-2),2);case`iiii`:return this.num(t.localWeekYear,4);case`o`:return this.num(t.ordinal);case`ooo`:return this.num(t.ordinal,3);case`q`:return this.num(t.quarter);case`qq`:return this.num(t.quarter,2);case`X`:return this.num(Math.floor(t.ts/1e3));case`x`:return this.num(t.ts);default:return u(e)}})}formatDurationFromString(t,n){let r=this.opts.signMode===`negativeLargestOnly`?-1:1,i=e=>{switch(e[0]){case`S`:return`milliseconds`;case`s`:return`seconds`;case`m`:return`minutes`;case`h`:return`hours`;case`d`:return`days`;case`w`:return`weeks`;case`M`:return`months`;case`y`:return`years`;default:return null}},a=(e,t)=>n=>{let a=i(n);if(a){let i=t.isNegativeDuration&&a!==t.largestUnit?r:1,o;return o=this.opts.signMode===`negativeLargestOnly`&&a!==t.largestUnit?`never`:this.opts.signMode===`all`?`always`:`auto`,this.num(e.get(a)*i,n.length,o)}else return n},o=e.parseFormat(n),s=o.reduce((e,{literal:t,val:n})=>t?e:e.concat(n),[]),c=t.shiftTo(...s.map(i).filter(e=>e));return Xe(o,a(c,{isNegativeDuration:c<0,largestUnit:Object.keys(c.values)[0]}))}},yr=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/,br=/(?:([Zz])|([+-]\d\d)(?::?(\d\d))?)/,xr=`(?:${br.source}?(?:\\[(${yr.source})\\])?)?`,Sr=/(\d\d)(?::?(\d\d)(?::?(\d\d)(?:[.,](\d{1,30}))?)?)?/,Cr=RegExp(`${Sr.source}${xr}`),wr=RegExp(`(?:[Tt]${Cr.source})?`),Tr=/([+-]\d{6}|\d{4})(?:-?(\d\d)(?:-?(\d\d))?)?/,Er=/(\d{4})-?W(\d\d)(?:-?(\d))?/,Dr=/(\d{4})-?(\d{3})/,Or=Qe(`weekYear`,`weekNumber`,`weekDay`),kr=Qe(`year`,`ordinal`),Ar=/(\d{4})-(\d\d)-(\d\d)/,jr=RegExp(`${Sr.source} ?(?:${br.source}|(${yr.source}))?`),Mr=RegExp(`(?: ${jr.source})?`),Nr=RegExp(`^T?${Sr.source}$`),Pr=/^-?P(?:(?:(-?\d{1,20}(?:\.\d{1,20})?)Y)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20}(?:\.\d{1,20})?)W)?(?:(-?\d{1,20}(?:\.\d{1,20})?)D)?(?:T(?:(-?\d{1,20}(?:\.\d{1,20})?)H)?(?:(-?\d{1,20}(?:\.\d{1,20})?)M)?(?:(-?\d{1,20})(?:[.,](-?\d{1,20}))?S)?)?)$/,Fr={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480},Ir=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|(?:([+-]\d\d)(\d\d)))$/,Lr=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Rr=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,zr=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/,Br=D(Tr,wr),Vr=D(Er,wr),Hr=D(Dr,wr),Ur=D(Cr),Wr=O(et,tt,nt,rt),Gr=O(Or,tt,nt,rt),Kr=O(kr,tt,nt,rt),qr=O(tt,nt,rt),Jr=O(tt),Yr=D(Ar,Mr),Xr=D(jr),Zr=O(tt,nt,rt),Qr=`Invalid Duration`,$r={weeks:{days:7,hours:168,minutes:10080,seconds:10080*60,milliseconds:10080*60*1e3},days:{hours:24,minutes:1440,seconds:1440*60,milliseconds:1440*60*1e3},hours:{minutes:60,seconds:3600,milliseconds:3600*1e3},minutes:{seconds:60,milliseconds:60*1e3},seconds:{milliseconds:1e3}},ei={years:{quarters:4,months:12,weeks:52,days:365,hours:365*24,minutes:365*24*60,seconds:365*24*60*60,milliseconds:365*24*60*60*1e3},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:2184*60,seconds:2184*60*60,milliseconds:2184*60*60*1e3},months:{weeks:4,days:30,hours:720,minutes:720*60,seconds:720*60*60,milliseconds:720*60*60*1e3},...$r},q=146097/400,J=146097/4800,ti={years:{quarters:4,months:12,weeks:q/7,days:q,hours:q*24,minutes:q*24*60,seconds:q*24*60*60,milliseconds:q*24*60*60*1e3},quarters:{months:3,weeks:q/28,days:q/4,hours:q*24/4,minutes:q*24*60/4,seconds:q*24*60*60/4,milliseconds:q*24*60*60*1e3/4},months:{weeks:J/7,days:J,hours:J*24,minutes:J*24*60,seconds:J*24*60*60,milliseconds:J*24*60*60*1e3},...$r},Y=[`years`,`quarters`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`],ni=Y.slice(0).reverse(),X=class e{constructor(e){let t=e.conversionAccuracy===`longterm`||!1,n=t?ti:ei;e.matrix&&(n=e.matrix),this.values=e.values,this.loc=e.loc||H.create(),this.conversionAccuracy=t?`longterm`:`casual`,this.invalid=e.invalid||null,this.matrix=n,this.isLuxonDuration=!0}static fromMillis(t,n){return e.fromObject({milliseconds:t},n)}static fromObject(t,n={}){if(typeof t!=`object`||!t)throw new F(`Duration.fromObject: argument expected to be an object, got ${t===null?`null`:typeof t}`);return new e({values:ze(t,e.normalizeUnit),loc:H.fromObject(n),conversionAccuracy:n.conversionAccuracy,matrix:n.matrix})}static fromDurationLike(t){if(S(t))return e.fromMillis(t);if(e.isDuration(t))return t;if(typeof t==`object`)return e.fromObject(t);throw new F(`Unknown duration argument ${t} of type ${typeof t}`)}static fromISO(t,n){let[r]=pt(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static fromISOTime(t,n){let[r]=mt(t);return r?e.fromObject(r,n):e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static invalid(t,n=null){if(!t)throw new F(`need to specify a reason the Duration is invalid`);let r=t instanceof G?t:new G(t,n);if(W.throwOnInvalid)throw new on(r);return new e({invalid:r})}static normalizeUnit(e){let t={year:`years`,years:`years`,quarter:`quarters`,quarters:`quarters`,month:`months`,months:`months`,week:`weeks`,weeks:`weeks`,day:`days`,days:`days`,hour:`hours`,hours:`hours`,minute:`minutes`,minutes:`minutes`,second:`seconds`,seconds:`seconds`,millisecond:`milliseconds`,milliseconds:`milliseconds`}[e&&e.toLowerCase()];if(!t)throw new sn(e);return t}static isDuration(e){return e&&e.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(e,t={}){let n={...t,floor:t.round!==!1&&t.floor!==!1};return this.isValid?K.create(this.loc,n).formatDurationFromString(this,e):Qr}toHuman(e={}){if(!this.isValid)return Qr;let t=e.showZeros!==!1,n=Y.map(n=>{let r=this.values[n];return x(r)||r===0&&!t?null:this.loc.numberFormatter({style:`unit`,unitDisplay:`long`,...e,unit:n.slice(0,-1)}).format(r)}).filter(e=>e);return this.loc.listFormatter({type:`conjunction`,style:e.listStyle||`narrow`,...e}).format(n)}toObject(){return this.isValid?{...this.values}:{}}toISO(){if(!this.isValid)return null;let e=`P`;return this.years!==0&&(e+=this.years+`Y`),(this.months!==0||this.quarters!==0)&&(e+=this.months+this.quarters*3+`M`),this.weeks!==0&&(e+=this.weeks+`W`),this.days!==0&&(e+=this.days+`D`),(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)&&(e+=`T`),this.hours!==0&&(e+=this.hours+`H`),this.minutes!==0&&(e+=this.minutes+`M`),(this.seconds!==0||this.milliseconds!==0)&&(e+=Oe(this.seconds+this.milliseconds/1e3,3)+`S`),e===`P`&&(e+=`T0S`),e}toISOTime(e={}){if(!this.isValid)return null;let t=this.toMillis();return t<0||t>=864e5?null:(e={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:`extended`,...e,includeOffset:!1},$.fromMillis(t,{zone:`UTC`}).toISOTime(e))}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Duration { values: ${JSON.stringify(this.values)} }`:`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){return this.isValid?gt(this.matrix,this.values):NaN}valueOf(){return this.toMillis()}plus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t),r={};for(let e of Y)(we(n.values,e)||we(this.values,e))&&(r[e]=n.get(e)+this.get(e));return k(this,{values:r},!0)}minus(t){if(!this.isValid)return this;let n=e.fromDurationLike(t);return this.plus(n.negate())}mapUnits(e){if(!this.isValid)return this;let t={};for(let n of Object.keys(this.values))t[n]=Re(e(this.values[n],n));return k(this,{values:t},!0)}get(t){return this[e.normalizeUnit(t)]}set(t){if(!this.isValid)return this;let n={...this.values,...ze(t,e.normalizeUnit)};return k(this,{values:n})}reconfigure({locale:e,numberingSystem:t,conversionAccuracy:n,matrix:r}={}){let i={loc:this.loc.clone({locale:e,numberingSystem:t}),matrix:r,conversionAccuracy:n};return k(this,i)}as(e){return this.isValid?this.shiftTo(e).get(e):NaN}normalize(){if(!this.isValid)return this;let e=this.toObject();return _t(this.matrix,e),k(this,{values:e},!0)}rescale(){if(!this.isValid)return this;let e=vt(this.normalize().shiftToAll().toObject());return k(this,{values:e},!0)}shiftTo(...t){if(!this.isValid||t.length===0)return this;t=t.map(t=>e.normalizeUnit(t));let n={},r={},i=this.toObject(),a;for(let e of Y)if(t.indexOf(e)>=0){a=e;let t=0;for(let n in r)t+=this.matrix[n][e]*r[n],r[n]=0;S(i[e])&&(t+=i[e]);let o=Math.trunc(t);n[e]=o,r[e]=(t*1e3-o*1e3)/1e3}else S(i[e])&&(r[e]=i[e]);for(let e in r)r[e]!==0&&(n[a]+=e===a?r[e]:r[e]/this.matrix[a][e]);return _t(this.matrix,n),k(this,{values:n},!0)}shiftToAll(){return this.isValid?this.shiftTo(`years`,`months`,`weeks`,`days`,`hours`,`minutes`,`seconds`,`milliseconds`):this}negate(){if(!this.isValid)return this;let e={};for(let t of Object.keys(this.values))e[t]=this.values[t]===0?0:-this.values[t];return k(this,{values:e},!0)}removeZeros(){if(!this.isValid)return this;let e=vt(this.values);return k(this,{values:e},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(e){if(!this.isValid||!e.isValid||!this.loc.equals(e.loc))return!1;function t(e,t){return e===void 0||e===0?t===void 0||t===0:e===t}for(let n of Y)if(!t(this.values[n],e.values[n]))return!1;return!0}},Z=`Invalid Interval`,ri=class e{constructor(e){this.s=e.start,this.e=e.end,this.invalid=e.invalid||null,this.isLuxonInterval=!0}static invalid(t,n=null){if(!t)throw new F(`need to specify a reason the Interval is invalid`);let r=t instanceof G?t:new G(t,n);if(W.throwOnInvalid)throw new an(r);return new e({invalid:r})}static fromDateTimes(t,n){let r=nn(t),i=nn(n);return yt(r,i)??new e({start:r,end:i})}static after(t,n){let r=X.fromDurationLike(n),i=nn(t);return e.fromDateTimes(i,i.plus(r))}static before(t,n){let r=X.fromDurationLike(n),i=nn(t);return e.fromDateTimes(i.minus(r),i)}static fromISO(t,n){let[r,i]=(t||``).split(`/`,2);if(r&&i){let t,a;try{t=$.fromISO(r,n),a=t.isValid}catch{a=!1}let o,s;try{o=$.fromISO(i,n),s=o.isValid}catch{s=!1}if(a&&s)return e.fromDateTimes(t,o);if(a){let r=X.fromISO(i,n);if(r.isValid)return e.after(t,r)}else if(s){let t=X.fromISO(r,n);if(t.isValid)return e.before(o,t)}}return e.invalid(`unparsable`,`the input "${t}" can't be parsed as ISO 8601`)}static isInterval(e){return e&&e.isLuxonInterval||!1}get start(){return this.isValid?this.s:null}get end(){return this.isValid?this.e:null}get lastDateTime(){return this.isValid&&this.e?this.e.minus(1):null}get isValid(){return this.invalidReason===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}length(e=`milliseconds`){return this.isValid?this.toDuration(e).get(e):NaN}count(e=`milliseconds`,t){if(!this.isValid)return NaN;let n=this.start.startOf(e,t),r;return r=t?.useLocaleWeeks?this.end.reconfigure({locale:n.locale}):this.end,r=r.startOf(e,t),Math.floor(r.diff(n,e).get(e))+(r.valueOf()!==this.end.valueOf())}hasSame(e){return this.isValid?this.isEmpty()||this.e.minus(1).hasSame(this.s,e):!1}isEmpty(){return this.s.valueOf()===this.e.valueOf()}isAfter(e){return this.isValid?this.s>e:!1}isBefore(e){return this.isValid?this.e<=e:!1}contains(e){return this.isValid?this.s<=e&&this.e>e:!1}set({start:t,end:n}={}){return this.isValid?e.fromDateTimes(t||this.s,n||this.e):this}splitAt(...t){if(!this.isValid)return[];let n=t.map(nn).filter(e=>this.contains(e)).sort((e,t)=>e.toMillis()-t.toMillis()),r=[],{s:i}=this,a=0;for(;i<this.e;){let t=n[a]||this.e,o=+t>+this.e?this.e:t;r.push(e.fromDateTimes(i,o)),i=o,a+=1}return r}splitBy(t){let n=X.fromDurationLike(t);if(!this.isValid||!n.isValid||n.as(`milliseconds`)===0)return[];let{s:r}=this,i=1,a,o=[];for(;r<this.e;){let t=this.start.plus(n.mapUnits(e=>e*i));a=+t>+this.e?this.e:t,o.push(e.fromDateTimes(r,a)),r=a,i+=1}return o}divideEqually(e){return this.isValid?this.splitBy(this.length()/e).slice(0,e):[]}overlaps(e){return this.e>e.s&&this.s<e.e}abutsStart(e){return this.isValid?+this.e==+e.s:!1}abutsEnd(e){return this.isValid?+e.e==+this.s:!1}engulfs(e){return this.isValid?this.s<=e.s&&this.e>=e.e:!1}equals(e){return!this.isValid||!e.isValid?!1:this.s.equals(e.s)&&this.e.equals(e.e)}intersection(t){if(!this.isValid)return this;let n=this.s>t.s?this.s:t.s,r=this.e<t.e?this.e:t.e;return n>=r?null:e.fromDateTimes(n,r)}union(t){if(!this.isValid)return this;let n=this.s<t.s?this.s:t.s,r=this.e>t.e?this.e:t.e;return e.fromDateTimes(n,r)}static merge(e){let[t,n]=e.sort((e,t)=>e.s-t.s).reduce(([e,t],n)=>t?t.overlaps(n)||t.abutsStart(n)?[e,t.union(n)]:[e.concat([t]),n]:[e,n],[[],null]);return n&&t.push(n),t}static xor(t){let n=null,r=0,i=[],a=t.map(e=>[{time:e.s,type:`s`},{time:e.e,type:`e`}]),o=Array.prototype.concat(...a).sort((e,t)=>e.time-t.time);for(let t of o)r+=t.type===`s`?1:-1,r===1?n=t.time:(n&&+n!=+t.time&&i.push(e.fromDateTimes(n,t.time)),n=null);return e.merge(i)}difference(...t){return e.xor([this].concat(t)).map(e=>this.intersection(e)).filter(e=>e&&!e.isEmpty())}toString(){return this.isValid?`[${this.s.toISO()} – ${this.e.toISO()})`:Z}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`:`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(e=cn,t={}){return this.isValid?K.create(this.s.loc.clone(t),e).formatInterval(this):Z}toISO(e){return this.isValid?`${this.s.toISO(e)}/${this.e.toISO(e)}`:Z}toISODate(){return this.isValid?`${this.s.toISODate()}/${this.e.toISODate()}`:Z}toISOTime(e){return this.isValid?`${this.s.toISOTime(e)}/${this.e.toISOTime(e)}`:Z}toFormat(e,{separator:t=` – `}={}){return this.isValid?`${this.s.toFormat(e)}${t}${this.e.toFormat(e)}`:Z}toDuration(e,t){return this.isValid?this.e.diff(this.s,e,t):X.invalid(this.invalidReason)}mapEndpoints(t){return e.fromDateTimes(t(this.s),t(this.e))}},Q=class{static hasDST(e=W.defaultZone){let t=$.now().setZone(e).set({month:12});return!e.isUniversal&&t.offset!==t.set({month:6}).offset}static isValidIANAZone(e){return V.isValidZone(e)}static normalizeZone(e){return _(e,W.defaultZone)}static getStartOfWeek({locale:e=null,locObj:t=null}={}){return(t||H.create(e)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:e=null,locObj:t=null}={}){return(t||H.create(e)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:e=null,locObj:t=null}={}){return(t||H.create(e)).getWeekendDays().slice()}static months(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||H.create(t,n,i)).months(e)}static monthsFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null,outputCalendar:i=`gregory`}={}){return(r||H.create(t,n,i)).months(e,!0)}static weekdays(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||H.create(t,n,null)).weekdays(e)}static weekdaysFormat(e=`long`,{locale:t=null,numberingSystem:n=null,locObj:r=null}={}){return(r||H.create(t,n,null)).weekdays(e,!0)}static meridiems({locale:e=null}={}){return H.create(e).meridiems()}static eras(e=`short`,{locale:t=null}={}){return H.create(t,null,`gregory`).eras(e)}static features(){return{relative:ye(),localeWeek:be()}}},ii=`missing Intl.DateTimeFormat.formatToParts support`,ai=`[ \xA0]`,oi=new RegExp(ai,`g`),si={year:{"2-digit":`yy`,numeric:`yyyyy`},month:{numeric:`M`,"2-digit":`MM`,short:`MMM`,long:`MMMM`},day:{numeric:`d`,"2-digit":`dd`},weekday:{short:`EEE`,long:`EEEE`},dayperiod:`a`,dayPeriod:`a`,hour12:{numeric:`h`,"2-digit":`hh`},hour24:{numeric:`H`,"2-digit":`HH`},minute:{numeric:`m`,"2-digit":`mm`},second:{numeric:`s`,"2-digit":`ss`},timeZoneName:{long:`ZZZZZ`,short:`ZZZ`}},ci=null,li=class{constructor(e,t){if(this.locale=e,this.format=t,this.tokens=Ft(K.parseFormat(t),e),this.units=this.tokens.map(t=>Ot(t,e)),this.disqualifyingUnit=this.units.find(e=>e.invalidReason),!this.disqualifyingUnit){let[e,t]=At(this.units);this.regex=RegExp(e,`i`),this.handlers=t}}explainFromTokens(e){if(this.isValid){let[t,n]=jt(e,this.regex,this.handlers),[r,i,a]=n?Mt(n):[null,null,void 0];if(we(n,`a`)&&we(n,`H`))throw new P(`Can't include meridiem when specifying 24-hour format`);return{input:e,tokens:this.tokens,regex:this.regex,rawMatches:t,matches:n,result:r,zone:i,specificOffset:a}}else return{input:e,tokens:this.tokens,invalidReason:this.invalidReason}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}},ui=`Invalid DateTime`,di=864e13,fi={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},pi={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},mi={ordinal:1,hour:0,minute:0,second:0,millisecond:0},hi=[`year`,`month`,`day`,`hour`,`minute`,`second`,`millisecond`],gi=[`weekYear`,`weekNumber`,`weekday`,`hour`,`minute`,`second`,`millisecond`],_i=[`year`,`ordinal`,`hour`,`minute`,`second`,`millisecond`],yi=new Map,$=class e{constructor(e){let t=e.zone||W.defaultZone,n=e.invalid||(Number.isNaN(e.ts)?new G(`invalid input`):null)||(t.isValid?null:zt(t));this.ts=x(e.ts)?W.now():e.ts;let r=null,i=null;if(!n)if(e.old&&e.old.ts===this.ts&&e.old.zone.equals(t))[r,i]=[e.old.c,e.old.o];else{let a=S(e.o)&&!e.old?e.o:t.offset(this.ts);r=Ut(this.ts,a),n=Number.isNaN(r.year)?new G(`invalid input`):null,r=n?null:r,i=n?null:a}this._zone=t,this.loc=e.loc||H.create(),this.invalid=n,this.weekData=null,this.localWeekData=null,this.c=r,this.o=i,this.isLuxonDateTime=!0}static now(){return new e({})}static local(){let[e,t]=tn(arguments),[n,r,i,a,o,s,c]=t;return $t({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static utc(){let[e,t]=tn(arguments),[n,r,i,a,o,s,c]=t;return e.zone=U.utcInstance,$t({year:n,month:r,day:i,hour:a,minute:o,second:s,millisecond:c},e)}static fromJSDate(t,n={}){let r=ve(t)?t.valueOf():NaN;if(Number.isNaN(r))return e.invalid(`invalid input`);let i=_(n.zone,W.defaultZone);return i.isValid?new e({ts:r,zone:i,loc:H.fromObject(n)}):e.invalid(zt(i))}static fromMillis(t,n={}){if(!S(t))throw new F(`fromMillis requires a numerical input, but received a ${typeof t} with value ${t}`);return t<-864e13||t>di?e.invalid(`Timestamp out of range`):new e({ts:t,zone:_(n.zone,W.defaultZone),loc:H.fromObject(n)})}static fromSeconds(t,n={}){if(S(t))return new e({ts:t*1e3,zone:_(n.zone,W.defaultZone),loc:H.fromObject(n)});throw new F(`fromSeconds requires a numerical input`)}static fromObject(t,n={}){t||={};let r=_(n.zone,W.defaultZone);if(!r.isValid)return e.invalid(zt(r));let i=H.fromObject(n),a=ze(t,Zt),{minDaysInFirstWeek:o,startOfWeek:s}=de(a,i),c=W.now(),l=x(n.specificOffset)?r.offset(c):n.specificOffset,u=!x(a.ordinal),d=!x(a.year),f=!x(a.month)||!x(a.day),p=d||f,m=a.weekYear||a.weekNumber;if((p||u)&&m)throw new P(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(f&&u)throw new P(`Can't mix ordinal dates with month/day`);let h=m||a.weekday&&!p,ee,g,te=Ut(c,l);h?(ee=gi,g=pi,te=se(te,o,s)):u?(ee=_i,g=mi,te=le(te)):(ee=hi,g=fi);let ne=!1;for(let e of ee){let t=a[e];x(t)?ne?a[e]=g[e]:a[e]=te[e]:ne=!0}let re=(h?fe(a,o,s):u?pe(a):me(a))||he(a);if(re)return e.invalid(re);let[v,y]=Wt(h?ce(a,o,s):u?ue(a):a,l,r),b=new e({ts:v,zone:r,o:y,loc:i});return a.weekday&&p&&t.weekday!==b.weekday?e.invalid(`mismatched weekday`,`you can't specify both a weekday of ${a.weekday} and a date of ${b.toISO()}`):b.isValid?b:e.invalid(b.invalid)}static fromISO(e,t={}){let[n,r]=ut(e);return Kt(n,r,t,`ISO 8601`,e)}static fromRFC2822(e,t={}){let[n,r]=dt(e);return Kt(n,r,t,`RFC 2822`,e)}static fromHTTP(e,t={}){let[n,r]=ft(e);return Kt(n,r,t,`HTTP`,t)}static fromFormat(t,n,r={}){if(x(t)||x(n))throw new F(`fromFormat requires an input string and a format`);let{locale:i=null,numberingSystem:a=null}=r,[o,s,c,l]=Lt(H.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0}),t,n);return l?e.invalid(l):Kt(o,s,r,`format ${n}`,t,c)}static fromString(t,n,r={}){return e.fromFormat(t,n,r)}static fromSQL(e,t={}){let[n,r]=ht(e);return Kt(n,r,t,`SQL`,e)}static invalid(t,n=null){if(!t)throw new F(`need to specify a reason the DateTime is invalid`);let r=t instanceof G?t:new G(t,n);if(W.throwOnInvalid)throw new rn(r);return new e({invalid:r})}static isDateTime(e){return e&&e.isLuxonDateTime||!1}static parseFormatForOpts(e,t={}){let n=Rt(e,H.fromObject(t));return n?n.map(e=>e?e.val:null).join(``):null}static expandFormat(e,t={}){return Ft(K.parseFormat(e),H.fromObject(t)).map(e=>e.val).join(``)}static resetCache(){vi=void 0,yi.clear()}get(e){return this[e]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?Bt(this).weekYear:NaN}get weekNumber(){return this.isValid?Bt(this).weekNumber:NaN}get weekday(){return this.isValid?Bt(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?Vt(this).weekday:NaN}get localWeekNumber(){return this.isValid?Vt(this).weekNumber:NaN}get localWeekYear(){return this.isValid?Vt(this).weekYear:NaN}get ordinal(){return this.isValid?le(this.c).ordinal:NaN}get monthShort(){return this.isValid?Q.months(`short`,{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?Q.months(`long`,{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?Q.weekdays(`short`,{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?Q.weekdays(`long`,{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){return this.isValid?this.zone.offsetName(this.ts,{format:`short`,locale:this.locale}):null}get offsetNameLong(){return this.isValid?this.zone.offsetName(this.ts,{format:`long`,locale:this.locale}):null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){return this.isOffsetFixed?!1:this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let e=864e5,t=6e4,n=Me(this.c),r=this.zone.offset(n-e),i=this.zone.offset(n+e),a=this.zone.offset(n-r*t),o=this.zone.offset(n-i*t);if(a===o)return[this];let s=n-a*t,c=n-o*t,l=Ut(s,a),u=Ut(c,o);return l.hour===u.hour&&l.minute===u.minute&&l.second===u.second&&l.millisecond===u.millisecond?[M(this,{ts:s}),M(this,{ts:c})]:[this]}get isInLeapYear(){return ke(this.year)}get daysInMonth(){return je(this.year,this.month)}get daysInYear(){return this.isValid?Ae(this.year):NaN}get weeksInWeekYear(){return this.isValid?Pe(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?Pe(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(e={}){let{locale:t,numberingSystem:n,calendar:r}=K.create(this.loc.clone(e),e).resolvedOptions(this);return{locale:t,numberingSystem:n,outputCalendar:r}}toUTC(e=0,t={}){return this.setZone(U.instance(e),t)}toLocal(){return this.setZone(W.defaultZone)}setZone(t,{keepLocalTime:n=!1,keepCalendarTime:r=!1}={}){if(t=_(t,W.defaultZone),t.equals(this.zone))return this;if(t.isValid){let e=this.ts;if(n||r){let n=t.offset(this.ts),r=this.toObject();[e]=Wt(r,n,t)}return M(this,{ts:e,zone:t})}else return e.invalid(zt(t))}reconfigure({locale:e,numberingSystem:t,outputCalendar:n}={}){let r=this.loc.clone({locale:e,numberingSystem:t,outputCalendar:n});return M(this,{loc:r})}setLocale(e){return this.reconfigure({locale:e})}set(e){if(!this.isValid)return this;let t=ze(e,Zt),{minDaysInFirstWeek:n,startOfWeek:r}=de(t,this.loc),i=!x(t.weekYear)||!x(t.weekNumber)||!x(t.weekday),a=!x(t.ordinal),o=!x(t.year),s=!x(t.month)||!x(t.day),c=o||s,l=t.weekYear||t.weekNumber;if((c||a)&&l)throw new P(`Can't mix weekYear/weekNumber units with year/month/day or ordinals`);if(s&&a)throw new P(`Can't mix ordinal dates with month/day`);let u;i?u=ce({...se(this.c,n,r),...t},n,r):x(t.ordinal)?(u={...this.toObject(),...t},x(t.day)&&(u.day=Math.min(je(u.year,u.month),u.day))):u=ue({...le(this.c),...t});let[d,f]=Wt(u,this.o,this.zone);return M(this,{ts:d,o:f})}plus(e){if(!this.isValid)return this;let t=X.fromDurationLike(e);return M(this,Gt(this,t))}minus(e){if(!this.isValid)return this;let t=X.fromDurationLike(e).negate();return M(this,Gt(this,t))}startOf(e,{useLocaleWeeks:t=!1}={}){if(!this.isValid)return this;let n={},r=X.normalizeUnit(e);switch(r){case`years`:n.month=1;case`quarters`:case`months`:n.day=1;case`weeks`:case`days`:n.hour=0;case`hours`:n.minute=0;case`minutes`:n.second=0;case`seconds`:n.millisecond=0;break}if(r===`weeks`)if(t){let e=this.loc.getStartOfWeek(),{weekday:t}=this;t<e&&(n.weekNumber=this.weekNumber-1),n.weekday=e}else n.weekday=1;return r===`quarters`&&(n.month=(Math.ceil(this.month/3)-1)*3+1),this.set(n)}endOf(e,t){return this.isValid?this.plus({[e]:1}).startOf(e,t).minus(1):this}toFormat(e,t={}){return this.isValid?K.create(this.loc.redefaultToEN(t)).formatDateTimeFromString(this,e):ui}toLocaleString(e=cn,t={}){return this.isValid?K.create(this.loc.clone(t),e).formatDateTime(this):ui}toLocaleParts(e={}){return this.isValid?K.create(this.loc.clone(e),e).formatDateTimeParts(this):[]}toISO({format:e=`extended`,suppressSeconds:t=!1,suppressMilliseconds:n=!1,includeOffset:r=!0,extendedZone:i=!1,precision:a=`milliseconds`}={}){if(!this.isValid)return null;a=Xt(a);let o=e===`extended`,s=Jt(this,o,a);return hi.indexOf(a)>=3&&(s+=`T`),s+=Yt(this,o,t,n,r,i,a),s}toISODate({format:e=`extended`,precision:t=`day`}={}){return this.isValid?Jt(this,e===`extended`,Xt(t)):null}toISOWeekDate(){return qt(this,`kkkk-'W'WW-c`)}toISOTime({suppressMilliseconds:e=!1,suppressSeconds:t=!1,includeOffset:n=!0,includePrefix:r=!1,extendedZone:i=!1,format:a=`extended`,precision:o=`milliseconds`}={}){return this.isValid?(o=Xt(o),(r&&hi.indexOf(o)>=3?`T`:``)+Yt(this,a===`extended`,t,e,n,i,o)):null}toRFC2822(){return qt(this,`EEE, dd LLL yyyy HH:mm:ss ZZZ`,!1)}toHTTP(){return qt(this.toUTC(),`EEE, dd LLL yyyy HH:mm:ss 'GMT'`)}toSQLDate(){return this.isValid?Jt(this,!0):null}toSQLTime({includeOffset:e=!0,includeZone:t=!1,includeOffsetSpace:n=!0}={}){let r=`HH:mm:ss.SSS`;return(t||e)&&(n&&(r+=` `),t?r+=`z`:e&&(r+=`ZZ`)),qt(this,r,!0)}toSQL(e={}){return this.isValid?`${this.toSQLDate()} ${this.toSQLTime(e)}`:null}toString(){return this.isValid?this.toISO():ui}[Symbol.for(`nodejs.util.inspect.custom`)](){return this.isValid?`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`:`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1e3:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1e3):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(e={}){if(!this.isValid)return{};let t={...this.c};return e.includeConfig&&(t.outputCalendar=this.outputCalendar,t.numberingSystem=this.loc.numberingSystem,t.locale=this.loc.locale),t}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(e,t=`milliseconds`,n={}){if(!this.isValid||!e.isValid)return X.invalid(`created by diffing an invalid DateTime`);let r={locale:this.locale,numberingSystem:this.numberingSystem,...n},i=xe(t).map(X.normalizeUnit),a=e.valueOf()>this.valueOf(),o=St(a?this:e,a?e:this,i,r);return a?o.negate():o}diffNow(t=`milliseconds`,n={}){return this.diff(e.now(),t,n)}until(e){return this.isValid?ri.fromDateTimes(this,e):this}hasSame(e,t,n){if(!this.isValid)return!1;let r=e.valueOf(),i=this.setZone(e.zone,{keepLocalTime:!0});return i.startOf(t,n)<=r&&r<=i.endOf(t,n)}equals(e){return this.isValid&&e.isValid&&this.valueOf()===e.valueOf()&&this.zone.equals(e.zone)&&this.loc.equals(e.loc)}toRelative(t={}){if(!this.isValid)return null;let n=t.base||e.fromObject({},{zone:this.zone}),r=t.padding?this<n?-t.padding:t.padding:0,i=[`years`,`months`,`days`,`hours`,`minutes`,`seconds`],a=t.unit;return Array.isArray(t.unit)&&(i=t.unit,a=void 0),en(n,this.plus(r),{...t,numeric:`always`,units:i,unit:a})}toRelativeCalendar(t={}){return this.isValid?en(t.base||e.fromObject({},{zone:this.zone}),this,{...t,numeric:`auto`,units:[`years`,`months`,`days`],calendary:!0}):null}static min(...t){if(!t.every(e.isDateTime))throw new F(`min requires all arguments be DateTimes`);return Se(t,e=>e.valueOf(),Math.min)}static max(...t){if(!t.every(e.isDateTime))throw new F(`max requires all arguments be DateTimes`);return Se(t,e=>e.valueOf(),Math.max)}static fromFormatExplain(e,t,n={}){let{locale:r=null,numberingSystem:i=null}=n;return It(H.fromOpts({locale:r,numberingSystem:i,defaultToEN:!0}),e,t)}static fromStringExplain(t,n,r={}){return e.fromFormatExplain(t,n,r)}static buildFormatParser(e,t={}){let{locale:n=null,numberingSystem:r=null}=t,i=H.fromOpts({locale:n,numberingSystem:r,defaultToEN:!0});return new li(i,e)}static fromFormatParser(t,n,r={}){if(x(t)||x(n))throw new F(`fromFormatParser requires an input string and a format parser`);let{locale:i=null,numberingSystem:a=null}=r,o=H.fromOpts({locale:i,numberingSystem:a,defaultToEN:!0});if(!o.equals(n.locale))throw new F(`fromFormatParser called with a locale of ${o}, but the format parser was created for ${n.locale}`);let{result:s,zone:c,specificOffset:l,invalidReason:u}=n.explainFromTokens(t);return u?e.invalid(u):Kt(s,c,r,`format ${n.format}`,t,l)}static get DATE_SHORT(){return cn}static get DATE_MED(){return ln}static get DATE_MED_WITH_WEEKDAY(){return un}static get DATE_FULL(){return dn}static get DATE_HUGE(){return fn}static get TIME_SIMPLE(){return pn}static get TIME_WITH_SECONDS(){return mn}static get TIME_WITH_SHORT_OFFSET(){return hn}static get TIME_WITH_LONG_OFFSET(){return gn}static get TIME_24_SIMPLE(){return _n}static get TIME_24_WITH_SECONDS(){return vn}static get TIME_24_WITH_SHORT_OFFSET(){return yn}static get TIME_24_WITH_LONG_OFFSET(){return bn}static get DATETIME_SHORT(){return xn}static get DATETIME_SHORT_WITH_SECONDS(){return Sn}static get DATETIME_MED(){return Cn}static get DATETIME_MED_WITH_SECONDS(){return wn}static get DATETIME_MED_WITH_WEEKDAY(){return Tn}static get DATETIME_FULL(){return En}static get DATETIME_FULL_WITH_SECONDS(){return Dn}static get DATETIME_HUGE(){return On}static get DATETIME_HUGE_WITH_SECONDS(){return kn}},bi=`3.7.2`}));export{xi as n,n as r,$ as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{m as n}from"./hooks-DYfTEQLk.js";import{t as r}from"./jsx-runtime-BlNNh7jY.js";import{s as i}from"./config-BPljH6wF.js";import{i as a,r as o}from"./currency-Dy4Tc2R2.js";import{_ as s,n as c}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{_ as l,l as u,m as d,x as f}from"./dist-BXHrDV19.js";import{t as p}from"./box-CZ_LSVSy.js";import{t as ee}from"./container-DAimjOF_.js";import{t as m}from"./grid-5vplBYri.js";import{t as h}from"./inline-B8H6NzIw.js";import{t as g}from"./stack-BURz77VS.js";import{Pr as _,Y as v,an as y,nr as b,qt as x,t as S,tn as C}from"./button-DvIh2Bq-.js";import{a as w,o as T,r as E,s as D,t as O}from"./command-DlLrCm9V.js";import{a as te,i as ne,n as re,o as ie,r as ae,t as oe}from"./breadcrumb-Chn1Ip_q.js";import{t as k}from"./empty-indicator-L4Ql5Db7.js";import{t as A}from"./input-group-CLIN2ykI.js";import{t as j}from"./preview-chrome-C2lQgZBZ.js";import{a as M,c as se,n as ce,r as N,s as le,t as ue}from"./table-dE4GTIRT.js";import{n as P,t as F}from"./toggle-group-D2p4okmJ.js";import{r as de}from"./newsletters-Dz77m__5.js";import{Ar as fe,F as I,Kn as L,N as R,Or as pe,Sr as me,T as z,Xn as B,_ as he,br as ge,cr as V,fr as H,ht as U,li as W,mr as _e,pi as ve,s as ye,sr as be,ui as xe,ur as Se,vr as Ce,w as we,xr as Te}from"./index-DDd-zhNL.js";import{t as G}from"./page-header-B-G_g42C.js";import{a as Ee}from"./tiers-6mPzCXlM.js";import{t as K}from"./list-page-DLMP0PxC.js";import{t as De}from"./email-previews-Bs-JDhIw.js";import{t as Oe}from"./clean-tracked-url-dkN05vOf.js";import{i as ke,r as Ae,t as je}from"./member-activity-feed-BQY5Rwaj.js";var q=e(t(),1),J={minimumFractionDigits:0,maximumFractionDigits:2};function Y(e,t){if(!(typeof e!=`number`||!Number.isFinite(e)||typeof t!=`string`||!/^[a-z]{3}$/i.test(t)))return{value:o(e),symbol:a(t)}}function Me(e,t){let n=Y(e.data.mrr_delta,e.data.currency);if(!n||n.value===0)return;let r=`${n.symbol}${d(Math.abs(n.value),J)}`;return e.data.type===`created`?`${t.hasMultipleTiers&&typeof e.data.tierName==`string`&&e.data.tierName.trim()?e.data.tierName:`Paid`} ${n.value<0?`-`:``}${r}/month`:`MRR ${n.value>0?`+`:`-`}${r}`}function Ne(e){let t=Y(e.data.amount,e.data.currency),{tier_name:n,duration:r,cadence:i}=e.data;if(!t||typeof n!=`string`||!n.trim()||typeof r!=`number`||!Number.isInteger(r)||r<=0||typeof i!=`string`||!i.trim())return`Purchased gift subscription`;let a=`${t.symbol}${d(t.value,J)}`,o=r===1?i:`${i}s`;return`Purchased gift subscription for ${a} (${n}, ${d(r)} ${o})`}function Pe(e,t){let n=ke(e.type===`gift_purchase_event`?{...e,data:{...e.data,amount:void 0}}:e,t);if(e.type===`subscription_event`&&(n.info=Me(e,t)),e.type===`donation_event`){let t=Y(e.data.amount,e.data.currency);n.info=t?`${t.symbol}${d(t.value,J)}`:void 0}return e.type===`gift_purchase_event`&&(n.action=Ne(e),n.actionTitle=n.action),e.type===`click_event`&&(n.description=typeof n.description==`string`?Oe(n.description,!0):void 0),n}function X(e){return typeof e==`object`&&e&&!Array.isArray(e)?e:void 0}function Z(e){return typeof e==`string`?e:void 0}function Fe(e){let t=X(e),n=X(t?.email),r=[t,n].find(e=>Z(e?.html)&&typeof e?.subject==`string`),i=X(t?.newsletter)??X(n?.newsletter),a=Z(t?.post_id)||Z(n?.post_id)||(typeof t?.title==`string`?Z(t.id):void 0);return{stored:r?{html:Z(r.html),subject:Z(r.subject)}:void 0,postId:a,newsletter:i?{sender_name:Z(i.sender_name),sender_email:Z(i.sender_email)}:void 0}}function Ie(e,t,n){let r=n?.hostSettings?.managedEmail;return r?.enabled&&(!r.sendingDomain||e?.split(`@`)[1]!==r.sendingDomain)?t||``:e||t||``}function Le(e){let t=new DOMParser().parseFromString(e,`text/html`);t.querySelectorAll(`a, area`).forEach(e=>{e.removeAttribute(`href`),e.removeAttribute(`target`)}),t.querySelectorAll(`base, meta[http-equiv], form`).forEach(e=>e.remove());let n=t.createElement(`style`);return n.textContent=`html { scrollbar-width: none; } html::-webkit-scrollbar { display: none; }`,t.head.append(n),`<!DOCTYPE html>${t.documentElement.outerHTML}`}var Q=r();function Re({email:e,onClose:t}){let[n,r]=(0,q.useState)(`desktop`),[a]=(0,q.useState)(()=>window.document.activeElement),o=Fe(e),s=!o.stored&&!!o.postId,c=De(o.postId??``,{enabled:s}),l=de({enabled:!o.newsletter,searchParams:{filter:`status:active`,limit:`1`}}),d=ve(),f=i(),[p,ee]=xe(d.data?.settings??[],[`title`,`default_email_address`]),_=o.newsletter??l.data?.newsletters[0],b=_?.sender_name||p,C=Ie(_?.sender_email??void 0,ee,f.data?.config),w=o.stored??(s&&!c.isError?c.data?.email_previews[0]:void 0),T=(0,q.useMemo)(()=>w?Le(w.html):void 0,[w?.html]),E=d.isError||f.isError||!o.newsletter&&l.isError,D=d.isLoading||f.isLoading||!o.newsletter&&l.isLoading,O=s&&c.isLoading;return(0,Q.jsx)(H,{open:!0,onOpenChange:e=>{e||t()},children:(0,Q.jsxs)(_e,{"aria-describedby":void 0,className:`top-0 left-0 h-dvh w-full max-w-none translate-0 grid-rows-[auto_1fr] gap-0 rounded-none border-0 p-0 shadow-none sm:rounded-none`,"data-testid":`activity-email-preview`,onCloseAutoFocus:e=>{a instanceof HTMLElement&&a.isConnected&&(e.preventDefault(),a.focus())},onInteractOutside:e=>e.preventDefault(),children:[(0,Q.jsxs)(m,{align:`center`,className:`border-b border-border-default p-4`,columns:3,gap:`md`,children:[(0,Q.jsx)(Ce,{children:`Email preview`}),(0,Q.jsxs)(F,{className:`justify-self-center`,type:`single`,value:n,onValueChange:e=>{(e===`desktop`||e===`mobile`)&&r(e)},children:[(0,Q.jsx)(P,{"aria-label":`Desktop`,value:`desktop`,children:(0,Q.jsx)(y,{})}),(0,Q.jsx)(P,{"aria-label":`Mobile`,value:`mobile`,children:(0,Q.jsx)(v,{})})]}),(0,Q.jsx)(S,{className:`justify-self-end`,onClick:t,children:`Close`})]}),(0,Q.jsx)(h,{align:`start`,className:`min-h-0 overflow-auto bg-muted p-3 sm:p-6`,gap:`none`,justify:`center`,children:(0,Q.jsx)(j,{className:u(`max-w-full shrink-0`,n===`desktop`?`max-w-[740px] px-0 [&>div]:rounded-2xl [&>div]:shadow-2xl`:`shadow-2xl`),"data-device":n,device:n,children:(0,Q.jsxs)(g,{className:`size-full bg-background`,gap:`none`,children:[(0,Q.jsxs)(g,{className:`border-b border-border-default p-4 text-[13px]`,gap:`xs`,children:[(0,Q.jsx)(`p`,{className:`font-semibold break-words`,children:w?.subject}),(0,Q.jsxs)(`p`,{children:[(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`From: `}),D?`Loading sender…`:E?`Sender unavailable`:(0,Q.jsxs)(Q.Fragment,{children:[b,C&&` <${C}>`]})]}),(0,Q.jsxs)(`p`,{children:[(0,Q.jsx)(`span`,{className:`text-muted-foreground`,children:`To: `}),`Jamie Larson <jamie@example.com>`]}),E&&(0,Q.jsxs)(h,{gap:`sm`,children:[(0,Q.jsx)(`p`,{role:`alert`,children:`Couldn’t load sender details.`}),(0,Q.jsx)(S,{size:`sm`,variant:`outline`,onClick:()=>{d.refetch(),f.refetch(),o.newsletter||l.refetch()},children:`Retry sender details`})]})]}),O?(0,Q.jsx)(h,{"aria-label":`Loading email preview`,className:`grow`,gap:`none`,justify:`center`,role:`status`,children:(0,Q.jsx)(B,{size:`md`})}):w?(0,Q.jsx)(`iframe`,{className:`min-h-0 grow border-0`,sandbox:``,srcDoc:T,title:`Email content`}):(0,Q.jsx)(k,{actions:s?(0,Q.jsx)(S,{variant:`outline`,onClick:()=>void c.refetch(),children:`Retry`}):void 0,className:`grow justify-center`,description:s?`The email preview could not be loaded.`:`The original email content is no longer available.`,role:`alert`,title:`Couldn’t load the email preview`,children:(0,Q.jsx)(x,{})})]})})})]})})}function ze({onSelect:e}){let[t,n]=(0,q.useState)(!1),r=(0,q.useRef)(null),[i,a]=(0,q.useState)(``),[o]=U(i,300),{data:s,isFetching:c,isError:l,refetch:u}=ye({enabled:t&&!!o.trim(),searchParams:{search:o,limit:`20`},defaultErrorHandler:!1}),d=c||i!==o;return(0,Q.jsx)(O,{className:`h-auto w-60 max-w-full min-w-0 overflow-visible`,shouldFilter:!1,children:(0,Q.jsxs)(be,{open:t&&!!i.trim(),onOpenChange:n,children:[(0,Q.jsx)(V,{asChild:!0,children:(0,Q.jsx)(p,{ref:r,children:(0,Q.jsx)(A,{className:`[&_[cmdk-input-wrapper]]:w-full [&_[cmdk-input-wrapper]]:border-0`,children:(0,Q.jsx)(w,{"aria-expanded":t&&!!i.trim(),"aria-label":`Search members`,className:`h-(--control-height) min-w-0 py-0`,"data-slot":`input-group-control`,placeholder:`Search members...`,value:i,onClick:()=>n(!!i.trim()),onFocus:()=>n(!!i.trim()),onValueChange:e=>{a(e),n(!!e.trim())}})})})}),(0,Q.jsx)(Se,{align:`end`,className:`w-(--radix-popover-trigger-width) max-w-[calc(100vw-2rem)] p-0`,onCloseAutoFocus:e=>e.preventDefault(),onInteractOutside:e=>{r.current?.contains(e.target)&&e.preventDefault()},onOpenAutoFocus:e=>e.preventDefault(),children:(0,Q.jsx)(D,{children:d?(0,Q.jsx)(h,{"aria-label":`Loading members`,className:`p-4`,justify:`center`,role:`status`,children:(0,Q.jsx)(B,{size:`sm`})}):l?(0,Q.jsxs)(g,{className:`p-4`,gap:`sm`,children:[(0,Q.jsx)(`p`,{className:`text-sm text-muted-foreground`,role:`alert`,children:`Couldn’t load members`}),(0,Q.jsx)(S,{variant:`outline`,onClick:()=>void u(),children:`Retry`})]}):(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(E,{children:`No members found`}),s?.members.map(t=>(0,Q.jsxs)(T,{value:t.id,onSelect:()=>{e(t.id),n(!1),a(``)},children:[(0,Q.jsx)(L,{...I(t),src:t.avatar_image}),(0,Q.jsxs)(g,{className:`min-w-0`,gap:`none`,children:[(0,Q.jsx)(`span`,{className:`truncate font-medium`,title:R(t),children:R(t)}),t.name?.trim()&&(0,Q.jsx)(`span`,{className:`truncate text-sm text-muted-foreground`,title:t.email,children:t.email})]})]},t.id))]})})})]})})}var Be=e(f(),1);function Ve(e){if(!e||typeof e!=`object`)return;let t=`subject`in e?e.subject:void 0;return typeof t==`string`&&t.trim()?t:`email`in e&&e.email&&typeof e.email==`object`?Ve(e.email):`Email`}function He({event:e,memberHref:t,hideMember:n,onPreview:r}){let i=typeof e.subject==`string`&&e.subject?e.subject:`Unknown member`,a=(0,Q.jsxs)(h,{gap:`md`,children:[(0,Q.jsx)(L,{...I(e.member),className:`[&_span]:text-[13px]`,src:e.member?.avatar_image}),(0,Q.jsxs)(g,{className:`min-w-0`,gap:`none`,children:[(0,Q.jsx)(`span`,{className:u(`truncate font-medium`,t&&`group-hover/member:underline`),children:i}),e.member?.name&&(0,Q.jsx)(`span`,{className:`truncate text-muted-foreground`,children:e.member.email})]})]}),o=Ae(e.route)?e.route:Ae(e.url)?e.url:void 0,s=!!e.object&&!!o,l=!s&&Ve(e.email),d=e.action?e.action[0].toUpperCase()+e.action.slice(1):`Unknown activity`,f=e.timestamp?(0,Be.default)(e.timestamp).local():void 0;return(0,Q.jsxs)(se,{children:[!n&&(0,Q.jsx)(N,{className:`group/member w-1/3 max-w-72 min-w-40 py-4`,children:t?(0,Q.jsx)(c,{className:`block hover:no-underline`,to:t,children:a}):a}),(0,Q.jsx)(N,{className:`min-w-48 py-4`,children:(0,Q.jsxs)(h,{gap:`md`,children:[(0,Q.jsx)(h,{className:`size-8 shrink-0 rounded-full bg-muted`,gap:`none`,justify:`center`,children:(0,Q.jsx)(je,{iconName:e.icon})}),(0,Q.jsxs)(g,{className:`min-w-0`,gap:`xs`,children:[(0,Q.jsxs)(`p`,{className:`leading-relaxed`,children:[(0,Q.jsx)(`span`,{title:e.actionTitle,children:d}),e.info&&(0,Q.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`(`,e.info,`)`]}),s&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),o.startsWith(`#/`)?(0,Q.jsx)(z,{className:`font-medium hover:underline`,to:o.slice(1),children:e.object}):(0,Q.jsx)(`a`,{className:`font-medium hover:underline`,href:o,rel:`noopener noreferrer`,target:`_blank`,children:e.object})]}),l&&(0,Q.jsxs)(Q.Fragment,{children:[(0,Q.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),(0,Q.jsx)(`button`,{className:`cursor-pointer text-left font-medium hover:underline`,type:`button`,onClick:()=>r(e.email),children:l})]})]}),e.description&&(0,Q.jsx)(`p`,{className:`break-all text-muted-foreground`,title:e.description,children:e.description})]})]})}),(0,Q.jsx)(N,{className:`w-40 py-4 text-left whitespace-nowrap text-muted-foreground`,children:f?.isValid()?(0,Q.jsx)(`time`,{dateTime:f.toISOString(),children:f.format(`DD MMM YYYY HH:mm`)}):`—`})]})}var Ue=[`email_sent_event`,`email_delivered_event`,`email_opened_event`,`email_failed_event`,`email_complaint_event`],We=[{event:`signup_event`,name:`Signups`,group:`auth`,icon:`event-signed-up`},{event:`login_event`,name:`Logins`,group:`auth`,icon:`event-logged-in`},{event:`subscription_event`,name:`Paid subscriptions`,group:`payments`,icon:`event-subscriptions`},{event:`payment_event`,name:`Payments`,group:`payments`,icon:`event-subscriptions`},{event:`newsletter_event`,name:`Email subscriptions`,group:`emails`,icon:`event-subscribed-to-email`},{event:`email_opened_event`,name:`Email opened`,group:`emails`,icon:`event-opened-email`},{event:`email_delivered_event`,name:`Email received`,group:`emails`,icon:`event-received-email`},{event:`email_complaint_event`,name:`Email flagged as spam`,group:`emails`,icon:`event-email-delivery-spam`},{event:`email_failed_event`,name:`Email bounced`,group:`emails`,icon:`event-email-delivery-failed`},{event:`email_change_event`,name:`Email address changed`,group:`emails`,icon:`event-email-changed`},{event:`automated_email_sent_event`,name:`Welcome email received`,group:`emails`,icon:`event-sent-email`},{event:`feedback_event`,name:`Feedback`,group:`others`,icon:`event-more-like-this`}];function $(e){return[...new Set((e??``).split(`,`).filter(e=>/^[a-z_]+$/.test(e)))]}function Ge(e,t){let n=[`aggregated_click_event`];return(!t||e.editorDefaultEmailRecipients===`disabled`)&&n.push(...Ue),e.editorDefaultEmailRecipients===`disabled`&&n.push(`newsletter_event`),n}function Ke(e,t){let n=[...We];e.commentsEnabled!==`off`&&n.push({event:`comment_event`,name:`Comments`,group:`others`,icon:`event-comment`}),e.emailTrackClicks&&n.push({event:`click_event`,name:`Clicked link in email`,group:`others`,icon:`event-click`});let r=new Set(Ge(e,t));return n.filter(({event:e})=>!r.has(e))}function qe(e,t){let n=new Set($(t)),r=e===`subscription_event`?[e,`gift_redemption_event`,`gift_ended_event`]:e===`payment_event`?[e,`donation_event`,`gift_purchase_event`]:[e],i=n.has(e);for(let e of r)i?n.delete(e):n.add(e);return[...n].join(`,`)}function Je({settings:e,memberId:t,excluded:n}){let r=new Set([...$(n),...Ge(e,t)]);return r.has(`email_complaint_event`)&&r.add(`email_complained_event`),e.commentsEnabled===`off`&&r.add(`comment_event`),{memberId:t,excludedEvents:[...r]}}function Ye(){let[e,t]=s(),r=e.get(`member`)||void 0,i=e.get(`excludedEvents`),[a,o]=(0,q.useState)(null),u=(0,q.useRef)(null),f=ve({defaultErrorHandler:!1}),m=f.data?.settings??[],v={editorDefaultEmailRecipients:W(m,`editor_default_email_recipients`)??void 0,commentsEnabled:W(m,`comments_enabled`)??void 0,emailTrackClicks:W(m,`email_track_clicks`)??void 0},y=W(m,`paid_members_enabled`)??!1,x=he(r??``,{enabled:!!r,defaultErrorHandler:!1}),w=x.data?.members[0],T=!!r&&(x.error instanceof n&&x.error.response?.status===404||x.isSuccess&&!w),E=!!r&&x.isError&&!T,D=de({searchParams:{filter:`status:active`,limit:`1`}}),O=Ee({searchParams:{filter:`type:paid+active:true`,limit:`all`},enabled:y}),A=we({...Je({settings:v,memberId:r,excluded:i}),enabled:!!f.data&&!f.isError&&(!r||!!w),defaultErrorHandler:!1}),j=A.data?.events??[],N=Ke(v,r),P=$(i),F=N.filter(({event:e})=>!P.includes(e)),z=F.length===N.length?`All events`:F.length===1?F[0].name:F.length===0?`No events selected`:`${d(F.length)} events`,V=f.isLoading||!!r&&x.isLoading||A.isLoading,H=(n,r)=>{let i=new URLSearchParams(e);r?i.set(n,r):i.delete(n),t(i)};(0,q.useEffect)(()=>{let e=u.current;if(!e||!A.hasNextPage||A.isFetching||A.isError)return;let t=new IntersectionObserver(e=>{e.some(e=>e.isIntersecting)&&A.fetchNextPage()},{root:l(e),rootMargin:`250px`});return t.observe(e),()=>t.disconnect()},[A.hasNextPage,A.isFetching,A.isError,A.fetchNextPage]);let U=!!r||P.length>0;return(0,Q.jsxs)(p,{className:`size-full`,children:[(0,Q.jsx)(ee,{className:`relative h-full`,size:`page`,children:(0,Q.jsxs)(K,{"data-testid":`member-activity-page`,children:[(0,Q.jsx)(K.Header,{children:(0,Q.jsxs)(G,{blurredBackground:!1,sticky:!1,children:[(0,Q.jsx)(G.Left,{children:r?(0,Q.jsx)(oe,{children:(0,Q.jsxs)(ne,{children:[(0,Q.jsx)(re,{children:(0,Q.jsx)(ae,{asChild:!0,children:(0,Q.jsx)(c,{to:`/members-activity`,children:`Member activity`})})}),(0,Q.jsx)(ie,{}),(0,Q.jsx)(re,{children:(0,Q.jsx)(te,{className:`truncate`,children:w?R(w):`Member`})})]})}):(0,Q.jsx)(G.Title,{children:`Member activity`})}),(0,Q.jsx)(G.Actions,{className:`max-w-full min-w-0`,children:(0,Q.jsxs)(h,{className:`max-w-full min-w-0`,gap:`md`,wrap:!0,children:[!r&&(0,Q.jsx)(ze,{onSelect:e=>H(`member`,e)}),(0,Q.jsxs)(ge,{children:[(0,Q.jsx)(fe,{asChild:!0,children:(0,Q.jsxs)(S,{"aria-label":`Filter events`,variant:`outline`,children:[(0,Q.jsx)(C,{className:`size-4`}),z,(0,Q.jsx)(b,{className:`size-4 opacity-50`})]})}),(0,Q.jsx)(me,{align:`end`,className:`max-h-[70vh] w-64 max-w-[calc(100vw-2rem)] overflow-y-auto`,children:N.map((e,t)=>(0,Q.jsxs)(q.Fragment,{children:[t>0&&e.group!==N[t-1].group&&(0,Q.jsx)(pe,{}),(0,Q.jsxs)(Te,{checked:!P.includes(e.event),className:`gap-2 pr-8 pl-2 [&>span:first-child]:right-2 [&>span:first-child]:left-auto`,onCheckedChange:()=>H(`excludedEvents`,qe(e.event,i)),onSelect:e=>e.preventDefault(),children:[(0,Q.jsx)(je,{iconName:e.icon}),e.name]})]},e.event))})]})]})})]})}),(0,Q.jsxs)(K.Body,{children:[w&&(0,Q.jsxs)(h,{className:`py-6`,gap:`lg`,children:[(0,Q.jsx)(L,{...I(w),className:`size-12 min-w-12 [&_span]:text-lg`,src:w.avatar_image}),(0,Q.jsxs)(g,{className:`min-w-0`,gap:`none`,children:[(0,Q.jsx)(`h2`,{className:`truncate text-xl font-semibold`,children:R(w)}),w.name?.trim()&&(0,Q.jsx)(`p`,{className:`truncate text-muted-foreground`,children:w.email}),(0,Q.jsx)(c,{className:`mt-0.5 text-sm font-medium hover:underline`,to:`/members/${encodeURIComponent(w.id)}`,children:`View member profile →`})]})]}),f.isError?(0,Q.jsx)(k,{actions:(0,Q.jsx)(S,{variant:`outline`,onClick:()=>void f.refetch(),children:`Retry`}),role:`alert`,title:`Couldn’t load activity settings`}):T?(0,Q.jsx)(k,{actions:(0,Q.jsx)(S,{variant:`outline`,onClick:()=>H(`member`),children:`Clear member`}),description:`This member may have been deleted.`,role:`alert`,title:`Member not found`}):E?(0,Q.jsx)(k,{actions:(0,Q.jsx)(S,{variant:`outline`,onClick:()=>void x.refetch(),children:`Retry`}),role:`alert`,title:`Couldn’t load member`}):V?(0,Q.jsx)(h,{"aria-label":`Loading member activity`,className:`grow py-10`,justify:`center`,role:`status`,children:(0,Q.jsx)(B,{size:`lg`})}):(0,Q.jsxs)(Q.Fragment,{children:[j.length>0?(0,Q.jsx)(p,{className:`shrink-0 overflow-x-auto`,children:(0,Q.jsxs)(ue,{"aria-label":`Member activity`,className:`text-[13px]`,children:[(0,Q.jsx)(le,{children:(0,Q.jsxs)(se,{children:[!r&&(0,Q.jsx)(M,{className:`text-[13px]`,scope:`col`,children:`Member`}),(0,Q.jsx)(M,{className:`text-[13px]`,scope:`col`,children:`Event`}),(0,Q.jsx)(M,{className:`text-[13px]`,scope:`col`,children:`Time`})]})}),(0,Q.jsx)(ce,{children:j.map((t,n)=>{let i=Pe(t,{hasMultipleNewsletters:D.isError||(D.data?.meta?.pagination.total??0)>1,hasMultipleTiers:(O.data?.tiers.length??0)>1,paidMembersEnabled:y}),a=new URLSearchParams(e);return i.member?.id&&a.set(`member`,i.member.id),(0,Q.jsx)(He,{event:i,hideMember:!!r,memberHref:i.member?.id?`/members-activity?${a}`:void 0,onPreview:o},`${t.type}:${i.id??n}`)})})]})}):!A.isError&&(0,Q.jsx)(k,{actions:U?(0,Q.jsx)(S,{variant:`outline`,asChild:!0,children:(0,Q.jsx)(c,{to:`/members-activity`,children:`Show all activity`})}):void 0,className:`grow`,title:U?`No activities match the current filter`:`No member activity yet`,children:(0,Q.jsx)(_,{})}),A.isError&&(0,Q.jsx)(k,{actions:(0,Q.jsx)(S,{variant:`outline`,onClick:()=>void(A.isFetchNextPageError?A.fetchNextPage():A.refetch()),children:`Retry`}),role:`alert`,title:j.length?`Couldn’t load more activity`:`Couldn’t load member activity`}),A.isFetchingNextPage&&(0,Q.jsx)(h,{"aria-label":`Loading more activity`,className:`py-6`,justify:`center`,role:`status`,children:(0,Q.jsx)(B,{size:`md`})}),(0,Q.jsx)(p,{ref:u,className:`h-px`})]})]})]})}),!!a&&(0,Q.jsx)(Re,{email:a,onClose:()=>o(null)})]})}export{Ye as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{t as n}from"./jsx-runtime-BlNNh7jY.js";import{x as r}from"./dist-BXHrDV19.js";import{A as i,At as a,Gt as o,It as s,Jn as c,Jt as l,Kt as u,Pr as d,Qt as f,Rn as p,Xt as m,Yt as h,et as g,g as _,k as v,qt as y,wr as b,yn as x}from"./button-DvIh2Bq-.js";import{t as S}from"./skeleton-DwCva0-b.js";import{n as C,t as w}from"./card-FHQ4D10L.js";import{t as T}from"./empty-indicator-L4Ql5Db7.js";import{v as E}from"./index-DDd-zhNL.js";t();var D=e(r(),1),O=new Set([`bif`,`clp`,`djf`,`gnf`,`jpy`,`kmf`,`krw`,`mga`,`pyg`,`rwf`,`ugx`,`vnd`,`vuv`,`xaf`,`xof`,`xpf`]);function k(e,t){let n=O.has(t.toLowerCase())?e:e/100,r=n%1==0;try{return new Intl.NumberFormat(`en-US`,{style:`currency`,currency:t.toUpperCase(),minimumFractionDigits:r?0:2,maximumFractionDigits:r?0:2}).format(n)}catch{return`${n}`}}function A(e){return e?.trim()||null}function j(e){let t;return e.type===`login_event`&&(t=`logged-in`),e.type===`payment_event`&&(t=`subscriptions`),e.type===`newsletter_event`&&(t=e.data.subscribed?`subscribed-to-email`:`unsubscribed-from-email`),e.type===`subscription_event`&&(t=`subscriptions`,e.data.type===`canceled`&&(t=`canceled-subscription`)),(e.type===`signup_event`||e.type===`subscription_event`&&e.data.type===`created`&&e.data.signup)&&(t=`signed-up`),e.type===`email_opened_event`&&(t=`opened-email`),(e.type===`email_sent_event`||e.type===`automated_email_sent_event`)&&(t=`sent-email`),e.type===`email_delivered_event`&&(t=`received-email`),e.type===`email_failed_event`&&(t=`email-delivery-failed`),e.type===`email_complaint_event`&&(t=`email-delivery-spam`),e.type===`comment_event`&&(t=`comment`),(e.type===`click_event`||e.type===`aggregated_click_event`)&&(t=`click`),e.type===`feedback_event`&&(t=e.data.score===1?`more-like-this`:`less-like-this`),e.type===`donation_event`&&(t=`subscriptions`),(e.type===`gift_purchase_event`||e.type===`gift_redemption_event`||e.type===`gift_ended_event`)&&(t=`gift`),e.type===`email_change_event`&&(t=`email-changed`),`event-${t}`}function M(e,t){if(e.type===`signup_event`||e.type===`subscription_event`&&e.data.type===`created`&&e.data.signup)return`signed up`;if(e.type===`login_event`)return`logged in`;if(e.type===`payment_event`)return`made payment`;if(e.type===`newsletter_event`){let n=e.data.newsletter,r=t&&n?.name?n.name:`newsletter`;return e.data.subscribed?`subscribed to ${r}`:`unsubscribed from ${r}`}if(e.type===`subscription_event`){let t=e.data.type;return t===`created`?`started paid subscription`:t===`canceled`?`canceled paid subscription`:t===`reactivated`?`reactivated paid subscription`:t===`expired`?`ended paid subscription`:`changed paid subscription`}if(e.type===`email_opened_event`)return`opened email`;if(e.type===`email_sent_event`)return`sent email`;if(e.type===`automated_email_sent_event`){let t=e.data.automatedEmail;if(t?.source!==`automation_action_revision`)return`received welcome email (${(t?.slug||``).includes(`paid`)?`Paid`:`Free`})`;let n=A(t.subject);return n?`received automated email: ${n}`:`received automated email`}if(e.type===`email_delivered_event`)return`received email`;if(e.type===`email_failed_event`)return`bounced email`;if(e.type===`email_complaint_event`)return`email flagged as spam`;if(e.type===`comment_event`)return e.data.parent?`replied to comment`:`commented`;if(e.type===`click_event`)return`clicked link in email`;if(e.type===`aggregated_click_event`){let t=e.data.count?.clicks??1;return t<=1?`clicked link in email`:`clicked ${t} links in email`}if(e.type===`feedback_event`)return e.data.score===1?`more like this`:`less like this`;if(e.type===`email_change_event`)return e.data.from_email&&e.data.to_email?`Email address changed from ${e.data.from_email} to ${e.data.to_email}`:`Email address changed`;if(e.type===`donation_event`)return`Made a one-time payment`;if(e.type===`gift_purchase_event`){let t=e.data.amount,n=e.data.currency,r=e.data.tier_name,i=e.data.duration,a=e.data.cadence;return typeof t==`number`&&n&&r&&typeof i==`number`&&a?`Purchased gift subscription for ${k(t,n)} (${r}, ${i} ${i===1?a:`${a}s`})`:`Purchased gift subscription`}if(e.type===`gift_redemption_event`)return`started gift subscription`;if(e.type===`gift_ended_event`)return`gift subscription expired`}function N(e,t){if(e.type===`automated_email_sent_event`){let t=e.data.automatedEmail;if(t?.source===`automation_action_revision`){let e=A(t.subject);return e?`received automated email: ${e}`:`received automated email`}}return M(e,t)}function P(e){if(e.type===`signup_event`||e.type===`subscription_event`||e.type===`donation_event`){let t=e.data.attribution;if(t?.title)return t.title}if(e.type===`comment_event`||e.type===`click_event`||e.type===`feedback_event`){let t=e.data.post;if(t?.title)return t.title}return``}function F(e){let t=e.data.attribution;return t?.referrer_source?{name:t.referrer_source,url:t.referrer_url??null}:null}function I(e,t){if(e.type===`signup_event`&&t.paidMembersEnabled){let t=e.data.created_with_status;return t&&t!==`free`?null:`Free`}if(e.type===`gift_redemption_event`)return e.data.tier_name??void 0}function L(e){if(e.type===`click_event`)return e.data.link?.to}function R(e){if(e.type===`comment_event`||e.type===`click_event`||e.type===`feedback_event`){let t=e.data.post;if(t?.url)return t.url}if(e.type===`signup_event`||e.type===`subscription_event`||e.type===`donation_event`){let t=e.data.attribution;if(t?.url)return t.url}}function z(e){if(e.type===`click_event`||e.type===`feedback_event`){let t=e.data.post;if(t?.id)return`#/posts/analytics/${t.id}`}if((e.type===`signup_event`||e.type===`subscription_event`)&&e.data.attribution_type===`post`&&e.data.attribution_id)return`#/posts/analytics/${e.data.attribution_id}`}function B(e,t){let n=A(e.data.member?.name),r=e.data.member?n||e.data.member.email||``:e.data.name||e.data.email||``,i=e.data.member?{...e.data.member,name:n??void 0}:e.data.member;return{id:e.data.id,memberId:e.data.member_id??e.data.member?.id,member:i,emailId:e.data.email_id,email:e.data.email,icon:j(e),subject:r,action:M(e,t.hasMultipleNewsletters),actionTitle:N(e,t.hasMultipleNewsletters),join:`–`,object:P(e),source:F(e),info:I(e,t),description:L(e),url:R(e),route:z(e),timestamp:e.data.created_at}}function V(e){return e?/^(https?:\/\/|\/|#\/)/i.test(e):!1}var H=n(),U=({iconName:e})=>{let t={className:`shrink-0 text-muted-foreground`,size:16};switch(e){case`event-signed-up`:return(0,H.jsx)(_,{...t});case`event-logged-in`:return(0,H.jsx)(f,{...t});case`event-subscriptions`:return(0,H.jsx)(p,{...t});case`event-canceled-subscription`:return(0,H.jsx)(c,{...t});case`event-subscribed-to-email`:return(0,H.jsx)(l,{...t});case`event-unsubscribed-from-email`:return(0,H.jsx)(m,{...t});case`event-opened-email`:return(0,H.jsx)(h,{...t});case`event-received-email`:return(0,H.jsx)(o,{...t});case`event-sent-email`:return(0,H.jsx)(g,{...t});case`event-email-delivery-failed`:return(0,H.jsx)(u,{...t});case`event-email-delivery-spam`:return(0,H.jsx)(y,{...t});case`event-email-changed`:return(0,H.jsx)(b,{...t});case`event-comment`:return(0,H.jsx)(s,{...t});case`event-click`:return(0,H.jsx)(a,{...t});case`event-more-like-this`:return(0,H.jsx)(v,{...t});case`event-less-like-this`:return(0,H.jsx)(i,{...t});case`event-gift`:return(0,H.jsx)(x,{...t});default:return(0,H.jsx)(d,{...t})}},W=({memberId:e})=>(0,H.jsx)(`a`,{className:`block pt-3 font-medium text-primary hover:underline`,"data-testid":`member-activity-view-all`,href:`#/members-activity?member=${e}`,children:`View all member activity →`}),G=`All events related to this member will be shown here.`,K=e=>e?e.charAt(0).toUpperCase()+e.slice(1):``;function q(e){if(e&&typeof e==`object`){let t=e.subject;return t?`“${t}”`:`Email`}}var J=({event:e})=>{if(!e.action)return null;let t=q(e.email),n=e.object&&(e.route||V(e.url)),r=!n&&t,i=e.timestamp?(0,D.default)(e.timestamp).fromNow():`—`;return(0,H.jsxs)(`div`,{className:`flex items-start gap-3 py-3`,"data-testid":`member-activity-event`,children:[(0,H.jsx)(`div`,{className:`flex size-8 shrink-0 items-center justify-center rounded-full bg-muted`,children:(0,H.jsx)(U,{iconName:e.icon})}),(0,H.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-0.5`,children:[(0,H.jsxs)(`div`,{className:`text-sm leading-snug`,children:[(0,H.jsx)(`span`,{"data-testid":`member-activity-action`,children:K(e.action)}),e.info&&(0,H.jsxs)(`span`,{className:`ml-1 text-muted-foreground`,children:[`(`,e.info,`)`]}),n&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),e.route?(0,H.jsx)(`a`,{className:`hover:underline`,href:e.route,children:e.object}):(0,H.jsx)(`a`,{className:`hover:underline`,href:e.url,rel:`noopener noreferrer`,target:`_blank`,children:e.object})]}),r&&(0,H.jsxs)(H.Fragment,{children:[(0,H.jsx)(`span`,{className:`mx-1 text-muted-foreground`,children:e.join}),(0,H.jsx)(`span`,{className:`text-muted-foreground`,children:t})]})]}),e.description&&(0,H.jsx)(`div`,{className:`truncate text-xs text-muted-foreground`,children:e.description}),(0,H.jsx)(`div`,{className:`text-xs text-muted-foreground`,children:i})]})]})},Y=({memberId:e,hasMultipleNewsletters:t,hasMultipleTiers:n,paidMembersEnabled:r})=>{let{data:i,isLoading:a}=E(e??``,{limit:`5`,enabled:!!e}),o=(i?.events??[]).map(e=>B(e,{hasMultipleNewsletters:t,hasMultipleTiers:n,paidMembersEnabled:r})),s=new Set;return e?(0,H.jsxs)(`section`,{"aria-labelledby":`member-activity-heading`,className:`flex flex-col gap-3`,children:[(0,H.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-activity-heading`,children:`Activity`}),(0,H.jsx)(w,{children:(0,H.jsxs)(C,{className:`pt-3`,children:[a?(0,H.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,H.jsx)(S,{className:`h-10`}),(0,H.jsx)(S,{className:`h-10`}),(0,H.jsx)(S,{className:`h-10`})]}):o.length===0?(0,H.jsx)(`p`,{className:`py-4 text-center text-sm text-muted-foreground`,"data-testid":`member-activity-empty`,children:`No activity yet`}):(0,H.jsx)(`div`,{className:`divide-y divide-border`,children:o.map(e=>{let t=e.id||`${e.timestamp??`?`}-${e.icon}-${e.action}`,n=t,r=1;for(;s.has(n);)n=`${t}#${r}`,r+=1;return s.add(n),(0,H.jsx)(J,{event:e},n)})}),!a&&o.length>0&&(0,H.jsx)(W,{memberId:e})]})})]}):(0,H.jsxs)(`section`,{"aria-labelledby":`member-activity-heading`,className:`flex flex-col gap-3`,children:[(0,H.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-activity-heading`,children:`Activity`}),(0,H.jsx)(w,{children:(0,H.jsx)(C,{className:`pt-6`,children:(0,H.jsx)(`div`,{className:`flex flex-col items-center gap-3 py-4`,children:(0,H.jsx)(T,{description:G,title:`Activity`,children:(0,H.jsx)(d,{})})})})})]})};export{B as i,Y as n,V as r,U as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e,r as t}from"./hooks-DYfTEQLk.js";import{c as n,g as r,m as i,p as a,t as o}from"./schemas-BoYdB6YU.js";var s=[`short_text`,`long_text`,`address`],c={short_text:null,long_text:null,address:{line1:`short_text`,line2:`short_text`,city:`short_text`,state:`short_text`,postal_code:`postal_code`,country:`country_code`}};function l(e){let t=c[e];return t?Object.keys(t):null}function u(e){let t=c[e];return t?{...t}:null}o(s),o([`none`,`read`,`write`]);var d=65535,f=e=>new TextEncoder().encode(e).length,p=()=>i({error:`Enter text.`}).trim(),m=()=>p().refine(e=>f(e)<=d,{error:`This text is too long to save. Shorten it a little.`}),h={short_text:p().max(255,{error:`Use 255 characters or fewer.`}),postal_code:p().max(32,{error:`Use 32 characters or fewer.`}),country_code:p().regex(/^[A-Za-z]{2}$/,{error:`Enter a 2-letter country code, like US.`}).toUpperCase()},g=h,_=e=>p().pipe(r([n(``),e])).optional();function v(e){return e}function y(e,{error:t}){let n=c[e];return{kind:`record`,value:a(Object.fromEntries(Object.entries(n).map(([e,t])=>[e,_(g[t])]))).refine(e=>Object.values(e).some(e=>typeof e==`string`),{error:t})}}var b=v({short_text:{kind:`text`,value:h.short_text},long_text:{kind:`text`,value:m()},address:y(`address`,{error:`Enter at least one part of the address.`})});b.address.value;var x=`metafields`,S=/^[a-z0-9_]+$/;function C({namespace:e,key:t,partPath:n}){let r=`${e}.${t}`;return n?`${r}.${n}`:r}function w(e){let[t,n,...r]=e.split(`.`);return t===void 0||n===void 0||![t,n,...r].every(e=>S.test(e))?null:{namespace:t,key:n,partPath:r.length>0?r.join(`.`):null}}var T=`${x}.`;function E(e){return C({namespace:e.namespace,key:e.key,partPath:null})}function D(e){let t=`${T}${E(e)}`,n=l(e.type);return n?n.map(e=>({column:`${t}.${e}`,subField:e})):[{column:t,subField:null}]}function O(e){return e===`metafields`||e.startsWith(T)}var k=[{value:`none`,label:`Only staff`,description:`Members never see this field or what you record in it`},{value:`read`,label:`Members can view`,description:`Shown in their account, but only staff can change it`},{value:`write`,label:`Members can edit`,description:`Members fill this in and keep it up to date themselves`}],A=e=>k.find(t=>t.value===e)?.label??e,j={short_text:{label:`Short text`,input:`text`},long_text:{label:`Long text`,input:`textarea`},address:{label:`Address`,input:`address`,subFields:{line1:`Address line 1`,line2:`Address line 2`,city:`City`,state:`State`,postal_code:`Postal code`,country:`Country`}}},M=e=>j[e]?.subFields??{},N=s.map(e=>({id:e,...j[e]})),P=e=>N.find(t=>t.id===e)||N[0],F=e=>P(e.type),I=e=>e.flatMap(e=>{let t=M(e.type);return D({namespace:e.namespace,key:e.key,type:e.type}).map(({column:n,subField:r})=>{let i=r===null?void 0:t[r];return{value:n,fieldName:e.name,...i===void 0?{}:{partLabel:i},label:i===void 0?e.name:`${e.name} (${i})`,type:e.type}})}),L=e=>{let t=l(e),n=u(e);if(!t||!n)return null;let r=M(e);return t.map(e=>({key:e,label:r[e],type:n[e]}))},R=e=>typeof e==`object`&&!!e&&!Array.isArray(e),z={address:[[`state`,`postal_code`]]};function B(e){let t=l(e);if(!t)return[];let n=new Map;(z[e]??[]).forEach((e,t)=>{e.forEach(e=>n.set(e,t))});let r=[],i;for(let e of t){let t=n.get(e);if(t!==void 0&&t===i){r[r.length-1].push(e);continue}r.push([e]),i=t}return r}var V=Object.fromEntries(s.map(e=>[e,B(e)])),H=(e,t)=>l(e)===null?typeof t==`string`?t:``:R(t)?(V[e]??[]).map(e=>e.map(e=>t[e]).filter(e=>typeof e==`string`&&e!==``).join(` `)).filter(Boolean).join(`, `):``,U=e=>b[e].kind,W=`MemberCustomFieldsResponseType`,G=W,K=t({dataType:W,path:`/members/metafields/custom/`,returnData:e=>e.members_metafields}),q=e=>K({...e,searchParams:{filter:`status:[active,archived]`}}),J=e({method:`POST`,path:()=>`/members/metafields/custom/`,body:e=>({members_metafields:[e]}),invalidateQueries:{dataType:W},updateQueries:{dataType:W,emberUpdateType:`skip`,update:(e,t)=>{let n=t;if(!n?.members_metafields)return t;let r=e.members_metafields.filter(e=>!n.members_metafields.some(t=>t.key===e.key));return{...n,members_metafields:[...n.members_metafields,...r]}}}}),Y=e({method:`PUT`,path:e=>`/members/metafields/custom/${e.key}/`,body:({key:e,...t})=>({members_metafields:[t]}),invalidateQueries:{dataType:W}}),X=e({method:`PUT`,path:()=>`/members/metafields/custom/`,body:e=>({members_metafields:e.map(({key:e})=>({key:e}))}),updateQueries:{dataType:W,emberUpdateType:`skip`,update:(e,t)=>{let n=t;if(!n?.members_metafields)return t;let r=e.members_metafields.map(({key:e})=>e);return{...n,members_metafields:Z(r,n.members_metafields)}}}}),Z=(e,t)=>{let n=new Map(e.map((e,t)=>[e,t]));return[...t].sort((e,t)=>(n.get(e.key)??1/0)-(n.get(t.key)??1/0))},Q=e({method:`DELETE`,path:e=>`/members/metafields/custom/${e}/`,invalidateQueries:{dataType:W}});export{P as _,I as a,w as b,N as c,q as d,J as f,F as g,X as h,A as i,G as l,Y as m,H as n,U as o,Q as p,Z as r,L as s,k as t,K as u,O as v,b as x,C as y};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{s as e,t}from"./react-BXwhMTuc.js";import{s as n}from"./framework-provider-DB-svAju.js";import{o as r}from"./hooks-DYfTEQLk.js";import{t as i}from"./jsx-runtime-BlNNh7jY.js";import{n as a}from"./dist-DziNzWI2.js";import{i as o}from"./currency-Dy4Tc2R2.js";import{h as s,n as c,u as l}from"./chunk-KS7C4IRE-DhOcHQOU.js";import{a as u}from"./router-provider-CU87qxXw.js";import{l as d,x as f}from"./dist-BXHrDV19.js";import{t as p}from"./box-CZ_LSVSy.js";import{t as m}from"./container-DAimjOF_.js";import{Kt as h,On as g,Pn as _,Rn as v,Rt as y,Ut as ee,ft as te,g as b,jn as ne,nr as x,t as S,vn as re,xt as ie}from"./button-DvIh2Bq-.js";import{t as C}from"./switch-zfUUy9Jh.js";import{i as ae,n as oe,o as se,s as w,t as T}from"./select-CKaC4ggu.js";import{t as ce}from"./skeleton-DwCva0-b.js";import{t as E}from"./badge-qP06OT7C.js";import{a as le,i as ue,n as de,o as fe,r as pe,t as me}from"./breadcrumb-Chn1Ip_q.js";import{n as D,t as O}from"./card-FHQ4D10L.js";import{t as k}from"./empty-indicator-L4Ql5Db7.js";import{t as A}from"./label-CgeBxy4o.js";import{n as he,o as j,t as ge}from"./input-group-CLIN2ykI.js";import{t as _e}from"./textarea-B4FffFmE.js";import{i as ve}from"./users-C60_hpn6.js";import{r as ye}from"./newsletters-Dz77m__5.js";import{Ar as M,C as be,F as xe,Kn as Se,N as Ce,Or as N,Qn as P,S as F,Sr as we,Xn as I,Zn as L,_ as Te,_r as R,ar as z,b as Ee,bi as B,br as De,d as Oe,er as ke,f as Ae,fr as V,gr as H,h as je,hr as U,ir as Me,li as Ne,m as Pe,mr as W,nr as Fe,o as Ie,p as G,pi as Le,rr as Re,tr as ze,vr as K,wr as q,y as Be,yi as Ve}from"./index-DDd-zhNL.js";import{t as He}from"./page-header-B-G_g42C.js";import{t as Ue}from"./dirty-confirm-dialog-DWwxREGh.js";import{a as We}from"./tiers-6mPzCXlM.js";import{t as J}from"./detail-page-QpLIL-EO.js";import{t as Ge}from"./validator-DlFQP70j.js";import{n as Ke,t as qe}from"./use-unsaved-changes-guard-CKVPWz_F.js";import{n as Je,r as Ye}from"./member-activity-feed-BQY5Rwaj.js";import{g as Xe,n as Ze,s as Qe,x as $e}from"./member-custom-fields-Dd_ie1zG.js";import{i as et,n as tt,r as nt}from"./label-picker-DGDp4Vwr.js";var Y=e(t(),1),rt=new Set([`active`,`trialing`,`unpaid`,`past_due`]);function it(e){return(e.subscriptions??[]).some(e=>rt.has(e.status))}function at(e){return e?`Delete member + Cancel subscription`:`Delete member`}var X=i(),ot=({open:e,onOpenChange:t,member:n,allowLeaveWithUnsavedChanges:r})=>{let i=u(),o=Oe(),[s,c]=Y.useState(!1);Y.useEffect(()=>{e&&c(!1)},[e]);let l=it(n),d=n.email||n.name||`this member`,f=async()=>{try{let e=l&&s;await o.mutateAsync({id:n.id,cancel:e}),a.success(e?`${d} was deleted and their Stripe subscription was cancelled.`:`${d} was deleted.`),t(!1),r(),i(`/members`)}catch{a.error(`Couldn’t delete the member. Please try again.`)}};return(0,X.jsx)(V,{open:e,onOpenChange:e=>{o.isPending||t(e)},children:(0,X.jsxs)(W,{"data-testid":`delete-member-modal`,children:[(0,X.jsxs)(R,{children:[(0,X.jsx)(K,{children:`Delete member account`}),(0,X.jsxs)(U,{children:[`Permanently delete `,(0,X.jsx)(`strong`,{children:d}),` from Ghost.`]})]}),l&&(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`h4`,{className:`text-sm font-medium`,children:`Also cancel subscription in Stripe`}),(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`If disabled, the member’s premium subscription will continue`})]}),(0,X.jsx)(C,{"aria-label":`Also cancel subscription in Stripe`,checked:s,"data-testid":`delete-member-cancel-stripe`,disabled:o.isPending,onCheckedChange:c})]}),(0,X.jsxs)(H,{children:[(0,X.jsx)(S,{"data-testid":`cancel-delete-member`,disabled:o.isPending,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,X.jsx)(S,{"data-testid":`confirm-delete-member`,disabled:o.isPending,variant:`destructive`,onClick:()=>void f(),children:o.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Deleting`})]}):at(s&&l)})]})]})})},st=`Disabled from member settings`,ct=({open:e,onOpenChange:t,member:n})=>{let r=Ae(),[i,o]=Y.useState(!1);Y.useEffect(()=>{e&&o(!1)},[e]);let s=n.name||n.email||`this member`,c=async()=>{try{await r.mutateAsync({id:n.id,reason:st,hideComments:i})}catch{a.error(`Couldn’t disable commenting. Please try again.`);return}a.success(`Commenting has been disabled for ${s}.`),t(!1)};return(0,X.jsx)(V,{open:e,onOpenChange:e=>{r.isPending||t(e)},children:(0,X.jsxs)(W,{"data-testid":`disable-commenting-modal`,children:[(0,X.jsxs)(R,{children:[(0,X.jsx)(K,{children:`Disable commenting`}),(0,X.jsxs)(U,{children:[(0,X.jsx)(`strong`,{children:s}),` won’t be able to comment in the future. You can re-enable commenting anytime.`]})]}),(0,X.jsxs)(`div`,{className:`flex items-start justify-between gap-4`,children:[(0,X.jsx)(`div`,{className:`flex flex-col gap-0.5`,children:(0,X.jsx)(`h4`,{className:`text-sm font-medium`,children:`Hide all previous comments`})}),(0,X.jsx)(C,{"aria-label":`Hide all previous comments`,checked:i,"data-testid":`disable-commenting-hide-comments`,disabled:r.isPending,onCheckedChange:o})]}),(0,X.jsxs)(H,{children:[(0,X.jsx)(S,{"data-testid":`cancel-disable-commenting`,disabled:r.isPending,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,X.jsx)(S,{"data-testid":`confirm-disable-commenting`,disabled:r.isPending,onClick:()=>void c(),children:r.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Disabling`})]}):`Disable commenting`})]})]})})},lt=({open:e,onOpenChange:t,memberId:r})=>{let i=n();Y.useEffect(()=>{e&&i.removeQueries({queryKey:[`MemberSigninUrlResponseType`]})},[e,i]);let{data:o,isFetching:s,isError:c}=Ee(r,{enabled:e,defaultErrorHandler:!1}),l=o?.url??``,u=c||!s&&!c&&!l,[d,f]=Y.useState(!1),p=Y.useRef(null),m=Y.useCallback(()=>{p.current!==null&&(clearTimeout(p.current),p.current=null)},[]);Y.useEffect(()=>{e||(m(),f(!1))},[e,m]),Y.useEffect(()=>m,[m]);let h=async()=>{try{await navigator.clipboard.writeText(l),f(!0),m(),p.current=setTimeout(()=>{f(!1),p.current=null},1e3)}catch{a.error(`Couldn’t copy the impersonation link`)}};return(0,X.jsx)(V,{open:e,onOpenChange:t,children:(0,X.jsxs)(W,{"data-testid":`impersonate-modal`,children:[(0,X.jsxs)(R,{children:[(0,X.jsx)(K,{children:`Impersonate member`}),(0,X.jsx)(U,{children:`A single-use signin link that works for 24 hours. Anyone with the link can sign in as this member.`})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(A,{htmlFor:`member-signin-url`,children:`Signin link`}),(0,X.jsx)(L,{"data-testid":`member-signin-url`,id:`member-signin-url`,value:s?`Generating link…`:u?`Failed to generate link`:l,readOnly:!0})]}),(0,X.jsxs)(H,{children:[(0,X.jsx)(S,{variant:`outline`,onClick:()=>t(!1),children:`Close`}),(0,X.jsx)(S,{disabled:s||u||!l,onClick:()=>void h(),children:s?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Generating link`})]}):d?`Copied`:`Copy link`})]})]})})},ut=({open:e,onOpenChange:t,member:n})=>{let r=Be(),i=n.name||n.email||`This member`,o=async()=>{try{await r.mutateAsync({id:n.id}),a.success(`${i} has been signed out from all devices.`),t(!1)}catch{a.error(`Couldn’t sign the member out. Please try again.`)}};return(0,X.jsx)(P,{open:e,onOpenChange:e=>{r.isPending||t(e)},children:(0,X.jsxs)(ze,{"data-testid":`logout-member-modal`,children:[(0,X.jsxs)(Me,{children:[(0,X.jsx)(z,{children:`Sign out member from all devices?`}),(0,X.jsxs)(Fe,{children:[(0,X.jsx)(`strong`,{children:i}),` will be signed out of all active sessions, and will need to sign in again upon return.`]})]}),(0,X.jsxs)(Re,{children:[(0,X.jsx)(ke,{disabled:r.isPending,children:`Cancel`}),(0,X.jsx)(S,{"data-testid":`confirm-logout-member`,disabled:r.isPending,variant:`destructive`,onClick:()=>void o(),children:r.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Signing out`})]}):`Sign out`})]})]})})};function dt(e){return e.can_comment===!1}function ft(e){return dt(e)?`Enable commenting`:`Disable commenting`}var pt=({member:e,allowLeaveWithUnsavedChanges:t})=>{let{data:n}=r(),[i,o]=Y.useState(!1),[s,c]=Y.useState(!1),[l,u]=Y.useState(!1),[d,f]=Y.useState(!1),p=je(),m=F(),h=p.isPending||p.isSuccess&&m,g=dt(e),v=ft(e),y=e.name||e.email||`this member`;if(!n||!ve(n))return null;let ee=async()=>{if(!g){u(!0);return}try{await p.mutateAsync({id:e.id}),a.success(`Commenting has been enabled for ${y}.`)}catch{a.error(`Couldn’t enable commenting. Please try again.`)}};return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(De,{children:[(0,X.jsx)(M,{asChild:!0,children:(0,X.jsx)(S,{"aria-label":`Actions`,className:`size-(--control-height)`,"data-testid":`member-actions`,size:`icon`,variant:`outline`,children:(0,X.jsx)(_,{size:16})})}),(0,X.jsxs)(we,{align:`end`,children:[(0,X.jsx)(q,{"data-testid":`member-actions-impersonate`,onSelect:()=>o(!0),children:`Impersonate`}),(0,X.jsx)(q,{"data-testid":`member-actions-logout`,onSelect:()=>c(!0),children:`Sign out of all devices`}),(0,X.jsx)(q,{"data-testid":`member-actions-commenting`,disabled:h,onSelect:()=>void ee(),children:v}),(0,X.jsx)(N,{}),(0,X.jsx)(q,{className:`text-destructive focus:text-destructive`,"data-testid":`member-actions-delete`,onSelect:()=>f(!0),children:`Delete member`})]})]}),(0,X.jsx)(lt,{memberId:e.id,open:i,onOpenChange:o}),(0,X.jsx)(ut,{member:e,open:s,onOpenChange:c}),(0,X.jsx)(ct,{member:e,open:l,onOpenChange:u}),(0,X.jsx)(ot,{allowLeaveWithUnsavedChanges:t,member:e,open:d,onOpenChange:f})]})},Z=e(f(),1),mt=e(Ge(),1),ht=Qe(`address`)??[];function Q(e){return{name:(e.name??``).trim(),email:(e.email??``).trim(),note:e.note??``,labels:(e.labels??[]).map(e=>({name:e.name,slug:e.slug})).sort((e,t)=>e.slug<t.slug?-1:+(e.slug>t.slug)),newsletters:(e.newsletters??[]).map(e=>e.id).sort()}}function gt(e){let t={};for(let[n,r]of Object.entries(e??{}))for(let[e,i]of Object.entries(r??{}))t[`${n}.${e}`]=i;let n={};for(let[e,r]of Object.entries(t))if(typeof r==`string`&&r.trim()!==``)n[e]=r.trim();else if(typeof r==`object`&&r&&!Array.isArray(r)){let t=vt(r);t&&(n[e]=t)}return n}function _t(e){let t={};for(let{key:n}of ht){let r=e[n];typeof r==`string`&&(t[n]=r.trim())}return Object.values(t).some(e=>e!==``)?t:void 0}function vt(e){let t={};for(let{key:n}of ht){let r=e[n];typeof r==`string`&&r.trim()!==``&&(t[n]=r.trim())}return Object.keys(t).length?t:void 0}function yt(e,t){return e.includes(t)?e.filter(e=>e!==t):[...e,t].sort()}function bt(e,t){let n=e.trim();return t!==void 0&&n===t.trim()?!0:mt.default.isEmail(n)}function xt(e,t,n){return t?e.trim()===``?`Email is required.`:bt(e,n)?null:`Invalid email.`:null}function St(e){if(!e?.suppressed)return null;let t=e.info;if(!t)return{label:null};let{reason:n,timestamp:r}=t,i=(0,Z.default)(new Date(r)).format(`D MMM YYYY`);switch(n){case`fail`:return{reason:n,label:`Bounced on ${i}`};case`spam`:return{reason:n,label:`Flagged as spam on ${i}`};default:return{reason:n,label:`Email disabled on ${i}`}}}function Ct(e){return e?e.filter(e=>e.subscribe_on_signup===!0&&e.visibility===`members`).map(e=>e.id):[]}function wt(e){return 500-[...e].length}function Tt(e,t,n){let r=jt(t),i={id:e,name:r.name,email:r.email,note:r.note,labels:r.labels};return Ke(r.newsletters,n.newsletters)||(i.newsletters=r.newsletters.map(e=>({id:e}))),i}function Et(e){return typeof e==`string`?e.trim()||void 0:_t(e)}function Dt(e,t,n){return{id:e,metafields:{[t.namespace]:{[t.key]:Et(n)??null}}}}function Ot(e,t){let n={};for(let r of t){let t=e[r.key],i=t===void 0?void 0:Et(t);if(i===void 0)continue;let a=$e[r.type];if(!a)continue;let o=a.value.safeParse(i);if(!o.success)for(let e of o.error.issues){let t=[r.key,...e.path].join(`.`);n[t]??=e.message}}return n}function kt(e){let t=e?.data,n={};for(let e of t?.errors??[])e.property?.startsWith(`metafields.`)&&(n[e.property.slice(11)]=e.context||e.message||`Invalid value.`);return Object.keys(n).length?n:void 0}function At(e,t){return e.map(e=>t.get(e)??{name:e,slug:e})}function jt(e){return{name:e.name.trim(),email:e.email.trim(),note:e.note,labels:e.labels,newsletters:e.newsletters}}function Mt(e,t){return!e||!!t&&Ke(jt(e),t)}var Nt=({message:e})=>e?(0,X.jsx)(`p`,{className:`text-sm text-destructive`,role:`alert`,children:e}):null,Pt=({inputId:e,value:t,errors:n,disabled:r,onChange:i})=>(0,X.jsx)(`div`,{className:`grid gap-x-4 gap-y-3 md:grid-cols-2`,children:ht.map(({key:a,label:o})=>{let s=`${e}-${a}`,c=n?.[a];return(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(A,{htmlFor:s,children:o}),(0,X.jsx)(L,{"aria-invalid":c?!0:void 0,disabled:r,id:s,value:t[a]??``,onChange:e=>i({...t,[a]:e.target.value})}),(0,X.jsx)(Nt,{message:c})]},a)})});function Ft(e){return null}var It=({field:e,inputId:t,value:n,errors:r,disabled:i,onChange:a})=>{let o=r?.[``],{input:s}=Xe(e);switch(s){case`text`:return(0,X.jsx)(L,{"aria-invalid":o?!0:void 0,disabled:i,id:t,value:typeof n==`string`?n:``,onChange:e=>a(e.target.value)});case`textarea`:return(0,X.jsx)(_e,{"aria-invalid":o?!0:void 0,className:`max-w-full resize-y`,disabled:i,id:t,value:typeof n==`string`?n:``,onChange:e=>a(e.target.value)});case`address`:return(0,X.jsx)(Pt,{disabled:i,errors:r,inputId:t,value:typeof n==`object`&&n?n:{},onChange:a});default:return Ft(s)}},Lt=({memberId:e,field:t,initialValue:n,onClose:r})=>{let i=Xe(t).input===`address`,[o,s]=Y.useState(n??(i?{}:``)),[c,l]=Y.useState(!1),[u,d]=Y.useState(),f=G(),p=Ot({[t.key]:o},[t]),m={...c?p:{},...u},h=Object.fromEntries(Object.entries(m).map(([e,n])=>[e===`${t.namespace}.${t.key}`?``:e.slice(`${t.namespace}.${t.key}`.length+1),n])),g=`member-custom-field-${t.key}`,_=!Ke(gt({[t.namespace]:{[t.key]:o}}),gt({[t.namespace]:{[t.key]:n}}));return(0,X.jsx)(V,{open:!0,onOpenChange:e=>{!e&&!f.isPending&&r()},children:(0,X.jsxs)(W,{"data-testid":`member-custom-field-edit-modal`,onEscapeKeyDown:e=>{(_||f.isPending)&&e.preventDefault()},onInteractOutside:e=>{(_||f.isPending)&&e.preventDefault()},children:[(0,X.jsx)(R,{children:(0,X.jsx)(K,{children:t.name})}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[!i&&(0,X.jsx)(A,{className:`sr-only`,htmlFor:g,children:t.name}),(0,X.jsx)(It,{disabled:f.isPending,errors:h,field:t,inputId:g,value:o,onChange:e=>{d(void 0),s(e)}}),(0,X.jsx)(Nt,{message:h[``]})]}),(0,X.jsxs)(H,{children:[(0,X.jsx)(S,{disabled:f.isPending,variant:`outline`,onClick:r,children:`Cancel`}),(0,X.jsx)(S,{className:`min-w-16`,disabled:f.isPending,onClick:()=>{if(!f.isPending){if(!_){r();return}if(Object.keys(p).length>0){l(!0);return}f.mutate(Dt(e,t,o),{onSuccess:()=>{a.success(`${t.name} saved`),r()},onError:e=>{let n=kt(e);d(n),n||a.error(`${t.name} couldn’t be saved`)}})}},children:f.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Saving`})]}):`Save`})]})]})})},Rt=({memberId:e,metafields:t,disabled:n})=>{let{data:r,isLoading:i}=et(),a=r??[],o=gt(t),[s,c]=Y.useState(null);return i||a.length===0?null:(0,X.jsxs)(`section`,{"aria-labelledby":`member-custom-fields-heading`,className:`flex flex-col gap-3`,"data-testid":`member-custom-fields-field`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-custom-fields-heading`,children:`Custom fields`}),(0,X.jsx)(O,{children:(0,X.jsx)(D,{className:`px-6 py-4`,children:(0,X.jsx)(`ul`,{children:a.map(e=>{let t=Ze(e.type,o[`${e.namespace}.${e.key}`])||null;return(0,X.jsx)(`li`,{className:`border-b border-border transition-colors last:border-b-0 hover:border-b-transparent [&:has(+li:hover)]:border-b-transparent`,children:(0,X.jsxs)(`button`,{"aria-label":t?`Edit ${e.name}: ${t}`:`Edit ${e.name}`,className:`group -mx-3 flex w-[calc(100%+1.5rem)] items-center justify-between gap-4 rounded-md p-3 text-left transition-colors hover:bg-table-row-hover disabled:cursor-not-allowed disabled:opacity-50`,disabled:n,type:`button`,onClick:()=>{window.getSelection()?.toString()||c(e)},children:[(0,X.jsxs)(`span`,{className:`min-w-0`,children:[(0,X.jsx)(`span`,{className:`block text-sm text-muted-foreground`,children:e.name}),t?(0,X.jsx)(`span`,{className:`block break-words select-text`,children:t}):(0,X.jsx)(`span`,{className:`block text-muted-foreground`,children:`–`})]}),(0,X.jsx)(ie,{"aria-hidden":`true`,className:`shrink-0 text-muted-foreground opacity-0 transition-all group-hover:opacity-100 group-focus-visible:opacity-100`,size:16})]})},e.key)})})})}),s&&(0,X.jsx)(Lt,{field:s,initialValue:o[`${s.namespace}.${s.key}`],memberId:e,onClose:()=>c(null)},s.key)]})},zt=({labels:e,disabled:t,onChange:n})=>{let r=e.map(e=>e.slug),i=Y.useRef(e);i.current=e;let a=Y.useRef(new Map),o=e=>{for(let t of e)a.current.set(t.slug,{name:t.name,slug:t.slug})};o(e);let s=tt({selectedSlugs:r,onSelectionChange:e=>n(At(e,a.current))});o(s.labels);let c=async e=>{let t=await s.createLabel(e);if(t){let e={name:t.name,slug:t.slug};a.current.set(t.slug,e),n([...i.current.filter(e=>e.slug!==t.slug),e])}return t};return(0,X.jsx)(`div`,{className:t?`pointer-events-none opacity-60`:void 0,"data-testid":`member-labels-field`,...t?{inert:``}:{},children:(0,X.jsx)(nt,{isCreating:s.isCreating,labels:s.labels,optionSource:s.optionSource,placeholder:``,resolvedSelectedLabels:s.resolvedSelectedLabels,selectedSlugs:r,onCreate:c,onDelete:s.deleteLabel,onEdit:s.editLabel,onToggle:s.toggleLabel})})},Bt=({draft:e,emailError:t,disabled:n,onChange:r,onEmailBlur:i,onNameBlur:a})=>{let o=wt(e.note),s=500-o,c=o<0?`text-destructive`:s>=500*.8?`text-state-warning`:`text-state-success`;return(0,X.jsxs)(`div`,{className:`grid items-stretch gap-6 md:grid-cols-2`,"data-testid":`member-detail-form`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-5`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(A,{htmlFor:`member-name`,children:`Name`}),(0,X.jsx)(L,{disabled:n,id:`member-name`,value:e.name,onBlur:a,onChange:e=>r({name:e.target.value})})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(A,{htmlFor:`member-email`,children:`Email`}),(0,X.jsx)(L,{"aria-invalid":!!t,disabled:n,id:`member-email`,type:`email`,value:e.email,onBlur:i,onChange:e=>r({email:e.target.value})}),t&&(0,X.jsx)(`p`,{className:`text-sm text-destructive`,children:t})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(A,{children:`Labels`}),(0,X.jsx)(zt,{disabled:n,labels:e.labels,onChange:e=>r({labels:e})})]})]}),(0,X.jsxs)(`div`,{className:`flex min-h-0 flex-col gap-1.5`,children:[(0,X.jsxs)(A,{htmlFor:`member-note`,children:[`Note `,(0,X.jsx)(`span`,{className:`font-normal text-muted-foreground`,children:`(not visible to member)`})]}),(0,X.jsxs)(ge,{className:`flex-1`,children:[(0,X.jsx)(j,{className:`h-full`,disabled:n,id:`member-note`,value:e.note,onChange:e=>r({note:e.target.value})}),(0,X.jsx)(he,{align:`block-end`,className:`justify-end`,children:(0,X.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`Maximum: `,(0,X.jsx)(`span`,{className:`font-semibold text-foreground`,children:500}),` `,`characters. You’ve used`,` `,(0,X.jsx)(`span`,{className:d(`font-semibold`,c),children:s})]})})]})]})]})};function Vt(e){if(!e)return null;try{let t=JSON.parse(e);return t&&typeof t==`object`&&!Array.isArray(t)?t:null}catch{return null}}function Ht(e){let t=Vt(e);return t?t.country_code===`US`&&t.region?`${t.region}, US`:t.country||`Unknown location`:`Unknown location`}function Ut(e){let t=e?.referrer_source;return!t||t===`Created manually`?null:t}var Wt=e=>Z.default.utc(e).format(`D MMM YYYY`),$=({icon:e,children:t})=>(0,X.jsxs)(`p`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,X.jsx)(`span`,{className:`shrink-0 text-muted-foreground`,children:e}),(0,X.jsx)(`span`,{className:`min-w-0 truncate`,children:t})]}),Gt=e=>e.split(` `)[0]||``,Kt=({member:e,draftName:t,draftEmail:n,engagementEnabled:r})=>{let i=(t??e?.name??``).trim(),a=(n??e?.email??``).trim(),o=i||a||`New member`,s=!e;return(0,X.jsxs)(`aside`,{className:`flex w-full shrink-0 flex-col gap-6 lg:w-80`,"data-testid":`member-detail-sidebar`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-3 py-4`,children:[(0,X.jsx)(Se,{className:`size-12 min-w-12 [&_span]:text-lg`,...xe({name:i,email:a}),src:e?.avatar_image}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`h2`,{className:`truncate text-xl font-semibold`,children:o}),i&&a&&(0,X.jsx)(`a`,{className:`block truncate text-muted-foreground hover:underline`,href:`mailto:${a}`,children:a}),!i&&a&&(0,X.jsx)(`span`,{className:`block truncate text-muted-foreground`,children:a})]})]}),!s&&e&&(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-2 text-sm`,children:[(0,X.jsx)($,{icon:(0,X.jsx)(ee,{size:16}),children:(0,X.jsx)(`span`,{"data-testid":`member-detail-location`,children:Ht(e.geolocation)})}),(0,X.jsx)($,{icon:(0,X.jsx)(ne,{size:16}),children:e.last_seen_at?`Last seen on ${Wt(e.last_seen_at)}`:`Not seen yet`}),e.can_comment===!1&&(0,X.jsx)($,{icon:(0,X.jsx)(y,{size:16}),children:`Comments disabled`})]}),(0,X.jsxs)(`div`,{className:`mt-4 flex flex-col gap-3 text-sm`,children:[(0,X.jsx)(`h3`,{className:`border-b border-border pb-2 text-base font-semibold`,children:`Signup info`}),(0,X.jsxs)($,{icon:(0,X.jsx)(b,{size:16}),children:[`Created — `,(0,X.jsx)(`span`,{className:`text-foreground`,children:Wt(e.created_at)})]}),(()=>{let t=Ut(e.attribution);return t?(0,X.jsxs)($,{icon:(0,X.jsx)(re,{size:16}),children:[`Source —`,` `,(0,X.jsx)(`span`,{className:`text-foreground`,title:t,children:t})]}):null})(),e.attribution?.title&&(0,X.jsxs)($,{icon:(0,X.jsx)(g,{size:16}),children:[`Page —`,` `,Ye(e.attribution.url)?(0,X.jsx)(`a`,{className:`truncate text-foreground hover:underline`,href:e.attribution.url,rel:`noopener noreferrer`,target:`_blank`,title:e.attribution.title,children:e.attribution.title}):(0,X.jsx)(`span`,{className:`truncate text-foreground`,title:e.attribution.title,children:e.attribution.title})]})]}),r&&(0,X.jsxs)(`section`,{className:`mt-4 flex flex-col gap-3 text-sm`,"data-testid":`member-detail-engagement`,children:[(0,X.jsx)(`h4`,{className:`border-b border-border pb-2 text-base font-semibold`,children:`Engagement`}),(e.email_count??0)===0?(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:i?`We’ll show ${Gt(i)}’s email stats here once they receive their first newsletter.`:`We’ll show this member’s email stats here once they receive their first newsletter.`}):(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Emails received`}),(0,X.jsx)(`p`,{className:`text-2xl font-semibold`,children:e.email_count})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Emails opened`}),(0,X.jsx)(`p`,{className:`text-2xl font-semibold`,children:e.email_opened_count??0})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Average open rate`}),e.email_open_rate===null||e.email_open_rate===void 0?(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`This metric is calculated once a member has received 5 newsletters.`}):(0,X.jsxs)(`p`,{className:`text-2xl font-semibold`,children:[e.email_open_rate,(0,X.jsx)(`span`,{className:`text-base font-normal text-muted-foreground`,children:`%`})]})]})]})]})]})]})},qt=({memberId:e,emailSuppression:t,subscribedIds:n,disabled:r,onChange:i})=>{let o=e?St(t):null,s=be(),{data:c,isLoading:l}=ye({searchParams:{filter:`status:active`,limit:`50`}}),u=c?.newsletters??[],d=F(),f=s.isPending||s.isSuccess&&d;return!o&&(l||u.length===0)?null:(0,X.jsxs)(`section`,{"aria-labelledby":`member-newsletters-heading`,className:`flex flex-col gap-3`,"data-testid":`member-newsletters-field`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-newsletters-heading`,children:`Newsletters`}),(0,X.jsx)(O,{children:(0,X.jsx)(D,{className:`p-6`,children:o?(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,"data-testid":`member-suppression-banner`,children:[(0,X.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,X.jsx)(h,{className:`mt-0.5 shrink-0 text-muted-foreground`,size:20}),(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`font-medium`,children:`Email disabled`}),o.label&&(0,X.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:o.label}),(0,X.jsx)(`a`,{className:`text-sm text-muted-foreground hover:underline`,href:`https://ghost.org/help/disabled-emails`,rel:`noopener noreferrer`,target:`_blank`,children:`Learn more`})]})]}),(0,X.jsx)(S,{disabled:r||f,onClick:()=>{e&&s.mutate({id:e},{onSuccess:()=>a.success(`Email re-enabled successfully`),onError:()=>a.error(`Failed to re-enable email. Please try again.`)})},children:f?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Re-enabling email`})]}):`Re-enable email`})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(`ul`,{className:`divide-y divide-border`,children:u.map(e=>{let t=n.includes(e.id);return(0,X.jsxs)(`li`,{className:`flex items-center justify-between gap-4 py-3 first:pt-0 last:pb-0`,children:[(0,X.jsxs)(`div`,{className:`min-w-0`,children:[(0,X.jsx)(`div`,{className:`font-medium`,children:e.name}),e.description&&(0,X.jsx)(`p`,{className:`truncate text-sm text-muted-foreground`,children:e.description})]}),(0,X.jsx)(C,{"aria-label":`Subscribe to ${e.name}`,checked:t,"data-testid":`member-subscription-toggle`,disabled:r,onCheckedChange:()=>i(yt(n,e.id))})]},e.id)})}),(0,X.jsxs)(`p`,{className:`mt-4 text-sm text-muted-foreground`,children:[`If disabled, member will `,(0,X.jsx)(`em`,{children:`not`}),` receive newsletter emails`]})]})})})]})},Jt=`complimentary`,Yt=`gift subscription`;function Xt(e){if(e.id)return`paid`;let t=e.plan?.nickname?.toLowerCase()??``;return t===Jt?`complimentary`:t===Yt?`gift`:`paid`}function Zt(e){return e===`year`?`yearly`:`monthly`}function Qt(e){if(e.trial_end_at&&(0,Z.default)(e.trial_end_at).isAfter(new Date,`day`))return`Free trial`;let t=e.price?.nickname;return t&&t!==`Monthly`&&t!==`Yearly`?t:null}function $t(e){return e.status===`canceled`||e.cancel_at_period_end?`Canceled`:`Active`}var en=e=>e?(0,Z.default)(new Date(e)).format(`D MMM YYYY`):``,tn=e=>e?(0,Z.default)(e).utc().format(`D MMM YYYY`):``;function nn(e){let t=Xt(e);if(t===`complimentary`||t===`gift`){let t=tn(e.tier?.expiry_at);return t?`Expires ${t}`:``}let n=e.status===`canceled`&&!e.cancel_at_period_end?``:en(e.current_period_end);return e.status===`canceled`?n?`Ended ${n}`:``:e.cancel_at_period_end?n?`Has access until ${n}`:``:e.trial_end_at&&(0,Z.default)(e.trial_end_at).isAfter(new Date,`day`)?`Ends ${en(e.trial_end_at)}`:n?`Renews ${n}`:``}function rn(e){let t=[],n=new Map;for(let r of e){if(!r.price)continue;let e=r.tier??r.price.tier;if(!e?.id)continue;let i=n.get(e.id);i||(i={tier:e,subscriptions:[]},n.set(e.id,i),t.push(i)),i.subscriptions.push(r)}return t}var an=[`forever`,`week`,`month`,`half-year`,`year`,`custom`];function on(e){return an.includes(e)}function sn(e,t){switch(e){case`forever`:return null;case`week`:return Z.default.utc().add(7,`days`).startOf(`day`).toISOString();case`month`:return Z.default.utc().add(1,`month`).startOf(`day`).toISOString();case`half-year`:return Z.default.utc().add(6,`months`).startOf(`day`).toISOString();case`year`:return Z.default.utc().add(1,`year`).startOf(`day`).toISOString();case`custom`:return t?(0,Z.default)(t,`YYYY-MM-DD`).startOf(`day`).endOf(`day`).set(`millisecond`,0).add((0,Z.default)().utcOffset(),`minutes`).toISOString():null}}var cn=new Set([`active`,`trialing`,`unpaid`,`past_due`]),ln=[{value:`forever`,label:`Forever`},{value:`week`,label:`1 Week`},{value:`month`,label:`1 Month`},{value:`half-year`,label:`6 Months`},{value:`year`,label:`1 Year`},{value:`custom`,label:`Custom`}],un=({open:e,onOpenChange:t,member:n})=>{let{data:r,isLoading:i}=We({searchParams:{filter:`type:paid+active:true`,limit:`all`}}),o=r?.tiers??[],[s,c]=Y.useState(``),[l,u]=Y.useState(`forever`),[d,f]=Y.useState(``);Y.useEffect(()=>{e&&(c(``),u(`forever`),f(``))},[e]);let p=Pe(),m=G(),[h,g]=Y.useState(!1),_=(n.subscriptions??[]).filter(e=>Xt(e)===`paid`&&cn.has(e.status)),v=(0,Z.default)().format(`YYYY-MM-DD`),y=!!s&&!h&&(l!==`custom`||!!d),ee=async()=>{if(y){g(!0);try{for(let e of _)await p.mutateAsync({memberId:n.id,subscriptionId:e.id,status:`canceled`});let e=sn(l,l===`custom`?d:null),r=e?{id:s,expiry_at:e}:{id:s};await m.mutateAsync({id:n.id,...n.email?{email:n.email}:{},tiers:[r]}),a.success(`Complimentary subscription added`),t(!1)}catch{a.error(`Couldn’t add complimentary subscription`)}finally{g(!1)}}};return(0,X.jsx)(V,{open:e,onOpenChange:e=>{h||t(e)},children:(0,X.jsxs)(W,{"data-testid":`add-comp-modal`,children:[(0,X.jsxs)(R,{children:[(0,X.jsx)(K,{children:`Add complimentary subscription`}),(0,X.jsx)(U,{children:`Grants this member access to a paid tier for the chosen duration. Any active paid subscription is canceled first.`})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(A,{htmlFor:`comp-tier`,children:`Tier`}),(0,X.jsxs)(T,{value:s,onValueChange:c,children:[(0,X.jsx)(se,{"data-testid":`comp-tier-select`,disabled:i||h,id:`comp-tier`,children:(0,X.jsx)(w,{placeholder:i?`Loading tiers…`:`Select a tier`})}),(0,X.jsx)(oe,{children:o.map(e=>(0,X.jsx)(ae,{"data-tier-id":e.id,value:e.id,children:e.name},e.id))})]})]}),(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(A,{htmlFor:`comp-duration`,children:`Duration`}),(0,X.jsxs)(T,{value:l,onValueChange:e=>{on(e)&&u(e)},children:[(0,X.jsx)(se,{"data-testid":`comp-duration-select`,disabled:h,id:`comp-duration`,children:(0,X.jsx)(w,{})}),(0,X.jsx)(oe,{children:ln.map(e=>(0,X.jsx)(ae,{value:e.value,children:e.label},e.value))})]})]}),l===`custom`&&(0,X.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,X.jsx)(A,{htmlFor:`comp-custom-date`,children:`Expires on`}),(0,X.jsx)(L,{"data-testid":`comp-custom-date`,disabled:h,id:`comp-custom-date`,min:v,type:`date`,value:d,onChange:e=>f(e.target.value)})]})]}),(0,X.jsxs)(H,{children:[(0,X.jsx)(S,{disabled:h,variant:`outline`,onClick:()=>t(!1),children:`Cancel`}),(0,X.jsx)(S,{"data-testid":`comp-add-confirm`,disabled:!y,onClick:()=>void ee(),children:h?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Adding`})]}):`Add subscription`})]})]})})},dn=({memberId:e,subscription:t})=>{let n=Pe(),r=F(),i=n.isPending||n.isSuccess&&r,o=t.status===`canceled`,s=t.cancel_at_period_end,c=(r,i,o)=>{n.mutate({memberId:e,subscriptionId:t.id,cancelAtPeriodEnd:r},{onSuccess:()=>a.success(i),onError:()=>a.error(o)})};return(0,X.jsxs)(De,{children:[(0,X.jsx)(M,{asChild:!0,children:(0,X.jsx)(S,{"aria-label":`Subscription menu`,"data-testid":`subscription-actions`,disabled:i,size:`sm`,variant:`outline`,children:i?(0,X.jsx)(I,{size:`sm`}):(0,X.jsx)(_,{})})}),(0,X.jsxs)(we,{align:`end`,children:[(0,X.jsx)(q,{asChild:!0,children:(0,X.jsx)(`a`,{href:`https://dashboard.stripe.com/customers/${t.customer.id}`,rel:`noopener noreferrer`,target:`_blank`,children:`View Stripe customer`})}),(0,X.jsx)(N,{}),(0,X.jsx)(q,{asChild:!0,children:(0,X.jsx)(`a`,{href:`https://dashboard.stripe.com/subscriptions/${t.id}`,rel:`noopener noreferrer`,target:`_blank`,children:`View Stripe subscription`})}),!o&&(s?(0,X.jsx)(q,{"data-testid":`continue-subscription`,onSelect:()=>c(!1,`Subscription continued`,`Couldn’t continue subscription`),children:`Continue subscription`}):(0,X.jsx)(q,{className:`text-destructive focus:text-destructive`,"data-testid":`cancel-subscription`,onSelect:()=>c(!0,`Subscription canceled`,`Couldn’t cancel subscription`),children:`Cancel subscription`}))]})]})},fn=({member:e,tierId:t})=>{let n=G(),[r,i]=Y.useState(!1),o=F(),s=n.isPending||n.isSuccess&&o;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsxs)(De,{children:[(0,X.jsx)(M,{asChild:!0,children:(0,X.jsx)(S,{"aria-label":`Subscription menu`,"data-testid":`subscription-actions`,disabled:s,size:`sm`,variant:`outline`,children:s?(0,X.jsx)(I,{size:`sm`}):(0,X.jsx)(_,{})})}),(0,X.jsx)(we,{align:`end`,children:(0,X.jsx)(q,{className:`text-destructive focus:text-destructive`,"data-testid":`remove-complimentary`,onSelect:()=>i(!0),children:`Remove complimentary subscription`})})]}),(0,X.jsx)(P,{open:r,onOpenChange:e=>{n.isPending||i(e)},children:(0,X.jsxs)(ze,{children:[(0,X.jsxs)(Me,{children:[(0,X.jsx)(z,{children:`Remove complimentary subscription?`}),(0,X.jsx)(Fe,{children:`The member will lose access to this tier immediately.`})]}),(0,X.jsxs)(Re,{children:[(0,X.jsx)(ke,{disabled:n.isPending,children:`Cancel`}),(0,X.jsx)(S,{"data-testid":`confirm-remove-complimentary`,disabled:n.isPending,variant:`destructive`,onClick:()=>{let r=(e.tiers??[]).filter(e=>e.id!==t).map(e=>({id:e.id,expiry_at:e.expiry_at??null}));n.mutate({id:e.id,email:e.email,tiers:r},{onSuccess:()=>{a.success(`Complimentary subscription removed`),i(!1)},onError:()=>a.error(`Couldn’t remove complimentary subscription`)})},children:n.isPending?(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Removing`})]}):`Remove`})]})]})})]})},pn=e=>{let t=e/100;return t.toLocaleString(void 0,t%1==0?void 0:{minimumFractionDigits:2,maximumFractionDigits:2})},mn=({sub:e,kind:t})=>{if(t===`complimentary`||t===`gift`)return(0,X.jsx)(`div`,{className:`flex size-20 shrink-0 items-center justify-center rounded-lg bg-muted text-center text-sm font-medium text-muted-foreground`,children:t===`complimentary`?`Comp`:`Gift`});let n=o(e.price.currency),r=pn(e.price.amount),i=Zt(e.price.interval);return(0,X.jsxs)(`div`,{className:`flex size-20 shrink-0 flex-col items-center justify-center rounded-lg bg-muted text-foreground`,children:[(0,X.jsxs)(`div`,{className:`flex items-start leading-none`,children:[(0,X.jsx)(`span`,{className:`mt-1 text-sm font-semibold`,children:n}),(0,X.jsx)(`span`,{className:`text-3xl font-semibold tracking-tight`,children:r})]}),(0,X.jsx)(`div`,{className:`mt-1 text-xs text-muted-foreground`,children:i})]})},hn=e=>e?Z.default.utc(e).format(`D MMM YYYY`):``,gn=({sub:e})=>{let t=hn(e.start_date),n=e.attribution?.referrer_source,r=n&&n!==`Unknown`,i=e.attribution?.title?{title:e.attribution.title,url:e.attribution.url??null}:null;return(0,X.jsxs)(`div`,{className:`mt-3 space-y-1 border-t border-border pt-3 text-sm text-muted-foreground`,children:[t&&(0,X.jsxs)(`p`,{children:[`Created — `,(0,X.jsx)(`span`,{className:`text-foreground`,children:t})]}),r&&(0,X.jsxs)(`p`,{children:[`Source — `,(0,X.jsx)(`span`,{className:`text-foreground`,children:n})]}),i&&(0,X.jsxs)(`p`,{children:[`Page —`,` `,Ye(i.url)?(0,X.jsx)(`a`,{className:`text-foreground hover:underline`,href:i.url,rel:`noopener noreferrer`,target:`_blank`,children:i.title}):(0,X.jsx)(`span`,{className:`text-foreground`,children:i.title})]})]})},_n=({member:e,sub:t,showDivider:n})=>{let[r,i]=Y.useState(!1),a=Xt(t),o=$t(t),s=nn(t),c=Qt(t);return(0,X.jsxs)(`div`,{className:d(`flex items-start justify-between gap-4 py-5 first:pt-0 last:pb-0`,n&&`border-t border-border`),"data-testid":`member-subscription`,children:[(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 items-start gap-4`,children:[(0,X.jsx)(mn,{kind:a,sub:t}),(0,X.jsxs)(`div`,{className:`min-w-0 flex-1 pt-2`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,X.jsx)(`span`,{className:`min-w-0 truncate font-semibold`,"data-testid":`member-subscription-tier`,children:t.tier?.name??`Subscription`}),(0,X.jsx)(E,{"data-testid":`member-subscription-status`,variant:o===`Canceled`?`secondary`:`success`,children:o})]}),(c||s)&&(0,X.jsxs)(`div`,{className:`mt-1 text-sm`,children:[c&&(0,X.jsx)(`span`,{className:`font-semibold text-foreground`,children:c}),c&&s&&(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:` – `}),s&&(0,X.jsx)(`span`,{className:`text-muted-foreground`,children:s})]}),(0,X.jsxs)(`button`,{"aria-expanded":r,className:`mt-1 inline-flex items-center gap-1 text-sm font-medium text-primary hover:underline`,"data-testid":`member-subscription-details-toggle`,type:`button`,onClick:()=>i(e=>!e),children:[`Details`,(0,X.jsx)(x,{className:d(`transition-transform`,r&&`rotate-180`),size:14})]}),r&&(0,X.jsx)(gn,{sub:t})]})]}),a===`paid`&&(0,X.jsx)(dn,{memberId:e.id,subscription:t}),a===`complimentary`&&t.tier?.id&&(0,X.jsx)(fn,{member:e,tierId:t.tier.id})]})},vn=({member:e,canAddComp:t})=>{let[n,r]=Y.useState(!1);if(!e)return(0,X.jsx)(O,{"data-testid":`member-subscriptions`,children:(0,X.jsx)(D,{className:`pt-6`,children:(0,X.jsx)(`div`,{className:`flex flex-col items-center gap-3 py-4`,children:(0,X.jsx)(k,{title:`No subscriptions`,children:(0,X.jsx)(v,{})})})})});let i=rn(e.subscriptions??[]),a=i.length>0,o=t&&(e.tiers?.length??0)===0,s=o?(0,X.jsxs)(S,{"data-testid":`add-complimentary`,variant:`outline`,onClick:()=>r(!0),children:[(0,X.jsx)(te,{className:`mr-1`,size:16}),`Add complimentary subscription`]}):null;return(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(O,{"data-testid":`member-subscriptions`,children:(0,X.jsx)(D,{className:`pt-6`,children:a?(0,X.jsxs)(X.Fragment,{children:[i.map(t=>(0,X.jsxs)(`div`,{className:`flex flex-col`,children:[t.subscriptions.map((n,r)=>(0,X.jsx)(_n,{member:e,showDivider:r>0,sub:n},n.id||`${t.tier.id}-${r}`)),t.subscriptions.length>1&&(0,X.jsxs)(`div`,{className:`pt-3 text-sm text-muted-foreground`,children:[t.subscriptions.length,` subscriptions`]})]},t.tier.id)),s&&(0,X.jsx)(`div`,{className:`mt-4 flex justify-center border-t border-border pt-4`,children:s})]}):(0,X.jsxs)(`div`,{className:`flex flex-col items-center gap-3 py-4`,children:[(0,X.jsx)(k,{title:`No subscriptions`,children:(0,X.jsx)(v,{})}),s]})})}),o&&(0,X.jsx)(un,{member:e,open:n,onOpenChange:r})]})};function yn(e){let t=new URLSearchParams(e),n=t.get(`back`);if(n&&n.startsWith(`/members`))return n;let r=t.get(`post`);return r?`/members?post=${encodeURIComponent(r)}`:`/members`}var bn=`new`,xn=({paidMembersEnabled:e,newslettersUiEnabled:t,engagementEnabled:n})=>{let{member_id:r=``}=s(),i=l(),o=u(),d=yn(i.search),f=r===bn,{data:h,isLoading:g,error:_,refetch:v}=Te(r,{enabled:!!r&&!f,searchParams:{include:`tiers`},defaultErrorHandler:!1}),y=h?.members?.[0],ee=!f&&!g&&!!_,te=!f&&!g&&!_&&!y,b=G(),ne=Ie(),x=f?ne:b,{data:re}=We({searchParams:{filter:`type:paid+active:true`,limit:`all`},enabled:e}),ie=(re?.tiers?.length??0)>0,{data:C}=ye({searchParams:{filter:`status:active`,limit:`50`}}),ae=C!==void 0,oe=(C?.newsletters?.length??0)>1,se=(re?.tiers?.length??0)>1,[w,T]=Y.useState(void 0),E=Y.useRef(void 0),k=Y.useRef(void 0),A=Y.useRef(!1);Y.useEffect(()=>{if(f){if(E.current!==bn){E.current=bn,A.current=!1;let e=Q({});k.current=e,T(e)}return}if(!y)return;let e=Q(y);if(E.current!==y.id){E.current=y.id,k.current=e,T(e);return}let t=k.current;k.current=e,T(n=>Mt(n,t)?e:n)},[y,f]),Y.useEffect(()=>{if(!f||A.current||!C?.newsletters)return;A.current=!0;let e=Ct(C.newsletters);if(e.length===0)return;let t={...k.current??Q({}),newsletters:[...e].sort()};k.current=t,T(t=>t&&{...t,newsletters:[...e].sort()})},[f,C]);let he=f?k.current:y?Q(y):void 0,j=!!w&&!!he&&!Ke(jt(w),he),{dialogProps:ge,bypassNextNavigation:_e}=qe({when:j,confirmUnloadWhen:x.isPending||j}),ve=!!w&&bt(w.email,y?.email??void 0),[M,be]=Y.useState(!1);Y.useEffect(()=>{be(!1)},[y?.id,f]);let xe=w?xt(w.email,M,y?.email??void 0):null,[Se,N]=Y.useState({name:``,email:``});Y.useEffect(()=>{if(f){N({name:``,email:``});return}y&&N({name:y.name??``,email:y.email??``})},[y?.id,y?.name,y?.email,f]);let P=()=>{w&&N({name:w.name,email:w.email})},F=e=>{x.isError&&x.reset(),T(t=>t&&{...t,...e})},we=()=>{if(!(!w||!j||!ve||x.isPending)){if(P(),f){ne.mutate({email:w.email.trim(),name:w.name.trim()||void 0,note:w.note.trim()||void 0,labels:w.labels.length?w.labels:void 0,newsletters:A.current?w.newsletters.map(e=>({id:e})):void 0},{onSuccess:e=>{let t=e.members?.[0];if(!t){a.error(`Member couldn’t be created`);return}_e(),a.success(`Member created`),o(`/members/${t.id}`,{replace:!0})},onError:()=>{a.error(`Member couldn’t be created`)}});return}!y||E.current!==y.id||b.mutate(Tt(y.id,w,Q(y)),{onSuccess:e=>{let t=e.members?.[0];if(t){let e=Q(t);k.current=e,T(e)}a.success(`Member updated`)},onError:()=>{a.error(`Member couldn’t be saved`)}})}},L=`Save`,R=`default`,z=!0;x.isPending?L=(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(I,{size:`sm`}),(0,X.jsx)(`span`,{className:`sr-only`,children:`Saving`})]}):j?(L=x.isError?`Retry`:`Save`,R=x.isError?`destructive`:`default`,z=!ve):!f&&b.isSuccess&&(L=`Saved`);let Ee=!!w&&(f||!!y),B=`Member`;return f?B=`New member`:y?B=Ce(y):te&&(B=`Member not found`),(0,X.jsx)(p,{className:`size-full`,children:(0,X.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,X.jsxs)(J,{"data-testid":`member-detail`,children:[(0,X.jsx)(J.Header,{children:(0,X.jsxs)(He,{blurredBackground:!1,sticky:!1,children:[(0,X.jsx)(He.Left,{children:(0,X.jsx)(me,{children:(0,X.jsxs)(ue,{children:[(0,X.jsx)(de,{children:(0,X.jsx)(pe,{asChild:!0,children:(0,X.jsx)(c,{"data-test-link":`members-back`,to:d,children:`Members`})})}),(0,X.jsx)(fe,{}),(0,X.jsx)(de,{children:!f&&g?(0,X.jsx)(ce,{className:`h-4 w-40`}):(0,X.jsx)(le,{className:`truncate`,"data-testid":`member-detail-title`,children:B})})]})})}),(f||y)&&(0,X.jsx)(He.Actions,{children:(0,X.jsxs)(He.ActionGroup,{children:[y&&!f&&(0,X.jsx)(pt,{allowLeaveWithUnsavedChanges:_e,member:y},y.id),(0,X.jsx)(S,{className:`min-w-16`,disabled:z,variant:R,onClick:we,children:L})]})})]})}),(0,X.jsxs)(J.Body,{children:[ee&&(0,X.jsxs)(`div`,{className:`flex flex-1 flex-col items-center justify-center gap-3`,"data-testid":`member-detail-load-error`,children:[(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`Couldn’t load this member.`}),(0,X.jsx)(S,{variant:`outline`,onClick:()=>void v(),children:`Retry`})]}),te&&(0,X.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,X.jsx)(`p`,{className:`text-muted-foreground`,children:`This member couldn’t be found.`})}),Ee&&w&&(0,X.jsxs)(`div`,{className:`flex flex-1 flex-col gap-8 lg:flex-row lg:items-start lg:gap-12`,children:[(0,X.jsx)(Kt,{draftEmail:Se.email,draftName:Se.name,engagementEnabled:n,member:y}),(0,X.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-8`,children:[(0,X.jsx)(O,{children:(0,X.jsx)(D,{className:`p-6`,children:(0,X.jsx)(Bt,{disabled:x.isPending,draft:w,emailError:xe,onChange:F,onEmailBlur:()=>{be(!0),P()},onNameBlur:P})})}),y&&(0,X.jsx)(Rt,{disabled:x.isPending,memberId:y.id,metafields:y.metafields}),t&&(f||y)&&(0,X.jsx)(qt,{disabled:x.isPending,emailSuppression:y?.email_suppression,memberId:y?.id,subscribedIds:w.newsletters,onChange:e=>F({newsletters:e})}),e&&(0,X.jsxs)(`section`,{"aria-labelledby":`member-subscriptions-heading`,className:`flex flex-col gap-3`,children:[(0,X.jsx)(`h3`,{className:`text-base font-semibold`,id:`member-subscriptions-heading`,children:`Subscriptions`}),(0,X.jsx)(vn,{canAddComp:ie,member:y})]}),(f||y&&ae)&&(0,X.jsx)(Je,{hasMultipleNewsletters:oe,hasMultipleTiers:se,memberId:y?.id,paidMembersEnabled:e})]})]})]}),(0,X.jsx)(Ue,{...ge})]})})})},Sn=()=>{let{data:e,isLoading:t}=Le({}),n=B(),r=Ve();if(t||!e?.settings)return(0,X.jsx)(p,{className:`size-full`,children:(0,X.jsx)(m,{className:`relative flex h-full flex-col`,size:`page`,children:(0,X.jsx)(J,{children:(0,X.jsx)(J.Body,{children:(0,X.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,X.jsx)(I,{size:`lg`})})})})})});let i=Ne(e.settings,`members_signup_access`);return(0,X.jsx)(xn,{engagementEnabled:i!==`none`&&r===!0,newslettersUiEnabled:r===!0,paidMembersEnabled:n===!0})};export{Sn as default};
|