ghost 6.52.0 → 6.52.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/components/tryghost-kg-card-factory-5.2.3.tgz +0 -0
  2. package/components/tryghost-kg-clean-basic-html-4.3.3.tgz +0 -0
  3. package/components/tryghost-kg-converters-1.2.3.tgz +0 -0
  4. package/components/tryghost-kg-default-cards-10.3.3.tgz +0 -0
  5. package/components/tryghost-kg-default-nodes-2.1.3.tgz +0 -0
  6. package/components/tryghost-kg-default-transforms-1.3.3.tgz +0 -0
  7. package/components/tryghost-kg-html-to-lexical-1.3.3.tgz +0 -0
  8. package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
  9. package/components/tryghost-kg-markdown-html-renderer-7.2.3.tgz +0 -0
  10. package/components/tryghost-kg-utils-1.1.3.tgz +0 -0
  11. package/core/built/admin/assets/Growth-CczbRexv.js +3 -0
  12. package/core/built/admin/assets/Newsletters-rFycX4x8.js +1 -0
  13. package/core/built/admin/assets/Overview-DFubBJaR.js +1 -0
  14. package/core/built/admin/assets/Web-BDE2lN4_.js +2 -0
  15. package/core/built/admin/assets/{account-migration-DiS76mRS.js → account-migration-gvH5a8ea.js} +1 -1
  16. package/core/built/admin/assets/audience-CMWMCxFS.js +1 -0
  17. package/core/built/admin/assets/{automated-emails-Cel18g7S.js → automated-emails-293Lcj5S.js} +1 -1
  18. package/core/built/admin/assets/automations-BxnjfCKn.js +1 -0
  19. package/core/built/admin/assets/automations-kPr44AmD.js +1 -0
  20. package/core/built/admin/assets/bluesky-sharing-Cww54F3Y.js +1 -0
  21. package/core/built/admin/assets/{chunk.912.9d6df5a6da679d905bbf.js → chunk.251.dd82df30188bb633b4ae.js} +9 -9
  22. package/core/built/admin/assets/{chunk.730.2457b7fede040aa52c88.js → chunk.341.20e7d2936dfa5877deea.js} +3 -3
  23. package/core/built/admin/assets/{chunk.524.d6d399b571454ea0234d.js → chunk.524.697bf0ded48e7c994fc3.js} +5 -5
  24. package/core/built/admin/assets/{chunk.582.50a9a5cbab6996daf0fe.js → chunk.582.6b742e9ba932688c442c.js} +6 -6
  25. package/core/built/admin/assets/{code-editor-view-BLGzcLub.js → code-editor-view-DSY5RHLf.js} +1 -1
  26. package/core/built/admin/assets/comments-BwNUmaNM.js +1 -0
  27. package/core/built/admin/assets/constants-c-JNF9c2.js +1 -0
  28. package/core/built/admin/assets/container-CD33Rm0u.js +1 -0
  29. package/core/built/admin/assets/content-helpers-CNBPrwsi.js +1 -0
  30. package/core/built/admin/assets/date-range-select-BkkNN98H.js +1 -0
  31. package/core/built/admin/assets/disabled-sources-indicator-ChHTF69d.js +1 -0
  32. package/core/built/admin/assets/{domain-2REz20SO.js → domain-CGk9SMa-.js} +1 -1
  33. package/core/built/admin/assets/dropzone-9zocztX0.js +5 -0
  34. package/core/built/admin/assets/{edit-profile-7QEh0VtN.js → edit-profile-C0B2Kbsl.js} +1 -1
  35. package/core/built/admin/assets/editor-Bz2Sm2O8.js +8 -0
  36. package/core/built/admin/assets/{esm-CEtFqV1y.js → esm-CsHLKmLh.js} +1 -1
  37. package/core/built/admin/assets/explore-CpRAMnx7.js +1 -0
  38. package/core/built/admin/assets/feed-BRoOWghO.js +1 -0
  39. package/core/built/admin/assets/filter-sources-DhxqZID1.js +1 -0
  40. package/core/built/admin/assets/{filters-DUy8rzI5.js → filters-B8nLLYGO.js} +1 -1
  41. package/core/built/admin/assets/{gh-chart-DdBGmBS8.js → gh-chart-Cqy9gGq7.js} +1 -1
  42. package/core/built/admin/assets/{gift-link-modal-CSgyxenA.js → gift-link-modal-v55u0VUL.js} +1 -1
  43. package/core/built/admin/assets/growth-BIfM3w1p.js +1 -0
  44. package/core/built/admin/assets/{inbox-CTD-ix6u.js → inbox-CDX57fXK.js} +11 -11
  45. package/core/built/admin/assets/index-B5yxmQNp.js +69 -0
  46. package/core/built/admin/assets/inline-DdrWe7D3.js +1 -0
  47. package/core/built/admin/assets/{input-group-DkR63-nk.js → input-group-DUPGQck1.js} +1 -1
  48. package/core/built/admin/assets/{koenig-lexical-D09TwwLs.js → koenig-lexical-CUVpp-dC.js} +1 -1
  49. package/core/built/admin/assets/{kpi-card-Fr_HJH78.js → kpi-card-DyDbok3h.js} +1 -1
  50. package/core/built/admin/assets/kpi-helpers-Bx9IHIMq.js +1 -0
  51. package/core/built/admin/assets/{kpi-tabs-Dc4Nt4a5.js → kpi-tabs-DmUcThFc.js} +1 -1
  52. package/core/built/admin/assets/labels-DLL8dl-7.js +1 -0
  53. package/core/built/admin/assets/layout-B7K3SmL0.js +1 -0
  54. package/core/built/admin/assets/{links-CfAB2Yeq.js → link-helpers-DHG_8GIT.js} +1 -1
  55. package/core/built/admin/assets/list-page-COAUFrmV.js +1 -0
  56. package/core/built/admin/assets/members-BxWs_mjq.js +10 -0
  57. package/core/built/admin/assets/{modals-Bu-1Uxdc.js → modals-DF2sECo6.js} +4 -4
  58. package/core/built/admin/assets/moderation-DYKTx5x0.js +1 -0
  59. package/core/built/admin/assets/newsletter-C-ZD1dI8.js +1 -0
  60. package/core/built/admin/assets/note-oaRdU_5z.js +1 -0
  61. package/core/built/admin/assets/notifications-BF4fAiP1.js +1 -0
  62. package/core/built/admin/assets/{nql-lang-CvCSOQG3.js → nql-lang-BoHzkNg5.js} +1 -1
  63. package/core/built/admin/assets/{onboarding-route-BDaa9hd3.js → onboarding-route-SS-e9Aeb.js} +1 -1
  64. package/core/built/admin/assets/overview-Cbn6bIoR.js +1 -0
  65. package/core/built/admin/assets/post-analytics-Bk9-KEgB.js +1 -0
  66. package/core/built/admin/assets/post-analytics-context-C8t_048I.js +1 -0
  67. package/core/built/admin/assets/post-analytics-header-xTjcg4H0.js +1 -0
  68. package/core/built/admin/assets/post-analytics-provider-CqnWwLMk.js +1 -0
  69. package/core/built/admin/assets/{post-share-modal-59Ujf4t1.js → post-share-modal-ZUCX7JZo.js} +1 -1
  70. package/core/built/admin/assets/preferences-BgjgxiBB.js +5 -0
  71. package/core/built/admin/assets/profile-qIwaxKTm.js +1 -0
  72. package/core/built/admin/assets/{router-provider-DcttGCQn.js → router-provider-S8Wf6jdu.js} +1 -1
  73. package/core/built/admin/assets/select-Cp27ScMR.js +1 -0
  74. package/core/built/admin/assets/{settings-dLraw6et.js → settings-CdDfyF90.js} +1 -1
  75. package/core/built/admin/assets/{settings-CIslWMfh.js → settings-CynBh-YN.js} +4 -4
  76. package/core/built/admin/assets/{share-modal-CI3E67kW.js → share-modal-DTIFYNI1.js} +1 -1
  77. package/core/built/admin/assets/social-urls-DVvRfwEp.js +16 -0
  78. package/core/built/admin/assets/{sort-button-BYwI0xdN.js → sort-button-BHh5Ba1K.js} +1 -1
  79. package/core/built/admin/assets/source-icon--egCE7iN.js +1 -0
  80. package/core/built/admin/assets/stats-DkqCtrPh.js +1 -0
  81. package/core/built/admin/assets/stats-view-BvWWxegf.js +1 -0
  82. package/core/built/admin/assets/step-1-DWjw7rIn.js +1 -0
  83. package/core/built/admin/assets/{step-2-CVOvLQ2n.js → step-2-D1LrETIB.js} +1 -1
  84. package/core/built/admin/assets/{step-3-BsVXcpWU.js → step-3-BAdJdZw4.js} +2 -2
  85. package/core/built/admin/assets/{tabs-Bw8aEqsd.js → tabs-DSrHPjWP.js} +1 -1
  86. package/core/built/admin/assets/tags-BWZqBj19.js +1 -0
  87. package/core/built/admin/assets/{textarea-CNaqhk5P.js → textarea-CUVQjsrM.js} +1 -1
  88. package/core/built/admin/assets/{toggle-group-CMp1taHd.js → toggle-group-CrFpl-Xz.js} +1 -1
  89. package/core/built/admin/assets/{topic-filter-D2_9eEw4.js → topic-filter-jAxwwd9I.js} +1 -1
  90. package/core/built/admin/assets/types-uYQ1HgqL.js +1 -0
  91. package/core/built/admin/assets/url-helpers-CCyfRrKj.js +1 -0
  92. package/core/built/admin/assets/use-analytics-data-DXG7mpgK.js +1 -0
  93. package/core/built/admin/assets/use-filter-params-EoQBXfP3.js +1 -0
  94. package/core/built/admin/assets/use-growth-stats-DJoXxVfD.js +1 -0
  95. package/core/built/admin/assets/use-post-referrers-B-onYbuS.js +1 -0
  96. package/core/built/admin/assets/use-reply-chain-data-D8IFALoz.js +1 -0
  97. package/core/built/admin/assets/{use-tinybird-query-CNCaUn39.js → use-tinybird-query-BSL3iVCc.js} +1 -1
  98. package/core/built/admin/assets/{use-tinybird-token-1T80Odca.js → use-tinybird-token-DHgOnrNu.js} +1 -1
  99. package/core/built/admin/assets/virtual-list-AQrbRAXP.js +1 -0
  100. package/core/built/admin/assets/web-zEFi98DS.js +1 -0
  101. package/core/built/admin/index.html +6 -6
  102. package/core/server/services/automations/automations-api.js +20 -0
  103. package/core/server/services/automations/automations-api.ts +31 -0
  104. package/core/server/services/automations/poll.js +7 -7
  105. package/core/server/services/automations/poll.ts +12 -9
  106. package/core/server/services/email-analytics/email-analytics-provider-mailgun.js +2 -2
  107. package/core/server/services/email-analytics/email-analytics-service-wrapper.js +1 -4
  108. package/core/server/services/email-analytics/email-analytics-service.js +5 -7
  109. package/core/server/services/webhooks/serialize.js +6 -5
  110. package/package.json +1 -1
  111. package/pnpm-lock.yaml +14 -14
  112. package/pnpm-workspace.yaml +5 -0
  113. package/core/built/admin/assets/Growth-Dx0vv-BS.js +0 -3
  114. package/core/built/admin/assets/Newsletters-v1GnbUjW.js +0 -1
  115. package/core/built/admin/assets/Overview-BgM7o-Z8.js +0 -1
  116. package/core/built/admin/assets/Web-DRv-83Ow.js +0 -2
  117. package/core/built/admin/assets/automations-DFLgH14-.js +0 -1
  118. package/core/built/admin/assets/automations-Dc4DUKBb.js +0 -1
  119. package/core/built/admin/assets/bluesky-sharing-Dk1RTUaz.js +0 -1
  120. package/core/built/admin/assets/comments-DgH1rC7w.js +0 -1
  121. package/core/built/admin/assets/constants-BlvYJTqz.js +0 -1
  122. package/core/built/admin/assets/content-helpers-BEgGpvyE.js +0 -1
  123. package/core/built/admin/assets/editor-u3BPqQed.js +0 -8
  124. package/core/built/admin/assets/en-DA2zVD_n.js +0 -1
  125. package/core/built/admin/assets/explore-BgHmdFVz.js +0 -1
  126. package/core/built/admin/assets/feed-Cs7-F3I5.js +0 -1
  127. package/core/built/admin/assets/filter-query-core-D6GjHUFB.js +0 -1
  128. package/core/built/admin/assets/growth-IkQZ1ZV9.js +0 -1
  129. package/core/built/admin/assets/index-BMhs4O3N.js +0 -69
  130. package/core/built/admin/assets/inline-C1CpHxuO.js +0 -1
  131. package/core/built/admin/assets/kpis-BTZ8cyw-.js +0 -1
  132. package/core/built/admin/assets/labels-sA9m188H.js +0 -5
  133. package/core/built/admin/assets/layout-szLkuQ88.js +0 -1
  134. package/core/built/admin/assets/list-page-DWkOdljb.js +0 -1
  135. package/core/built/admin/assets/main-layout-B-K8KliJ.js +0 -1
  136. package/core/built/admin/assets/members-PNNhalbu.js +0 -10
  137. package/core/built/admin/assets/moderation-DqnsNTiw.js +0 -1
  138. package/core/built/admin/assets/newsletter-BhuQeWFL.js +0 -1
  139. package/core/built/admin/assets/note-DFy2JTpP.js +0 -1
  140. package/core/built/admin/assets/notifications-BVu-JOkB.js +0 -1
  141. package/core/built/admin/assets/overview-Bhg8M7VS.js +0 -1
  142. package/core/built/admin/assets/pagemenu-C4paivNj.js +0 -1
  143. package/core/built/admin/assets/post-analytics-BhQUmZyA.js +0 -1
  144. package/core/built/admin/assets/post-analytics-context-Dy17HR1_.js +0 -1
  145. package/core/built/admin/assets/post-analytics-header-DAQep1VQ.js +0 -1
  146. package/core/built/admin/assets/posts/_react-dom-Blmuc0OL.js +0 -21
  147. package/core/built/admin/assets/posts/alert-dialog-DBJeQQTK.js +0 -154
  148. package/core/built/admin/assets/posts/app-provider-BJr9fdEC.js +0 -22
  149. package/core/built/admin/assets/posts/app-utils-9O53Czfw.js +0 -83
  150. package/core/built/admin/assets/posts/automations-BM0oBTjO.js +0 -275
  151. package/core/built/admin/assets/posts/automations-Dbp-gdHS.js +0 -223
  152. package/core/built/admin/assets/posts/avatar-kOk1tTvT.js +0 -144
  153. package/core/built/admin/assets/posts/badge-DnByIHe9.js +0 -25
  154. package/core/built/admin/assets/posts/button-Dd8Xreln.js +0 -40844
  155. package/core/built/admin/assets/posts/chunk-KS7C4IRE-ECXkcZq6.js +0 -7740
  156. package/core/built/admin/assets/posts/comments-D-7hbbdw.js +0 -8032
  157. package/core/built/admin/assets/posts/data-list-DdD_glQ-.js +0 -14219
  158. package/core/built/admin/assets/posts/dialog-DDkTy_np.js +0 -229
  159. package/core/built/admin/assets/posts/editor-D7-01KV_.js +0 -14633
  160. package/core/built/admin/assets/posts/empty-indicator-Ze-bwJ27.js +0 -38
  161. package/core/built/admin/assets/posts/filters-CmKfKtpS.js +0 -5611
  162. package/core/built/admin/assets/posts/get-site-timezone-DVbWc-NA.js +0 -39
  163. package/core/built/admin/assets/posts/growth-DlhFUzVg.js +0 -299
  164. package/core/built/admin/assets/posts/heading-BBl-8tMC.js +0 -92
  165. package/core/built/admin/assets/posts/hooks-gZAmj4Al.js +0 -5429
  166. package/core/built/admin/assets/posts/input-DuPLeCGW.js +0 -16
  167. package/core/built/admin/assets/posts/input-surface-ClwNIxfd.js +0 -17
  168. package/core/built/admin/assets/posts/jsx-runtime-BfZnKD4L.js +0 -95
  169. package/core/built/admin/assets/posts/koenig-lexical-DCHiJJou.js +0 -77579
  170. package/core/built/admin/assets/posts/kpis-Fsx0XmYK.js +0 -2061
  171. package/core/built/admin/assets/posts/label-D1wSl69p.js +0 -32
  172. package/core/built/admin/assets/posts/links-DLozzgMh.js +0 -1243
  173. package/core/built/admin/assets/posts/loading-indicator-BgU2kK3v.js +0 -44
  174. package/core/built/admin/assets/posts/main-layout-DDlTMrnF.js +0 -15
  175. package/core/built/admin/assets/posts/newsletter-DAQJ1GLe.js +0 -736
  176. package/core/built/admin/assets/posts/overview-G3MfRm-S.js +0 -426
  177. package/core/built/admin/assets/posts/page-header-CanFyB95.js +0 -284
  178. package/core/built/admin/assets/posts/popover-Cta8ZDHJ.js +0 -221
  179. package/core/built/admin/assets/posts/post-analytics-cS07-wo_.js +0 -121
  180. package/core/built/admin/assets/posts/post-analytics-context-D868SMoq.js +0 -150
  181. package/core/built/admin/assets/posts/post-analytics-header-CZYiuaEL.js +0 -42249
  182. package/core/built/admin/assets/posts/post-share-modal-BJfswZzf.js +0 -352
  183. package/core/built/admin/assets/posts/posts-CpusjBC0.js +0 -37
  184. package/core/built/admin/assets/posts/posts-app-context-CPC7dOlt.js +0 -26
  185. package/core/built/admin/assets/posts/posts.js +0 -145
  186. package/core/built/admin/assets/posts/router-provider-DrqpOc8m.js +0 -114
  187. package/core/built/admin/assets/posts/separator-DAZNzARU.js +0 -37
  188. package/core/built/admin/assets/posts/settings-CMfUn5Hq.js +0 -66
  189. package/core/built/admin/assets/posts/shade-app-DLbeExcd-NeEZjE3R.js +0 -4764
  190. package/core/built/admin/assets/posts/sheet-CEuv-0a5.js +0 -62
  191. package/core/built/admin/assets/posts/site-WJ6ldary.js +0 -10
  192. package/core/built/admin/assets/posts/skeleton-CO0qCdQF.js +0 -2426
  193. package/core/built/admin/assets/posts/source-icon-Bs6o84W3.js +0 -143
  194. package/core/built/admin/assets/posts/stats-B1Z8H0JT.js +0 -92
  195. package/core/built/admin/assets/posts/table-CbJ9bOpM.js +0 -77
  196. package/core/built/admin/assets/posts/tabs-BvzzwQ4P.js +0 -242
  197. package/core/built/admin/assets/posts/tags-D-4TwsD0.js +0 -462
  198. package/core/built/admin/assets/posts/tooltip-BI7VtFUY.js +0 -380
  199. package/core/built/admin/assets/posts/update-queries-DiUznIQ1.js +0 -60
  200. package/core/built/admin/assets/posts/users-UgRPrTKW.js +0 -83
  201. package/core/built/admin/assets/posts/value-DF_wOhJe.js +0 -415
  202. package/core/built/admin/assets/posts/virtual-list-window-DP63Onpm.js +0 -853
  203. package/core/built/admin/assets/posts/web-axp2l3kK.js +0 -8077
  204. package/core/built/admin/assets/preferences-ChOzBKcF.js +0 -5
  205. package/core/built/admin/assets/profile-DlcrYKay.js +0 -1
  206. package/core/built/admin/assets/select-BbtNHCBq.js +0 -1
  207. package/core/built/admin/assets/social-urls-DVzIHh2W.js +0 -16
  208. package/core/built/admin/assets/source-icon-Uuhttjun.js +0 -1
  209. package/core/built/admin/assets/source-utils-BchD0sF0.js +0 -1
  210. package/core/built/admin/assets/stats-CrlPzgdd.js +0 -1
  211. package/core/built/admin/assets/stats-view-UNMhTMCZ.js +0 -1
  212. package/core/built/admin/assets/step-1-C2HY6pyi.js +0 -1
  213. package/core/built/admin/assets/tags-DjCsJo0X.js +0 -1
  214. package/core/built/admin/assets/typeof-Ca-duI-z.js +0 -1
  215. package/core/built/admin/assets/url-helpers-DxA844rA.js +0 -1
  216. package/core/built/admin/assets/use-growth-stats-DNIGdI8h.js +0 -1
  217. package/core/built/admin/assets/use-reply-chain-data-DtEC2Azp.js +0 -1
  218. package/core/built/admin/assets/virtual-list-window-BTXGwpf5.js +0 -1
  219. package/core/built/admin/assets/web-Cj8VEw3s.js +0 -1
  220. /package/core/built/admin/assets/{chunk.912.9d6df5a6da679d905bbf.js.LICENSE.txt → chunk.251.dd82df30188bb633b4ae.js.LICENSE.txt} +0 -0
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{Kn as r}from"./button-DiwO9Rof.js";var i={none:`gap-0`,xs:`gap-1`,sm:`gap-2`,md:`gap-3`,lg:`gap-5`,xl:`gap-6`,"2xl":`gap-8`},a={start:`items-start`,center:`items-center`,end:`items-end`,stretch:`items-stretch`,baseline:`items-baseline`},o={start:`justify-start`,center:`justify-center`,end:`justify-end`,between:`justify-between`,around:`justify-around`,evenly:`justify-evenly`},s=e(t(),1),c=n(),l=s.forwardRef(function({as:e=`div`,className:t,gap:n=`md`,align:s=`center`,justify:l=`start`,wrap:u=!1,...d},f){return(0,c.jsx)(e,{ref:f,className:r(`flex flex-row`,u?`flex-wrap`:`flex-nowrap`,i[n],a[s],o[l],t),...d})});l.displayName=`Inline`;export{o as i,a as n,i as r,l as t};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{r,t as i}from"./tabs-Bw8aEqsd.js";import{c as a,d as o,l as s,o as c,s as l,u}from"./pagemenu-C4paivNj.js";import{r as d,t as f}from"./source-utils-BchD0sF0.js";import{g as p}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{Ln as ee,Xn as m,Yn as h,Zn as g,j as _,t as v}from"./button-DiwO9Rof.js";import{t as y}from"./gh-chart-DdBGmBS8.js";import{a as b,c as x,i as S,l as C,n as w,o as T,r as E,s as D,t as O,u as k}from"./data-list-D3nkd86L.js";import{Cn as A,Dr as j,Pr as M,Sn as N,Tn as P,bn as F,jn as I,jr as L,kr as te,mr as ne,oi as R,wn as z,xn as B}from"./index-BMhs4O3N.js";import{n as V,r as H,t as U}from"./kpi-tabs-Dc4Nt4a5.js";import{o as W}from"./constants-BlvYJTqz.js";import{n as G}from"./post-analytics-context-Dy17HR1_.js";import{t as K}from"./source-icon-Uuhttjun.js";var q=e(t(),1),J=e=>{let t=Object.values(W).find(t=>t.value===e);return t?[`Last 7 days`,`Last 30 days`,`Last 90 days`,`Last 12 months`].includes(t.name)?`in the ${t.name.toLowerCase()}`:t.name===`All time`?`(all time)`:t.name.toLowerCase():``},Y=n(),X=`https://www.google.com/s2/favicons?domain=ghost.org&sz=64`,Z=({dataTableHeader:e,data:t,defaultSourceIconUrl:n=X,onSourceClick:r})=>(0,Y.jsxs)(O,{children:[e&&(0,Y.jsxs)(b,{children:[(0,Y.jsx)(S,{children:`Source`}),(0,Y.jsx)(S,{children:`Visitors`})]}),(0,Y.jsx)(E,{children:t?.map(e=>{let t=!!r,i=e.source?e.source.toLowerCase().replace(/[^a-z0-9]/g,`-`):`direct`;return(0,Y.jsxs)(k,{className:`group/row ${t?`cursor-pointer`:``}`,"data-testid":`source-row-${i}`,onClick:t?()=>r(e.source):void 0,children:[(0,Y.jsx)(w,{style:{width:`${e.percentage?Math.round(e.percentage*100):0}%`}}),(0,Y.jsx)(T,{className:`group-hover/datalist:max-w-[calc(100%-140px)]`,children:(0,Y.jsx)(`div`,{className:`flex items-center space-x-4 overflow-hidden`,children:(0,Y.jsx)(`div`,{className:`truncate font-medium`,children:e.linkUrl&&!r?(0,Y.jsxs)(`a`,{className:`group/link flex items-center gap-2`,href:e.linkUrl,rel:`noreferrer`,target:`_blank`,children:[(0,Y.jsx)(K,{defaultSourceIconUrl:n,displayName:e.displayName,iconSrc:e.iconSrc}),(0,Y.jsx)(`span`,{className:`group-hover/link:underline`,children:e.displayName})]}):(0,Y.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Y.jsx)(K,{defaultSourceIconUrl:n,displayName:e.displayName,iconSrc:e.iconSrc}),(0,Y.jsx)(`span`,{children:e.displayName})]})})})}),(0,Y.jsxs)(D,{children:[(0,Y.jsx)(x,{children:m(e.visits)}),(0,Y.jsx)(C,{children:g(e.percentage||0)})]})]},e.source)})})]}),re=({data:e,range:t=30,totalVisitors:n=0,siteUrl:r,siteIcon:i,defaultSourceIconUrl:p=X,tableOnly:m=!1,topSourcesLimit:h=10,onSourceClick:g})=>{let{isPostLoading:y}=G(),b=q.useMemo(()=>d({data:e,mode:`visits`,siteUrl:r,siteIcon:i,defaultSourceIconUrl:p}),[e,r,i,p]),x=q.useMemo(()=>f({processedData:b,totalVisitors:n,mode:`visits`}),[b,n]),S=x.slice(0,h),C=`Top sources`,w=`How readers found this post ${t&&` ${J(t)}`}`;if(m){let e=x.slice(0,h),n=x.length>h;return(0,Y.jsxs)(`div`,{children:[(0,Y.jsx)(Z,{data:e,dataTableHeader:!1,defaultSourceIconUrl:p,range:t,onSourceClick:g}),n&&(0,Y.jsx)(`div`,{className:`mt-4`,children:(0,Y.jsxs)(F,{children:[(0,Y.jsx)(P,{asChild:!0,children:(0,Y.jsxs)(v,{className:`w-full`,size:`sm`,variant:`outline`,children:[`View all (`,x.length,`) `,(0,Y.jsx)(ee,{size:14})]})}),(0,Y.jsxs)(B,{className:`overflow-y-auto pt-0 sm:max-w-[480px]`,children:[(0,Y.jsxs)(A,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,Y.jsx)(z,{children:C}),(0,Y.jsx)(N,{children:w})]}),(0,Y.jsx)(`div`,{className:`group/datalist`,children:(0,Y.jsx)(Z,{data:x,dataTableHeader:!0,defaultSourceIconUrl:p,range:t,onSourceClick:g})})]})]})})]})}return(0,Y.jsxs)(c,{className:`group/datalist`,"data-testid":`top-sources-card`,children:[(0,Y.jsxs)(`div`,{className:`flex items-center justify-between p-6`,children:[(0,Y.jsxs)(u,{className:`p-0`,children:[(0,Y.jsx)(o,{children:C}),(0,Y.jsx)(a,{children:w})]}),(0,Y.jsx)(R,{className:`mr-2`,children:`Visitors`})]}),(0,Y.jsxs)(l,{className:`overflow-hidden`,children:[(0,Y.jsx)(`div`,{className:`h-[1px] w-full bg-border`}),y?(0,Y.jsx)(I,{lines:5}):S.length>0?(0,Y.jsx)(Z,{data:S,dataTableHeader:!1,defaultSourceIconUrl:p,range:t,onSourceClick:g}):(0,Y.jsx)(`div`,{className:`py-20 text-center text-sm text-gray-700`,children:`No sources data available.`})]}),x.length>10&&(0,Y.jsx)(s,{children:(0,Y.jsxs)(F,{children:[(0,Y.jsx)(P,{asChild:!0,children:(0,Y.jsxs)(v,{variant:`outline`,children:[`View all `,(0,Y.jsx)(_,{})]})}),(0,Y.jsxs)(B,{className:`overflow-y-auto pt-0 sm:max-w-[420px]`,children:[(0,Y.jsxs)(A,{className:`sticky top-0 z-40 -mx-6 bg-surface-elevated/60 p-6 backdrop-blur`,children:[(0,Y.jsx)(z,{children:C}),(0,Y.jsx)(N,{children:w})]}),(0,Y.jsx)(`div`,{className:`group/datalist`,children:(0,Y.jsx)(Z,{data:x,dataTableHeader:!0,defaultSourceIconUrl:p,range:t,onSourceClick:g})})]})]})})]})},Q=e=>{if(!e?.length)return{visits:`0`,views:`0`,bounceRate:`0%`,duration:`0s`};let t=e=>{let t=Number(e);return isNaN(t)?0:t},n=e.reduce((e,n)=>e+t(n.visits),0),r=e.reduce((e,n)=>e+t(n.pageviews),0),i=r=>n===0?0:e.reduce((e,i)=>e+t(i[r])*t(i.visits)/n,0),a=i(`bounce_rate`),o=i(`avg_session_sec`);return{visits:m(n),views:m(r),bounceRate:g(a),duration:h(o)}},$={visits:{dataKey:`visits`,label:`Visitors`,color:`var(--chart-blue)`,formatter:m},views:{dataKey:`pageviews`,label:`Pageviews`,color:`var(--chart-teal)`,formatter:m},"bounce-rate":{dataKey:`bounce_rate`,label:`Bounce rate`,color:`var(--chart-purple)`,formatter:g},duration:{dataKey:`avg_session_sec`,label:`Time on page`,color:`var(--chart-orange)`,formatter:h}},ie=({data:e,range:t})=>{let[n]=p(),[a,o]=(0,q.useState)(n.get(`tab`)||`visits`),s=$[a],u=ne(e||[],t,s.dataKey,`sum`)?.map(e=>{let t=Number(e[s.dataKey]);return{date:String(e.date),value:t,formattedValue:s.formatter(t),label:s.label}}),d=Q(e);return(0,Y.jsx)(c,{children:(0,Y.jsx)(l,{children:(0,Y.jsxs)(i,{defaultValue:a,variant:`kpis`,children:[(0,Y.jsxs)(r,{className:`-mx-6 hidden grid-cols-2 md:visible! md:grid!`,children:[(0,Y.jsx)(V,{value:`visits`,onClick:()=>{o(`visits`)},children:(0,Y.jsx)(H,{color:$.visits.color,label:`Unique visitors`,value:d.visits})}),(0,Y.jsx)(V,{value:`views`,onClick:()=>{o(`views`)},children:(0,Y.jsx)(H,{color:$.views.color,label:`Total views`,value:d.views})})]}),(0,Y.jsxs)(j,{children:[(0,Y.jsx)(M,{className:`md:hidden`,asChild:!0,children:(0,Y.jsxs)(U,{children:[a===`visits`&&(0,Y.jsx)(H,{color:`var(--chart-blue)`,label:`Unique visitors`,value:d.visits}),a===`views`&&(0,Y.jsx)(H,{color:`var(--chart-teal)`,label:`Total views`,value:d.views})]})}),(0,Y.jsxs)(te,{align:`end`,className:`w-56`,children:[(0,Y.jsx)(L,{onClick:()=>o(`visits`),children:`Unique visitors`}),(0,Y.jsx)(L,{onClick:()=>o(`views`),children:`Total views`})]})]}),(0,Y.jsx)(`div`,{className:`my-4 [&_.recharts-cartesian-axis-tick-value]:fill-gray-500`,children:(0,Y.jsx)(y,{className:`-mb-3 aspect-auto h-[16vw] max-h-[320px] min-h-[180px] w-full`,color:s.color,data:u,id:s.dataKey,range:t,showHours:!0,syncId:`overview-charts`})})]})})})};export{J as a,re as i,ie as n,Q as r,$ as t};
@@ -1,5 +0,0 @@
1
- import{o as e,t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{s as r}from"./framework-provider-i7X1c1ST.js";import{c as i,i as a,n as o,r as s,s as c,t as l}from"./hooks-tBACnBdQ.js";import{t as u}from"./jsx-runtime-CtMZ-PAS.js";import{n as d}from"./Combination-BPFTKsTn.js";import{t as f}from"./nql-BsgFMd93.js";import{Kn as p}from"./button-DiwO9Rof.js";import{t as m}from"./prop-types-DeUPn3oD.js";var h=new Map([[`1km`,`application/vnd.1000minds.decision-model+xml`],[`3dml`,`text/vnd.in3d.3dml`],[`3ds`,`image/x-3ds`],[`3g2`,`video/3gpp2`],[`3gp`,`video/3gp`],[`3gpp`,`video/3gpp`],[`3mf`,`model/3mf`],[`7z`,`application/x-7z-compressed`],[`7zip`,`application/x-7z-compressed`],[`123`,`application/vnd.lotus-1-2-3`],[`aab`,`application/x-authorware-bin`],[`aac`,`audio/x-acc`],[`aam`,`application/x-authorware-map`],[`aas`,`application/x-authorware-seg`],[`abw`,`application/x-abiword`],[`ac`,`application/vnd.nokia.n-gage.ac+xml`],[`ac3`,`audio/ac3`],[`acc`,`application/vnd.americandynamics.acc`],[`ace`,`application/x-ace-compressed`],[`acu`,`application/vnd.acucobol`],[`acutc`,`application/vnd.acucorp`],[`adp`,`audio/adpcm`],[`aep`,`application/vnd.audiograph`],[`afm`,`application/x-font-type1`],[`afp`,`application/vnd.ibm.modcap`],[`ahead`,`application/vnd.ahead.space`],[`ai`,`application/pdf`],[`aif`,`audio/x-aiff`],[`aifc`,`audio/x-aiff`],[`aiff`,`audio/x-aiff`],[`air`,`application/vnd.adobe.air-application-installer-package+zip`],[`ait`,`application/vnd.dvb.ait`],[`ami`,`application/vnd.amiga.ami`],[`amr`,`audio/amr`],[`apk`,`application/vnd.android.package-archive`],[`apng`,`image/apng`],[`appcache`,`text/cache-manifest`],[`application`,`application/x-ms-application`],[`apr`,`application/vnd.lotus-approach`],[`arc`,`application/x-freearc`],[`arj`,`application/x-arj`],[`asc`,`application/pgp-signature`],[`asf`,`video/x-ms-asf`],[`asm`,`text/x-asm`],[`aso`,`application/vnd.accpac.simply.aso`],[`asx`,`video/x-ms-asf`],[`atc`,`application/vnd.acucorp`],[`atom`,`application/atom+xml`],[`atomcat`,`application/atomcat+xml`],[`atomdeleted`,`application/atomdeleted+xml`],[`atomsvc`,`application/atomsvc+xml`],[`atx`,`application/vnd.antix.game-component`],[`au`,`audio/x-au`],[`avi`,`video/x-msvideo`],[`avif`,`image/avif`],[`aw`,`application/applixware`],[`azf`,`application/vnd.airzip.filesecure.azf`],[`azs`,`application/vnd.airzip.filesecure.azs`],[`azv`,`image/vnd.airzip.accelerator.azv`],[`azw`,`application/vnd.amazon.ebook`],[`b16`,`image/vnd.pco.b16`],[`bat`,`application/x-msdownload`],[`bcpio`,`application/x-bcpio`],[`bdf`,`application/x-font-bdf`],[`bdm`,`application/vnd.syncml.dm+wbxml`],[`bdoc`,`application/x-bdoc`],[`bed`,`application/vnd.realvnc.bed`],[`bh2`,`application/vnd.fujitsu.oasysprs`],[`bin`,`application/octet-stream`],[`blb`,`application/x-blorb`],[`blorb`,`application/x-blorb`],[`bmi`,`application/vnd.bmi`],[`bmml`,`application/vnd.balsamiq.bmml+xml`],[`bmp`,`image/bmp`],[`book`,`application/vnd.framemaker`],[`box`,`application/vnd.previewsystems.box`],[`boz`,`application/x-bzip2`],[`bpk`,`application/octet-stream`],[`bpmn`,`application/octet-stream`],[`bsp`,`model/vnd.valve.source.compiled-map`],[`btif`,`image/prs.btif`],[`buffer`,`application/octet-stream`],[`bz`,`application/x-bzip`],[`bz2`,`application/x-bzip2`],[`c`,`text/x-c`],[`c4d`,`application/vnd.clonk.c4group`],[`c4f`,`application/vnd.clonk.c4group`],[`c4g`,`application/vnd.clonk.c4group`],[`c4p`,`application/vnd.clonk.c4group`],[`c4u`,`application/vnd.clonk.c4group`],[`c11amc`,`application/vnd.cluetrust.cartomobile-config`],[`c11amz`,`application/vnd.cluetrust.cartomobile-config-pkg`],[`cab`,`application/vnd.ms-cab-compressed`],[`caf`,`audio/x-caf`],[`cap`,`application/vnd.tcpdump.pcap`],[`car`,`application/vnd.curl.car`],[`cat`,`application/vnd.ms-pki.seccat`],[`cb7`,`application/x-cbr`],[`cba`,`application/x-cbr`],[`cbr`,`application/x-cbr`],[`cbt`,`application/x-cbr`],[`cbz`,`application/x-cbr`],[`cc`,`text/x-c`],[`cco`,`application/x-cocoa`],[`cct`,`application/x-director`],[`ccxml`,`application/ccxml+xml`],[`cdbcmsg`,`application/vnd.contact.cmsg`],[`cda`,`application/x-cdf`],[`cdf`,`application/x-netcdf`],[`cdfx`,`application/cdfx+xml`],[`cdkey`,`application/vnd.mediastation.cdkey`],[`cdmia`,`application/cdmi-capability`],[`cdmic`,`application/cdmi-container`],[`cdmid`,`application/cdmi-domain`],[`cdmio`,`application/cdmi-object`],[`cdmiq`,`application/cdmi-queue`],[`cdr`,`application/cdr`],[`cdx`,`chemical/x-cdx`],[`cdxml`,`application/vnd.chemdraw+xml`],[`cdy`,`application/vnd.cinderella`],[`cer`,`application/pkix-cert`],[`cfs`,`application/x-cfs-compressed`],[`cgm`,`image/cgm`],[`chat`,`application/x-chat`],[`chm`,`application/vnd.ms-htmlhelp`],[`chrt`,`application/vnd.kde.kchart`],[`cif`,`chemical/x-cif`],[`cii`,`application/vnd.anser-web-certificate-issue-initiation`],[`cil`,`application/vnd.ms-artgalry`],[`cjs`,`application/node`],[`cla`,`application/vnd.claymore`],[`class`,`application/octet-stream`],[`clkk`,`application/vnd.crick.clicker.keyboard`],[`clkp`,`application/vnd.crick.clicker.palette`],[`clkt`,`application/vnd.crick.clicker.template`],[`clkw`,`application/vnd.crick.clicker.wordbank`],[`clkx`,`application/vnd.crick.clicker`],[`clp`,`application/x-msclip`],[`cmc`,`application/vnd.cosmocaller`],[`cmdf`,`chemical/x-cmdf`],[`cml`,`chemical/x-cml`],[`cmp`,`application/vnd.yellowriver-custom-menu`],[`cmx`,`image/x-cmx`],[`cod`,`application/vnd.rim.cod`],[`coffee`,`text/coffeescript`],[`com`,`application/x-msdownload`],[`conf`,`text/plain`],[`cpio`,`application/x-cpio`],[`cpp`,`text/x-c`],[`cpt`,`application/mac-compactpro`],[`crd`,`application/x-mscardfile`],[`crl`,`application/pkix-crl`],[`crt`,`application/x-x509-ca-cert`],[`crx`,`application/x-chrome-extension`],[`cryptonote`,`application/vnd.rig.cryptonote`],[`csh`,`application/x-csh`],[`csl`,`application/vnd.citationstyles.style+xml`],[`csml`,`chemical/x-csml`],[`csp`,`application/vnd.commonspace`],[`csr`,`application/octet-stream`],[`css`,`text/css`],[`cst`,`application/x-director`],[`csv`,`text/csv`],[`cu`,`application/cu-seeme`],[`curl`,`text/vnd.curl`],[`cww`,`application/prs.cww`],[`cxt`,`application/x-director`],[`cxx`,`text/x-c`],[`dae`,`model/vnd.collada+xml`],[`daf`,`application/vnd.mobius.daf`],[`dart`,`application/vnd.dart`],[`dataless`,`application/vnd.fdsn.seed`],[`davmount`,`application/davmount+xml`],[`dbf`,`application/vnd.dbf`],[`dbk`,`application/docbook+xml`],[`dcr`,`application/x-director`],[`dcurl`,`text/vnd.curl.dcurl`],[`dd2`,`application/vnd.oma.dd2+xml`],[`ddd`,`application/vnd.fujixerox.ddd`],[`ddf`,`application/vnd.syncml.dmddf+xml`],[`dds`,`image/vnd.ms-dds`],[`deb`,`application/x-debian-package`],[`def`,`text/plain`],[`deploy`,`application/octet-stream`],[`der`,`application/x-x509-ca-cert`],[`dfac`,`application/vnd.dreamfactory`],[`dgc`,`application/x-dgc-compressed`],[`dic`,`text/x-c`],[`dir`,`application/x-director`],[`dis`,`application/vnd.mobius.dis`],[`disposition-notification`,`message/disposition-notification`],[`dist`,`application/octet-stream`],[`distz`,`application/octet-stream`],[`djv`,`image/vnd.djvu`],[`djvu`,`image/vnd.djvu`],[`dll`,`application/octet-stream`],[`dmg`,`application/x-apple-diskimage`],[`dmn`,`application/octet-stream`],[`dmp`,`application/vnd.tcpdump.pcap`],[`dms`,`application/octet-stream`],[`dna`,`application/vnd.dna`],[`doc`,`application/msword`],[`docm`,`application/vnd.ms-word.template.macroEnabled.12`],[`docx`,`application/vnd.openxmlformats-officedocument.wordprocessingml.document`],[`dot`,`application/msword`],[`dotm`,`application/vnd.ms-word.template.macroEnabled.12`],[`dotx`,`application/vnd.openxmlformats-officedocument.wordprocessingml.template`],[`dp`,`application/vnd.osgi.dp`],[`dpg`,`application/vnd.dpgraph`],[`dra`,`audio/vnd.dra`],[`drle`,`image/dicom-rle`],[`dsc`,`text/prs.lines.tag`],[`dssc`,`application/dssc+der`],[`dtb`,`application/x-dtbook+xml`],[`dtd`,`application/xml-dtd`],[`dts`,`audio/vnd.dts`],[`dtshd`,`audio/vnd.dts.hd`],[`dump`,`application/octet-stream`],[`dvb`,`video/vnd.dvb.file`],[`dvi`,`application/x-dvi`],[`dwd`,`application/atsc-dwd+xml`],[`dwf`,`model/vnd.dwf`],[`dwg`,`image/vnd.dwg`],[`dxf`,`image/vnd.dxf`],[`dxp`,`application/vnd.spotfire.dxp`],[`dxr`,`application/x-director`],[`ear`,`application/java-archive`],[`ecelp4800`,`audio/vnd.nuera.ecelp4800`],[`ecelp7470`,`audio/vnd.nuera.ecelp7470`],[`ecelp9600`,`audio/vnd.nuera.ecelp9600`],[`ecma`,`application/ecmascript`],[`edm`,`application/vnd.novadigm.edm`],[`edx`,`application/vnd.novadigm.edx`],[`efif`,`application/vnd.picsel`],[`ei6`,`application/vnd.pg.osasli`],[`elc`,`application/octet-stream`],[`emf`,`image/emf`],[`eml`,`message/rfc822`],[`emma`,`application/emma+xml`],[`emotionml`,`application/emotionml+xml`],[`emz`,`application/x-msmetafile`],[`eol`,`audio/vnd.digital-winds`],[`eot`,`application/vnd.ms-fontobject`],[`eps`,`application/postscript`],[`epub`,`application/epub+zip`],[`es`,`application/ecmascript`],[`es3`,`application/vnd.eszigno3+xml`],[`esa`,`application/vnd.osgi.subsystem`],[`esf`,`application/vnd.epson.esf`],[`et3`,`application/vnd.eszigno3+xml`],[`etx`,`text/x-setext`],[`eva`,`application/x-eva`],[`evy`,`application/x-envoy`],[`exe`,`application/octet-stream`],[`exi`,`application/exi`],[`exp`,`application/express`],[`exr`,`image/aces`],[`ext`,`application/vnd.novadigm.ext`],[`ez`,`application/andrew-inset`],[`ez2`,`application/vnd.ezpix-album`],[`ez3`,`application/vnd.ezpix-package`],[`f`,`text/x-fortran`],[`f4v`,`video/mp4`],[`f77`,`text/x-fortran`],[`f90`,`text/x-fortran`],[`fbs`,`image/vnd.fastbidsheet`],[`fcdt`,`application/vnd.adobe.formscentral.fcdt`],[`fcs`,`application/vnd.isac.fcs`],[`fdf`,`application/vnd.fdf`],[`fdt`,`application/fdt+xml`],[`fe_launch`,`application/vnd.denovo.fcselayout-link`],[`fg5`,`application/vnd.fujitsu.oasysgp`],[`fgd`,`application/x-director`],[`fh`,`image/x-freehand`],[`fh4`,`image/x-freehand`],[`fh5`,`image/x-freehand`],[`fh7`,`image/x-freehand`],[`fhc`,`image/x-freehand`],[`fig`,`application/x-xfig`],[`fits`,`image/fits`],[`flac`,`audio/x-flac`],[`fli`,`video/x-fli`],[`flo`,`application/vnd.micrografx.flo`],[`flv`,`video/x-flv`],[`flw`,`application/vnd.kde.kivio`],[`flx`,`text/vnd.fmi.flexstor`],[`fly`,`text/vnd.fly`],[`fm`,`application/vnd.framemaker`],[`fnc`,`application/vnd.frogans.fnc`],[`fo`,`application/vnd.software602.filler.form+xml`],[`for`,`text/x-fortran`],[`fpx`,`image/vnd.fpx`],[`frame`,`application/vnd.framemaker`],[`fsc`,`application/vnd.fsc.weblaunch`],[`fst`,`image/vnd.fst`],[`ftc`,`application/vnd.fluxtime.clip`],[`fti`,`application/vnd.anser-web-funds-transfer-initiation`],[`fvt`,`video/vnd.fvt`],[`fxp`,`application/vnd.adobe.fxp`],[`fxpl`,`application/vnd.adobe.fxp`],[`fzs`,`application/vnd.fuzzysheet`],[`g2w`,`application/vnd.geoplan`],[`g3`,`image/g3fax`],[`g3w`,`application/vnd.geospace`],[`gac`,`application/vnd.groove-account`],[`gam`,`application/x-tads`],[`gbr`,`application/rpki-ghostbusters`],[`gca`,`application/x-gca-compressed`],[`gdl`,`model/vnd.gdl`],[`gdoc`,`application/vnd.google-apps.document`],[`geo`,`application/vnd.dynageo`],[`geojson`,`application/geo+json`],[`gex`,`application/vnd.geometry-explorer`],[`ggb`,`application/vnd.geogebra.file`],[`ggt`,`application/vnd.geogebra.tool`],[`ghf`,`application/vnd.groove-help`],[`gif`,`image/gif`],[`gim`,`application/vnd.groove-identity-message`],[`glb`,`model/gltf-binary`],[`gltf`,`model/gltf+json`],[`gml`,`application/gml+xml`],[`gmx`,`application/vnd.gmx`],[`gnumeric`,`application/x-gnumeric`],[`gpg`,`application/gpg-keys`],[`gph`,`application/vnd.flographit`],[`gpx`,`application/gpx+xml`],[`gqf`,`application/vnd.grafeq`],[`gqs`,`application/vnd.grafeq`],[`gram`,`application/srgs`],[`gramps`,`application/x-gramps-xml`],[`gre`,`application/vnd.geometry-explorer`],[`grv`,`application/vnd.groove-injector`],[`grxml`,`application/srgs+xml`],[`gsf`,`application/x-font-ghostscript`],[`gsheet`,`application/vnd.google-apps.spreadsheet`],[`gslides`,`application/vnd.google-apps.presentation`],[`gtar`,`application/x-gtar`],[`gtm`,`application/vnd.groove-tool-message`],[`gtw`,`model/vnd.gtw`],[`gv`,`text/vnd.graphviz`],[`gxf`,`application/gxf`],[`gxt`,`application/vnd.geonext`],[`gz`,`application/gzip`],[`gzip`,`application/gzip`],[`h`,`text/x-c`],[`h261`,`video/h261`],[`h263`,`video/h263`],[`h264`,`video/h264`],[`hal`,`application/vnd.hal+xml`],[`hbci`,`application/vnd.hbci`],[`hbs`,`text/x-handlebars-template`],[`hdd`,`application/x-virtualbox-hdd`],[`hdf`,`application/x-hdf`],[`heic`,`image/heic`],[`heics`,`image/heic-sequence`],[`heif`,`image/heif`],[`heifs`,`image/heif-sequence`],[`hej2`,`image/hej2k`],[`held`,`application/atsc-held+xml`],[`hh`,`text/x-c`],[`hjson`,`application/hjson`],[`hlp`,`application/winhlp`],[`hpgl`,`application/vnd.hp-hpgl`],[`hpid`,`application/vnd.hp-hpid`],[`hps`,`application/vnd.hp-hps`],[`hqx`,`application/mac-binhex40`],[`hsj2`,`image/hsj2`],[`htc`,`text/x-component`],[`htke`,`application/vnd.kenameaapp`],[`htm`,`text/html`],[`html`,`text/html`],[`hvd`,`application/vnd.yamaha.hv-dic`],[`hvp`,`application/vnd.yamaha.hv-voice`],[`hvs`,`application/vnd.yamaha.hv-script`],[`i2g`,`application/vnd.intergeo`],[`icc`,`application/vnd.iccprofile`],[`ice`,`x-conference/x-cooltalk`],[`icm`,`application/vnd.iccprofile`],[`ico`,`image/x-icon`],[`ics`,`text/calendar`],[`ief`,`image/ief`],[`ifb`,`text/calendar`],[`ifm`,`application/vnd.shana.informed.formdata`],[`iges`,`model/iges`],[`igl`,`application/vnd.igloader`],[`igm`,`application/vnd.insors.igm`],[`igs`,`model/iges`],[`igx`,`application/vnd.micrografx.igx`],[`iif`,`application/vnd.shana.informed.interchange`],[`img`,`application/octet-stream`],[`imp`,`application/vnd.accpac.simply.imp`],[`ims`,`application/vnd.ms-ims`],[`in`,`text/plain`],[`ini`,`text/plain`],[`ink`,`application/inkml+xml`],[`inkml`,`application/inkml+xml`],[`install`,`application/x-install-instructions`],[`iota`,`application/vnd.astraea-software.iota`],[`ipfix`,`application/ipfix`],[`ipk`,`application/vnd.shana.informed.package`],[`irm`,`application/vnd.ibm.rights-management`],[`irp`,`application/vnd.irepository.package+xml`],[`iso`,`application/x-iso9660-image`],[`itp`,`application/vnd.shana.informed.formtemplate`],[`its`,`application/its+xml`],[`ivp`,`application/vnd.immervision-ivp`],[`ivu`,`application/vnd.immervision-ivu`],[`jad`,`text/vnd.sun.j2me.app-descriptor`],[`jade`,`text/jade`],[`jam`,`application/vnd.jam`],[`jar`,`application/java-archive`],[`jardiff`,`application/x-java-archive-diff`],[`java`,`text/x-java-source`],[`jhc`,`image/jphc`],[`jisp`,`application/vnd.jisp`],[`jls`,`image/jls`],[`jlt`,`application/vnd.hp-jlyt`],[`jng`,`image/x-jng`],[`jnlp`,`application/x-java-jnlp-file`],[`joda`,`application/vnd.joost.joda-archive`],[`jp2`,`image/jp2`],[`jpe`,`image/jpeg`],[`jpeg`,`image/jpeg`],[`jpf`,`image/jpx`],[`jpg`,`image/jpeg`],[`jpg2`,`image/jp2`],[`jpgm`,`video/jpm`],[`jpgv`,`video/jpeg`],[`jph`,`image/jph`],[`jpm`,`video/jpm`],[`jpx`,`image/jpx`],[`js`,`application/javascript`],[`json`,`application/json`],[`json5`,`application/json5`],[`jsonld`,`application/ld+json`],[`jsonl`,`application/jsonl`],[`jsonml`,`application/jsonml+json`],[`jsx`,`text/jsx`],[`jxr`,`image/jxr`],[`jxra`,`image/jxra`],[`jxrs`,`image/jxrs`],[`jxs`,`image/jxs`],[`jxsc`,`image/jxsc`],[`jxsi`,`image/jxsi`],[`jxss`,`image/jxss`],[`kar`,`audio/midi`],[`karbon`,`application/vnd.kde.karbon`],[`kdb`,`application/octet-stream`],[`kdbx`,`application/x-keepass2`],[`key`,`application/x-iwork-keynote-sffkey`],[`kfo`,`application/vnd.kde.kformula`],[`kia`,`application/vnd.kidspiration`],[`kml`,`application/vnd.google-earth.kml+xml`],[`kmz`,`application/vnd.google-earth.kmz`],[`kne`,`application/vnd.kinar`],[`knp`,`application/vnd.kinar`],[`kon`,`application/vnd.kde.kontour`],[`kpr`,`application/vnd.kde.kpresenter`],[`kpt`,`application/vnd.kde.kpresenter`],[`kpxx`,`application/vnd.ds-keypoint`],[`ksp`,`application/vnd.kde.kspread`],[`ktr`,`application/vnd.kahootz`],[`ktx`,`image/ktx`],[`ktx2`,`image/ktx2`],[`ktz`,`application/vnd.kahootz`],[`kwd`,`application/vnd.kde.kword`],[`kwt`,`application/vnd.kde.kword`],[`lasxml`,`application/vnd.las.las+xml`],[`latex`,`application/x-latex`],[`lbd`,`application/vnd.llamagraphics.life-balance.desktop`],[`lbe`,`application/vnd.llamagraphics.life-balance.exchange+xml`],[`les`,`application/vnd.hhe.lesson-player`],[`less`,`text/less`],[`lgr`,`application/lgr+xml`],[`lha`,`application/octet-stream`],[`link66`,`application/vnd.route66.link66+xml`],[`list`,`text/plain`],[`list3820`,`application/vnd.ibm.modcap`],[`listafp`,`application/vnd.ibm.modcap`],[`litcoffee`,`text/coffeescript`],[`lnk`,`application/x-ms-shortcut`],[`log`,`text/plain`],[`lostxml`,`application/lost+xml`],[`lrf`,`application/octet-stream`],[`lrm`,`application/vnd.ms-lrm`],[`ltf`,`application/vnd.frogans.ltf`],[`lua`,`text/x-lua`],[`luac`,`application/x-lua-bytecode`],[`lvp`,`audio/vnd.lucent.voice`],[`lwp`,`application/vnd.lotus-wordpro`],[`lzh`,`application/octet-stream`],[`m1v`,`video/mpeg`],[`m2a`,`audio/mpeg`],[`m2v`,`video/mpeg`],[`m3a`,`audio/mpeg`],[`m3u`,`text/plain`],[`m3u8`,`application/vnd.apple.mpegurl`],[`m4a`,`audio/x-m4a`],[`m4p`,`application/mp4`],[`m4s`,`video/iso.segment`],[`m4u`,`application/vnd.mpegurl`],[`m4v`,`video/x-m4v`],[`m13`,`application/x-msmediaview`],[`m14`,`application/x-msmediaview`],[`m21`,`application/mp21`],[`ma`,`application/mathematica`],[`mads`,`application/mads+xml`],[`maei`,`application/mmt-aei+xml`],[`mag`,`application/vnd.ecowin.chart`],[`maker`,`application/vnd.framemaker`],[`man`,`text/troff`],[`manifest`,`text/cache-manifest`],[`map`,`application/json`],[`mar`,`application/octet-stream`],[`markdown`,`text/markdown`],[`mathml`,`application/mathml+xml`],[`mb`,`application/mathematica`],[`mbk`,`application/vnd.mobius.mbk`],[`mbox`,`application/mbox`],[`mc1`,`application/vnd.medcalcdata`],[`mcd`,`application/vnd.mcd`],[`mcurl`,`text/vnd.curl.mcurl`],[`md`,`text/markdown`],[`mdb`,`application/x-msaccess`],[`mdi`,`image/vnd.ms-modi`],[`mdx`,`text/mdx`],[`me`,`text/troff`],[`mesh`,`model/mesh`],[`meta4`,`application/metalink4+xml`],[`metalink`,`application/metalink+xml`],[`mets`,`application/mets+xml`],[`mfm`,`application/vnd.mfmp`],[`mft`,`application/rpki-manifest`],[`mgp`,`application/vnd.osgeo.mapguide.package`],[`mgz`,`application/vnd.proteus.magazine`],[`mid`,`audio/midi`],[`midi`,`audio/midi`],[`mie`,`application/x-mie`],[`mif`,`application/vnd.mif`],[`mime`,`message/rfc822`],[`mj2`,`video/mj2`],[`mjp2`,`video/mj2`],[`mjs`,`application/javascript`],[`mk3d`,`video/x-matroska`],[`mka`,`audio/x-matroska`],[`mkd`,`text/x-markdown`],[`mks`,`video/x-matroska`],[`mkv`,`video/x-matroska`],[`mlp`,`application/vnd.dolby.mlp`],[`mmd`,`application/vnd.chipnuts.karaoke-mmd`],[`mmf`,`application/vnd.smaf`],[`mml`,`text/mathml`],[`mmr`,`image/vnd.fujixerox.edmics-mmr`],[`mng`,`video/x-mng`],[`mny`,`application/x-msmoney`],[`mobi`,`application/x-mobipocket-ebook`],[`mods`,`application/mods+xml`],[`mov`,`video/quicktime`],[`movie`,`video/x-sgi-movie`],[`mp2`,`audio/mpeg`],[`mp2a`,`audio/mpeg`],[`mp3`,`audio/mpeg`],[`mp4`,`video/mp4`],[`mp4a`,`audio/mp4`],[`mp4s`,`application/mp4`],[`mp4v`,`video/mp4`],[`mp21`,`application/mp21`],[`mpc`,`application/vnd.mophun.certificate`],[`mpd`,`application/dash+xml`],[`mpe`,`video/mpeg`],[`mpeg`,`video/mpeg`],[`mpg`,`video/mpeg`],[`mpg4`,`video/mp4`],[`mpga`,`audio/mpeg`],[`mpkg`,`application/vnd.apple.installer+xml`],[`mpm`,`application/vnd.blueice.multipass`],[`mpn`,`application/vnd.mophun.application`],[`mpp`,`application/vnd.ms-project`],[`mpt`,`application/vnd.ms-project`],[`mpy`,`application/vnd.ibm.minipay`],[`mqy`,`application/vnd.mobius.mqy`],[`mrc`,`application/marc`],[`mrcx`,`application/marcxml+xml`],[`ms`,`text/troff`],[`mscml`,`application/mediaservercontrol+xml`],[`mseed`,`application/vnd.fdsn.mseed`],[`mseq`,`application/vnd.mseq`],[`msf`,`application/vnd.epson.msf`],[`msg`,`application/vnd.ms-outlook`],[`msh`,`model/mesh`],[`msi`,`application/x-msdownload`],[`msl`,`application/vnd.mobius.msl`],[`msm`,`application/octet-stream`],[`msp`,`application/octet-stream`],[`msty`,`application/vnd.muvee.style`],[`mtl`,`model/mtl`],[`mts`,`model/vnd.mts`],[`mus`,`application/vnd.musician`],[`musd`,`application/mmt-usd+xml`],[`musicxml`,`application/vnd.recordare.musicxml+xml`],[`mvb`,`application/x-msmediaview`],[`mvt`,`application/vnd.mapbox-vector-tile`],[`mwf`,`application/vnd.mfer`],[`mxf`,`application/mxf`],[`mxl`,`application/vnd.recordare.musicxml`],[`mxmf`,`audio/mobile-xmf`],[`mxml`,`application/xv+xml`],[`mxs`,`application/vnd.triscape.mxs`],[`mxu`,`video/vnd.mpegurl`],[`n-gage`,`application/vnd.nokia.n-gage.symbian.install`],[`n3`,`text/n3`],[`nb`,`application/mathematica`],[`nbp`,`application/vnd.wolfram.player`],[`nc`,`application/x-netcdf`],[`ncx`,`application/x-dtbncx+xml`],[`nfo`,`text/x-nfo`],[`ngdat`,`application/vnd.nokia.n-gage.data`],[`nitf`,`application/vnd.nitf`],[`nlu`,`application/vnd.neurolanguage.nlu`],[`nml`,`application/vnd.enliven`],[`nnd`,`application/vnd.noblenet-directory`],[`nns`,`application/vnd.noblenet-sealer`],[`nnw`,`application/vnd.noblenet-web`],[`npx`,`image/vnd.net-fpx`],[`nq`,`application/n-quads`],[`nsc`,`application/x-conference`],[`nsf`,`application/vnd.lotus-notes`],[`nt`,`application/n-triples`],[`ntf`,`application/vnd.nitf`],[`numbers`,`application/x-iwork-numbers-sffnumbers`],[`nzb`,`application/x-nzb`],[`oa2`,`application/vnd.fujitsu.oasys2`],[`oa3`,`application/vnd.fujitsu.oasys3`],[`oas`,`application/vnd.fujitsu.oasys`],[`obd`,`application/x-msbinder`],[`obgx`,`application/vnd.openblox.game+xml`],[`obj`,`model/obj`],[`oda`,`application/oda`],[`odb`,`application/vnd.oasis.opendocument.database`],[`odc`,`application/vnd.oasis.opendocument.chart`],[`odf`,`application/vnd.oasis.opendocument.formula`],[`odft`,`application/vnd.oasis.opendocument.formula-template`],[`odg`,`application/vnd.oasis.opendocument.graphics`],[`odi`,`application/vnd.oasis.opendocument.image`],[`odm`,`application/vnd.oasis.opendocument.text-master`],[`odp`,`application/vnd.oasis.opendocument.presentation`],[`ods`,`application/vnd.oasis.opendocument.spreadsheet`],[`odt`,`application/vnd.oasis.opendocument.text`],[`oga`,`audio/ogg`],[`ogex`,`model/vnd.opengex`],[`ogg`,`audio/ogg`],[`ogv`,`video/ogg`],[`ogx`,`application/ogg`],[`omdoc`,`application/omdoc+xml`],[`onepkg`,`application/onenote`],[`onetmp`,`application/onenote`],[`onetoc`,`application/onenote`],[`onetoc2`,`application/onenote`],[`opf`,`application/oebps-package+xml`],[`opml`,`text/x-opml`],[`oprc`,`application/vnd.palm`],[`opus`,`audio/ogg`],[`org`,`text/x-org`],[`osf`,`application/vnd.yamaha.openscoreformat`],[`osfpvg`,`application/vnd.yamaha.openscoreformat.osfpvg+xml`],[`osm`,`application/vnd.openstreetmap.data+xml`],[`otc`,`application/vnd.oasis.opendocument.chart-template`],[`otf`,`font/otf`],[`otg`,`application/vnd.oasis.opendocument.graphics-template`],[`oth`,`application/vnd.oasis.opendocument.text-web`],[`oti`,`application/vnd.oasis.opendocument.image-template`],[`otp`,`application/vnd.oasis.opendocument.presentation-template`],[`ots`,`application/vnd.oasis.opendocument.spreadsheet-template`],[`ott`,`application/vnd.oasis.opendocument.text-template`],[`ova`,`application/x-virtualbox-ova`],[`ovf`,`application/x-virtualbox-ovf`],[`owl`,`application/rdf+xml`],[`oxps`,`application/oxps`],[`oxt`,`application/vnd.openofficeorg.extension`],[`p`,`text/x-pascal`],[`p7a`,`application/x-pkcs7-signature`],[`p7b`,`application/x-pkcs7-certificates`],[`p7c`,`application/pkcs7-mime`],[`p7m`,`application/pkcs7-mime`],[`p7r`,`application/x-pkcs7-certreqresp`],[`p7s`,`application/pkcs7-signature`],[`p8`,`application/pkcs8`],[`p10`,`application/x-pkcs10`],[`p12`,`application/x-pkcs12`],[`pac`,`application/x-ns-proxy-autoconfig`],[`pages`,`application/x-iwork-pages-sffpages`],[`pas`,`text/x-pascal`],[`paw`,`application/vnd.pawaafile`],[`pbd`,`application/vnd.powerbuilder6`],[`pbm`,`image/x-portable-bitmap`],[`pcap`,`application/vnd.tcpdump.pcap`],[`pcf`,`application/x-font-pcf`],[`pcl`,`application/vnd.hp-pcl`],[`pclxl`,`application/vnd.hp-pclxl`],[`pct`,`image/x-pict`],[`pcurl`,`application/vnd.curl.pcurl`],[`pcx`,`image/x-pcx`],[`pdb`,`application/x-pilot`],[`pde`,`text/x-processing`],[`pdf`,`application/pdf`],[`pem`,`application/x-x509-user-cert`],[`pfa`,`application/x-font-type1`],[`pfb`,`application/x-font-type1`],[`pfm`,`application/x-font-type1`],[`pfr`,`application/font-tdpfr`],[`pfx`,`application/x-pkcs12`],[`pgm`,`image/x-portable-graymap`],[`pgn`,`application/x-chess-pgn`],[`pgp`,`application/pgp`],[`php`,`application/x-httpd-php`],[`php3`,`application/x-httpd-php`],[`php4`,`application/x-httpd-php`],[`phps`,`application/x-httpd-php-source`],[`phtml`,`application/x-httpd-php`],[`pic`,`image/x-pict`],[`pkg`,`application/octet-stream`],[`pki`,`application/pkixcmp`],[`pkipath`,`application/pkix-pkipath`],[`pkpass`,`application/vnd.apple.pkpass`],[`pl`,`application/x-perl`],[`plb`,`application/vnd.3gpp.pic-bw-large`],[`plc`,`application/vnd.mobius.plc`],[`plf`,`application/vnd.pocketlearn`],[`pls`,`application/pls+xml`],[`pm`,`application/x-perl`],[`pml`,`application/vnd.ctc-posml`],[`png`,`image/png`],[`pnm`,`image/x-portable-anymap`],[`portpkg`,`application/vnd.macports.portpkg`],[`pot`,`application/vnd.ms-powerpoint`],[`potm`,`application/vnd.ms-powerpoint.presentation.macroEnabled.12`],[`potx`,`application/vnd.openxmlformats-officedocument.presentationml.template`],[`ppa`,`application/vnd.ms-powerpoint`],[`ppam`,`application/vnd.ms-powerpoint.addin.macroEnabled.12`],[`ppd`,`application/vnd.cups-ppd`],[`ppm`,`image/x-portable-pixmap`],[`pps`,`application/vnd.ms-powerpoint`],[`ppsm`,`application/vnd.ms-powerpoint.slideshow.macroEnabled.12`],[`ppsx`,`application/vnd.openxmlformats-officedocument.presentationml.slideshow`],[`ppt`,`application/powerpoint`],[`pptm`,`application/vnd.ms-powerpoint.presentation.macroEnabled.12`],[`pptx`,`application/vnd.openxmlformats-officedocument.presentationml.presentation`],[`pqa`,`application/vnd.palm`],[`prc`,`application/x-pilot`],[`pre`,`application/vnd.lotus-freelance`],[`prf`,`application/pics-rules`],[`provx`,`application/provenance+xml`],[`ps`,`application/postscript`],[`psb`,`application/vnd.3gpp.pic-bw-small`],[`psd`,`application/x-photoshop`],[`psf`,`application/x-font-linux-psf`],[`pskcxml`,`application/pskc+xml`],[`pti`,`image/prs.pti`],[`ptid`,`application/vnd.pvi.ptid1`],[`pub`,`application/x-mspublisher`],[`pvb`,`application/vnd.3gpp.pic-bw-var`],[`pwn`,`application/vnd.3m.post-it-notes`],[`pya`,`audio/vnd.ms-playready.media.pya`],[`pyv`,`video/vnd.ms-playready.media.pyv`],[`qam`,`application/vnd.epson.quickanime`],[`qbo`,`application/vnd.intu.qbo`],[`qfx`,`application/vnd.intu.qfx`],[`qps`,`application/vnd.publishare-delta-tree`],[`qt`,`video/quicktime`],[`qwd`,`application/vnd.quark.quarkxpress`],[`qwt`,`application/vnd.quark.quarkxpress`],[`qxb`,`application/vnd.quark.quarkxpress`],[`qxd`,`application/vnd.quark.quarkxpress`],[`qxl`,`application/vnd.quark.quarkxpress`],[`qxt`,`application/vnd.quark.quarkxpress`],[`ra`,`audio/x-realaudio`],[`ram`,`audio/x-pn-realaudio`],[`raml`,`application/raml+yaml`],[`rapd`,`application/route-apd+xml`],[`rar`,`application/x-rar`],[`ras`,`image/x-cmu-raster`],[`rcprofile`,`application/vnd.ipunplugged.rcprofile`],[`rdf`,`application/rdf+xml`],[`rdz`,`application/vnd.data-vision.rdz`],[`relo`,`application/p2p-overlay+xml`],[`rep`,`application/vnd.businessobjects`],[`res`,`application/x-dtbresource+xml`],[`rgb`,`image/x-rgb`],[`rif`,`application/reginfo+xml`],[`rip`,`audio/vnd.rip`],[`ris`,`application/x-research-info-systems`],[`rl`,`application/resource-lists+xml`],[`rlc`,`image/vnd.fujixerox.edmics-rlc`],[`rld`,`application/resource-lists-diff+xml`],[`rm`,`audio/x-pn-realaudio`],[`rmi`,`audio/midi`],[`rmp`,`audio/x-pn-realaudio-plugin`],[`rms`,`application/vnd.jcp.javame.midlet-rms`],[`rmvb`,`application/vnd.rn-realmedia-vbr`],[`rnc`,`application/relax-ng-compact-syntax`],[`rng`,`application/xml`],[`roa`,`application/rpki-roa`],[`roff`,`text/troff`],[`rp9`,`application/vnd.cloanto.rp9`],[`rpm`,`audio/x-pn-realaudio-plugin`],[`rpss`,`application/vnd.nokia.radio-presets`],[`rpst`,`application/vnd.nokia.radio-preset`],[`rq`,`application/sparql-query`],[`rs`,`application/rls-services+xml`],[`rsa`,`application/x-pkcs7`],[`rsat`,`application/atsc-rsat+xml`],[`rsd`,`application/rsd+xml`],[`rsheet`,`application/urc-ressheet+xml`],[`rss`,`application/rss+xml`],[`rtf`,`text/rtf`],[`rtx`,`text/richtext`],[`run`,`application/x-makeself`],[`rusd`,`application/route-usd+xml`],[`rv`,`video/vnd.rn-realvideo`],[`s`,`text/x-asm`],[`s3m`,`audio/s3m`],[`saf`,`application/vnd.yamaha.smaf-audio`],[`sass`,`text/x-sass`],[`sbml`,`application/sbml+xml`],[`sc`,`application/vnd.ibm.secure-container`],[`scd`,`application/x-msschedule`],[`scm`,`application/vnd.lotus-screencam`],[`scq`,`application/scvp-cv-request`],[`scs`,`application/scvp-cv-response`],[`scss`,`text/x-scss`],[`scurl`,`text/vnd.curl.scurl`],[`sda`,`application/vnd.stardivision.draw`],[`sdc`,`application/vnd.stardivision.calc`],[`sdd`,`application/vnd.stardivision.impress`],[`sdkd`,`application/vnd.solent.sdkm+xml`],[`sdkm`,`application/vnd.solent.sdkm+xml`],[`sdp`,`application/sdp`],[`sdw`,`application/vnd.stardivision.writer`],[`sea`,`application/octet-stream`],[`see`,`application/vnd.seemail`],[`seed`,`application/vnd.fdsn.seed`],[`sema`,`application/vnd.sema`],[`semd`,`application/vnd.semd`],[`semf`,`application/vnd.semf`],[`senmlx`,`application/senml+xml`],[`sensmlx`,`application/sensml+xml`],[`ser`,`application/java-serialized-object`],[`setpay`,`application/set-payment-initiation`],[`setreg`,`application/set-registration-initiation`],[`sfd-hdstx`,`application/vnd.hydrostatix.sof-data`],[`sfs`,`application/vnd.spotfire.sfs`],[`sfv`,`text/x-sfv`],[`sgi`,`image/sgi`],[`sgl`,`application/vnd.stardivision.writer-global`],[`sgm`,`text/sgml`],[`sgml`,`text/sgml`],[`sh`,`application/x-sh`],[`shar`,`application/x-shar`],[`shex`,`text/shex`],[`shf`,`application/shf+xml`],[`shtml`,`text/html`],[`sid`,`image/x-mrsid-image`],[`sieve`,`application/sieve`],[`sig`,`application/pgp-signature`],[`sil`,`audio/silk`],[`silo`,`model/mesh`],[`sis`,`application/vnd.symbian.install`],[`sisx`,`application/vnd.symbian.install`],[`sit`,`application/x-stuffit`],[`sitx`,`application/x-stuffitx`],[`siv`,`application/sieve`],[`skd`,`application/vnd.koan`],[`skm`,`application/vnd.koan`],[`skp`,`application/vnd.koan`],[`skt`,`application/vnd.koan`],[`sldm`,`application/vnd.ms-powerpoint.slide.macroenabled.12`],[`sldx`,`application/vnd.openxmlformats-officedocument.presentationml.slide`],[`slim`,`text/slim`],[`slm`,`text/slim`],[`sls`,`application/route-s-tsid+xml`],[`slt`,`application/vnd.epson.salt`],[`sm`,`application/vnd.stepmania.stepchart`],[`smf`,`application/vnd.stardivision.math`],[`smi`,`application/smil`],[`smil`,`application/smil`],[`smv`,`video/x-smv`],[`smzip`,`application/vnd.stepmania.package`],[`snd`,`audio/basic`],[`snf`,`application/x-font-snf`],[`so`,`application/octet-stream`],[`spc`,`application/x-pkcs7-certificates`],[`spdx`,`text/spdx`],[`spf`,`application/vnd.yamaha.smaf-phrase`],[`spl`,`application/x-futuresplash`],[`spot`,`text/vnd.in3d.spot`],[`spp`,`application/scvp-vp-response`],[`spq`,`application/scvp-vp-request`],[`spx`,`audio/ogg`],[`sql`,`application/x-sql`],[`src`,`application/x-wais-source`],[`srt`,`application/x-subrip`],[`sru`,`application/sru+xml`],[`srx`,`application/sparql-results+xml`],[`ssdl`,`application/ssdl+xml`],[`sse`,`application/vnd.kodak-descriptor`],[`ssf`,`application/vnd.epson.ssf`],[`ssml`,`application/ssml+xml`],[`sst`,`application/octet-stream`],[`st`,`application/vnd.sailingtracker.track`],[`stc`,`application/vnd.sun.xml.calc.template`],[`std`,`application/vnd.sun.xml.draw.template`],[`stf`,`application/vnd.wt.stf`],[`sti`,`application/vnd.sun.xml.impress.template`],[`stk`,`application/hyperstudio`],[`stl`,`model/stl`],[`stpx`,`model/step+xml`],[`stpxz`,`model/step-xml+zip`],[`stpz`,`model/step+zip`],[`str`,`application/vnd.pg.format`],[`stw`,`application/vnd.sun.xml.writer.template`],[`styl`,`text/stylus`],[`stylus`,`text/stylus`],[`sub`,`text/vnd.dvb.subtitle`],[`sus`,`application/vnd.sus-calendar`],[`susp`,`application/vnd.sus-calendar`],[`sv4cpio`,`application/x-sv4cpio`],[`sv4crc`,`application/x-sv4crc`],[`svc`,`application/vnd.dvb.service`],[`svd`,`application/vnd.svd`],[`svg`,`image/svg+xml`],[`svgz`,`image/svg+xml`],[`swa`,`application/x-director`],[`swf`,`application/x-shockwave-flash`],[`swi`,`application/vnd.aristanetworks.swi`],[`swidtag`,`application/swid+xml`],[`sxc`,`application/vnd.sun.xml.calc`],[`sxd`,`application/vnd.sun.xml.draw`],[`sxg`,`application/vnd.sun.xml.writer.global`],[`sxi`,`application/vnd.sun.xml.impress`],[`sxm`,`application/vnd.sun.xml.math`],[`sxw`,`application/vnd.sun.xml.writer`],[`t`,`text/troff`],[`t3`,`application/x-t3vm-image`],[`t38`,`image/t38`],[`taglet`,`application/vnd.mynfc`],[`tao`,`application/vnd.tao.intent-module-archive`],[`tap`,`image/vnd.tencent.tap`],[`tar`,`application/x-tar`],[`tcap`,`application/vnd.3gpp2.tcap`],[`tcl`,`application/x-tcl`],[`td`,`application/urc-targetdesc+xml`],[`teacher`,`application/vnd.smart.teacher`],[`tei`,`application/tei+xml`],[`teicorpus`,`application/tei+xml`],[`tex`,`application/x-tex`],[`texi`,`application/x-texinfo`],[`texinfo`,`application/x-texinfo`],[`text`,`text/plain`],[`tfi`,`application/thraud+xml`],[`tfm`,`application/x-tex-tfm`],[`tfx`,`image/tiff-fx`],[`tga`,`image/x-tga`],[`tgz`,`application/x-tar`],[`thmx`,`application/vnd.ms-officetheme`],[`tif`,`image/tiff`],[`tiff`,`image/tiff`],[`tk`,`application/x-tcl`],[`tmo`,`application/vnd.tmobile-livetv`],[`toml`,`application/toml`],[`torrent`,`application/x-bittorrent`],[`tpl`,`application/vnd.groove-tool-template`],[`tpt`,`application/vnd.trid.tpt`],[`tr`,`text/troff`],[`tra`,`application/vnd.trueapp`],[`trig`,`application/trig`],[`trm`,`application/x-msterminal`],[`ts`,`video/mp2t`],[`tsd`,`application/timestamped-data`],[`tsv`,`text/tab-separated-values`],[`ttc`,`font/collection`],[`ttf`,`font/ttf`],[`ttl`,`text/turtle`],[`ttml`,`application/ttml+xml`],[`twd`,`application/vnd.simtech-mindmapper`],[`twds`,`application/vnd.simtech-mindmapper`],[`txd`,`application/vnd.genomatix.tuxedo`],[`txf`,`application/vnd.mobius.txf`],[`txt`,`text/plain`],[`u8dsn`,`message/global-delivery-status`],[`u8hdr`,`message/global-headers`],[`u8mdn`,`message/global-disposition-notification`],[`u8msg`,`message/global`],[`u32`,`application/x-authorware-bin`],[`ubj`,`application/ubjson`],[`udeb`,`application/x-debian-package`],[`ufd`,`application/vnd.ufdl`],[`ufdl`,`application/vnd.ufdl`],[`ulx`,`application/x-glulx`],[`umj`,`application/vnd.umajin`],[`unityweb`,`application/vnd.unity`],[`uoml`,`application/vnd.uoml+xml`],[`uri`,`text/uri-list`],[`uris`,`text/uri-list`],[`urls`,`text/uri-list`],[`usdz`,`model/vnd.usdz+zip`],[`ustar`,`application/x-ustar`],[`utz`,`application/vnd.uiq.theme`],[`uu`,`text/x-uuencode`],[`uva`,`audio/vnd.dece.audio`],[`uvd`,`application/vnd.dece.data`],[`uvf`,`application/vnd.dece.data`],[`uvg`,`image/vnd.dece.graphic`],[`uvh`,`video/vnd.dece.hd`],[`uvi`,`image/vnd.dece.graphic`],[`uvm`,`video/vnd.dece.mobile`],[`uvp`,`video/vnd.dece.pd`],[`uvs`,`video/vnd.dece.sd`],[`uvt`,`application/vnd.dece.ttml+xml`],[`uvu`,`video/vnd.uvvu.mp4`],[`uvv`,`video/vnd.dece.video`],[`uvva`,`audio/vnd.dece.audio`],[`uvvd`,`application/vnd.dece.data`],[`uvvf`,`application/vnd.dece.data`],[`uvvg`,`image/vnd.dece.graphic`],[`uvvh`,`video/vnd.dece.hd`],[`uvvi`,`image/vnd.dece.graphic`],[`uvvm`,`video/vnd.dece.mobile`],[`uvvp`,`video/vnd.dece.pd`],[`uvvs`,`video/vnd.dece.sd`],[`uvvt`,`application/vnd.dece.ttml+xml`],[`uvvu`,`video/vnd.uvvu.mp4`],[`uvvv`,`video/vnd.dece.video`],[`uvvx`,`application/vnd.dece.unspecified`],[`uvvz`,`application/vnd.dece.zip`],[`uvx`,`application/vnd.dece.unspecified`],[`uvz`,`application/vnd.dece.zip`],[`vbox`,`application/x-virtualbox-vbox`],[`vbox-extpack`,`application/x-virtualbox-vbox-extpack`],[`vcard`,`text/vcard`],[`vcd`,`application/x-cdlink`],[`vcf`,`text/x-vcard`],[`vcg`,`application/vnd.groove-vcard`],[`vcs`,`text/x-vcalendar`],[`vcx`,`application/vnd.vcx`],[`vdi`,`application/x-virtualbox-vdi`],[`vds`,`model/vnd.sap.vds`],[`vhd`,`application/x-virtualbox-vhd`],[`vis`,`application/vnd.visionary`],[`viv`,`video/vnd.vivo`],[`vlc`,`application/videolan`],[`vmdk`,`application/x-virtualbox-vmdk`],[`vob`,`video/x-ms-vob`],[`vor`,`application/vnd.stardivision.writer`],[`vox`,`application/x-authorware-bin`],[`vrml`,`model/vrml`],[`vsd`,`application/vnd.visio`],[`vsf`,`application/vnd.vsf`],[`vss`,`application/vnd.visio`],[`vst`,`application/vnd.visio`],[`vsw`,`application/vnd.visio`],[`vtf`,`image/vnd.valve.source.texture`],[`vtt`,`text/vtt`],[`vtu`,`model/vnd.vtu`],[`vxml`,`application/voicexml+xml`],[`w3d`,`application/x-director`],[`wad`,`application/x-doom`],[`wadl`,`application/vnd.sun.wadl+xml`],[`war`,`application/java-archive`],[`wasm`,`application/wasm`],[`wav`,`audio/x-wav`],[`wax`,`audio/x-ms-wax`],[`wbmp`,`image/vnd.wap.wbmp`],[`wbs`,`application/vnd.criticaltools.wbs+xml`],[`wbxml`,`application/wbxml`],[`wcm`,`application/vnd.ms-works`],[`wdb`,`application/vnd.ms-works`],[`wdp`,`image/vnd.ms-photo`],[`weba`,`audio/webm`],[`webapp`,`application/x-web-app-manifest+json`],[`webm`,`video/webm`],[`webmanifest`,`application/manifest+json`],[`webp`,`image/webp`],[`wg`,`application/vnd.pmi.widget`],[`wgt`,`application/widget`],[`wks`,`application/vnd.ms-works`],[`wm`,`video/x-ms-wm`],[`wma`,`audio/x-ms-wma`],[`wmd`,`application/x-ms-wmd`],[`wmf`,`image/wmf`],[`wml`,`text/vnd.wap.wml`],[`wmlc`,`application/wmlc`],[`wmls`,`text/vnd.wap.wmlscript`],[`wmlsc`,`application/vnd.wap.wmlscriptc`],[`wmv`,`video/x-ms-wmv`],[`wmx`,`video/x-ms-wmx`],[`wmz`,`application/x-msmetafile`],[`woff`,`font/woff`],[`woff2`,`font/woff2`],[`word`,`application/msword`],[`wpd`,`application/vnd.wordperfect`],[`wpl`,`application/vnd.ms-wpl`],[`wps`,`application/vnd.ms-works`],[`wqd`,`application/vnd.wqd`],[`wri`,`application/x-mswrite`],[`wrl`,`model/vrml`],[`wsc`,`message/vnd.wfa.wsc`],[`wsdl`,`application/wsdl+xml`],[`wspolicy`,`application/wspolicy+xml`],[`wtb`,`application/vnd.webturbo`],[`wvx`,`video/x-ms-wvx`],[`x3d`,`model/x3d+xml`],[`x3db`,`model/x3d+fastinfoset`],[`x3dbz`,`model/x3d+binary`],[`x3dv`,`model/x3d-vrml`],[`x3dvz`,`model/x3d+vrml`],[`x3dz`,`model/x3d+xml`],[`x32`,`application/x-authorware-bin`],[`x_b`,`model/vnd.parasolid.transmit.binary`],[`x_t`,`model/vnd.parasolid.transmit.text`],[`xaml`,`application/xaml+xml`],[`xap`,`application/x-silverlight-app`],[`xar`,`application/vnd.xara`],[`xav`,`application/xcap-att+xml`],[`xbap`,`application/x-ms-xbap`],[`xbd`,`application/vnd.fujixerox.docuworks.binder`],[`xbm`,`image/x-xbitmap`],[`xca`,`application/xcap-caps+xml`],[`xcs`,`application/calendar+xml`],[`xdf`,`application/xcap-diff+xml`],[`xdm`,`application/vnd.syncml.dm+xml`],[`xdp`,`application/vnd.adobe.xdp+xml`],[`xdssc`,`application/dssc+xml`],[`xdw`,`application/vnd.fujixerox.docuworks`],[`xel`,`application/xcap-el+xml`],[`xenc`,`application/xenc+xml`],[`xer`,`application/patch-ops-error+xml`],[`xfdf`,`application/vnd.adobe.xfdf`],[`xfdl`,`application/vnd.xfdl`],[`xht`,`application/xhtml+xml`],[`xhtml`,`application/xhtml+xml`],[`xhvml`,`application/xv+xml`],[`xif`,`image/vnd.xiff`],[`xl`,`application/excel`],[`xla`,`application/vnd.ms-excel`],[`xlam`,`application/vnd.ms-excel.addin.macroEnabled.12`],[`xlc`,`application/vnd.ms-excel`],[`xlf`,`application/xliff+xml`],[`xlm`,`application/vnd.ms-excel`],[`xls`,`application/vnd.ms-excel`],[`xlsb`,`application/vnd.ms-excel.sheet.binary.macroEnabled.12`],[`xlsm`,`application/vnd.ms-excel.sheet.macroEnabled.12`],[`xlsx`,`application/vnd.openxmlformats-officedocument.spreadsheetml.sheet`],[`xlt`,`application/vnd.ms-excel`],[`xltm`,`application/vnd.ms-excel.template.macroEnabled.12`],[`xltx`,`application/vnd.openxmlformats-officedocument.spreadsheetml.template`],[`xlw`,`application/vnd.ms-excel`],[`xm`,`audio/xm`],[`xml`,`application/xml`],[`xns`,`application/xcap-ns+xml`],[`xo`,`application/vnd.olpc-sugar`],[`xop`,`application/xop+xml`],[`xpi`,`application/x-xpinstall`],[`xpl`,`application/xproc+xml`],[`xpm`,`image/x-xpixmap`],[`xpr`,`application/vnd.is-xpr`],[`xps`,`application/vnd.ms-xpsdocument`],[`xpw`,`application/vnd.intercon.formnet`],[`xpx`,`application/vnd.intercon.formnet`],[`xsd`,`application/xml`],[`xsl`,`application/xml`],[`xslt`,`application/xslt+xml`],[`xsm`,`application/vnd.syncml+xml`],[`xspf`,`application/xspf+xml`],[`xul`,`application/vnd.mozilla.xul+xml`],[`xvm`,`application/xv+xml`],[`xvml`,`application/xv+xml`],[`xwd`,`image/x-xwindowdump`],[`xyz`,`chemical/x-xyz`],[`xz`,`application/x-xz`],[`yaml`,`text/yaml`],[`yang`,`application/yang`],[`yin`,`application/yin+xml`],[`yml`,`text/yaml`],[`ymp`,`text/x-suse-ymp`],[`z`,`application/x-compress`],[`z1`,`application/x-zmachine`],[`z2`,`application/x-zmachine`],[`z3`,`application/x-zmachine`],[`z4`,`application/x-zmachine`],[`z5`,`application/x-zmachine`],[`z6`,`application/x-zmachine`],[`z7`,`application/x-zmachine`],[`z8`,`application/x-zmachine`],[`zaz`,`application/vnd.zzazz.deck+xml`],[`zip`,`application/zip`],[`zir`,`application/vnd.zul`],[`zirz`,`application/vnd.zul`],[`zmm`,`application/vnd.handheld-entertainment+xml`],[`zsh`,`text/x-scriptzsh`]]);function g(e,t,n){let r=_(e),{webkitRelativePath:i}=e,a=typeof t==`string`?t:typeof i==`string`&&i.length>0?i:`./${e.name}`;return typeof r.path!=`string`&&v(r,`path`,a),n!==void 0&&Object.defineProperty(r,"handle",{value:n,writable:!1,configurable:!1,enumerable:!0}),v(r,`relativePath`,a),r}function _(e){let{name:t}=e;if(t&&t.lastIndexOf(`.`)!==-1&&!e.type){let n=t.split(`.`).pop().toLowerCase(),r=h.get(n);r&&Object.defineProperty(e,"type",{value:r,writable:!1,configurable:!1,enumerable:!0})}return e}function v(e,t,n){Object.defineProperty(e,t,{value:n,writable:!1,configurable:!1,enumerable:!0})}var y=[`.DS_Store`,`Thumbs.db`];function ee(e){return d(this,void 0,void 0,function*(){return x(e)&&b(e.dataTransfer)?w(e.dataTransfer,e.type):te(e)?S(e):Array.isArray(e)&&e.every(e=>`getFile`in e&&typeof e.getFile==`function`)?C(e):[]})}function b(e){return x(e)}function te(e){return x(e)&&x(e.target)}function x(e){return typeof e==`object`&&!!e}function S(e){return E(e.target.files).map(e=>g(e))}function C(e){return d(this,void 0,void 0,function*(){return(yield Promise.all(e.map(e=>e.getFile()))).map(e=>g(e))})}function w(e,t){return d(this,void 0,void 0,function*(){if(e.items){let n=E(e.items).filter(e=>e.kind===`file`);return t===`drop`?T(O(yield Promise.all(n.map(D)))):n}return T(E(e.files).map(e=>g(e)))})}function T(e){return e.filter(e=>y.indexOf(e.name)===-1)}function E(e){if(e===null)return[];let t=[];for(let n=0;n<e.length;n++){let r=e[n];t.push(r)}return t}function D(e){if(typeof e.webkitGetAsEntry!=`function`)return k(e);let t=e.webkitGetAsEntry();return t&&t.isDirectory?A(t):k(e,t)}function O(e){return e.reduce((e,t)=>[...e,...Array.isArray(t)?O(t):[t]],[])}function k(e,t){return d(this,void 0,void 0,function*(){if(globalThis.isSecureContext&&typeof e.getAsFileSystemHandle==`function`){let t=yield e.getAsFileSystemHandle();if(t===null)throw Error(`${e} is not a File`);if(t!==void 0){let e=yield t.getFile();return e.handle=t,g(e)}}let n=e.getAsFile();if(!n)throw Error(`${e} is not a File`);return g(n,t?.fullPath??void 0)})}function ne(e){return d(this,void 0,void 0,function*(){return e.isDirectory?A(e):j(e)})}function A(e){let t=e.createReader();return new Promise((e,n)=>{let r=[];function i(){t.readEntries(t=>d(this,void 0,void 0,function*(){if(t.length){let e=Promise.all(t.map(ne));r.push(e),i()}else try{e(yield Promise.all(r))}catch(e){n(e)}}),e=>{n(e)})}i()})}function j(e){return d(this,void 0,void 0,function*(){return new Promise((t,n)=>{e.file(n=>{t(g(n,e.fullPath))},e=>{n(e)})})})}var re=t((e=>{e.__esModule=!0,e.default=function(e,t){if(e&&t){var n=Array.isArray(t)?t:t.split(`,`);if(n.length===0)return!0;var r=e.name||``,i=(e.type||``).toLowerCase(),a=i.replace(/\/.*$/,``);return n.some(function(e){var t=e.trim().toLowerCase();return t.charAt(0)===`.`?r.toLowerCase().endsWith(t):t.endsWith(`/*`)?a===t.replace(/\/.*$/,``):i===t})}return!0}})),M=e(n()),ie=u(),N=e(m()),P=e(re());function F(e){return L(e)||ae(e)||U(e)||I()}function I(){throw TypeError(`Invalid attempt to spread non-iterable instance.
2
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ae(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function L(e){if(Array.isArray(e))return W(e)}function R(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function z(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?R(Object(n),!0).forEach(function(t){B(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):R(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function B(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function V(e,t){return se(e)||oe(e,t)||U(e,t)||H()}function H(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
3
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function U(e,t){if(e){if(typeof e==`string`)return W(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return W(e,t)}}function W(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function oe(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(e){a=!0,s=e}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function se(e){if(Array.isArray(e))return e}var ce=typeof P.default==`function`?P.default:P.default.default,G=`file-invalid-type`,K=`file-too-large`,q=`file-too-small`,J=`too-many-files`,le=function(){var e=(arguments.length>0&&arguments[0]!==void 0?arguments[0]:``).split(`,`);return{code:G,message:`File type must be ${e.length>1?`one of ${e.join(`, `)}`:e[0]}`}},ue=function(e){return{code:K,message:`File is larger than ${e} ${e===1?`byte`:`bytes`}`}},de=function(e){return{code:q,message:`File is smaller than ${e} ${e===1?`byte`:`bytes`}`}},fe={code:J,message:`Too many files`};function pe(e){return e.type===``&&typeof e.getAsFile==`function`}function me(e,t){var n=e.type===`application/x-moz-file`||ce(e,t)||pe(e);return[n,n?null:le(t)]}function he(e,t,n){if(Y(e.size)){if(Y(t)&&Y(n)){if(e.size>n)return[!1,ue(n)];if(e.size<t)return[!1,de(t)]}else if(Y(t)&&e.size<t)return[!1,de(t)];else if(Y(n)&&e.size>n)return[!1,ue(n)]}return[!0,null]}function Y(e){return e!=null}function ge(e){var t=e.files,n=e.accept,r=e.minSize,i=e.maxSize,a=e.multiple,o=e.maxFiles,s=e.validator;return!a&&t.length>1||a&&o>=1&&t.length>o?!1:t.every(function(e){var t=V(me(e,n),1)[0],a=V(he(e,r,i),1)[0],o=s?s(e):null;return t&&a&&!o})}function _e(e){return typeof e.isPropagationStopped==`function`?e.isPropagationStopped():e.cancelBubble===void 0?!1:e.cancelBubble}function X(e){return e.dataTransfer?Array.prototype.some.call(e.dataTransfer.types,function(e){return e===`Files`||e===`application/x-moz-file`}):!!e.target&&!!e.target.files}function ve(e){e.preventDefault()}function ye(e){return e.indexOf(`MSIE`)!==-1||e.indexOf(`Trident/`)!==-1}function be(e){return e.indexOf(`Edge/`)!==-1}function xe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:window.navigator.userAgent;return ye(e)||be(e)}function Z(){var e=[...arguments];return function(t){var n=[...arguments].slice(1);return e.some(function(e){return!_e(t)&&e&&e.apply(void 0,[t].concat(n)),_e(t)})}}function Se(){return`showOpenFilePicker`in window}function Ce(e){return Y(e)?[{description:`Files`,accept:Object.entries(e).filter(function(e){var t=V(e,2),n=t[0],r=t[1],i=!0;return De(n)||(console.warn(`Skipped "${n}" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.`),i=!1),(!Array.isArray(r)||!r.every(Oe))&&(console.warn(`Skipped "${n}" because an invalid file extension was provided.`),i=!1),i}).reduce(function(e,t){var n=V(t,2),r=n[0],i=n[1];return z(z({},e),{},B({},r,i))},{})}]:e}function we(e){if(Y(e))return Object.entries(e).reduce(function(e,t){var n=V(t,2),r=n[0],i=n[1];return[].concat(F(e),[r],F(i))},[]).filter(function(e){return De(e)||Oe(e)}).join(`,`)}function Te(e){return e instanceof DOMException&&(e.name===`AbortError`||e.code===e.ABORT_ERR)}function Ee(e){return e instanceof DOMException&&(e.name===`SecurityError`||e.code===e.SECURITY_ERR)}function De(e){return e===`audio/*`||e===`video/*`||e===`image/*`||e===`text/*`||e===`application/*`||/\w+\/[-+.\w]+/g.test(e)}function Oe(e){return/^.*\.[\w]+$/.test(e)}var ke=[`children`],Ae=[`open`],je=[`refKey`,`role`,`onKeyDown`,`onFocus`,`onBlur`,`onClick`,`onDragEnter`,`onDragOver`,`onDragLeave`,`onDrop`],Me=[`refKey`,`onChange`,`onClick`];function Ne(e){return Ie(e)||Fe(e)||ze(e)||Pe()}function Pe(){throw TypeError(`Invalid attempt to spread non-iterable instance.
4
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fe(e){if(typeof Symbol<`u`&&e[Symbol.iterator]!=null||e[`@@iterator`]!=null)return Array.from(e)}function Ie(e){if(Array.isArray(e))return Be(e)}function Le(e,t){return He(e)||Ve(e,t)||ze(e,t)||Re()}function Re(){throw TypeError(`Invalid attempt to destructure non-iterable instance.
5
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ze(e,t){if(e){if(typeof e==`string`)return Be(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n===`Object`&&e.constructor&&(n=e.constructor.name),n===`Map`||n===`Set`)return Array.from(e);if(n===`Arguments`||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Be(e,t)}}function Be(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=Array(t);n<t;n++)r[n]=e[n];return r}function Ve(e,t){var n=e==null?null:typeof Symbol<`u`&&e[Symbol.iterator]||e[`@@iterator`];if(n!=null){var r=[],i=!0,a=!1,o,s;try{for(n=n.call(e);!(i=(o=n.next()).done)&&(r.push(o.value),!(t&&r.length===t));i=!0);}catch(e){a=!0,s=e}finally{try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}return r}}function He(e){if(Array.isArray(e))return e}function Ue(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function Q(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?Ue(Object(n),!0).forEach(function(t){We(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ue(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function We(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Ge(e,t){if(e==null)return{};var n=Ke(e,t),r,i;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(i=0;i<a.length;i++)r=a[i],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(n[r]=e[r])}return n}function Ke(e,t){if(e==null)return{};var n={},r=Object.keys(e),i,a;for(a=0;a<r.length;a++)i=r[a],!(t.indexOf(i)>=0)&&(n[i]=e[i]);return n}var qe=(0,M.forwardRef)(function(e,t){var n=e.children,r=Xe(Ge(e,ke)),i=r.open,a=Ge(r,Ae);return(0,M.useImperativeHandle)(t,function(){return{open:i}},[i]),M.createElement(M.Fragment,null,n(Q(Q({},a),{},{open:i})))});qe.displayName=`Dropzone`;var Je={disabled:!1,getFilesFromEvent:ee,maxSize:1/0,minSize:0,multiple:!0,maxFiles:0,preventDropOnDocument:!0,noClick:!1,noKeyboard:!1,noDrag:!1,noDragEventsBubbling:!1,validator:null,useFsAccessApi:!1,autoFocus:!1};qe.defaultProps=Je,qe.propTypes={children:N.default.func,accept:N.default.objectOf(N.default.arrayOf(N.default.string)),multiple:N.default.bool,preventDropOnDocument:N.default.bool,noClick:N.default.bool,noKeyboard:N.default.bool,noDrag:N.default.bool,noDragEventsBubbling:N.default.bool,minSize:N.default.number,maxSize:N.default.number,maxFiles:N.default.number,disabled:N.default.bool,getFilesFromEvent:N.default.func,onFileDialogCancel:N.default.func,onFileDialogOpen:N.default.func,useFsAccessApi:N.default.bool,autoFocus:N.default.bool,onDragEnter:N.default.func,onDragLeave:N.default.func,onDragOver:N.default.func,onDrop:N.default.func,onDropAccepted:N.default.func,onDropRejected:N.default.func,onError:N.default.func,validator:N.default.func};var Ye={isFocused:!1,isFileDialogActive:!1,isDragActive:!1,isDragAccept:!1,isDragReject:!1,isDragGlobal:!1,acceptedFiles:[],fileRejections:[]};function Xe(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=Q(Q({},Je),e),n=t.accept,r=t.disabled,i=t.getFilesFromEvent,a=t.maxSize,o=t.minSize,s=t.multiple,c=t.maxFiles,l=t.onDragEnter,u=t.onDragLeave,d=t.onDragOver,f=t.onDrop,p=t.onDropAccepted,m=t.onDropRejected,h=t.onFileDialogCancel,g=t.onFileDialogOpen,_=t.useFsAccessApi,v=t.autoFocus,y=t.preventDropOnDocument,ee=t.noClick,b=t.noKeyboard,te=t.noDrag,x=t.noDragEventsBubbling,S=t.onError,C=t.validator,w=(0,M.useMemo)(function(){return we(n)},[n]),T=(0,M.useMemo)(function(){return Ce(n)},[n]),E=(0,M.useMemo)(function(){return typeof g==`function`?g:Qe},[g]),D=(0,M.useMemo)(function(){return typeof h==`function`?h:Qe},[h]),O=(0,M.useRef)(null),k=(0,M.useRef)(null),ne=Le((0,M.useReducer)(Ze,Ye),2),A=ne[0],j=ne[1],re=A.isFocused,ie=A.isFileDialogActive,N=(0,M.useRef)(typeof window<`u`&&window.isSecureContext&&_&&Se()),P=function(){!N.current&&ie&&setTimeout(function(){k.current&&(k.current.files.length||(j({type:`closeDialog`}),D()))},300)};(0,M.useEffect)(function(){return window.addEventListener(`focus`,P,!1),function(){window.removeEventListener(`focus`,P,!1)}},[k,ie,D,N]);var F=(0,M.useRef)([]),I=(0,M.useRef)([]),ae=function(e){O.current&&O.current.contains(e.target)||(e.preventDefault(),F.current=[])};(0,M.useEffect)(function(){return y&&(document.addEventListener(`dragover`,ve,!1),document.addEventListener(`drop`,ae,!1)),function(){y&&(document.removeEventListener(`dragover`,ve),document.removeEventListener(`drop`,ae))}},[O,y]),(0,M.useEffect)(function(){var e=function(e){I.current=[].concat(Ne(I.current),[e.target]),X(e)&&j({isDragGlobal:!0,type:`setDragGlobal`})},t=function(e){I.current=I.current.filter(function(t){return t!==e.target&&t!==null}),!(I.current.length>0)&&j({isDragGlobal:!1,type:`setDragGlobal`})},n=function(){I.current=[],j({isDragGlobal:!1,type:`setDragGlobal`})},r=function(){I.current=[],j({isDragGlobal:!1,type:`setDragGlobal`})};return document.addEventListener(`dragenter`,e,!1),document.addEventListener(`dragleave`,t,!1),document.addEventListener(`dragend`,n,!1),document.addEventListener(`drop`,r,!1),function(){document.removeEventListener(`dragenter`,e),document.removeEventListener(`dragleave`,t),document.removeEventListener(`dragend`,n),document.removeEventListener(`drop`,r)}},[O]),(0,M.useEffect)(function(){return!r&&v&&O.current&&O.current.focus(),function(){}},[O,v,r]);var L=(0,M.useCallback)(function(e){S?S(e):console.error(e)},[S]),R=(0,M.useCallback)(function(e){e.preventDefault(),e.persist(),J(e),F.current=[].concat(Ne(F.current),[e.target]),X(e)&&Promise.resolve(i(e)).then(function(t){if(!(_e(e)&&!x)){var n=t.length,r=n>0&&ge({files:t,accept:w,minSize:o,maxSize:a,multiple:s,maxFiles:c,validator:C});j({isDragAccept:r,isDragReject:n>0&&!r,isDragActive:!0,type:`setDraggedFiles`}),l&&l(e)}}).catch(function(e){return L(e)})},[i,l,L,x,w,o,a,s,c,C]),z=(0,M.useCallback)(function(e){e.preventDefault(),e.persist(),J(e);var t=X(e);if(t&&e.dataTransfer)try{e.dataTransfer.dropEffect=`copy`}catch{}return t&&d&&d(e),!1},[d,x]),B=(0,M.useCallback)(function(e){e.preventDefault(),e.persist(),J(e);var t=F.current.filter(function(e){return O.current&&O.current.contains(e)}),n=t.indexOf(e.target);n!==-1&&t.splice(n,1),F.current=t,!(t.length>0)&&(j({type:`setDraggedFiles`,isDragActive:!1,isDragAccept:!1,isDragReject:!1}),X(e)&&u&&u(e))},[O,u,x]),V=(0,M.useCallback)(function(e,t){var n=[],r=[];e.forEach(function(e){var t=Le(me(e,w),2),i=t[0],s=t[1],c=Le(he(e,o,a),2),l=c[0],u=c[1],d=C?C(e):null;if(i&&l&&!d)n.push(e);else{var f=[s,u];d&&(f=f.concat(d)),r.push({file:e,errors:f.filter(function(e){return e})})}}),(!s&&n.length>1||s&&c>=1&&n.length>c)&&(n.forEach(function(e){r.push({file:e,errors:[fe]})}),n.splice(0)),j({acceptedFiles:n,fileRejections:r,isDragReject:r.length>0,type:`setFiles`}),f&&f(n,r,t),r.length>0&&m&&m(r,t),n.length>0&&p&&p(n,t)},[j,s,w,o,a,c,f,p,m,C]),H=(0,M.useCallback)(function(e){e.preventDefault(),e.persist(),J(e),F.current=[],X(e)&&Promise.resolve(i(e)).then(function(t){_e(e)&&!x||V(t,e)}).catch(function(e){return L(e)}),j({type:`reset`})},[i,V,L,x]),U=(0,M.useCallback)(function(){if(N.current){j({type:`openDialog`}),E();var e={multiple:s,types:T};window.showOpenFilePicker(e).then(function(e){return i(e)}).then(function(e){V(e,null),j({type:`closeDialog`})}).catch(function(e){Te(e)?(D(e),j({type:`closeDialog`})):Ee(e)?(N.current=!1,k.current?(k.current.value=null,k.current.click()):L(Error(`Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no <input> was provided.`))):L(e)});return}k.current&&(j({type:`openDialog`}),E(),k.current.value=null,k.current.click())},[j,E,D,_,V,L,T,s]),W=(0,M.useCallback)(function(e){!O.current||!O.current.isEqualNode(e.target)||(e.key===` `||e.key===`Enter`||e.keyCode===32||e.keyCode===13)&&(e.preventDefault(),U())},[O,U]),oe=(0,M.useCallback)(function(){j({type:`focus`})},[]),se=(0,M.useCallback)(function(){j({type:`blur`})},[]),ce=(0,M.useCallback)(function(){ee||(xe()?setTimeout(U,0):U())},[ee,U]),G=function(e){return r?null:e},K=function(e){return b?null:G(e)},q=function(e){return te?null:G(e)},J=function(e){x&&e.stopPropagation()},le=(0,M.useMemo)(function(){return function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.refKey,n=t===void 0?`ref`:t,i=e.role,a=e.onKeyDown,o=e.onFocus,s=e.onBlur,c=e.onClick,l=e.onDragEnter,u=e.onDragOver,d=e.onDragLeave,f=e.onDrop,p=Ge(e,je);return Q(Q(We({onKeyDown:K(Z(a,W)),onFocus:K(Z(o,oe)),onBlur:K(Z(s,se)),onClick:G(Z(c,ce)),onDragEnter:q(Z(l,R)),onDragOver:q(Z(u,z)),onDragLeave:q(Z(d,B)),onDrop:q(Z(f,H)),role:typeof i==`string`&&i!==``?i:`presentation`},n,O),!r&&!b?{tabIndex:0}:{}),p)}},[O,W,oe,se,ce,R,z,B,H,b,te,r]),ue=(0,M.useCallback)(function(e){e.stopPropagation()},[]),de=(0,M.useMemo)(function(){return function(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.refKey,n=t===void 0?`ref`:t,r=e.onChange,i=e.onClick,a=Ge(e,Me);return Q(Q({},We({accept:w,multiple:s,type:`file`,style:{border:0,clip:`rect(0, 0, 0, 0)`,clipPath:`inset(50%)`,height:`1px`,margin:`0 -1px -1px 0`,overflow:`hidden`,padding:0,position:`absolute`,width:`1px`,whiteSpace:`nowrap`},onChange:G(Z(r,H)),onClick:G(Z(i,ue)),tabIndex:-1},n,k)),a)}},[k,n,s,H,r]);return Q(Q({},A),{},{isFocused:re&&!r,getRootProps:le,getInputProps:de,rootRef:O,inputRef:k,open:G(U)})}function Ze(e,t){switch(t.type){case`focus`:return Q(Q({},e),{},{isFocused:!0});case`blur`:return Q(Q({},e),{},{isFocused:!1});case`openDialog`:return Q(Q({},Ye),{},{isFileDialogActive:!0});case`closeDialog`:return Q(Q({},e),{},{isFileDialogActive:!1});case`setDraggedFiles`:return Q(Q({},e),{},{isDragActive:t.isDragActive,isDragAccept:t.isDragAccept,isDragReject:t.isDragReject});case`setFiles`:return Q(Q({},e),{},{acceptedFiles:t.acceptedFiles,fileRejections:t.fileRejections,isDragReject:t.isDragReject});case`setDragGlobal`:return Q(Q({},e),{},{isDragGlobal:t.isDragGlobal});case`reset`:return Q({},Ye);default:return e}}function Qe(){}var $e=M.forwardRef(({accept:e,multiple:t=!1,maxFiles:n=+!t,disabled:r=!1,onDropAccepted:i,onDropRejected:a,className:o,children:s,...c},l)=>{let{getRootProps:u,getInputProps:d,rootRef:f,isDragActive:m,isDragAccept:h,isDragReject:g,isFocused:_,isFileDialogActive:v,open:y}=Xe({accept:e,multiple:t,maxFiles:n,disabled:r,onDropAccepted:i,onDropRejected:a}),ee=typeof s==`function`?s({isDragActive:m,isDragAccept:h,isDragReject:g,isFocused:_,isFileDialogActive:v,open:y}):s,b=e=>{f.current=e,typeof l==`function`?l(e):l&&(l.current=e)},{ref:te,...x}=u({...c,role:`button`,tabIndex:r?-1:0,"aria-disabled":r,className:p(`flex cursor-pointer flex-col items-center justify-center rounded-md border-2 border-dashed p-10 outline-hidden transition-colors focus-visible:ring-2 focus-visible:ring-focus-ring focus-visible:ring-offset-2`,r&&`pointer-events-none cursor-not-allowed opacity-60`,g&&`border-state-danger bg-state-danger/10`,m&&!g&&!r&&`border-state-success bg-state-success/10`,!m&&(r?`border-border-default`:`border-border-default hover:border-border-strong`),o)});return(0,ie.jsxs)(`div`,{ref:b,...x,children:[(0,ie.jsx)(`input`,{...d()}),ee]})});$e.displayName=`Dropzone`;var $=`LabelsResponseType`;s({dataType:$,path:`/labels/`});var et=l({dataType:$,path:`/labels/`,defaultNextPageParams:(e,t)=>{if(e.meta?.pagination.next)return{...t,page:e.meta.pagination.next.toString()}},returnData:e=>{let{pages:t}=e,n=t.flatMap(e=>e.labels),r=t[t.length-1].meta;return{labels:n,meta:r,isEnd:r?r.pagination.pages===r.pagination.page:!0}}});a({dataType:$,path:e=>`/labels/slug/${e}/`});var tt=o({method:`POST`,path:()=>`/labels/`,body:e=>({labels:[e]}),invalidateQueries:{dataType:$}}),nt=()=>{let e=i();return(0,M.useCallback)(async t=>(await e(c(`/labels/`,{filter:`name:${f(t)}`,limit:`1`}))).labels?.[0],[e])},rt=()=>{let e=r();return(0,M.useCallback)(()=>{e.invalidateQueries([$])},[e])},it=o({method:`PUT`,path:e=>`/labels/${e.id}/`,body:e=>({labels:[e]}),invalidateQueries:{dataType:$}}),at=o({method:`DELETE`,path:e=>`/labels/${e}/`,invalidateQueries:{dataType:$}});export{nt as a,it as i,tt as n,rt as o,at as r,$e as s,et as t};
@@ -1 +0,0 @@
1
- import"./index-BMhs4O3N.js";
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{Kn as r}from"./button-DiwO9Rof.js";import{i,n as a,r as o,t as s}from"./inline-C1CpHxuO.js";import{Dr as c,Pr as l,kr as u,ni as d,si as f}from"./index-BMhs4O3N.js";var p=e(t(),1),m=n(),h=p.forwardRef(function({className:e,gap:t=`md`,align:n=`stretch`,justify:s=`start`,...c},l){return(0,m.jsx)(`div`,{ref:l,className:r(`flex flex-col`,o[t],a[n],i[s],e),...c})});h.displayName=`Stack`;function g({className:e,children:t}){return(0,m.jsx)(s,{align:`center`,className:r(`pt-1 text-sm text-muted-foreground`,e),"data-page-header":`breadcrumb`,gap:`sm`,children:t})}function _({className:e,children:t}){return(0,m.jsx)(f,{as:`span`,className:r(`ml-1 text-base tabular-nums`,e),"data-page-header":`count`,tone:`secondary`,weight:`regular`,children:t})}function v({className:e,children:t}){return(0,m.jsx)(f,{as:`p`,className:e,"data-page-header":`description`,size:`sm`,tone:`secondary`,children:t})}function y({className:e,children:t}){return(0,m.jsx)(f,{as:`p`,className:r(`mt-0.5`,e),"data-page-header":`meta`,size:`sm`,tone:`secondary`,children:t})}function b({className:e,children:t}){let n=[],i=[];p.Children.forEach(t,e=>{if(!p.isValidElement(e)){n.push(e);return}switch(e.type){case v:case y:i.push(e);break;default:n.push(e)}});let a=(0,m.jsx)(d,{className:r(`text-lg font-semibold tracking-[0.1px] whitespace-nowrap`,e),"data-page-header":`title`,children:n});return i.length>0?(0,m.jsxs)(h,{"data-page-header":`title-body`,gap:`none`,children:[a,i]}):a}function x({className:e,children:t}){return(0,m.jsx)(h,{className:r(`h-full min-h-(--control-height) min-w-0`,e),"data-page-header":`left`,gap:`xs`,justify:`center`,children:t})}function S({children:e}){return(0,m.jsx)(m.Fragment,{children:e})}function C({children:e}){return(0,m.jsx)(c,{children:e})}function w({children:e,...t}){return(0,m.jsx)(l,{asChild:!0,...t,children:e})}function T({children:e,...t}){return(0,m.jsx)(u,{align:`end`,sideOffset:8,...t,children:e})}var E=640,D=e=>typeof window>`u`?!1:window.innerWidth<e,O=e=>{let[t,n]=p.useState(()=>D(e));return p.useEffect(()=>{let t=()=>{n(D(e))};return t(),window.addEventListener(`resize`,t),()=>{window.removeEventListener(`resize`,t)}},[e]),t},k=Object.assign(function({className:e,children:t,mobileMenuBreakpoint:n=E}){let r=p.Children.toArray(t),i=[],a=null,o=null,c=O(n);return r.forEach(e=>{if(!p.isValidElement(e)){i.push(e);return}let t=e;if(t.type===C){a=t;return}if(t.type===S){o=t.props.children??null,i.push(t.props.children??null);return}i.push(t)}),a?c?(0,m.jsx)(s,{align:`center`,className:e,"data-page-header":`action-group`,gap:`sm`,justify:`end`,children:(0,m.jsxs)(s,{align:`center`,className:`ml-auto`,"data-page-header":`action-group-mobile`,gap:`sm`,children:[a,o&&(0,m.jsx)(`div`,{"data-page-header":`action-group-mobile-primary`,children:o})]})}):(0,m.jsx)(s,{align:`center`,className:e,"data-page-header":`action-group`,gap:`sm`,justify:`end`,children:(0,m.jsx)(s,{align:`center`,"data-page-header":`action-group-desktop`,gap:`sm`,justify:`end`,children:i})}):(0,m.jsx)(s,{align:`center`,className:e,"data-page-header":`action-group`,gap:`sm`,justify:`end`,children:t})},{Primary:S,MobileMenu:C,MobileMenuTrigger:w,MobileMenuContent:T});function A({className:e,children:t}){return(0,m.jsx)(s,{align:`center`,className:r(`min-h-(--control-height) shrink-0`,e),"data-page-header":`actions`,gap:`lg`,children:t})}var j=Object.assign(function({className:e,children:t,sticky:n=!0,blurredBackground:i=!0}){return(0,m.jsx)(`header`,{className:r(`flex flex-col`,n&&`sticky top-0 z-50`,i&&`bg-gradient-to-b from-background via-background/70 to-background/70 backdrop-blur-md dark:bg-black`,e),"data-page-header":`page-header`,children:(0,m.jsx)(s,{align:`start`,className:`w-full`,"data-page-header":`main`,gap:`lg`,justify:`between`,children:t})})},{Left:x,Breadcrumb:g,Title:b,Count:_,Description:v,Meta:y,Actions:A,ActionGroup:k});function M({className:e,children:t,...n}){return(0,m.jsx)(h,{className:r(`-mx-4 px-4 lg:-mx-5 lg:px-5`,`sticky top-0 z-50`,`bg-gradient-to-b from-background via-background/70 to-background/70 backdrop-blur-md dark:bg-black`,`py-5`,e),"data-list-page":`header`,gap:`lg`,...n,children:t})}function N({className:e,children:t,...n}){return(0,m.jsx)(h,{className:r(`min-h-0 min-w-0 grow pb-4 lg:pb-8`,e),"data-list-page":`body`,gap:`none`,...n,children:t})}var P=Object.assign(function({className:e,children:t,...n}){return(0,m.jsx)(h,{className:r(`h-full min-h-0 grow px-4 lg:px-6`,e),"data-list-page":`list-page`,gap:`none`,...n,children:t})},{Header:M,Body:N});export{j as n,P as t};
@@ -1 +0,0 @@
1
- import"./rolldown-runtime-DAXXjFlN.js";import{t as e}from"./react-Bb3IsNbi.js";import{t}from"./jsx-runtime-CtMZ-PAS.js";e();var n=t(),r=({children:e,...t})=>(0,n.jsx)(`div`,{className:`size-full`,children:(0,n.jsx)(`div`,{className:`relative mx-auto flex h-full max-w-page flex-col`,...t,children:e})});export{r as t};
@@ -1,10 +0,0 @@
1
- import{o as e,t}from"./rolldown-runtime-DAXXjFlN.js";import{t as n}from"./react-Bb3IsNbi.js";import{C as r,S as i,T as a,a as o,l as s,p as c,w as l,x as u,y as d}from"./hooks-tBACnBdQ.js";import{t as f}from"./jsx-runtime-CtMZ-PAS.js";import{t as p}from"./nql-BsgFMd93.js";import{n as m}from"./offers-BYodCS47.js";import{r as h}from"./posts-D_gBhqmK.js";import{f as g,g as _,l as v}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as y}from"./router-provider-DcttGCQn.js";import{$t as b,A as x,Bt as S,C,Dn as w,En as T,Et as E,Ht as D,Kn as O,Mt as k,Rn as A,Tn as j,Tt as M,V as N,Xn as P,Xt as F,Z as I,_n as L,a as R,c as z,cn as B,ct as ee,en as te,gt as ne,h as re,hn as ie,k as ae,kt as oe,m as se,mn as ce,nn as le,nr as ue,nt as de,rt as fe,s as pe,t as V,ut as me,w as he,wn as ge,wt as _e,y as ve,z as ye}from"./button-DiwO9Rof.js";import{n as H,t as be}from"./list-page-DWkOdljb.js";import{a as xe,c as Se,d as Ce,i as we,l as Te,n as Ee,o as De,s as Oe,u as ke}from"./filters-DUy8rzI5.js";import{i as Ae,n as je,o as Me,s as Ne,t as Pe}from"./select-BbtNHCBq.js";import{a as Fe,i as Ie,n as Le,o as Re,r as ze,s as Be,t as Ve}from"./labels-sA9m188H.js";import{t as He}from"./empty-indicator-Cl63eDpB.js";import{i as Ue,n as We,t as Ge}from"./input-group-DkR63-nk.js";import{a as U,c as W,n as Ke,r as G,s as qe,t as Je}from"./table-rH2MyJm6.js";import{m as Ye}from"./users-Y8qhvF1q.js";import{$n as Xe,$t as Ze,A as Qe,Dr as $e,In as et,Jn as tt,Mr as nt,Nn as rt,Pn as it,Pr as at,Qt as ot,S as st,T as ct,Zn as lt,Zt as ut,_ as dt,_n as ft,_r as pt,b as mt,br as ht,dn as K,ei as q,er as gt,f as _t,h as vt,hn as yt,hr as bt,jr as xt,kn as St,kr as Ct,m as wt,nn as Tt,p as Et,pi as Dt,tn as Ot,un as kt,v as At,vr as jt,x as Mt,xr as Nt,y as Pt,yr as J}from"./index-BMhs4O3N.js";import{r as Ft}from"./newsletters-BEvO0JE3.js";import{a as It,n as Lt,t as Rt}from"./tiers-74aPYtWv.js";import{A as zt,C as Bt,D as Vt,E as Ht,O as Ut,S as Wt,T as Gt,_ as Kt,a as qt,b as Jt,c as Yt,d as Xt,f as Zt,g as Qt,h as $t,i as en,j as tn,k as nn,l as rn,m as an,n as on,o as sn,p as cn,r as ln,s as un,t as dn,u as fn,v as Y,w as pn,x as mn,y as hn}from"./filter-query-core-D6GjHUFB.js";import{t as gn}from"./main-layout-B-K8KliJ.js";import{t as _n}from"./get-site-timezone-HgL0jI_F.js";import{t as vn}from"./member-route-0Aa52Ntz.js";import{n as yn,r as bn,t as xn}from"./virtual-list-window-BTXGwpf5.js";var X=e(n(),1),Z=f(),Sn={searchPlaceholder:`Search...`,noResultsFound:`No results found.`,loading:`Loading...`,loadMore:`Load more`};function Cn(e,t){let n=t.trim().toLowerCase();return n?e.filter(e=>e.label.toLowerCase().includes(n)||e.detail?.toLowerCase().includes(n)):e}function wn(e,t,n,r,i,a,o){if(e)return{...e,shouldClientFilter:o??e.shouldClientFilter};let s=!!t,c=t?.useOptions({query:r,selectedValues:i});return{options:s?c?.options??[]:n??[],isInitialLoad:s?c?.isInitialLoad??!1:a&&(n?.length??0)===0,isSearching:s?c?.isSearching??!1:a&&(n?.length??0)>0,hasMore:s?c?.hasMore??!1:!1,isLoadingMore:s?c?.isLoadingMore??!1:!1,loadMore:s?c?.loadMore??(()=>{}):()=>{},shouldClientFilter:o??!s}}function Tn({optionSource:e,options:t,values:n,onChange:r,valueSource:i,searchable:a=!0,isLoading:o=!1,maxSelections:s,isMultiSelect:c=!0,onClose:l,autoCloseOnSelect:u=!1,className:d,searchInputClassName:f,shouldFilter:p,onSearchChange:m,i18n:h,renderItem:g,header:_,footer:v}){let y=(0,X.useMemo)(()=>({...Sn,...h}),[h]),[b,x]=(0,X.useState)(``),S=(0,X.useCallback)(t=>{x(t),e?.onSearchChange?.(t),m?.(t)},[m,e]),C=wn(e,i,t,b,n,o,p),w=C.options,[T,E]=(0,X.useState)([]),D=(0,X.useMemo)(()=>w.filter(e=>n.includes(e.value)),[w,n]);(0,X.useEffect)(()=>{if(n.length===0){E([]);return}D.length>0&&E(e=>{let t=[];for(let r of n){let n=D.find(e=>e.value===r)??e.find(e=>e.value===r);n&&t.push(n)}return t})},[D,n]);let k=(0,X.useMemo)(()=>n.length===0?[]:T.length>0?T:D,[T,n.length,D]),A=(0,X.useMemo)(()=>Cn(k,b),[b,k]),j=(0,X.useMemo)(()=>w.filter(e=>!n.includes(e.value)),[w,n]),M=(0,X.useCallback)(e=>{r(n.filter(t=>t!==e.value))},[r,n]),N=e=>{r([]),l?.()},P=e=>{let t=[...n,e.value];s&&t.length>s||(r(t),u&&l?.())},F=e=>{r([e.value]),l?.()},I=c?M:N,R=c?P:F,z=(0,X.useCallback)(()=>S(``),[S]),B=(e,t)=>{if(t)return;let n=e.detail?` - ${e.detail}`:``;return e.label+n},ee=g??(({option:e,isSelected:t,onSelect:n})=>(0,Z.jsxs)(Te,{className:`group flex items-center gap-2`,value:B(e,t),onSelect:n,children:[e.icon,(0,Z.jsxs)(`div`,{className:`flex flex-col overflow-hidden`,children:[(0,Z.jsx)(`span`,{className:`truncate text-accent-foreground`,title:e.label,children:e.label}),e.detail&&(0,Z.jsx)(`span`,{className:`truncate text-sm text-muted-foreground`,title:e.detail,children:e.detail})]}),(0,Z.jsx)(L,{className:O(`ms-auto text-primary`,!t&&`opacity-0`)})]},String(e.value)));return(0,Z.jsx)(`div`,{className:O(`w-full`,d),children:(0,Z.jsxs)(we,{shouldFilter:C.shouldClientFilter,children:[_?.({selectedOptions:k,onDeselect:M}),a&&(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(Se,{className:O(`h-(--control-height) pr-8 text-sm`,f),placeholder:y.searchPlaceholder,value:b,onValueChange:S}),C.isSearching&&(0,Z.jsx)(oe,{className:`pointer-events-none absolute top-1/2 right-3 size-4 -translate-y-1/2 animate-spin text-muted-foreground`})]}),(0,Z.jsxs)(ke,{className:`outline-hidden`,children:[C.isInitialLoad?(0,Z.jsxs)(`div`,{className:`flex items-center justify-center py-6 text-sm text-muted-foreground`,children:[(0,Z.jsx)(oe,{className:`mr-2 size-4 animate-spin`}),y.loading]}):(0,Z.jsx)(De,{children:y.noResultsFound}),A.length>0&&(0,Z.jsx)(Oe,{heading:y.selectedHeading,children:A.map(e=>ee({option:e,isSelected:!0,onSelect:()=>I(e)}))}),j.length>0&&(0,Z.jsxs)(Z.Fragment,{children:[A.length>0&&(0,Z.jsx)(Ce,{}),(0,Z.jsx)(Oe,{children:j.map(e=>ee({option:e,isSelected:!1,onSelect:()=>R(e)}))})]}),C.hasMore&&(0,Z.jsxs)(Z.Fragment,{children:[(A.length>0||j.length>0)&&(0,Z.jsx)(Ce,{}),(0,Z.jsx)(`div`,{className:`p-1.5`,children:(0,Z.jsxs)(`button`,{className:`flex w-full items-center justify-center rounded-xs px-2 py-1.5 text-sm text-muted-foreground hover:bg-accent hover:text-accent-foreground disabled:opacity-50`,disabled:C.isLoadingMore,type:`button`,onClick:C.loadMore,children:[C.isLoadingMore&&(0,Z.jsx)(oe,{className:`mr-2 size-4 animate-spin`}),C.isLoadingMore?y.loading:y.loadMore]})})]})]}),v?.({searchInput:b,clearSearch:z})]})})}var En=({label:e,onSave:t,onCancel:n,onDelete:r})=>{let[i,o]=(0,X.useState)(e.name),[s,c]=(0,X.useState)(!1),[l,u]=(0,X.useState)(``),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(!1),h=(0,X.useRef)(null),g=d||p;(0,X.useEffect)(()=>{h.current?.focus(),h.current?.select()},[]);let _=async()=>{if(!i.trim()){u(`Name is required`);return}f(!0);try{await t(e.id,i.trim()),n()}catch(e){u(a(e,`Failed to save label, please try again.`)),f(!1)}};return(0,Z.jsxs)(`div`,{className:`flex flex-col gap-2 py-1.5`,"data-edit-row":!0,children:[(0,Z.jsx)(`input`,{ref:h,className:`h-7 w-full rounded border border-border bg-background px-2 text-sm outline-hidden focus:ring-1 focus:ring-ring disabled:opacity-50`,disabled:g,type:`text`,value:i,onChange:e=>{o(e.target.value),u(``)},onKeyDown:e=>{e.key===`Enter`?(e.preventDefault(),_()):e.key===`Escape`&&(e.preventDefault(),g||n())}}),l&&(0,Z.jsx)(`span`,{className:`text-xs text-destructive`,children:l}),s?(0,Z.jsxs)(`div`,{className:`flex items-center gap-1 text-sm`,children:[(0,Z.jsx)(`span`,{className:`flex-1 font-semibold`,children:`Delete label?`}),(0,Z.jsx)(V,{className:`h-6 px-2 text-xs`,disabled:g,size:`sm`,variant:`outline`,onClick:()=>c(!1),children:`Cancel`}),(0,Z.jsx)(V,{className:`h-6 px-2 text-xs`,disabled:g,size:`sm`,variant:`destructive`,onClick:async()=>{m(!0);try{await r(e.id)}catch{m(!1),c(!1)}},children:p?`Deleting...`:`Delete`})]}):(0,Z.jsxs)(`div`,{className:`flex items-center`,children:[(0,Z.jsx)(V,{className:`h-6 gap-1 px-1.5 text-xs text-red hover:bg-red/5 hover:text-red`,disabled:g,size:`sm`,variant:`ghost`,onClick:()=>c(!0),children:`Delete`}),(0,Z.jsxs)(`div`,{className:`ml-auto flex gap-1`,children:[(0,Z.jsx)(V,{className:`h-6 px-2 text-xs`,disabled:g,size:`sm`,variant:`outline`,onClick:n,children:`Cancel`}),(0,Z.jsx)(V,{className:`h-6 px-2 text-xs`,disabled:g,size:`sm`,onClick:_,children:d?`Saving...`:`Save`})]})]})]})};function Dn(e,t){let n=t.trim().toLowerCase();return n?!e.some(e=>e.name.toLowerCase()===n):!1}var On=({label:e,isSelected:t,showEdit:n,onToggle:r,onEditClick:i})=>(0,Z.jsxs)(Te,{className:`group`,value:e.slug,onSelect:()=>r(e.slug),children:[(0,Z.jsx)(`span`,{className:`flex-1 truncate`,children:e.name}),n?(0,Z.jsxs)(`button`,{"aria-label":`Edit label ${e.name}`,className:`relative ml-1 flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground`,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),i()},children:[t&&(0,Z.jsx)(L,{className:`absolute size-3 text-primary transition-opacity duration-150 group-hover:opacity-0`}),(0,Z.jsx)(fe,{className:`absolute size-3 translate-x-2 opacity-0 transition-all duration-150 ease-out group-hover:translate-x-0 group-hover:opacity-100`})]}):t&&(0,Z.jsx)(L,{className:`size-4 shrink-0 text-primary`})]}),kn=({labels:e,selectedSlugs:t,search:n,onToggle:r,onEdit:i,onDelete:a,onCreate:o,isCreating:s,onSearchClear:c})=>{let[l,u]=(0,X.useState)(null),d=n.trim().toLowerCase(),f=d?e.filter(e=>e.name.toLowerCase().includes(d)):e,p=!!o&&Dn(e,n),m=!!i,h=async()=>{if(o)try{await o(n.trim())&&c?.()}catch{}},g=async(e,t)=>{i&&await i(e,t)},_=async e=>{a&&(await a(e),u(null))};return(0,Z.jsxs)(Z.Fragment,{children:[!p&&f.length===0&&(0,Z.jsx)(De,{children:`No labels found`}),f.length>0&&(0,Z.jsx)(Oe,{className:`[&_[cmdk-group-heading]]:hidden`,children:f.map(e=>l===e.id?(0,Z.jsx)(En,{label:e,onCancel:()=>u(null),onDelete:_,onSave:g},e.id):(0,Z.jsx)(On,{isSelected:t.includes(e.slug),label:e,showEdit:m,onEditClick:()=>u(e.id),onToggle:r},e.id))}),p&&(0,Z.jsx)(Oe,{className:`[&_[cmdk-group-heading]]:hidden`,children:(0,Z.jsxs)(Te,{disabled:s,onSelect:h,children:[(0,Z.jsx)(I,{className:`size-4`}),s?`Creating...`:`Create "${n.trim()}"`]})})]})},An=({labels:e,onToggle:t})=>(0,Z.jsx)(Z.Fragment,{children:e.map(e=>(0,Z.jsxs)(it,{className:`cursor-pointer gap-1 pr-1`,variant:`outline`,onClick:n=>{n.stopPropagation(),t(e.slug)},children:[e.name,(0,Z.jsx)(R,{className:`size-3`})]},e.id))}),jn=({labels:e,optionSource:t,selectedSlugs:n,resolvedSelectedLabels:r,onToggle:i,onCreate:a,isCreating:o,onEdit:s,onDelete:c})=>{let l=r||n.map(t=>e.find(e=>e.slug===t)).filter(e=>!!e);return(0,Z.jsx)(Mn,{isCreating:o,labels:e,optionSource:t,selectedLabels:l,selectedSlugs:n,onCreate:a,onDelete:c,onEdit:s,onToggle:i})},Mn=({labels:e,optionSource:t,selectedLabels:n,selectedSlugs:r,onToggle:i,onCreate:a,isCreating:o,onEdit:s,onDelete:c})=>{let[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(``),p=(0,X.useRef)(null),m=(0,X.useRef)(null),h=(0,X.useCallback)(e=>{f(e),t.onSearchChange?.(e)},[t]);return(0,X.useEffect)(()=>{if(!l)return;let e=e=>{m.current&&!m.current.contains(e.target)&&u(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[l]),(0,Z.jsxs)(`div`,{ref:m,className:`relative`,children:[(0,Z.jsxs)(`div`,{className:`flex min-h-9 w-full cursor-text flex-wrap items-center gap-1.5 rounded-md border border-control-border bg-surface-elevated px-3 py-1 text-control transition-colors focus-within:border-focus-ring focus-within:ring-2 focus-within:ring-focus-ring/25 dark:bg-transparent`,role:`combobox`,onClick:()=>{p.current?.focus(),u(!0)},children:[(0,Z.jsx)(An,{labels:n,onToggle:i}),(0,Z.jsx)(`input`,{ref:p,className:`min-w-[80px] flex-1 bg-transparent text-control outline-hidden placeholder:text-muted-foreground`,placeholder:n.length===0?`Search labels...`:``,value:d,onChange:e=>{h(e.target.value),l||u(!0)},onFocus:()=>u(!0),onKeyDown:e=>{e.key===`Backspace`&&!d&&r.length>0&&i(r[r.length-1]),e.key===`Escape`&&(u(!1),p.current?.blur())}})]}),l&&(0,Z.jsx)(`div`,{className:`absolute top-full left-0 z-50 mt-1 w-full rounded-md border bg-white shadow-md dark:bg-gray-950`,children:t.isInitialLoad?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-6 text-sm text-muted-foreground`,children:`Loading labels...`}):(0,Z.jsx)(we,{shouldFilter:!1,children:(0,Z.jsx)(ke,{className:`max-h-64 overflow-y-auto`,children:(0,Z.jsx)(kn,{isCreating:o,labels:e,search:d,selectedSlugs:r,onCreate:a,onDelete:c,onEdit:s,onSearchClear:()=>h(``),onToggle:i})})})})]})},Nn=()=>{};function Pn(e){return function(){let t=e.useRemoteSource({enabled:!0}).useInitialBrowse(),[n,r]=(0,X.useState)(null);(0,X.useEffect)(()=>{n!==null||!t.pagination||r(t.pagination.total<=e.pageLimit||t.pagination.next===null?`local`:`remote`)},[n,t.pagination]);let i=e.useLocalSource(t,{enabled:n===`local`}),a=e.useRemoteSource({enabled:n===`remote`});return{id:e.id,useOptions:e=>{let r=i.useOptions(e),o=a.useOptions(e);return n===null?{options:[],isInitialLoad:t.isLoading,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:Nn}:n===`remote`?o:r}}}}var Fn=`100`;function In(e){return{value:e.slug,label:e.name,metadata:{id:e.id}}}function Ln(e,t){let{enabled:n=!0}=t;return{id:`posts.labels.local`,useOptions:({query:t,selectedValues:r})=>{let i=(e.items||[]).map(In),a=r.map(t=>{let n=e.items?.find(e=>e.slug===t);return n?In(n):{value:t,label:t}});return n?{options:cn(a,Zt(i,t)),isInitialLoad:e.isLoading&&i.length===0,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:()=>{}}:{options:[],isInitialLoad:!1,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:()=>{}}}}}var Rn=fn({id:`posts.labels.remote`,buildBrowseSearchParams:e=>({limit:Fn,order:`name asc`,...e?{filter:`name:~${p(e)}`}:{}}),buildHydrateFilter:e=>Xt(`slug`,e),buildHydrateSearchParams:e=>({filter:e,order:`name asc`}),selectItems:e=>e?.labels,useQuery:({enabled:e,searchParams:t})=>Ve({enabled:e,keepPreviousData:!0,searchParams:t}),toOption:In,debounceMs:250}),zn=Pn({id:`posts.labels.hybrid`,pageLimit:Number(Fn),useLocalSource:Ln,useRemoteSource:Rn});function Bn(){return zn()}function Vn({selectedSlugs:e,onSelectionChange:t,valueSource:n}){let r=Bn(),i=n??r,[a,o]=(0,X.useState)(``),s=i.useOptions({query:a,selectedValues:e}),l=(0,X.useMemo)(()=>s.options.flatMap(e=>e.metadata?.id?[{id:String(e.metadata.id),name:e.label,slug:String(e.value),created_at:``,updated_at:``}]:[]),[s.options]),u={...s,shouldClientFilter:!1,onSearchChange:o},{mutateAsync:f}=Le(),[p,m]=(0,X.useState)(!1),{mutateAsync:h}=Ie(),{mutateAsync:g}=ze(),_=Fe(),v=Re(),y=c(),b=(0,X.useRef)(e);b.current=e;let x=(0,X.useCallback)(e=>{let n=b.current;n.includes(e)?t(n.filter(t=>t!==e)):t([...n,e])},[t]),S=(0,X.useCallback)(e=>{let n=b.current;n.includes(e)||t([...n,e])},[t]),C=(0,X.useCallback)(async e=>{let t=e.trim();if(t){m(!0);try{let e=(await f({name:t}))?.labels?.[0];return e&&S(e.slug),e}catch(e){if(e instanceof d&&e.response?.status===422){let e;try{e=await _(t)}catch{}if(e)return v(),S(e.slug),e}throw y(e),e}finally{m(!1)}}},[f,_,y,v,S]),w=(0,X.useCallback)(async(e,n)=>{let r=n.trim();if(!r)return;let i=l.find(t=>t.id===e),a=(await h({id:e,name:r}))?.labels?.[0];if(i&&a&&i.slug!==a.slug){let e=b.current;e.includes(i.slug)&&t(e.map(e=>e===i.slug?a.slug:e))}},[h,l,t]),T=(0,X.useCallback)(async e=>{let n=l.find(t=>t.id===e);try{await g(e)}catch(e){if(e instanceof d&&e.response?.status===404)v();else throw y(e),e}if(n){let e=b.current;e.includes(n.slug)&&t(e.filter(e=>e!==n.slug))}},[g,y,v,l,t]);return{labels:l,optionSource:u,selectedSlugs:e,resolvedSelectedLabels:e.map(e=>l.find(t=>t.slug===e)).filter(e=>!!e),toggleLabel:x,createLabel:C,editLabel:w,deleteLabel:T,isCreating:p}}var Hn=({field:e,values:t,onChange:n})=>{let r=Vn({selectedSlugs:t,onSelectionChange:n,valueSource:e.valueSource}),i=(0,X.useRef)(null),[a,o]=(0,X.useState)(0),s=(0,X.useCallback)(()=>{let e=i.current,t=e?.parentElement;if(e&&t){let n=e.getBoundingClientRect(),r=t.getBoundingClientRect();o(Math.round(r.left-n.left))}},[]),c=`Select...`;r.resolvedSelectedLabels.length===1?c=r.resolvedSelectedLabels[0].name:r.resolvedSelectedLabels.length>1&&(c=`${r.resolvedSelectedLabels.length} labels`);let[l,u]=(0,X.useState)(null),d=(0,X.useCallback)(({option:e,isSelected:t,onSelect:n})=>{let i=String(e.metadata?.id??``);return l===i&&!t?(0,Z.jsx)(En,{label:{id:i,name:e.label,slug:String(e.value),created_at:``,updated_at:``},onCancel:()=>u(null),onDelete:async e=>{await r.deleteLabel(e),u(null)},onSave:async(e,t)=>{await r.editLabel(e,t),u(null)}},i):(0,Z.jsxs)(Te,{className:`group`,value:e.label,onSelect:n,children:[(0,Z.jsx)(`span`,{className:`flex-1 truncate`,children:e.label}),t?(0,Z.jsx)(L,{className:`size-3 shrink-0 text-primary`}):(0,Z.jsx)(`button`,{"aria-label":`Edit label ${e.label}`,className:`relative ml-1 flex size-5 shrink-0 items-center justify-center rounded text-muted-foreground hover:text-foreground`,type:`button`,onClick:e=>{e.stopPropagation(),e.preventDefault(),u(i)},children:(0,Z.jsx)(fe,{className:`absolute size-3 translate-x-2 opacity-0 transition-all duration-150 ease-out group-hover:translate-x-0 group-hover:opacity-100`})})]},String(e.value))},[l,r]),f=(0,X.useCallback)(({searchInput:e,clearSearch:t})=>Dn(r.labels,e)?(0,Z.jsx)(`div`,{className:`border-t p-1`,children:(0,Z.jsxs)(V,{className:`h-8 w-full justify-start gap-2 px-2 text-sm font-normal`,disabled:r.isCreating,variant:`ghost`,onClick:async()=>{try{await r.createLabel(e.trim())&&t()}catch{}},children:[(0,Z.jsx)(I,{className:`size-4`}),r.isCreating?`Creating...`:`Create "${e.trim()}"`]})}):null,[r]);return(0,Z.jsxs)(lt,{onOpenChange:e=>{e?s():r.optionSource.onSearchChange?.(``)},children:[(0,Z.jsx)(gt,{asChild:!0,children:(0,Z.jsx)(`button`,{ref:i,className:`flex size-full items-center truncate text-left text-sm`,type:`button`,children:c})}),(0,Z.jsx)(Xe,{align:`start`,alignOffset:a,className:`w-64 p-0`,children:r.optionSource.isInitialLoad?(0,Z.jsx)(`div`,{className:`flex items-center justify-center py-6 text-sm text-muted-foreground`,children:`Loading labels...`}):(0,Z.jsx)(Tn,{footer:f,i18n:{searchPlaceholder:`Search labels...`,noResultsFound:`No labels found`},optionSource:r.optionSource,renderItem:d,values:t,onChange:n})})]})};function Un({open:e,memberCount:t,onOpenChange:n,onConfirm:r,isLoading:i=!1}){let[a,o]=(0,X.useState)([]),s=Vn({selectedSlugs:a,onSelectionChange:o}),c=(0,X.useCallback)(e=>{e||o([]),n(e)},[n]);return(0,Z.jsx)(bt,{open:e,onOpenChange:c,children:(0,Z.jsxs)(pt,{className:`gap-5`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Z.jsx)(ht,{children:(0,Z.jsxs)(Nt,{children:[`Add label to `,P(t),` `,t===1?`member`:`members`]})}),(0,Z.jsx)(jn,{isCreating:s.isCreating,labels:s.labels,optionSource:s.optionSource,resolvedSelectedLabels:s.resolvedSelectedLabels,selectedSlugs:a,onCreate:s.createLabel,onDelete:s.deleteLabel,onEdit:s.editLabel,onToggle:s.toggleLabel}),(0,Z.jsxs)(J,{children:[(0,Z.jsx)(V,{variant:`outline`,onClick:()=>c(!1),children:`Cancel`}),(0,Z.jsx)(V,{disabled:a.length===0||i,onClick:()=>{let e=s.labels.filter(e=>a.includes(e.slug)).map(e=>e.id);e.length>0&&r(e)},children:i?`Adding...`:a.length>1?`Add ${P(a.length)} labels`:`Add label`})]})]})})}function Wn({open:e,memberCount:t,nql:n,search:r,onOpenChange:i,onConfirm:a,isLoading:o=!1}){let[s,c]=(0,X.useState)([]),{data:l,isLoading:u}=Pt({searchParams:{...n?{filter:n}:{},...r?{search:r}:{},include:`labels`,limit:`all`,fields:`id`},enabled:e}),d=(0,X.useMemo)(()=>{let e=new Set;for(let t of l?.members||[])for(let n of t.labels||[])e.add(n.slug);return e},[l]),f=Vn({selectedSlugs:s,onSelectionChange:c}),p={...f.optionSource,options:f.optionSource.options.filter(e=>d.has(String(e.value)))},m=(0,X.useCallback)(e=>{e||c([]),i(e)},[i]),h=()=>{let e=f.labels.filter(e=>s.includes(e.slug)).map(e=>e.id);e.length>0&&a(e)};return(0,Z.jsx)(bt,{open:e,onOpenChange:m,children:(0,Z.jsxs)(pt,{className:`gap-5`,onOpenAutoFocus:e=>e.preventDefault(),children:[(0,Z.jsx)(ht,{children:(0,Z.jsxs)(Nt,{children:[`Remove label from `,P(t),` `,t===1?`member`:`members`]})}),(0,Z.jsx)(jn,{labels:f.labels.filter(e=>d.has(e.slug)),optionSource:{...p,isInitialLoad:p.isInitialLoad||u},resolvedSelectedLabels:f.resolvedSelectedLabels.filter(e=>d.has(e.slug)),selectedSlugs:s,onDelete:f.deleteLabel,onEdit:f.editLabel,onToggle:f.toggleLabel}),(0,Z.jsxs)(J,{children:[(0,Z.jsx)(V,{variant:`outline`,onClick:()=>m(!1),children:`Cancel`}),(0,Z.jsx)(V,{disabled:s.length===0||o,onClick:h,children:o?`Removing...`:s.length>1?`Remove ${P(s.length)} labels`:`Remove label`})]})]})})}function Gn({open:e,newsletters:t,memberCount:n,onOpenChange:r,onConfirm:i,isLoading:a=!1}){let[o,s]=(0,X.useState)(`all`),[c,l]=(0,X.useState)([]),[u,d]=(0,X.useState)(``),[f,p]=(0,X.useState)(!1),m=(0,X.useRef)(null),h=(0,X.useRef)(null);(0,X.useEffect)(()=>{e||(s(`all`),l([]),d(``),p(!1))},[e]),(0,X.useEffect)(()=>{if(!f)return;let e=e=>{m.current&&!m.current.contains(e.target)&&p(!1)};return document.addEventListener(`pointerdown`,e),()=>document.removeEventListener(`pointerdown`,e)},[f]);let g=e=>{e||(s(`all`),l([]),d(``),p(!1)),r(e)},_=(0,X.useCallback)(e=>{l(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),v=t.length>=2,y=()=>{i(!v||o===`all`?null:c)},b=a||v&&o===`selected`&&c.length===0,x=n===1?`member`:`members`;return(0,Z.jsx)(bt,{open:e,onOpenChange:g,children:(0,Z.jsxs)(pt,{className:`gap-5`,children:[(0,Z.jsx)(ht,{children:(0,Z.jsx)(Nt,{children:`Unsubscribe members`})}),v?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{"aria-label":`Unsubscribe scope`,className:`flex flex-col gap-3`,role:`radiogroup`,children:[(0,Z.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3`,children:[(0,Z.jsx)(`input`,{checked:o===`all`,className:`mt-0.5 size-4 cursor-pointer accent-black`,name:`unsubscribe-mode`,type:`radio`,value:`all`,onChange:()=>s(`all`)}),(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-semibold`,children:`Unsubscribe from all newsletters`}),(0,Z.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[n.toLocaleString(),` `,x,` will be unsubscribed from`,` `,t.length,` `,t.length===1?`newsletter`:`newsletters`,`.`]})]})]}),(0,Z.jsxs)(`label`,{className:`flex cursor-pointer items-start gap-3`,children:[(0,Z.jsx)(`input`,{checked:o===`selected`,className:`mt-0.5 size-4 cursor-pointer accent-black`,name:`unsubscribe-mode`,type:`radio`,value:`selected`,onChange:()=>s(`selected`)}),(0,Z.jsxs)(`div`,{className:`flex flex-col`,children:[(0,Z.jsx)(`span`,{className:`text-sm font-semibold`,children:`Unsubscribe from selected newsletters`}),(0,Z.jsxs)(`span`,{className:`text-sm text-muted-foreground`,children:[`Select which newsletters to unsubscribe`,` `,n.toLocaleString(),` `,x,` from.`]})]})]})]}),o===`selected`&&(0,Z.jsxs)(`div`,{ref:m,className:`relative space-y-2`,children:[(0,Z.jsx)(`label`,{className:`text-sm font-semibold`,htmlFor:`newsletter-search`,children:`Newsletters`}),(0,Z.jsxs)(`div`,{className:`flex min-h-9 w-full cursor-text flex-wrap items-center gap-1.5 rounded-md border bg-background px-3 py-1 text-sm`,onClick:()=>{h.current?.focus(),p(!0)},children:[c.map(e=>{let n=t.find(t=>t.id===e);return n?(0,Z.jsxs)(it,{className:`cursor-pointer gap-1 pr-1`,variant:`outline`,onClick:t=>{t.stopPropagation(),_(e)},children:[n.name,(0,Z.jsx)(R,{className:`size-3`})]},e):null}),(0,Z.jsx)(`input`,{ref:h,className:`min-w-[80px] flex-1 bg-transparent py-1 text-sm outline-hidden placeholder:text-muted-foreground`,id:`newsletter-search`,placeholder:c.length===0?`Search newsletters...`:``,value:u,onChange:e=>{d(e.target.value),f||p(!0)},onFocus:()=>p(!0),onKeyDown:e=>{e.key===`Escape`&&(p(!1),h.current?.blur()),e.key===`Backspace`&&!u&&c.length>0&&_(c[c.length-1])}})]}),f&&(0,Z.jsx)(`div`,{className:`absolute top-full left-0 z-50 mt-1 w-full rounded-md border bg-white shadow-md dark:bg-gray-950`,children:(0,Z.jsx)(we,{shouldFilter:!1,children:(0,Z.jsxs)(ke,{className:`max-h-64 overflow-y-auto`,children:[(0,Z.jsx)(De,{children:`No newsletters found.`}),t.filter(e=>e.name.toLowerCase().includes(u.toLowerCase())).map(e=>(0,Z.jsxs)(Te,{value:e.name,onSelect:()=>_(e.id),children:[e.name,c.includes(e.id)&&(0,Z.jsx)(xe,{})]},e.id))]})})})]})]}):(0,Z.jsxs)(`p`,{className:`text-sm text-muted-foreground`,children:[`Are you sure you want to unsubscribe`,` `,n.toLocaleString(),` `,x,` from all newsletters? They will no longer receive any email newsletters from you.`]}),(0,Z.jsxs)(J,{children:[(0,Z.jsx)(V,{variant:`outline`,onClick:()=>g(!1),children:`Cancel`}),(0,Z.jsx)(V,{disabled:b,variant:`destructive`,onClick:y,children:a?`Unsubscribing...`:`Unsubscribe`})]})]})})}function Kn({open:e,memberCount:t,onOpenChange:n,onConfirm:r,onExportBackup:i,isLoading:a=!1}){let[o,s]=(0,X.useState)(!1),c=e=>{e||s(!1),n(e)};return(0,Z.jsx)(bt,{open:e,onOpenChange:c,children:(0,Z.jsxs)(pt,{className:`gap-5`,children:[(0,Z.jsx)(ht,{children:(0,Z.jsx)(Nt,{children:`Delete selected members?`})}),t>0?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`p`,{children:[`You're about to delete `,(0,Z.jsxs)(`strong`,{children:[t.toLocaleString(),` `,t===1?`member`:`members`]}),`. This is permanent! All Ghost data will be deleted, this will have no effect on subscriptions in Stripe.`]}),(0,Z.jsx)(`p`,{children:`A backup of your selection will be automatically downloaded to your device before deletion.`})]}):(0,Z.jsx)(`p`,{children:`No members are selected.`}),(0,Z.jsxs)(J,{children:[(0,Z.jsx)(V,{variant:`outline`,onClick:()=>c(!1),children:`Cancel`}),(0,Z.jsx)(V,{disabled:a||o||t<1,variant:`destructive`,onClick:async()=>{if(!(t<1||a||o))try{s(!0),await i(),r()}catch{}finally{s(!1)}},children:a||o?`Deleting...`:`Download backup & delete members`})]})]})})}function qn({fileError:e,onClose:t,onDropAccepted:n,onDropRejected:r}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`mt-5 space-y-5`,children:[(0,Z.jsxs)(rt,{variant:`info`,children:[`Need some help? `,(0,Z.jsx)(`a`,{className:`font-semibold underline`,href:`https://ghost.org/help/import-members/`,rel:`noopener noreferrer`,target:`_blank`,children:`Learn more`}),` about importing members or `,(0,Z.jsx)(`a`,{className:`font-semibold underline`,href:`https://static.ghost.org/v4.0.0/files/member-import-template.csv`,rel:`noopener noreferrer`,target:`_blank`,children:`download a sample CSV file`}),`.`]}),e&&(0,Z.jsxs)(`div`,{className:`flex items-start gap-2 text-sm text-red-600`,children:[(0,Z.jsx)(ve,{className:`mt-0.5 size-4 shrink-0`}),(0,Z.jsx)(`p`,{children:e})]}),(0,Z.jsx)(Be,{accept:{"text/csv":[`.csv`],"application/vnd.ms-excel":[`.csv`]},"aria-label":`Select or drop a CSV file`,onDropAccepted:e=>{let t=e[0];t&&n(t)},onDropRejected:r,children:({isDragActive:e,isDragReject:t})=>(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(re,{className:`mb-2 size-6 text-grey-600`}),(0,Z.jsx)(`span`,{className:`text-sm text-grey-700`,children:t?`The file type you uploaded is not supported`:e?`Drop CSV file to upload`:`Select or drop a CSV file`})]})})]}),(0,Z.jsx)(J,{className:`mt-5`,children:(0,Z.jsx)(V,{variant:`outline`,onClick:t,children:`Close`})})]})}function Jn({status:e,fileData:t,mapping:n,mappingError:r,showMappingErrors:i,membersCount:a,dataPreviewIndex:o,hasPrevRecord:s,hasNextRecord:c,fieldMappings:l,labelPicker:u,onUpdateMapping:d,onDataPreviewIndexChange:f,onStartOver:p,onUpload:m}){let h=t&&t.length>0&&n?Object.entries(t[o]||{}).map(([e,t])=>({key:e,value:t,mapTo:n.get(e)})):[];return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`mt-5 space-y-5`,children:t===null?(0,Z.jsx)(`div`,{className:`flex items-center justify-center rounded-md border bg-muted p-10`,children:(0,Z.jsx)(St,{size:`md`})}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:O(`overflow-hidden rounded-md border`,i&&r&&`border-red-500`),children:(0,Z.jsx)(`div`,{className:`max-h-[400px] overflow-auto`,children:(0,Z.jsxs)(Je,{className:`table-fixed`,children:[(0,Z.jsx)(qe,{children:(0,Z.jsxs)(W,{children:[(0,Z.jsx)(U,{className:`w-1/3`,children:`Field`}),(0,Z.jsx)(U,{className:`w-1/3`,children:(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsxs)(`span`,{children:[`Sample data `,(0,Z.jsxs)(`span`,{className:`text-muted-foreground`,children:[`(#`,P(o+1),`)`]})]}),(0,Z.jsxs)(`div`,{className:`flex items-center`,children:[(0,Z.jsx)(`button`,{"aria-label":`Show previous sample row`,className:O(`rounded p-0.5 hover:bg-muted`,!s&&`cursor-default opacity-30`),disabled:!s||e===`UPLOADING`,type:`button`,onClick:()=>f(o-1),children:(0,Z.jsx)(ie,{className:`size-4`})}),(0,Z.jsx)(`button`,{"aria-label":`Show next sample row`,className:O(`rounded p-0.5 hover:bg-muted`,!c&&`cursor-default opacity-30`),disabled:!c||e===`UPLOADING`,type:`button`,onClick:()=>f(o+1),children:(0,Z.jsx)(ce,{className:`size-4`})})]})]})}),(0,Z.jsx)(U,{className:`w-1/3`,children:`Import as`})]})}),(0,Z.jsx)(Ke,{children:h.length>0?h.map(t=>(0,Z.jsxs)(W,{className:O(!t.mapTo&&`bg-muted`),children:[(0,Z.jsx)(G,{className:`text-sm font-medium break-all`,children:t.key}),(0,Z.jsx)(G,{className:O(`text-sm break-all`,!t.value&&`text-muted-foreground`),children:t.value||`\xA0`}),(0,Z.jsx)(G,{children:(0,Z.jsxs)(Pe,{disabled:e===`UPLOADING`,value:t.mapTo||`__not_imported__`,onValueChange:e=>{d(t.key,e===`__not_imported__`?null:e)},children:[(0,Z.jsx)(Me,{className:O(`h-8 text-sm`,!t.mapTo&&`text-muted-foreground`),children:(0,Z.jsx)(Ne,{})}),(0,Z.jsxs)(je,{children:[(0,Z.jsx)(Ae,{value:`__not_imported__`,children:`Not imported`}),l.map(e=>(0,Z.jsx)(Ae,{value:e.value,children:e.label},e.value))]})]})})]},t.key)):(0,Z.jsx)(W,{children:(0,Z.jsx)(G,{className:`text-muted-foreground`,colSpan:3,children:`No data found in the uploaded CSV.`})})})]})})}),i&&r&&(0,Z.jsx)(`p`,{className:`text-sm text-red-600`,children:r}),a>0&&(0,Z.jsx)(`p`,{className:`text-sm text-muted-foreground`,children:`If an email address in your CSV matches an existing member, they will be updated with the mapped values.`}),(0,Z.jsxs)(`div`,{className:`mt-5`,children:[(0,Z.jsx)(`label`,{className:`mb-1 block text-sm font-semibold`,children:`Label these members`}),(0,Z.jsx)(jn,{isCreating:u.isCreating,labels:u.labels,optionSource:u.optionSource,resolvedSelectedLabels:u.resolvedSelectedLabels,selectedSlugs:u.selectedSlugs,onCreate:u.createLabel,onDelete:u.deleteLabel,onEdit:u.editLabel,onToggle:u.toggleLabel})]})]})}),(0,Z.jsxs)(J,{className:`mt-5`,children:[(0,Z.jsx)(V,{disabled:e===`UPLOADING`,variant:`outline`,onClick:p,children:`Start over`}),(0,Z.jsx)(V,{disabled:e===`UPLOADING`||a===0,onClick:m,children:e===`UPLOADING`?(0,Z.jsxs)(`span`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(St,{color:`light`,size:`sm`}),`Uploading`]}):a>0?`Import ${P(a)} ${a===1?`member`:`members`}`:`Import members`})]})]})}function Yn({onUploadAnotherFile:e,onClose:t}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`mt-5`,children:(0,Z.jsx)(`p`,{className:`text-sm`,children:`Your import is being processed, and you'll receive a confirmation email as soon as it's complete. Usually this only takes a few minutes, but larger imports may take longer.`})}),(0,Z.jsxs)(J,{className:`mt-5`,children:[(0,Z.jsx)(V,{variant:`outline`,onClick:e,children:`Upload another file`}),(0,Z.jsx)(V,{onClick:t,children:`Got it`})]})]})}function Xn({importResponse:e,onReset:t,onClose:n}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(`div`,{className:`mt-5 space-y-4`,children:[e.importedCount===0?(0,Z.jsxs)(`p`,{className:`text-sm`,children:[`No members were added`,e.errorCount>0?` due to the following errors:`:`.`]}):(0,Z.jsxs)(`p`,{className:`text-sm`,children:[`A total of `,(0,Z.jsx)(`strong`,{children:e.importedCount.toLocaleString()}),` `,e.importedCount===1?`person was`:`people were`,` successfully added or updated in your list of members, and now have access to your site.`]}),e.errorCount>0&&(0,Z.jsxs)(Z.Fragment,{children:[e.importedCount>0&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`hr`,{className:`border-grey-200`}),(0,Z.jsxs)(`p`,{className:`text-sm`,children:[(0,Z.jsx)(`strong`,{children:e.errorCount.toLocaleString()}),` `,e.errorCount===1?`member was`:`members were`,` skipped due to the following errors:`]})]}),(0,Z.jsx)(`ul`,{className:`list-inside list-disc space-y-1 text-sm text-muted-foreground`,children:e.errorList.map(e=>(0,Z.jsxs)(`li`,{children:[e.message,` (`,e.count,`)`]},e.message))})]})]}),(0,Z.jsx)(J,{className:`mt-5`,children:e.errorCount>0?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(V,{variant:`outline`,asChild:!0,children:(0,Z.jsx)(`a`,{download:e.errorCsvName,href:e.errorCsvUrl,children:`Download error file`})}),e.importedCount===0?(0,Z.jsx)(V,{onClick:t,children:`Try again`}):(0,Z.jsx)(V,{onClick:n,children:`View members`})]}):(0,Z.jsx)(Z.Fragment,{children:e.importedCount===0?(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(V,{variant:`outline`,onClick:n,children:`Close`}),(0,Z.jsx)(V,{onClick:t,children:`Try again`})]}):(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(V,{variant:`outline`,onClick:t,children:`Upload another file`}),(0,Z.jsx)(V,{onClick:n,children:`View members`})]})})})]})}function Zn({errorMessage:e,showTryAgainButton:t,onTryAgain:n,onClose:r}){return(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`mt-5`,children:(0,Z.jsxs)(`div`,{className:`flex items-start gap-2 text-sm text-red-600`,children:[(0,Z.jsx)(ve,{className:`mt-0.5 size-4 shrink-0`}),(0,Z.jsx)(`p`,{children:e})]})}),(0,Z.jsxs)(J,{className:`mt-5`,children:[t&&(0,Z.jsx)(V,{variant:`outline`,onClick:n,children:`Try again`}),(0,Z.jsx)(V,{onClick:r,children:`OK`})]})]})}var Qn=[{label:`Email`,value:`email`},{label:`Name`,value:`name`},{label:`Note`,value:`note`},{label:`Subscribed to emails`,value:`subscribed_to_emails`},{label:`Stripe Customer ID`,value:`stripe_customer_id`},{label:`Complimentary plan`,value:`complimentary_plan`},{label:`Labels`,value:`labels`},{label:`Created at`,value:`created_at`},{label:`Gift ID`,value:`gift_id`}],$n={label:`Tier`,value:`import_tier`},er=[`email`,`name`,`note`,`subscribed_to_emails`,`complimentary_plan`,`stripe_customer_id`,`labels`,`created_at`,`gift_id`];function tr({importMemberTier:e=!1}={}){return[...er,...e?[$n.value]:[]]}function nr({importMemberTier:e=!1}={}){return[...Qn,...e?[$n]:[]]}var rr=[`email`],ir=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,ar=class e{_mapping;constructor(e){if(this._mapping={},e)for(let[t,n]of Object.entries(e))this._mapping[n]=t}get(e){return this._mapping[e]??null}toJSON(){return{...this._mapping}}getKeyByValue(e){for(let[t,n]of Object.entries(this._mapping))if(n===e)return t;return null}updateMapping(t,n){let r=new e({});if(r._mapping={...this._mapping},n)for(let e in r._mapping)r._mapping[e]===n&&(r._mapping[e]=null);return r._mapping[t]=n,r}};function or(e,t=30){if(!e||e.length<=t)return e;let n=[];return Object.keys(e[0]).forEach(r=>{let i=e.filter(e=>e[r]&&e[r].trim()!==``),a=[];if(i.length<=t)a=i;else{let e=Math.floor(t/3),n=e,r=t-e-n,o=i.slice(0,e),s=n>0?i.slice(-n):[],c=Math.max(0,Math.floor(i.length/2)-Math.floor(r/2)),l=i.slice(c,c+r);a=[...o,...l,...s].slice(0,t)}a.forEach((e,t)=>{n[t]||(n[t]={}),n[t][r]=e[r]})}),n}function sr(e,t={}){let n=or(e),r={},i=tr(t);if(e.length>0)for(let t of Object.keys(e[0])){if(!r.name&&/name/i.test(t)){r.name=t;continue}!r[t]&&i.includes(t)&&!rr.includes(t)&&(r[t]=t)}let a=0;for(;a<=n.length-1&&!r.email;){let e=n[a];for(let[t,n]of Object.entries(e))!r.email&&n&&ir.test(n)&&(r.email=t);a+=1}return r}function cr(e){return e.replace(`Value in [members.email] cannot be blank.`,`Missing email address`).replace(`Value in [members.note] exceeds maximum length of 2000 characters.`,`Note is too long`).replace(`Value in [members.subscribed] must be one of true, false, 0 or 1.`,`Value of "Subscribed to emails" must be "true" or "false"`).replace(`Validation (isEmail) failed for email`,`Invalid email address`).replace(/No such customer:[^,]*/,`Could not find Stripe customer`)}var lr=t(((e,t)=>{((n,r)=>{typeof define==`function`&&define.amd?define([],r):typeof t==`object`&&e!==void 0?t.exports=r():n.Papa=r()})(e,function e(){var t=typeof self<`u`?self:typeof window<`u`?window:t===void 0?{}:t,n,r=!t.document&&!!t.postMessage,i=t.IS_PAPA_WORKER||!1,a={},o=0,s={};function c(e){return e.charCodeAt(0)===65279?e.slice(1):e}function l(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=``,this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=b(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new m(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,n){var r=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<r){let t=this._config.newline;t||=(a=this._config.quoteChar||`"`,this._handle.guessLineEndings(e,a)),e=[...e.split(t).slice(r)].join(t)}this.isFirstChunk&&S(this._config.beforeFirstChunk)&&(a=this._config.beforeFirstChunk(e))!==void 0&&(e=a),this.isFirstChunk=!1,this._halted=!1;var r=this._partialLine+e,a=(this._partialLine=``,this._handle.parse(r,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(e=a.meta.cursor,r=(this._finished||(this._partialLine=r.substring(e-this._baseIndex),this._baseIndex=e),a&&a.data&&(this._rowCount+=a.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),i)t.postMessage({results:a,workerId:s.WORKER_ID,finished:r});else if(S(this._config.chunk)&&!n){if(this._config.chunk(a,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=a=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(a.data),this._completeResults.errors=this._completeResults.errors.concat(a.errors),this._completeResults.meta=a.meta),this._completed||!r||!S(this._config.complete)||a&&a.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),r||a&&a.meta.paused||this._nextChunk(),a}this._halted=!0},this._sendError=function(e){S(this._config.error)?this._config.error(e):i&&this._config.error&&t.postMessage({workerId:s.WORKER_ID,error:e,finished:!1})}}function u(e){var t;(e||={}).chunkSize||(e.chunkSize=s.RemoteChunkSize),l.call(this,e),this._nextChunk=r?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),r||(t.onload=x(this._chunkLoaded,this),t.onerror=x(this._chunkError,this)),t.open(this._config.downloadRequestBody?`POST`:`GET`,this._input,!r),this._config.downloadRequestHeaders){var e,n=this._config.downloadRequestHeaders;for(e in n)t.setRequestHeader(e,n[e])}var i;this._config.chunkSize&&(i=this._start+this._config.chunkSize-1,t.setRequestHeader(`Range`,`bytes=`+this._start+`-`+i));try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}r&&t.status===0&&this._chunkError()}},this._chunkLoaded=function(){t.readyState===4&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize||t.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>(e=e.getResponseHeader(`Content-Range`))===null?-1:parseInt(e.substring(e.lastIndexOf(`/`)+1)))(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){e=t.statusText||e,this._sendError(Error(e))}}function d(e){(e||={}).chunkSize||(e.chunkSize=s.LocalChunkSize),l.call(this,e);var t,n,r=typeof FileReader<`u`;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=x(this._chunkLoaded,this),t.onerror=x(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input,i=(this._config.chunkSize&&(i=Math.min(this._start+this._config.chunkSize,this._input.size),e=n.call(e,this._start,i)),t.readAsText(e,this._config.encoding));r||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function f(e){var t;l.call(this,e||={}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){var e,n;if(!this._finished)return e=this._config.chunkSize,t=e?(n=t.substring(0,e),t.substring(e)):(n=t,``),this._finished=!t,this.parseChunk(n)}}function p(e){l.call(this,e||={});var t=[],n=!0,r=!1;this.pause=function(){l.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){l.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(`data`,this._streamData),this._input.on(`end`,this._streamEnd),this._input.on(`error`,this._streamError)},this._checkIsFinished=function(){r&&t.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):n=!0},this._streamData=x(function(e){try{t.push(typeof e==`string`?e:e.toString(this._config.encoding)),n&&(n=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=x(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=x(function(){this._streamCleanUp(),r=!0,this._streamData(``)},this),this._streamCleanUp=x(function(){this._input.removeListener(`data`,this._streamData),this._input.removeListener(`end`,this._streamEnd),this._input.removeListener(`error`,this._streamError)},this)}function m(e){var t,n,r,i,a=2**53,o=-a,l=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,u=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,d=this,f=0,p=0,m=!1,_=!1,v=[],y={data:[],errors:[],meta:{}};function x(t){return e.skipEmptyLines===`greedy`?t.join(``).trim()===``:t.length===1&&t[0].length===0}function C(){if(y&&r&&(T(`Delimiter`,`UndetectableDelimiter`,`Unable to auto-detect delimiting character; defaulted to '`+s.DefaultDelimiter+`'`),r=!1),e.skipEmptyLines&&(y.data=y.data.filter(function(e){return!x(e)})),w()){if(y)if(Array.isArray(y.data[0])){for(var t=0;w()&&t<y.data.length;t++)y.data[t].forEach(n);y.data.splice(0,1)}else y.data.forEach(n);function n(t,n){t=c(t),S(e.transformHeader)&&(t=e.transformHeader(t,n)),v.push(t)}}function n(t,n){for(var r=e.header?{}:[],i=0;i<t.length;i++){var s=i,c=t[i],c=((t,n)=>(t=>(e.dynamicTypingFunction&&e.dynamicTyping[t]===void 0&&(e.dynamicTyping[t]=e.dynamicTypingFunction(t)),!0===(e.dynamicTyping[t]||e.dynamicTyping)))(t)?n===`true`||n===`TRUE`||n!==`false`&&n!==`FALSE`&&((e=>{if(l.test(e)&&(e=parseFloat(e),o<e&&e<a))return 1})(n)?parseFloat(n):u.test(n)?new Date(n):n===``?null:n):n)(s=e.header?i>=v.length?`__parsed_extra`:v[i]:s,c=e.transform?e.transform(c,s):c);s===`__parsed_extra`?(r[s]=r[s]||[],r[s].push(c)):r[s]=c}return e.header&&(i>v.length?T(`FieldMismatch`,`TooManyFields`,`Too many fields: expected `+v.length+` fields but parsed `+i,p+n):i<v.length&&T(`FieldMismatch`,`TooFewFields`,`Too few fields: expected `+v.length+` fields but parsed `+i,p+n)),r}var i;y&&(e.header||e.dynamicTyping||e.transform)&&(i=1,!y.data.length||Array.isArray(y.data[0])?(y.data=y.data.map(n),i=y.data.length):y.data=n(y.data,0),e.header&&y.meta&&(y.meta.fields=v),p+=i)}function w(){return e.header&&v.length===0}function T(e,t,n,r){e={type:e,code:t,message:n},r!==void 0&&(e.row=r),y.errors.push(e)}S(e.step)&&(i=e.step,e.step=function(t){y=t,w()?C():(C(),y.data.length!==0&&(f+=t.data.length,e.preview&&f>e.preview?n.abort():(y.data=y.data[0],i(y,d))))}),this.parse=function(i,a,o){var c=e.quoteChar||`"`,c=(e.newline||=this.guessLineEndings(i,c),r=!1,e.delimiter?S(e.delimiter)&&(e.delimiter=e.delimiter(i),y.meta.delimiter=e.delimiter):((c=((t,n,r,i,a)=>{var o,c,l,u;a||=[`,`,` `,`|`,`;`,s.RECORD_SEP,s.UNIT_SEP];for(var d=0;d<a.length;d++){for(var f,p=a[d],m=0,h=0,_=0,v=(l=void 0,new g({comments:i,delimiter:p,newline:n,preview:10}).parse(t)),y=0;y<v.data.length;y++)r&&x(v.data[y])?_++:(f=v.data[y].length,h+=f,l===void 0?l=f:0<f&&(m+=Math.abs(f-l),l=f));0<v.data.length&&(h/=v.data.length-_),(c===void 0||m<=c)&&(u===void 0||u<h)&&1.99<h&&(c=m,o=p,u=h)}return{successful:!!(e.delimiter=o),bestDelimiter:o}})(i,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess)).successful?e.delimiter=c.bestDelimiter:(r=!0,e.delimiter=s.DefaultDelimiter),y.meta.delimiter=e.delimiter),b(e));return e.preview&&e.header&&c.preview++,t=i,n=new g(c),y=n.parse(t,a,o),C(),m?{meta:{paused:!0}}:y||{meta:{paused:!1}}},this.paused=function(){return m},this.pause=function(){m=!0,n.abort(),t=S(e.chunk)?``:t.substring(n.getCharIndex())},this.resume=function(){d.streamer._halted?(m=!1,d.streamer.parseChunk(t,!0)):setTimeout(d.resume,3)},this.aborted=function(){return _},this.abort=function(){_=!0,n.abort(),y.meta.aborted=!0,S(e.complete)&&e.complete(y),t=``},this.guessLineEndings=function(e,t){e=e.substring(0,1048576);var t=RegExp(h(t)+`([^]*?)`+h(t),`gm`),n=(e=e.replace(t,``)).split(`\r`),t=e.split(`
2
- `),e=1<t.length&&t[0].length<n[0].length;if(n.length===1||e)return`
3
- `;for(var r=0,i=0;i<n.length;i++)n[i][0]===`
4
- `&&r++;return r>=n.length/2?`\r
5
- `:`\r`}}function h(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function g(e){var t=(e||={}).delimiter,n=e.newline,r=e.comments,i=e.step,a=e.preview,o=e.fastMode,l=null,u=!1,d=e.quoteChar==null?`"`:e.quoteChar,f=d;if(e.escapeChar!==void 0&&(f=e.escapeChar),(typeof t!=`string`||-1<s.BAD_DELIMITERS.indexOf(t))&&(t=`,`),r===t)throw Error(`Comment character same as delimiter`);!0===r?r=`#`:(typeof r!=`string`||-1<s.BAD_DELIMITERS.indexOf(r))&&(r=!1),n!==`
6
- `&&n!==`\r`&&n!==`\r
7
- `&&(n=`
8
- `);var p=0,m=!1;this.parse=function(s,g,_){if(typeof s!=`string`)throw Error(`Input must be a string`);var v=s.length,y=t.length,b=n.length,x=r.length,C=S(i),w=[],T=[],E=[],D=p=0;if(!s)return z();if(o||!1!==o&&s.indexOf(d)===-1){for(var O=s.split(n),k=0;k<O.length;k++){if(E=O[k],p+=E.length,k!==O.length-1)p+=n.length;else if(_)return z();if(!r||E.substring(0,x)!==r){if(C){if(w=[],F(E.split(t)),B(),m)return z()}else F(E.split(t));if(a&&a<=k)return w=w.slice(0,a),z(!0)}}return z()}for(var A=s.indexOf(t,p),j=s.indexOf(n,p),M=new RegExp(h(f)+h(d),`g`),N=s.indexOf(d,p);;)if(s[p]===d)for(N=p,p++;;){if((N=s.indexOf(d,N+1))===-1)return _||T.push({type:`Quotes`,code:`MissingQuotes`,message:`Quoted field unterminated`,row:w.length,index:p}),L();if(N===v-1)return L(s.substring(p,N).replace(M,d));if(d===f&&s[N+1]===f)N++;else if(d===f||N===0||s[N-1]!==f){A!==-1&&A<N+1&&(A=s.indexOf(t,N+1));var P=I((j=j!==-1&&j<N+1?s.indexOf(n,N+1):j)===-1?A:Math.min(A,j));if(s.substr(N+1+P,y)===t){E.push(s.substring(p,N).replace(M,d)),s[p=N+1+P+y]!==d&&(N=s.indexOf(d,p)),A=s.indexOf(t,p),j=s.indexOf(n,p);break}if(P=I(j),s.substring(N+1+P,N+1+P+b)===n){if(E.push(s.substring(p,N).replace(M,d)),R(N+1+P+b),A=s.indexOf(t,p),N=s.indexOf(d,p),C&&(B(),m))return z();if(a&&w.length>=a)return z(!0);break}T.push({type:`Quotes`,code:`InvalidQuotes`,message:`Trailing quote on quoted field is malformed`,row:w.length,index:p}),N++}}else if(r&&E.length===0&&s.substring(p,p+x)===r){if(j===-1)return z();p=j+b,j=s.indexOf(n,p),A=s.indexOf(t,p)}else if(A!==-1&&(A<j||j===-1))E.push(s.substring(p,A)),p=A+y,A=s.indexOf(t,p);else{if(j===-1)break;if(E.push(s.substring(p,j)),R(j+b),C&&(B(),m))return z();if(a&&w.length>=a)return z(!0)}return L();function F(e){w.push(e),D=p}function I(e){var t=0;return t=e!==-1&&(e=s.substring(N+1,e))&&e.trim()===``?e.length:t}function L(e){return _||(e===void 0&&(e=s.substring(p)),E.push(e),p=v,F(E),C&&B()),z()}function R(e){p=e,F(E),E=[],j=s.indexOf(n,p)}function z(r){if(e.header&&!g&&w.length&&!u){var i=w[0],a=Object.create(null),o=new Set(i);let t=!1;for(let n=0;n<i.length;n++){let r=c(i[n]);if(a[r=S(e.transformHeader)?e.transformHeader(r,n):r]){let e,s=a[r];for(;e=r+`_`+s,s++,o.has(e););o.add(e),i[n]=e,a[r]++,t=!0,(l=l===null?{}:l)[e]=r}else a[r]=1,i[n]=r;o.add(r)}t&&console.warn(`Duplicate headers found and renamed.`),u=!0}return{data:w,errors:T,meta:{delimiter:t,linebreak:n,aborted:m,truncated:!!r,cursor:D+(g||0),renamedHeaders:l}}}function B(){i(z()),w=[],T=[]}},this.abort=function(){m=!0},this.getCharIndex=function(){return p}}function _(e){var t=e.data,n=a[t.workerId],r=!1;if(t.error)n.userError(t.error,t.file);else if(t.results&&t.results.data){var i={abort:function(){r=!0,v(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:y,resume:y};if(S(n.userStep)){for(var o=0;o<t.results.data.length&&(n.userStep({data:t.results.data[o],errors:t.results.errors,meta:t.results.meta},i),!r);o++);delete t.results}else S(n.userChunk)&&(n.userChunk(t.results,i,t.file),delete t.results)}t.finished&&!r&&v(t.workerId,t.results)}function v(e,t){var n=a[e];S(n.userComplete)&&n.userComplete(t),n.terminate(),delete a[e]}function y(){throw Error(`Not implemented.`)}function b(e){if(typeof e!=`object`||!e)return e;var t,n=Array.isArray(e)?[]:{};for(t in e)n[t]=b(e[t]);return n}function x(e,t){return function(){e.apply(t,arguments)}}function S(e){return typeof e==`function`}return s.parse=function(n,r){var i=(r||={}).dynamicTyping||!1;if(S(i)&&(r.dynamicTypingFunction=i,i={}),r.dynamicTyping=i,r.transform=!!S(r.transform)&&r.transform,!r.worker||!s.WORKERS_SUPPORTED)return i=null,s.NODE_STREAM_INPUT,typeof n==`string`?(n=c(n),i=new(r.download?u:f)(r)):!0===n.readable&&S(n.read)&&S(n.on)?i=new p(r):(t.File&&n instanceof File||n instanceof Object)&&(i=new d(r)),i.stream(n);(i=(()=>{var n;return!!s.WORKERS_SUPPORTED&&(n=(()=>{var n=t.URL||t.webkitURL||null,r=e.toString();return s.BLOB_URL||=n.createObjectURL(new Blob([`var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; `,`(`,r,`)();`],{type:`text/javascript`}))})(),(n=new t.Worker(n)).onmessage=_,n.id=o++,a[n.id]=n)})()).userStep=r.step,i.userChunk=r.chunk,i.userComplete=r.complete,i.userError=r.error,r.step=S(r.step),r.chunk=S(r.chunk),r.complete=S(r.complete),r.error=S(r.error),delete r.worker,i.postMessage({input:n,config:r,workerId:i.id})},s.unparse=function(e,t){var n=!1,r=!0,i=`,`,a=`\r
9
- `,o=`"`,c=o+o,l=!1,u=null,d=!1,f=((()=>{if(typeof t==`object`){if(typeof t.delimiter!=`string`||s.BAD_DELIMITERS.filter(function(e){return t.delimiter.indexOf(e)!==-1}).length||(i=t.delimiter),typeof t.quotes!=`boolean`&&typeof t.quotes!=`function`&&!Array.isArray(t.quotes)||(n=t.quotes),typeof t.skipEmptyLines!=`boolean`&&typeof t.skipEmptyLines!=`string`||(l=t.skipEmptyLines),typeof t.newline==`string`&&(a=t.newline),typeof t.quoteChar==`string`&&(o=t.quoteChar,c=o+o),typeof t.header==`boolean`&&(r=t.header),Array.isArray(t.columns)){if(t.columns.length===0)throw Error(`Option columns is empty`);u=t.columns}t.escapeChar!==void 0&&(c=t.escapeChar+o),t.escapeFormulae instanceof RegExp?d=t.escapeFormulae:typeof t.escapeFormulae==`boolean`&&t.escapeFormulae&&(d=/^[=+\-@\t\r].*$/)}})(),new RegExp(h(o),`g`));if(typeof e==`string`&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return p(null,e,l);if(typeof e[0]==`object`)return p(u||Object.keys(e[0]),e,l)}else if(typeof e==`object`)return typeof e.data==`string`&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||=e.meta&&e.meta.fields||u,e.fields||=Array.isArray(e.data[0])?e.fields:typeof e.data[0]==`object`?Object.keys(e.data[0]):[],Array.isArray(e.data[0])||typeof e.data[0]==`object`||(e.data=[e.data])),p(e.fields||[],e.data||[],l);throw Error(`Unable to serialize unrecognized input`);function p(e,t,n){var o=``,s=(typeof e==`string`&&(e=JSON.parse(e)),typeof t==`string`&&(t=JSON.parse(t)),Array.isArray(e)&&0<e.length),c=!Array.isArray(t[0]);if(s&&r){for(var l=0;l<e.length;l++)0<l&&(o+=i),o+=m(e[l],l);0<t.length&&(o+=a)}for(var u=0;u<t.length;u++){var d=(s?e:t[u]).length,f=!1,p=s?Object.keys(t[u]).length===0:t[u].length===0;if(n&&!s&&(f=n===`greedy`?t[u].join(``).trim()===``:t[u].length===1&&t[u][0].length===0),n===`greedy`&&s){for(var h=[],g=0;g<d;g++){var _=c?e[g]:g;h.push(t[u][_])}f=h.join(``).trim()===``}if(!f){for(var v=0;v<d;v++){0<v&&!p&&(o+=i);var y=s&&c?e[v]:v;o+=m(t[u][y],v)}u<t.length-1&&(!n||0<d&&!p)&&(o+=a)}}return o}function m(e,t){var r,a,l;return e==null?``:e.constructor===Date?JSON.stringify(e).slice(1,25):(l=!1,d&&typeof e==`string`&&d.test(e)&&(e=`'`+e,l=!0),a=(r=e.toString()).replace(f,c),(l=l||!0===n||typeof n==`function`&&n(e,t)||Array.isArray(n)&&n[t]||((e,t)=>{for(var n=0;n<t.length;n++)if(-1<e.indexOf(t[n]))return!0;return!1})(a,s.BAD_DELIMITERS)||-1<a.indexOf(i)||-1<r.indexOf(o)||a.charAt(0)===` `||a.charAt(a.length-1)===` `)?o+a+o:a)}},s.RECORD_SEP=``,s.UNIT_SEP=``,s.BYTE_ORDER_MARK=``,s.BAD_DELIMITERS=[`\r`,`
10
- `,`"`,s.BYTE_ORDER_MARK],s.WORKERS_SUPPORTED=!r&&!!t.Worker,s.NODE_STREAM_INPUT=1,s.LocalChunkSize=10485760,s.RemoteChunkSize=5242880,s.DefaultDelimiter=`,`,s.Parser=g,s.ParserHandle=m,s.NetworkStreamer=u,s.FileStreamer=d,s.StringStreamer=f,s.ReadableStreamStreamer=p,t.jQuery&&((n=t.jQuery).fn.parse=function(e){var r=e.config||{},i=[];return this.each(function(e){if(!(n(this).prop(`tagName`).toUpperCase()===`INPUT`&&n(this).attr(`type`).toLowerCase()===`file`&&t.FileReader)||!this.files||this.files.length===0)return!0;for(var a=0;a<this.files.length;a++)i.push({file:this.files[a],inputElem:this,instanceConfig:n.extend({},r)})}),a(),this;function a(){if(i.length===0)S(e.complete)&&e.complete();else{var t,r,a,c,l=i[0];if(S(e.before)){var u=e.before(l.file,l.inputElem);if(typeof u==`object`){if(u.action===`abort`)return t=`AbortError`,r=l.file,a=l.inputElem,c=u.reason,void(S(e.error)&&e.error({name:t},r,a,c));if(u.action===`skip`)return void o();typeof u.config==`object`&&(l.instanceConfig=n.extend(l.instanceConfig,u.config))}else if(u===`skip`)return void o()}var d=l.instanceConfig.complete;l.instanceConfig.complete=function(e){S(d)&&d(e,l.file,l.inputElem),o()},s.parse(l.file,l.instanceConfig)}}function o(){i.splice(0,1),a()}}),i&&(t.onmessage=function(e){e=e.data,s.WORKER_ID===void 0&&e&&(s.WORKER_ID=e.workerId),typeof e.input==`string`?t.postMessage({workerId:s.WORKER_ID,results:s.parse(e.input,e.config),finished:!0}):(t.File&&e.input instanceof File||e.input instanceof Object)&&(e=s.parse(e.input,e.config))&&t.postMessage({workerId:s.WORKER_ID,results:e,finished:!0})}),(u.prototype=Object.create(l.prototype)).constructor=u,(d.prototype=Object.create(l.prototype)).constructor=d,(f.prototype=Object.create(f.prototype)).constructor=f,(p.prototype=Object.create(l.prototype)).constructor=p,s})})),ur=e(ue(),1),dr=e(lr(),1);function fr(e){let t=dr.default.parse(e,{header:!0,skipEmptyLines:!0});return!t.data||t.data.length<1?[]:t.data.map(e=>{let t={};for(let[n,r]of Object.entries(e))t[n]=typeof r==`string`?r:r==null?``:String(r);return t})}function pr(e){return e.length===0?``:dr.default.unparse(e,{quotes:!0})}function mr(e){let t=e.meta.stats.imported,n=e.meta.stats.invalid||[],r=n.length,i={},a=pr(n.map(e=>{let t=cr(e.error);return t.split(`,`).forEach(e=>{let t=e.trim();i[t]?i[t].count+=1:i[t]={message:t,count:1}}),{...e,error:t}})),o=new Blob([a],{type:`text/csv`}),s=URL.createObjectURL(o),c=e.meta.import_label;return{importedCount:t,errorCount:r,errorCsvUrl:s,errorCsvName:c?`${c.name} - Errors.csv`:`Import ${(0,ur.default)().format(`YYYY-MM-DD HH:mm`)} - Errors.csv`,errorList:Object.values(i),importLabel:e.meta.import_label||void 0}}var hr=()=>({status:`INIT`,file:null,fileData:null,mapping:null,selectedLabelSlugs:[],dataPreviewIndex:0,mappingError:null,showMappingErrors:!1,importResponse:null,errorMessage:null,errorHeader:`Import error`,showTryAgainButton:!0,dragOver:!1,fileError:null});function gr(e,t){switch(t.type){case`SELECT_FILE`:return{...e,status:`MAPPING`,file:t.file,fileData:null,mapping:null,dataPreviewIndex:0,mappingError:null,showMappingErrors:!1,fileError:null};case`SET_FILE_ERROR`:return{...e,fileError:t.fileError};case`PARSE_SUCCESS`:return{...e,fileData:t.fileData,mapping:t.mapping,mappingError:t.mappingError};case`PARSE_FAILURE`:return{...e,fileData:[],mapping:null,mappingError:t.mappingError};case`UPDATE_MAPPING`:return{...e,mapping:t.mapping,mappingError:t.mappingError};case`SET_SELECTED_LABEL_SLUGS`:return{...e,selectedLabelSlugs:t.selectedLabelSlugs};case`SET_DATA_PREVIEW_INDEX`:return{...e,dataPreviewIndex:t.dataPreviewIndex};case`SET_SHOW_MAPPING_ERRORS`:return{...e,showMappingErrors:t.showMappingErrors};case`SET_DRAG_OVER`:return{...e,dragOver:t.dragOver};case`UPLOAD_START`:return{...e,status:`UPLOADING`,showMappingErrors:!1};case`UPLOAD_ACCEPTED`:return{...e,status:`PROCESSING`};case`UPLOAD_COMPLETE`:return{...e,status:`COMPLETE`,importResponse:t.importResponse};case`UPLOAD_ERROR`:return{...e,status:`ERROR`,errorMessage:t.errorMessage,errorHeader:t.errorHeader??`Import error`,showTryAgainButton:t.showTryAgainButton??!0};case`RESET`:return hr();default:return e}}function _r({open:e,onOpenChange:t,onComplete:n,onClose:a}){let[o,s]=(0,X.useReducer)(gr,void 0,hr),c=(0,X.useRef)(null),{data:d}=Dt(),{mutateAsync:f}=ct(),p=d?.config?.labs?.importMemberTier===!0,m=(0,X.useMemo)(()=>nr({importMemberTier:p}),[p]),h=Vn({selectedSlugs:o.selectedLabelSlugs,onSelectionChange:e=>s({type:`SET_SELECTED_LABEL_SLUGS`,selectedLabelSlugs:e})}),g=(0,X.useCallback)(()=>{c.current&&typeof URL.revokeObjectURL==`function`?(URL.revokeObjectURL(c.current),c.current=null):c.current&&=null},[]),_=(0,X.useCallback)(()=>{g(),s({type:`RESET`})},[g]);(0,X.useEffect)(()=>()=>{g()},[g]);let v=(0,X.useCallback)(e=>{if(!(!e&&o.status===`UPLOADING`)){if(!e){let e=o.importResponse??void 0;_(),a?.(e)}t(e)}},[a,t,_,o.importResponse,o.status]);(0,X.useEffect)(()=>{if(!o.file)return;let e=!1,t=new FileReader;return t.onload=t=>{if(!e)try{let e=t.target?.result,n=fr(e);if(n.length>0){let e=new ar(sr(n,{importMemberTier:p}));s({type:`PARSE_SUCCESS`,fileData:n,mapping:e,mappingError:e.getKeyByValue(`email`)?null:`Please map "Email" to one of the fields in the CSV.`})}else s({type:`PARSE_SUCCESS`,fileData:[],mapping:null,mappingError:`File is empty, nothing to import. Please select a different file.`})}catch{s({type:`PARSE_FAILURE`,mappingError:`Failed to parse this file. Please try another CSV file.`})}},t.onerror=()=>{e||s({type:`PARSE_FAILURE`,mappingError:`Failed to read file${t.error?.message?`: ${t.error.message}`:``}`})},t.onabort=()=>{e||s({type:`PARSE_FAILURE`,mappingError:`File read was interrupted. Please try again.`})},t.readAsText(o.file),()=>{e=!0,t.readyState===FileReader.LOADING&&t.abort()}},[p,o.file]);let y=(0,X.useCallback)(e=>{let t=/(?:\.([^.]+))?$/.exec(e.name)?.[1];return!t||t.toLowerCase()!==`csv`?(s({type:`SET_FILE_ERROR`,fileError:`The file type you uploaded is not supported`}),!1):(s({type:`SET_FILE_ERROR`,fileError:null}),!0)},[]),b=(0,X.useCallback)(e=>{y(e)&&s({type:`SELECT_FILE`,file:e})},[y]),x=(0,X.useCallback)((e,t)=>{if(!o.mapping)return;let n=o.mapping.updateMapping(e,t),r=o.fileData&&o.fileData.length===0?`File is empty, nothing to import. Please select a different file.`:n.getKeyByValue(`email`)?null:`Please map "Email" to one of the fields in the CSV.`;s({type:`UPDATE_MAPPING`,mapping:n,mappingError:r})},[o.fileData,o.mapping]),S=(0,X.useCallback)(async()=>{if(!o.file||o.mappingError){s({type:`SET_SHOW_MAPPING_ERRORS`,showMappingErrors:!0});return}s({type:`UPLOAD_START`});let e=[];for(let t of o.selectedLabelSlugs){let n=h.labels.find(e=>e.slug===t);n&&e.push(n.name)}try{let t=await f({file:o.file,labels:e,mapping:o.mapping?.toJSON()});if(dt(t)){let e=mr(t);g(),c.current=e.errorCsvUrl,s({type:`UPLOAD_COMPLETE`,importResponse:e}),n?.(e);return}s({type:`UPLOAD_ACCEPTED`}),n?.()}catch(e){if(e instanceof r){s({type:`UPLOAD_ERROR`,errorMessage:`The file you uploaded was larger than the maximum file size your server allows.`});return}let t=e instanceof i?e.data?.errors?.[0]:null;if(e instanceof u&&t?.code===`EMAIL_VERIFICATION_NEEDED`){s({type:`UPLOAD_ERROR`,errorMessage:t.message,errorHeader:`Woah there cowboy, that's a big list`,showTryAgainButton:!1}),n?.();return}if(e instanceof l||t?.type===`DataImportError`){s({type:`UPLOAD_ERROR`,errorMessage:t?.message||(e instanceof Error?e.message:`An unexpected error occurred, please try again`)});return}s({type:`UPLOAD_ERROR`,errorMessage:`An unexpected error occurred, please try again`})}},[o.file,o.mapping,o.mappingError,o.selectedLabelSlugs,h.labels,f,g,n]),C=o.fileData?!!o.fileData[o.dataPreviewIndex+1]:!1,w=o.dataPreviewIndex>0,T=o.fileData?.length??0,E=o.status===`MAPPING`||o.status===`UPLOADING`,D=(0,X.useMemo)(()=>{switch(o.status){case`PROCESSING`:return`Import in progress`;case`COMPLETE`:return`Import complete`;case`ERROR`:return o.errorHeader;default:return`Import members`}},[o.errorHeader,o.status]);return(0,Z.jsx)(bt,{open:e,onOpenChange:v,children:(0,Z.jsxs)(pt,{className:O(`gap-0`,E&&`max-w-2xl`),children:[(0,Z.jsxs)(ht,{children:[(0,Z.jsx)(Nt,{children:D}),(0,Z.jsx)(jt,{className:`sr-only`,children:`Import members from a CSV file.`})]}),o.status===`INIT`&&(0,Z.jsx)(qn,{fileError:o.fileError,onClose:()=>v(!1),onDropAccepted:b,onDropRejected:()=>s({type:`SET_FILE_ERROR`,fileError:`The file type you uploaded is not supported`})}),(o.status===`MAPPING`||o.status===`UPLOADING`)&&(0,Z.jsx)(Jn,{dataPreviewIndex:o.dataPreviewIndex,fieldMappings:m,fileData:o.fileData,hasNextRecord:C,hasPrevRecord:w,labelPicker:h,mapping:o.mapping,mappingError:o.mappingError,membersCount:T,showMappingErrors:o.showMappingErrors,status:o.status,onDataPreviewIndexChange:e=>{s({type:`SET_DATA_PREVIEW_INDEX`,dataPreviewIndex:e})},onStartOver:_,onUpdateMapping:x,onUpload:S}),o.status===`PROCESSING`&&(0,Z.jsx)(Yn,{onClose:()=>v(!1),onUploadAnotherFile:_}),o.status===`COMPLETE`&&o.importResponse&&(0,Z.jsx)(Xn,{importResponse:o.importResponse,onClose:()=>v(!1),onReset:_}),o.status===`ERROR`&&(0,Z.jsx)(Zn,{errorMessage:o.errorMessage,showTryAgainButton:o.showTryAgainButton,onClose:()=>v(!1),onTryAgain:_})]})})}var vr=`count.active_stripe_customers`,yr=`${vr}:>1`,br=`${vr}:<2`,xr=ot({multipleActiveSubscriptionsBanner:ot({dismissedCount:Ze().finite().optional().catch(void 0),dismissedAt:Tt().optional().catch(void 0)}).optional().catch(void 0)});function Sr(e){return e===yr}function Cr(e){if(!e)return xr.parse({});try{let t=JSON.parse(e);return xr.parse(t)}catch{return xr.parse({})}}function wr(e){return Cr(e).multipleActiveSubscriptionsBanner??{}}function Tr(e,t,n){let r=Cr(e),i=wr(e);return JSON.stringify({...r,multipleActiveSubscriptionsBanner:{...i,dismissedCount:t,dismissedAt:n}})}function Er(e,t,n){return{...e,accessibility:Tr(e.accessibility,t,n)}}var Dr=[`is`,`contains`,`does-not-contain`,`starts-with`,`ends-with`],Or=[`is`,`is-greater`,`is-less`],Q=[`is`,`is-not`],kr=[`is-any`,`is-not-any`],Ar=[{value:`active`,label:`Active`},{value:`trialing`,label:`Trialing`},{value:`canceled`,label:`Canceled`},{value:`unpaid`,label:`Unpaid`},{value:`past_due`,label:`Past Due`},{value:`incomplete`,label:`Incomplete`},{value:`incomplete_expired`,label:`Incomplete - Expired`}],jr={parse(){return null},serialize(e){let t=e.values[0];return e.operator!==`is`&&e.operator!==`is-not`?null:t===`email-disabled`?e.operator===`is`?[`(email_disabled:1)`]:[`(email_disabled:0)`]:t===`subscribed`?e.operator===`is`?[`(subscribed:true+email_disabled:0)`]:[`(subscribed:false,email_disabled:1)`]:t===`unsubscribed`?e.operator===`is`?[`(subscribed:false+email_disabled:0)`]:[`(subscribed:true,email_disabled:1)`]:null}},Mr={parse(){return null},serialize(e,t){let n=t.params.slug,r=e.values[0];return!n||e.operator!==`is`?null:r===`subscribed`?[`(newsletters.slug:${n}+email_disabled:0)`]:r===`unsubscribed`?[`(newsletters.slug:-${n},email_disabled:1)`]:null}},Nr={parse(){return null},serialize(e){let t=e.values[0];return typeof t!=`string`||!t||e.operator!==`1`&&e.operator!==`0`?null:[`(feedback.post_id:${p(t)}+feedback.score:${e.operator})`]}},Pr={parse(e,t){let n=mn(e);return!n||n.field!==t.key?null:n.operator===`$gt`&&n.value===1?{field:t.key,operator:`is`,values:[`true`]}:n.operator===`$lt`&&n.value===2?{field:t.key,operator:`is`,values:[`false`]}:null},serialize(e){let t=e.values[0];return e.operator===`is`?t===`true`?[yr]:t===`false`?[br]:null:null}},Fr=$t({name:{operators:Dr,ui:{label:`Name`,type:`text`,placeholder:`Enter name...`,defaultOperator:`contains`,className:`w-48`},codec:Jt()},email:{operators:Dr,ui:{label:`Email`,type:`text`,placeholder:`Enter email...`,defaultOperator:`contains`,className:`w-48`},codec:Jt()},label:{operators:kr,ui:{label:`Label`,type:`multiselect`,searchable:!0,className:`w-64`,defaultOperator:`is-any`},metadata:{activeColumn:{key:`labels`,label:`Labels`,include:`labels`}},codec:hn()},subscribed:{operators:Q,ui:{label:`Newsletter subscription`,type:`select`,searchable:!1},options:[{value:`subscribed`,label:`Subscribed`},{value:`unsubscribed`,label:`Unsubscribed`},{value:`email-disabled`,label:`Email disabled`}],codec:jr},last_seen_at:{operators:Ut,ui:{label:`Last seen`,type:`date`,defaultOperator:zt},codec:Qt()},created_at:{operators:Ut,ui:{label:`Created`,type:`date`,defaultOperator:zt},codec:Qt()},signup:{operators:Q,ui:{label:`Signed up on post/page`,type:`select`,searchable:!0,placeholder:`Select a post or page...`,className:`w-64`},codec:Y({quoteStrings:!0})},"newsletters.:slug":{operators:[`is`],ui:{label:`Newsletter`,type:`select`,searchable:!1,hideOperatorSelect:!0},options:[{value:`subscribed`,label:`Subscribed`},{value:`unsubscribed`,label:`Unsubscribed`}],codec:Mr},tier_id:{operators:kr,ui:{label:`Membership tier`,type:`multiselect`,searchable:!0,className:`w-64`,defaultOperator:`is-any`},metadata:{activeColumn:{key:`tiers`,label:`Tiers`,include:`tiers`}},codec:hn()},status:{operators:Q,ui:{label:`Member status`,type:`select`,searchable:!1},options:[{value:`paid`,label:`Paid`},{value:`free`,label:`Free`},{value:`comped`,label:`Complimentary`}],codec:Y()},"subscriptions.plan_interval":{operators:Q,ui:{label:`Billing period`,type:`select`,searchable:!1},options:[{value:`month`,label:`Monthly`},{value:`year`,label:`Yearly`}],metadata:{activeColumn:{key:`subscriptions.plan_interval`,label:`Billing period`,include:`subscriptions`}},codec:Y()},"subscriptions.status":{operators:Q,ui:{label:`Stripe subscription status`,type:`select`,searchable:!1},options:Ar,metadata:{activeColumn:{key:`subscriptions.status`,label:`Subscription status`,include:`subscriptions`}},codec:Y()},"subscriptions.start_date":{operators:Ut,ui:{label:`Paid start date`,type:`date`,defaultOperator:zt},metadata:{activeColumn:{key:`subscriptions.start_date`,label:`Paid start date`,include:`subscriptions`}},codec:Qt()},"subscriptions.current_period_end":{operators:Ut,ui:{label:`Next billing date`,type:`date`,defaultOperator:zt},metadata:{activeColumn:{key:`subscriptions.current_period_end`,label:`Next billing date`,include:`subscriptions`}},codec:Qt()},conversion:{operators:Q,ui:{label:`Subscription started on post/page`,type:`select`,searchable:!0,placeholder:`Select a post or page...`,className:`w-64`},codec:Y({quoteStrings:!0})},email_count:{operators:Or,ui:{label:`Emails sent (all time)`,type:`number`,defaultOperator:`is-greater`,min:0,className:`w-24`},codec:Kt()},email_opened_count:{operators:Or,ui:{label:`Emails opened (all time)`,type:`number`,defaultOperator:`is-greater`,min:0,className:`w-24`},codec:Kt()},email_open_rate:{operators:Or,ui:{label:`Open rate (all time)`,type:`number`,defaultOperator:`is-greater`,min:0,max:100,suffix:`%`,className:`w-24`},codec:Kt()},"emails.post_id":{operators:Q,ui:{label:`Sent email`,type:`select`,searchable:!0,placeholder:`Select an email...`,className:`w-64`},codec:Y({quoteStrings:!0})},"opened_emails.post_id":{operators:Q,ui:{label:`Opened email`,type:`select`,searchable:!0,placeholder:`Select an email...`,className:`w-64`},codec:Y({quoteStrings:!0})},"clicked_links.post_id":{operators:Q,ui:{label:`Clicked email`,type:`select`,searchable:!0,placeholder:`Select an email...`,className:`w-64`},codec:Y({quoteStrings:!0})},newsletter_feedback:{operators:[`1`,`0`],ui:{label:`Responded with feedback`,type:`select`,searchable:!0,placeholder:`Select an email...`,className:`w-64`,defaultOperator:`1`},codec:Nr},offer_redemptions:{operators:kr,ui:{label:`Offer`,type:`multiselect`,searchable:!0,className:`w-64`,defaultOperator:`is-any`},metadata:{activeColumn:{key:`offer_redemptions`,label:`Offer`}},codec:hn({quoteStrings:!0,serializeSingletonAsScalar:!0})},[vr]:{operators:[`is`],ui:{label:`Multiple active subscriptions`,type:`select`,searchable:!1,hideOperatorSelect:!0},options:[{value:`true`,label:`Yes`},{value:`false`,label:`No`}],codec:Pr}}),Ir=$t({...Fr,last_seen_at:Vt(Fr.last_seen_at),created_at:Vt(Fr.created_at),"subscriptions.start_date":Vt(Fr[`subscriptions.start_date`]),"subscriptions.current_period_end":Ht(Fr[`subscriptions.current_period_end`])});function Lr(){return Ir}var Rr=2;function zr(e){let t=new Map;for(let n of e){let e=un(Ir,n.field,`UTC`)?.definition.metadata?.activeColumn;e&&t.set(e.key,e)}return Array.from(t.values()).slice(0,Rr)}function Br(e){let t=new Set([`labels`,`tiers`]);for(let n of zr(e))n.include&&t.add(n.include);return Array.from(t).join(`,`)}function Vr({filters:e,nql:t,search:n}){if(!t&&!n)return;let r={include:Br(e),limit:`100`,order:`created_at desc`};return t&&(r.filter=t),n&&(r.search=n),r}function Hr({nql:e,search:t}){return!e&&!t?{all:!0}:{...e?{filter:e}:{},...t?{search:t}:{}}}function Ur(e,t){return e?{text:ur.default.tz(e,t).format(`D MMM YYYY`),subtext:(0,ur.default)(e).fromNow()}:null}function Wr(e,t,n){switch(e.key){case`labels`:return t.labels?.length?{text:t.labels.map(e=>e.name).join(`, `)}:null;case`tiers`:return t.tiers?.length?{text:t.tiers.map(e=>e.name).join(`, `)}:null;case`subscriptions.plan_interval`:{let e=t.current_subscription?.plan?.interval;return e?{text:e===`month`?`Monthly`:`Yearly`}:null}case`subscriptions.status`:{let e=t.current_subscription?.status;return e?{text:e.split(`_`).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(` `)}:null}case`subscriptions.start_date`:return Ur(t.current_subscription?.start_date,n);case`subscriptions.current_period_end`:return Ur(t.current_subscription?.current_period_end,n);case`offer_redemptions`:{let e=t.subscriptions?.map(e=>e.offer?.name).filter(Boolean);return e?.length?{text:e.join(`, `)}:null}default:return null}}async function Gr(e,t){let n=new URLSearchParams({limit:`all`});e&&n.set(`filter`,e),t&&n.set(`search`,t),await s(`/members/upload/?${n}`,`members.csv`)}var Kr=({hasFilterOrSearch:e,memberCount:t,nql:n,search:r,canBulkDelete:i,showMenu:a=!0,showNewMember:o=!0,onImportComplete:s})=>{let c=v(),l=y(),u=c.pathname===`/members/import`,d=c.search??``,f=c.pathname===`/members`?`${c.pathname}${d}`:`/members`,p=`#/members/new?back=${encodeURIComponent(f)}`,[m,h]=(0,X.useState)(!1),[g,_]=(0,X.useState)(!1),[S,w]=(0,X.useState)(!1),[T,E]=(0,X.useState)(!1),{data:D,isLoading:O}=Ft({searchParams:{filter:`status:-archived`,limit:`50`}}),k=D?.newsletters||[],{mutateAsync:A,isLoading:j}=st(),{mutate:N,isLoading:F}=Mt(),[L,R]=(0,X.useState)(!1),z=Hr({nql:n,search:r}),B=(0,X.useCallback)(async()=>{try{await Gr(n,r)}catch(e){throw q.error(`Export failed`,{description:`There was a problem downloading your member data. Please check your connection and try again.`}),e}},[n,r]),ee=(0,X.useCallback)(async e=>{try{for(let t of e)await A({...z,action:{type:`addLabel`,meta:{label:{id:t}}}});h(!1),q.success(e.length>1?`Labels added successfully`:`Label added successfully`)}catch{q.error(`Failed to add label`,{description:`There was a problem applying this label. Please try again.`})}},[A,z]),ne=(0,X.useCallback)(async e=>{try{for(let t of e)await A({...z,action:{type:`removeLabel`,meta:{label:{id:t}}}});_(!1),q.success(e.length>1?`Labels removed successfully`:`Label removed successfully`)}catch{q.error(`Failed to remove label`,{description:`There was a problem removing this label. Please try again.`})}},[A,z]),ie=(0,X.useCallback)(async e=>{let t=z;if(e===null){try{await A({...t,action:{type:`unsubscribe`}}),w(!1),q.success(`Members unsubscribed successfully`)}catch{q.error(`Failed to unsubscribe members`,{description:`There was a problem unsubscribing these members. Please try again.`})}return}R(!0);try{let n=await Promise.allSettled(e.map(e=>A({...t,action:{type:`unsubscribe`,newsletter:e}}))),r=n.filter(e=>e.status===`fulfilled`).length,i=n.length;w(!1),r===i?q.success(`Unsubscribed from ${i} ${i===1?`newsletter`:`newsletters`}`):r>0?q.warning(`Unsubscribed from ${r} of ${i} newsletters`,{description:`Some newsletters could not be unsubscribed. Please try again.`}):q.error(`Failed to unsubscribe members`,{description:`There was a problem unsubscribing these members. Please try again.`})}catch{q.error(`Failed to unsubscribe members`,{description:`There was a problem unsubscribing these members. Please try again.`})}finally{R(!1)}},[A,z]),oe=(0,X.useCallback)(()=>{N(z,{onSuccess:()=>{E(!1),q.success(`Members deleted successfully`)},onError:()=>{q.error(`Failed to delete members`,{description:`There was a problem deleting these members. Please try again.`})}})},[N,z]),se=(0,X.useCallback)(async()=>{try{await Gr(n,r)}catch(e){throw q.error(`Export failed`,{description:`There was a problem downloading your backup. Please check your connection and try again.`}),e}},[n,r]),ce=(0,X.useCallback)(()=>{},[]),le=(0,X.useCallback)(()=>{l(`/members/import${d}`)},[d,l]),ue=(0,X.useCallback)(e=>{s?.(e)},[s]),de=(0,X.useCallback)(e=>{if(e?.importLabel){l(vn({filter:`label:[${e.importLabel.slug}]`}),{replace:!0});return}l(`/members${d}`,{replace:!0})},[d,l]);return(0,Z.jsxs)(Z.Fragment,{children:[a&&(0,Z.jsxs)($e,{children:[(0,Z.jsx)(at,{asChild:!0,children:(0,Z.jsx)(V,{"data-testid":`members-actions`,variant:`outline`,children:(0,Z.jsx)(b,{className:`size-4`})})}),(0,Z.jsxs)(Ct,{align:`end`,children:[(0,Z.jsxs)(xt,{onClick:le,children:[(0,Z.jsx)(re,{className:`mr-2 size-4`}),`Import members`]}),t>0&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsxs)(xt,{onClick:B,children:[(0,Z.jsx)(te,{className:`mr-2 size-4`}),e?`Export ${P(t)} members`:`Export all members`]}),(0,Z.jsx)(nt,{}),(0,Z.jsxs)(xt,{onClick:()=>h(!0),children:[(0,Z.jsx)(ae,{className:`mr-2 size-4`}),`Add label to `,P(t),` `,t===1?`member`:`members`]}),(0,Z.jsxs)(xt,{onClick:()=>_(!0),children:[(0,Z.jsx)(x,{className:`mr-2 size-4`}),`Remove label from `,P(t),` `,t===1?`member`:`members`]}),(0,Z.jsxs)(xt,{disabled:O,onClick:()=>w(!0),children:[(0,Z.jsx)(M,{className:`mr-2 size-4`}),`Unsubscribe `,P(t),` `,t===1?`member`:`members`]}),(0,Z.jsx)(nt,{}),(0,Z.jsxs)(xt,{className:`text-destructive focus:text-destructive`,disabled:!i,onClick:()=>E(!0),children:[(0,Z.jsx)(C,{className:`mr-2 size-4`}),`Delete `,P(t),` `,t===1?`member`:`members`]})]})]})]}),o&&(0,Z.jsx)(V,{asChild:!0,children:(0,Z.jsxs)(`a`,{"aria-label":`New member`,className:`inline-flex items-center`,href:p,children:[(0,Z.jsx)(`span`,{className:`hidden sm:inline`,children:`New member`}),(0,Z.jsx)(`span`,{className:`sm:hidden`,children:(0,Z.jsx)(I,{})})]})}),(0,Z.jsx)(_r,{open:u,onClose:de,onComplete:ue,onOpenChange:ce}),(0,Z.jsx)(Un,{isLoading:j,memberCount:t,open:m,onConfirm:ee,onOpenChange:h}),(0,Z.jsx)(Wn,{isLoading:j,memberCount:t,nql:n,open:g,search:r,onConfirm:ne,onOpenChange:_}),(0,Z.jsx)(Gn,{isLoading:j||L,memberCount:t,newsletters:k,open:S,onConfirm:ie,onOpenChange:w}),(0,Z.jsx)(Kn,{isLoading:F,memberCount:t,open:T,onConfirm:oe,onExportBackup:se,onOpenChange:E})]})},qr=({membershipsEnabled:e,onMemberCreated:t})=>{let{data:n,isLoading:r}=o(),{mutateAsync:i,isLoading:a}=At(),s=c(),l=(0,X.useCallback)(async()=>{if(!(!n||a))try{await i({email:n.email,name:n.name}),q.success(`You've been added as a member`),await t?.()}catch(e){s(e)}},[i,n,s,a,t]);return e?(0,Z.jsx)(`div`,{className:`flex h-full flex-col items-center justify-center px-4`,children:(0,Z.jsx)(He,{actions:(0,Z.jsxs)(`div`,{className:`flex flex-col items-center gap-3`,children:[(0,Z.jsxs)(`div`,{className:`flex flex-col items-center gap-2 sm:flex-row`,children:[(0,Z.jsx)(V,{asChild:!0,children:(0,Z.jsx)(`a`,{href:`#/members/new?back=%2Fmembers`,children:`New member`})}),(0,Z.jsx)(V,{disabled:a||r||!n,variant:`outline`,onClick:l,children:a?`Adding...`:`Add yourself as a member`})]}),(0,Z.jsxs)(`p`,{className:`text-sm leading-tight text-pretty text-muted-foreground`,children:[`Already have members? `,(0,Z.jsx)(`a`,{className:`font-medium text-foreground underline-offset-4 hover:underline`,href:`#/members/import`,children:`Import with CSV`})]})]}),description:`Use memberships to allow your readers to sign up and subscribe to your content.`,title:`Start building your audience`,children:(0,Z.jsx)(pe,{})})}):(0,Z.jsx)(`div`,{className:`flex h-full flex-col items-center justify-center px-4`,children:(0,Z.jsx)(He,{actions:(0,Z.jsx)(V,{variant:`outline`,asChild:!0,children:(0,Z.jsx)(`a`,{href:`#/settings/members`,children:`Membership settings`})}),description:`Adjust your membership settings to start adding members.`,title:`Memberships have been disabled`,children:(0,Z.jsx)(pe,{})})})},Jr=vt.extend({route:ut(`members`),filter:Ot(Tt(),Tt().nullable()).refine(e=>typeof e.filter==`string`&&e.filter.length>0)}),Yr=`A view with this name already exists`,Xr=`Saved view could not be found for update`,Zr=`Multiple saved views matched update target`,Qr=`Saved view could not be found for delete`,$r=`Multiple saved views matched delete target`;function ei(e){return Jr.safeParse(e).success}function ti(e){let t=wt(e);return t.ok?{ok:!0,views:t.views.filter(ei)}:t}function ni(e,t){return{name:e.trim(),route:`members`,filter:{filter:t}}}function ri(e,t,n,r){let i=ni(t,n);if(r){let t=_t(e,r);if(t.length===0)throw Error(Xr);if(t.length>1)throw Error(Zr);let n=t[0];if(Et(e,i,n))throw Error(Yr);return e.map((e,t)=>t===n?i:e)}if(Et(e,i))throw Error(Yr);return[...e,i]}function ii(e,t){let n=_t(e,t);if(n.length===0)throw Error(Qr);if(n.length>1)throw Error($r);let r=n[0];return e.filter((e,t)=>t!==r)}var ai=`Cannot modify saved views because shared_views is invalid`;function oi(e){return K(e?.settings??null,`shared_views`)??`[]`}function si(){let{data:e}=yt(),t=c(),n=oi(e),r=(0,X.useRef)(null),i=(0,X.useMemo)(()=>ti(n),[n]);return(0,X.useEffect)(()=>{i.ok||r.current===n||(r.current=n,t(i.error,{withToast:!1}))},[t,i,n]),i.ok?i.views:[]}function ci(){let{data:e}=yt(),{mutateAsync:t}=ft(),n=c();return(0,X.useCallback)(async(r,i,a)=>{let o=wt(oi(e));if(!o.ok){let e=Error(ai,{cause:o.error});throw n(e,{withToast:!1}),e}let s=ri(o.views,r,i,a);try{await t([{key:`shared_views`,value:JSON.stringify(s)}])}catch(e){throw n(e,{withToast:!1}),e}},[e,t,n])}function li(){let{data:e}=yt(),{mutateAsync:t}=ft(),n=c();return(0,X.useCallback)(async r=>{let i=wt(oi(e));if(!i.ok){let e=Error(ai,{cause:i.error});throw n(e,{withToast:!1}),e}let a=ii(i.views,r);try{await t([{key:`shared_views`,value:JSON.stringify(a)}])}catch(e){throw n(e,{withToast:!1}),e}},[e,t,n])}function ui(e,t){return(0,X.useMemo)(()=>!t||e.length===0?null:e.find(e=>e.filter.filter===t)??null,[e,t])}var di=({filter:e,existingViews:t,activeView:n,onDeleted:r,onClose:i})=>{let[a,o]=(0,X.useState)(()=>n?.name??``),[s,c]=(0,X.useState)(``),[l,u]=(0,X.useState)(!1),[d,f]=(0,X.useState)(!1),[p,m]=(0,X.useState)(!1),h=ci(),g=li(),_=!!n,v=async()=>{let r=a.trim();if(!r){c(`Please enter a name`);return}if(!_&&t.find(e=>e.name.trim().toLowerCase()===r.toLowerCase())){c(`A view with this name already exists`);return}u(!0);try{await h(r,e,n??void 0),i()}catch(e){c(e instanceof Error?e.message:`Failed to save view`)}finally{u(!1)}},y=async()=>{if(n){f(!0);try{await g(n),i(),r?.()}catch(e){c(e instanceof Error?e.message:`Failed to delete view`)}finally{f(!1)}}};return(0,Z.jsx)(Xe,{align:`end`,className:`w-72`,children:(0,Z.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,Z.jsx)(`h3`,{className:`text-sm font-semibold`,children:_?`Edit view`:`Save view`}),(0,Z.jsxs)(`div`,{className:`flex flex-col gap-1.5`,children:[(0,Z.jsx)(tt,{placeholder:`View name`,value:a,autoFocus:!0,onChange:e=>{o(e.target.value),s&&c(``)},onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),v())}}),s&&(0,Z.jsx)(`p`,{className:`text-xs text-red-500`,children:s})]}),_?p?(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(`span`,{className:`text-sm text-muted-foreground`,children:`Delete view?`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(V,{size:`sm`,variant:`outline`,onClick:()=>m(!1),children:`Cancel`}),(0,Z.jsx)(V,{disabled:d,size:`sm`,variant:`destructive`,onClick:()=>void y(),children:d?`Deleting...`:`Delete`})]})]}):(0,Z.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,Z.jsx)(V,{className:`text-red hover:bg-red/5 hover:text-red`,size:`sm`,variant:`ghost`,onClick:()=>m(!0),children:`Delete`}),(0,Z.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,Z.jsx)(V,{size:`sm`,variant:`outline`,onClick:i,children:`Cancel`}),(0,Z.jsx)(V,{disabled:l||!a.trim(),size:`sm`,onClick:()=>void v(),children:l?`Saving...`:`Save`})]})]}):(0,Z.jsx)(V,{className:`w-full`,disabled:l||!a.trim(),onClick:()=>void v(),children:l?`Saving...`:`Save`})]})})},fi=({filter:e,existingViews:t,activeView:n,onDeleted:r})=>{let[i,a]=(0,X.useState)(!1),o=n?`edit:${n.name}:${n.filter.filter}`:`save:${e}`;return(0,Z.jsxs)(lt,{open:i,onOpenChange:a,children:[(0,Z.jsx)(gt,{asChild:!0,children:(0,Z.jsx)(V,{variant:`outline`,children:n?`Edit view`:`Save view`})}),i&&(0,Z.jsx)(di,{activeView:n,existingViews:t,filter:e,onClose:()=>a(!1),onDeleted:r},o)]})},pi={"is-any":`is any of`,"is-not-any":`is none of`,"does-not-contain":`does not contain`,...nn,...Bt,1:`More like this`,0:`Less like this`},mi={"is-greater":`is greater than`,"is-less":`is less than`};function hi(e){switch(e){case`name`:return X.createElement(z,{className:`size-4`});case`email`:case`subscribed`:return X.createElement(_e,{className:`size-4`});case`label`:return X.createElement(x,{className:`size-4`});case`last_seen_at`:return X.createElement(F,{className:`size-4`});case`created_at`:return X.createElement(ge,{className:`size-4`});case`signup`:return X.createElement(se,{className:`size-4`});case`tier_id`:case`subscriptions.status`:return X.createElement(le,{className:`size-4`});case`status`:return X.createElement(B,{className:`size-4`});case`subscriptions.plan_interval`:return X.createElement(T,{className:`size-4`});case`subscriptions.start_date`:return X.createElement(j,{className:`size-4`});case`subscriptions.current_period_end`:return X.createElement(w,{className:`size-4`});case`conversion`:return X.createElement(A,{className:`size-4`});case`email_count`:case`emails.post_id`:return X.createElement(ye,{className:`size-4`});case`email_opened_count`:case`opened_emails.post_id`:return X.createElement(E,{className:`size-4`});case`email_open_rate`:return X.createElement(de,{className:`size-4`});case`clicked_links.post_id`:return X.createElement(me,{className:`size-4`});case`newsletter_feedback`:return X.createElement(ne,{className:`size-4`});case`offer_redemptions`:return X.createElement(he,{className:`size-4`});case vr:return X.createElement(k,{className:`size-4`});default:return e.startsWith(`newsletters.`)?X.createElement(ee,{className:`size-4`}):void 0}}function $(e,t){return{options:e,valueSource:t}}function gi(e){let t=new Map,n=[],r=[];for(let t of e)t.redemption_type===`retention`&&(t.cadence===`month`?n.push(t.id):t.cadence===`year`&&r.push(t.id));return n.length>0&&t.set(`retention:month`,n),r.length>0&&t.set(`retention:year`,r),t}function _i(e){return Array.isArray(e.metadata?.offerIds)?e.metadata.offerIds.filter(e=>typeof e==`string`):null}function vi(e){let t=[],n=gi(e);for(let n of e)n.redemption_type!==`retention`&&t.push({value:n.id,label:n.name});return n.has(`retention:month`)&&t.push({value:`retention:month`,label:`Monthly Retention`,metadata:{offerIds:n.get(`retention:month`)}}),n.has(`retention:year`)&&t.push({value:`retention:year`,label:`Yearly Retention`,metadata:{offerIds:n.get(`retention:year`)}}),t}function yi(e,t){let n=[],r=new Set;for(let i of t){let t=_i(i);t&&t.length>0&&t.every(t=>e.includes(t))&&(n.push(String(i.value)),t.forEach(e=>{r.add(e)}))}for(let t of e)r.has(t)||n.push(t);return n}function bi(e,t){let n=[];for(let r of e){let e=t.find(e=>e.value===r),i=e?_i(e):null;i?n.push(...i):n.push(r)}return[...new Set(n)]}function xi(e){return new Map(e.map(e=>[e.id,e.name]))}function Si(e,t,n){let r=e.map(e=>t.find(t=>t.value===e)).filter(e=>!!e);return r.length===1?r[0].label:r.length>1?`${r.length} selected`:e.length===1?n.get(e[0])??`Select...`:e.length>1?`${e.length} selected`:`Select...`}function Ci({labelValueSource:e,tierValueSource:t,newsletters:n=[],hydratedNewsletterSlugs:r=[],hasMultipleTiers:i=!1,paidMembersEnabled:a=!1,emailFiltersEnabled:o=!1,postValueSource:s,emailValueSource:c,offers:l=[],multipleActiveSubscriptionsCount:u=0,membersTrackSources:d=!1,emailTrackOpens:f=!1,emailTrackClicks:p=!1,siteTimezone:m=`UTC`}){return(0,X.useMemo)(()=>{let h=Lr();function g(e,t={},n=pi){let r=e.startsWith(`newsletters.`)?h[`newsletters.:slug`]:h[e];return{key:e,...r.ui,icon:hi(e),operators:an(r.operators,{labels:n}),...`options`in r&&r.options?{options:r.options}:{},...t}}function _(e,t,n={}){let r=h[e],i=g(e,{defaultValue:t,...n});return Gt(r)?{...i,customRenderer:pn(t)}:i}let v=[],y=n.filter(e=>e.status!==`archived`),b=new Set(y.map(e=>e.slug)),x=[...new Set(r)].map(e=>({slug:e,name:n.find(t=>t.slug===e)?.name??e})),S=x.filter(e=>!b.has(e.slug)),C=vi(l),w=xi(l),T=Wt(m),E=[g(`name`),g(`email`)];if(e&&E.push(g(`label`,{...$([],e),customRenderer:e=>X.createElement(Hn,e)})),y.length<=1){E.push(g(`subscribed`));for(let e of x)E.push(g(`newsletters.${e.slug}`,{label:e.name}))}if(E.push(_(`last_seen_at`,T),_(`created_at`,T)),d&&E.push(g(`signup`,$([],s))),v.push({group:`Basic`,fields:E}),y.length>1){let e=[g(`subscribed`,{label:`All newsletters`,options:[{value:`subscribed`,label:`Subscribed to at least one`},{value:`unsubscribed`,label:`Unsubscribed from all`},{value:`email-disabled`,label:`Email disabled`}]})];for(let t of y)e.push(g(`newsletters.${t.slug}`,{label:t.name}));for(let t of S)e.push(g(`newsletters.${t.slug}`,{label:t.name}));v.push({group:`Newsletters`,fields:e})}if(a){let e=[];i&&e.push(g(`tier_id`,$([],t))),e.push(g(`status`,{options:[...h.status.options,{value:`gift`,label:`Gift subscription`}]})),u>0&&e.push(g(vr)),e.push(g(`subscriptions.plan_interval`),g(`subscriptions.status`),_(`subscriptions.start_date`,T),_(`subscriptions.current_period_end`,T)),d&&e.push(g(`conversion`,$([],s))),l.length>0&&e.push(g(`offer_redemptions`,{options:C,customValueRenderer:e=>Si(e,C,w)})),v.push({group:`Subscription`,fields:e})}if(o){let e=[g(`email_count`,{},mi),g(`email_opened_count`,{},mi)];f&&e.push(g(`email_open_rate`,{},mi)),e.push(g(`emails.post_id`,$([],c))),f&&e.push(g(`opened_emails.post_id`,$([],c))),p&&e.push(g(`clicked_links.post_id`,$([],c))),e.push(g(`newsletter_feedback`,$([],c))),v.push({group:`Email`,fields:e})}return v},[o,c,p,f,i,e,d,u,n,l,r,a,s,m,t])}var wi=`(status:published,status:sent)+newsletter_id:-null`;function Ti(e){return e?`${wi}+title:~${p(e)}`:wi}function Ei(e){return{value:e.id,label:e.title}}var Di=fn({id:`posts.email.remote`,buildBrowseSearchParams:e=>({filter:Ti(e),limit:`25`,fields:`id,title`,order:`published_at DESC`}),buildHydrateSearchParams:e=>({fields:`id,title`,filter:e}),selectItems:e=>e?.posts,useQuery:({enabled:e,searchParams:t})=>h({enabled:e,keepPreviousData:!0,searchParams:t}),toOption:Ei});function Oi(){return Di()}var ki=()=>{};function Ai(e){return function(t={}){let{enabled:n=!0}=t;return{id:e.id,useOptions:({query:t})=>{let r=e.useItems({enabled:n}),i=(r.data||[]).map(e.toOption),a=e.filterOptions?e.filterOptions(i,t):Zt(i,t);return n?{options:a,isInitialLoad:r.isLoading&&i.length===0,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:ki}:{options:[],isInitialLoad:!1,isSearching:!1,isLoadingMore:!1,hasMore:!1,loadMore:ki}}}}}function ji(e){return{value:e.id,label:e.active?e.name:`${e.name} (archived)`,detail:e.slug}}function Mi(e){return[...Rt(e).map(ji),...Lt(e).map(ji)]}function Ni(){let{data:e,isLoading:t}=It({searchParams:{filter:`type:paid`}}),n=(0,X.useMemo)(()=>e?.tiers??[],[e?.tiers]),r=(0,X.useMemo)(()=>Mi(n),[n]),i=n.length>1;return{valueSource:Ai({id:`posts.tiers.local`,useItems:()=>({data:r,isLoading:t}),toOption:e=>e})(),hasMultipleTiers:i}}var Pi=[];function Fi(e,t){return e.map(e=>e.field===`offer_redemptions`?{...e,values:t(e.values)}:e)}var Ii=({filters:e,multipleActiveSubscriptionsCount:t,nql:n,onFiltersChange:r,savedViews:i=[],activeView:a,iconOnly:o=!1})=>{let{data:s}=m({}),{data:c}=Ft({searchParams:{limit:`100`}}),{data:l}=yt({}),u=l?.settings||[],d=K(u,`paid_members_enabled`)===!0,f=K(u,`editor_default_email_recipients`)!==`disabled`,p=K(u,`members_track_sources`)===!0,h=K(u,`email_track_opens`)===!0,g=K(u,`email_track_clicks`)===!0,_=_n(u),v=c?.newsletters||[],y=(0,X.useMemo)(()=>s?.offers??Pi,[s?.offers]),b=(0,X.useMemo)(()=>vi(y),[y]),x=(0,X.useMemo)(()=>[...new Set(e.map(e=>e.field).filter(e=>e.startsWith(`newsletters.`)).map(e=>e.slice(12)).filter(Boolean))],[e]),C=(0,X.useMemo)(()=>Fi(e,e=>yi(e,b)),[e,b]),w=(0,X.useCallback)(e=>{r(Fi(e,e=>bi(e,b)))},[r,b]),T=rn(),E=Oi(),k=Bn(),{valueSource:A,hasMultipleTiers:j}=Ni(),M=Ci({newsletters:v,hydratedNewsletterSlugs:x,hasMultipleTiers:j,paidMembersEnabled:d,emailFiltersEnabled:f,labelValueSource:k,tierValueSource:A,offers:y,multipleActiveSubscriptionsCount:t,postValueSource:T,emailValueSource:E,membersTrackSources:p,emailTrackOpens:h,emailTrackClicks:g,siteTimezone:_}),N=e.length>0,P=O(`bg-white dark:bg-background`,o&&!N&&`min-w-[34px] gap-0 !px-3 text-[0px] lg:min-w-0 lg:gap-1.5 lg:px-3 lg:text-base`),F=N?(0,Z.jsxs)(`div`,{className:`flex shrink-0 items-center gap-4 sm:absolute sm:top-0 sm:right-0`,children:[(0,Z.jsxs)(V,{className:`hidden items-center gap-1 !px-0 text-sm font-normal text-muted-foreground hover:bg-transparent hover:text-foreground lg:inline-flex`,type:`button`,variant:`ghost`,onClick:()=>r([]),children:[(0,Z.jsx)(R,{className:`size-4`}),`Clear`]}),n&&(0,Z.jsx)(fi,{activeView:a,existingViews:i,filter:n,onDeleted:()=>r([])})]}):void 0;return(0,Z.jsx)(Ee,{addButtonClassName:P,addButtonIcon:N?(0,Z.jsx)(D,{}):(0,Z.jsx)(S,{}),addButtonText:N?`Add filter`:`Filter`,allowMultiple:!0,className:`[&>button]:order-last ${N?`sm:!pr-40 [&>button]:border-none`:`w-auto`}`,clearButton:F,fields:M,filters:C,keyboardShortcut:`f`,popoverAlign:`start`,popoverContentClassName:`z-[80] w-[280px] [&_[data-slot=command-list]]:max-h-[450px]`,showClearButton:N,showSearchInput:!0,onChange:w})},Li=({search:e,onSearchChange:t,autoFocus:n=!1,ariaLabel:r=`Search members`})=>{let i=r===`Search members mobile`?`members-mobile-search-input`:`members-search-input`;return(0,Z.jsxs)(Ge,{className:`h-(--control-height) min-w-0 basis-full lg:w-[180px] lg:basis-auto xl:w-[240px]`,children:[(0,Z.jsx)(We,{children:(0,Z.jsx)(N,{className:`size-4`,strokeWidth:1.75})}),(0,Z.jsx)(Ue,{"aria-label":r,autoFocus:n,className:`!h-[34px]`,"data-testid":i,placeholder:`Search members...`,value:e,onChange:e=>t(e.target.value)})]})},Ri=({children:e,description:t,title:n,url:r})=>(0,Z.jsx)(`a`,{className:`group/card block rounded-xl border bg-card p-6 transition-all hover:bg-table-row-hover hover:shadow-xs`,href:r,rel:`noopener noreferrer`,target:`_blank`,children:(0,Z.jsxs)(`div`,{className:`flex items-center gap-6`,children:[e,(0,Z.jsxs)(`div`,{className:`flex flex-col leading-tight`,children:[(0,Z.jsx)(`h4`,{className:`text-md font-medium tracking-normal text-pretty text-foreground`,children:n}),(0,Z.jsx)(`p`,{className:`mt-1.5 text-sm leading-tight text-pretty text-muted-foreground`,children:t})]})]})}),zi=`flex h-18 w-[100px] min-w-[100px] items-center justify-center rounded-md p-4 opacity-80 transition-all group-hover/card:opacity-100`,Bi=()=>(0,Z.jsxs)(`div`,{className:`grid w-full grid-cols-1 gap-4 lg:grid-cols-2`,children:[(0,Z.jsx)(Ri,{description:`Learn how to turn anonymous visitors into logged-in members with memberships in Ghost.`,title:`Building your audience with subscriber signups`,url:`https://ghost.org/resources/build-audience-subscriber-signups/`,children:(0,Z.jsx)(`div`,{className:O(zi,`bg-gradient-to-tr from-[#22C55E]/20 to-[#84CC16]/20`),children:(0,Z.jsx)(se,{className:`text-[#16A34A]`,size:20,strokeWidth:1.5})})}),(0,Z.jsx)(Ri,{description:`Starting from zero? Use this guide to find your founding audience members.`,title:`Get your first 100 email subscribers`,url:`https://ghost.org/resources/first-100-email-subscribers/`,children:(0,Z.jsx)(`div`,{className:O(zi,`bg-gradient-to-tl from-[#A855F7]/20 to-[#EC4899]/20`),children:(0,Z.jsx)(_e,{className:`text-[#DB2777]`,size:20,strokeWidth:1.5})})})]});function Vi(e,t){let n=new URLSearchParams;t&&n.set(`back`,t);let r=n.toString();return`/members/${e}${r?`?${r}`:``}`}var Hi={left:`100%`};function Ui(e){if(!e)return{text:`Unknown`,isKnown:!1};try{let t=JSON.parse(e);return t.country?t.country_code===`US`&&t.region?{text:`${t.region}, US`,isKnown:!0}:{text:t.country,isKnown:!0}:{text:`Unknown`,isKnown:!1}}catch{return{text:`Unknown`,isKnown:!1}}}function Wi(e){switch(e){case`paid`:return`Paid`;case`comped`:return`Complimentary`;case`gift`:return`Gift`;default:return`Free`}}function Gi(e){return e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function Ki(e,t){window.open(`#${Vi(e,t)}`,`_blank`,`noopener`)}function qi({item:e,backPath:t,onClick:n}){return(0,Z.jsxs)(`div`,{className:`flex min-w-0 items-center gap-3`,children:[(0,Z.jsx)(et,{className:`size-8 min-w-8`,email:e.email,name:e.name,src:e.avatar_image}),(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`a`,{className:`block min-w-0 cursor-pointer`,href:`#${Vi(e.id,t)}`,onClick:n?t=>{if(Gi(t)){t.stopPropagation();return}t.preventDefault(),t.stopPropagation(),n(e.id)}:void 0,children:(0,Z.jsx)(`span`,{className:`block truncate text-md font-semibold`,children:e.name||e.email||`Anonymous`})}),e.name&&e.email&&(0,Z.jsx)(`div`,{className:`truncate text-muted-foreground`,"data-testid":`member-email`,children:e.email})]})]})}function Ji({status:e,tiers:t}){let n=t?.map(e=>e.name).join(`, `);return(0,Z.jsx)(`div`,{className:`flex min-w-0 justify-start`,children:(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:`truncate`,children:Wi(e)}),n&&(0,Z.jsx)(`div`,{className:`truncate text-sm text-muted-foreground`,children:n})]})})}function Yi({emailOpenRate:e}){let t=e!=null;return(0,Z.jsx)(`div`,{className:O(`text-base`,t?`text-foreground`:`text-muted-foreground`),children:t?`${Math.round(e)}%`:`N/A`})}function Xi({geolocation:e}){let t=Ui(e);return(0,Z.jsx)(`div`,{className:O(`truncate text-base`,t.isKnown?`text-foreground`:`text-muted-foreground`),children:t.text})}function Zi({createdAt:e}){return(0,Z.jsxs)(`div`,{children:[(0,Z.jsx)(`div`,{className:`text-base`,children:ur.default.utc(e).format(`D MMM YYYY`)}),(0,Z.jsx)(`div`,{className:`text-base text-muted-foreground`,children:ur.default.utc(e).fromNow()})]})}function Qi({column:e,member:t,timezone:n}){let r=Wr(e,t,n);return r?(0,Z.jsxs)(`div`,{className:`min-w-0`,children:[(0,Z.jsx)(`div`,{className:`truncate text-base`,children:r.text}),r.subtext&&(0,Z.jsx)(`div`,{className:`truncate text-base text-muted-foreground`,children:r.subtext})]}):(0,Z.jsx)(`span`,{className:`text-base text-muted-foreground`,children:`-`})}function $i({item:e,activeColumns:t,backPath:n,columnStyles:r,showPinnedEdge:i,showEmailOpenRate:a,timezone:o,onClick:s,...c}){let l=t=>{if(Gi(t)){Ki(e.id,n);return}s(e.id)},u=t=>{t.button===1&&(t.preventDefault(),Ki(e.id,n))};return(0,Z.jsxs)(W,{...c,className:O(`group cursor-pointer`,c.className),"data-testid":`members-list-item`,onAuxClick:u,onClick:l,children:[(0,Z.jsxs)(G,{className:O(`min-w-0 bg-background px-4 py-3 group-hover:bg-[var(--members-sticky-hover-bg)] max-sm:!w-full max-sm:!min-w-0 lg:sticky lg:left-0 lg:z-20`),children:[(0,Z.jsx)(qi,{backPath:n,item:e,onClick:s}),i&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-y-px hidden w-[24px] group-hover:opacity-0 lg:block`,style:{...Hi,background:`linear-gradient(to right, var(--background) 0px, color-mix(in hsl, var(--background) 78%, transparent) 6px, color-mix(in hsl, var(--background) 28%, transparent) 16px, transparent 24px)`}}),(0,Z.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-y-px hidden w-[24px] opacity-0 group-hover:opacity-100 lg:block`,style:{...Hi,background:`linear-gradient(to right, var(--members-sticky-hover-bg) 0px, color-mix(in hsl, var(--members-sticky-hover-bg) 78%, transparent) 6px, color-mix(in hsl, var(--members-sticky-hover-bg) 28%, transparent) 16px, transparent 24px)`}})]})]}),(0,Z.jsx)(G,{className:`hidden px-4 py-3 sm:table-cell`,style:r.status,children:(0,Z.jsx)(Ji,{status:e.status,tiers:e.tiers})}),a&&(0,Z.jsx)(G,{className:`hidden px-4 py-3 lg:table-cell`,style:r.openRate,children:(0,Z.jsx)(Yi,{emailOpenRate:e.email_open_rate})}),(0,Z.jsx)(G,{className:`hidden px-4 py-3 lg:table-cell`,style:r.location,children:(0,Z.jsx)(Xi,{geolocation:e.geolocation})}),(0,Z.jsx)(G,{className:`hidden px-4 py-3 lg:table-cell`,style:r.created,children:(0,Z.jsx)(Zi,{createdAt:e.created_at})}),t.map(t=>(0,Z.jsx)(G,{className:`hidden px-4 py-3 lg:table-cell`,style:r.dynamic,children:(0,Z.jsx)(Qi,{column:t,member:e,timezone:o})},t.key))]})}var ea={left:`100%`,background:`linear-gradient(to right, var(--members-sticky-fade-base) 0px, color-mix(in hsl, var(--members-sticky-fade-base) 78%, transparent) 6px, color-mix(in hsl, var(--members-sticky-fade-base) 28%, transparent) 16px, transparent 24px)`},ta=({activeColumns:e,columnStyles:t,showEmailOpenRate:n})=>(0,Z.jsxs)(`colgroup`,{children:[(0,Z.jsx)(`col`,{className:`max-sm:!w-full max-sm:!min-w-0 sm:max-lg:!w-auto sm:max-lg:!min-w-0`,style:t.member}),(0,Z.jsx)(`col`,{className:`hidden sm:table-column`,style:t.status}),n&&(0,Z.jsx)(`col`,{className:`hidden lg:table-column`,style:t.openRate}),(0,Z.jsx)(`col`,{className:`hidden lg:table-column`,style:t.location}),(0,Z.jsx)(`col`,{className:`hidden lg:table-column`,style:t.created}),e.map(e=>(0,Z.jsx)(`col`,{className:`hidden lg:table-column`,style:t.dynamic},e.key))]}),na=({activeColumns:e,className:t,columnStyles:n,headerRef:r,memberHeaderRef:i,showEmailOpenRate:a})=>(0,Z.jsx)(qe,{ref:r,className:O(`hidden bg-transparent lg:table-header-group [&_th]:whitespace-nowrap`,t),children:(0,Z.jsxs)(W,{children:[(0,Z.jsx)(U,{ref:i,className:`sticky left-0 z-[70] bg-transparent px-4 [--members-sticky-fade-base:var(--background)]`,style:n.member,children:`Member`}),(0,Z.jsx)(U,{className:`bg-transparent px-4`,style:n.status,children:`Status`}),a&&(0,Z.jsx)(U,{className:`bg-transparent px-4`,style:n.openRate,children:`Open rate`}),(0,Z.jsx)(U,{className:`bg-transparent px-4`,style:n.location,children:`Location`}),(0,Z.jsx)(U,{className:`bg-transparent px-4`,style:n.created,children:`Created`}),e.map(e=>(0,Z.jsx)(U,{className:`bg-transparent px-4`,style:n.dynamic,children:e.label},e.key))]})}),ra=({columnStyle:e,showPinnedEdge:t})=>(0,Z.jsxs)(`div`,{className:`pointer-events-none absolute inset-y-0 left-0 z-[70] overflow-visible bg-transparent [--members-sticky-fade-base:var(--background)]`,style:e,children:[(0,Z.jsxs)(Je,{className:`w-full table-fixed border-collapse`,children:[(0,Z.jsx)(`colgroup`,{children:(0,Z.jsx)(`col`,{style:{width:`100%`}})}),(0,Z.jsx)(qe,{className:`bg-transparent lg:table-header-group [&_th]:whitespace-nowrap`,children:(0,Z.jsx)(W,{children:(0,Z.jsx)(U,{className:`bg-transparent px-4`,children:`Member`})})})]}),t&&(0,Z.jsx)(`div`,{"aria-hidden":`true`,className:`pointer-events-none absolute inset-y-px w-[24px]`,style:ea})]}),ia={member:40,status:15,openRate:10,location:17.5,created:17.5},aa={member:320,status:180,openRate:140,location:180,created:160},oa=17.5,sa=220;function ca(e){return Number.isFinite(e)?Math.max(0,Math.floor(e)):0}function la({showEmailOpenRate:e,activeColumnCount:t}){let n=[{key:`member`,width:ia.member},{key:`status`,width:ia.status},...e?[{key:`openRate`,width:ia.openRate}]:[],{key:`location`,width:ia.location},{key:`created`,width:ia.created}],r=ca(t),i=n.reduce((e,t)=>e+t.width,0),a=100+r*oa,o=oa/a*100,s=n.reduce((e,t)=>{let n=t.width/i*100;return e[t.key]=n/a*100,e},{member:0,status:0,openRate:0,location:0,created:0});return{tableWidthPercentage:a,minTableWidth:n.reduce((e,t)=>e+aa[t.key],0)+r*sa,dynamicColumnWidthPercentage:o,baseColumnWidthPercentages:s,baseColumnMinWidths:{member:aa.member,status:aa.status,openRate:aa.openRate,location:aa.location,created:aa.created},dynamicColumnMinWidth:sa}}function ua(e){let t=(e,t)=>({width:`${e}%`,minWidth:`${t}px`});return{tableStyle:{"--members-table-width":`${e.tableWidthPercentage}%`,"--members-table-min-width":`${e.minTableWidth}px`},columnStyles:{member:t(e.baseColumnWidthPercentages.member,e.baseColumnMinWidths.member),status:t(e.baseColumnWidthPercentages.status,e.baseColumnMinWidths.status),openRate:t(e.baseColumnWidthPercentages.openRate,e.baseColumnMinWidths.openRate),location:t(e.baseColumnWidthPercentages.location,e.baseColumnMinWidths.location),created:t(e.baseColumnWidthPercentages.created,e.baseColumnMinWidths.created),dynamic:t(e.dynamicColumnWidthPercentage,e.dynamicColumnMinWidth)}}}var da=({height:e})=>(0,Z.jsx)(`tr`,{"aria-hidden":`true`,style:{height:e},children:(0,Z.jsx)(`td`,{colSpan:999})}),fa=(0,X.forwardRef)(function(e,t){return(0,Z.jsx)(W,{ref:t,...e,"aria-hidden":`true`,children:(0,Z.jsx)(G,{className:`h-[72px] px-4 py-3`,colSpan:999,children:(0,Z.jsx)(`div`,{className:`h-full animate-pulse rounded-md bg-muted`,"data-testid":`loading-placeholder`})})})});function pa({items:e,totalItems:t,backPath:n,hasNextPage:r,isFetchingNextPage:i,fetchNextPage:a,isLoading:o,showEmailOpenRate:s=!0,activeColumns:c,timezone:l,pageHeaderRef:u,onRowClick:d}){let f=(0,X.useRef)(null),p=(0,X.useRef)(null),m=(0,X.useRef)(null),h=(0,X.useRef)(null),g=(0,X.useRef)(null),[_,v]=(0,X.useState)(0),[y,b]=(0,X.useState)(0),[x,S]=(0,X.useState)(!1),{visibleItemCount:C,canLoadMore:w,loadMore:T}=xn(t),E=(0,X.useMemo)(()=>la({showEmailOpenRate:s,activeColumnCount:c.length}),[c.length,s]),{tableStyle:D,columnStyles:O}=(0,X.useMemo)(()=>ua(E),[E]);Yt({parentRef:f,isLoading:o}),(0,X.useEffect)(()=>{let e=g.current;if(!e)return;let t=()=>{let t=e.scrollLeft;S(t>0),h.current&&(h.current.scrollLeft=t)};return t(),e.addEventListener(`scroll`,t,{passive:!0}),window.addEventListener(`resize`,t),()=>{e.removeEventListener(`scroll`,t),window.removeEventListener(`resize`,t)}},[c.length,e.length,s]),(0,X.useEffect)(()=>{let e=u?.current,t=p.current,n=m.current;if(!e||!t||!n){v(0),b(0);return}let r=e.style.paddingBottom,i=e.style.marginBottom,a=parseFloat(getComputedStyle(e).paddingBottom)||0,o=parseFloat(getComputedStyle(e).marginBottom)||0,s=()=>{r?e.style.setProperty(`padding-bottom`,r):e.style.removeProperty(`padding-bottom`),i?e.style.setProperty(`margin-bottom`,i):e.style.removeProperty(`margin-bottom`)},c=()=>{if(!window.matchMedia(`(min-width: 1024px)`).matches){s(),v(0),b(0);return}let r=t.getBoundingClientRect().height,i=n.getBoundingClientRect().width;e.style.setProperty(`padding-bottom`,`${a+r}px`,`important`),e.style.setProperty(`margin-bottom`,`${o-r}px`,`important`);let c=e.getBoundingClientRect().height;v(i),b(Math.max(c-r,0))};c();let l=new ResizeObserver(()=>{c()});return l.observe(e),l.observe(t),l.observe(n),window.addEventListener(`resize`,c),()=>{s(),l.disconnect(),window.removeEventListener(`resize`,c)}},[c.length,u,s]);let{visibleItems:k,spaceBefore:A,spaceAfter:j}=yn({items:e,totalItems:C,hasNextPage:r,isFetchingNextPage:i,fetchNextPage:a,parentRef:f,estimateSize:()=>72}),M=e=>{d?d(e):window.location.hash=Vi(e,n)};return(0,Z.jsxs)(`div`,{ref:f,className:`w-full min-w-0`,"data-testid":`members-list-scroll-root`,children:[(0,Z.jsx)(`div`,{className:`sticky z-[50] hidden overflow-visible bg-transparent lg:block`,style:{top:y},children:(0,Z.jsxs)(`div`,{className:`relative`,children:[(0,Z.jsx)(ra,{columnStyle:_>0?{width:_}:O.member,showPinnedEdge:x}),(0,Z.jsx)(`div`,{ref:h,className:`w-full overflow-hidden`,style:_>0?{clipPath:`inset(0 0 0 ${_}px)`}:void 0,children:(0,Z.jsxs)(Je,{"aria-hidden":`true`,className:`w-full border-collapse lg:w-[var(--members-table-width)] lg:min-w-[var(--members-table-min-width)] lg:table-fixed`,style:D,children:[(0,Z.jsx)(ta,{activeColumns:c,columnStyles:O,showEmailOpenRate:s}),(0,Z.jsx)(na,{activeColumns:c,columnStyles:O,headerRef:p,memberHeaderRef:m,showEmailOpenRate:s})]})})]})}),(0,Z.jsx)(`div`,{ref:g,className:`w-full overflow-x-auto overflow-y-visible`,children:(0,Z.jsxs)(Je,{className:`w-full border-collapse max-sm:table-fixed sm:max-lg:table-auto lg:w-[var(--members-table-width)] lg:min-w-[var(--members-table-min-width)] lg:table-fixed`,"data-testid":`members-list`,style:D,children:[(0,Z.jsx)(ta,{activeColumns:c,columnStyles:O,showEmailOpenRate:s}),(0,Z.jsx)(na,{activeColumns:c,className:`lg:h-0 lg:overflow-hidden lg:[&_th]:pointer-events-none lg:[&_th]:h-0 lg:[&_th]:border-0 lg:[&_th]:p-0 lg:[&_th]:text-[0px] lg:[&_th]:leading-none lg:[&_th]:opacity-0 lg:[&_tr]:h-0 lg:[&_tr]:border-0`,columnStyles:O,showEmailOpenRate:s}),(0,Z.jsxs)(Ke,{children:[(0,Z.jsx)(da,{height:A}),k.map(({key:t,virtualItem:r,item:i,props:a})=>r.index>e.length-1?(0,Z.jsx)(fa,{...a},t):(0,Z.jsx)($i,{...a,activeColumns:c,backPath:n,columnStyles:O,item:i,showEmailOpenRate:s,showPinnedEdge:x,timezone:l,onClick:M},t)),(0,Z.jsx)(da,{height:j})]})]})}),w&&(0,Z.jsx)(bn,{isLoading:i,onClick:T})]})}function ma({count:e,hasResolvedCount:t,nql:n,search:r}){let i=g(),{data:a}=o(),{mutateAsync:s,isLoading:c}=Ye(),[l,u]=(0,X.useState)(null),d=Sr(n),f=!r&&(!n||d),p=(0,X.useMemo)(()=>wr(a?.accessibility),[a?.accessibility]),m=l??p.dismissedCount??0,h=!d,_=f&&(d||e>m);return(0,X.useEffect)(()=>{let n=p.dismissedCount;!a||l!==null||c||n===void 0||!t||e>=n||(u(e),s(Er(a,e,p.dismissedAt??new Date().toISOString())).then(()=>{u(null)}).catch(e=>{u(null),console.log(`Unable to update multiple active subscriptions banner dismissed count`,e)}))},[e,a,s,t,c,l,p.dismissedAt,p.dismissedCount]),{canDismiss:h,count:e,handleDismiss:(0,X.useCallback)(()=>{if(!a||c)return;let t=l;u(e),s(Er(a,e,new Date().toISOString())).then(()=>{u(null)}).catch(()=>{u(t),q.error(`Unable to dismiss notification. Please try again.`)})},[e,a,s,c,l]),handleViewMembers:(0,X.useCallback)(()=>{i(vn({filter:yr}))},[i]),shouldShow:_}}var ha=({count:e,hasResolvedCount:t,nql:n,search:r})=>{let i=ma({count:e,hasResolvedCount:t,nql:n,search:r});return i.shouldShow?(0,Z.jsx)(rt,{role:`status`,variant:`warning`,...i.canDismiss?{dismissible:!0,onDismiss:i.handleDismiss}:{dismissible:!1},children:(0,Z.jsxs)(`div`,{className:`flex flex-col items-baseline gap-3 pr-8 sm:flex-row`,children:[`We found `,P(i.count),` `,i.count===1?`member`:`members`,` with more than one active paid subscription.`,` `,(0,Z.jsxs)(`div`,{className:`flex items-baseline gap-3`,children:[i.canDismiss&&(0,Z.jsx)(`button`,{className:`nowrap font-semibold !underline`,type:`button`,onClick:i.handleViewMembers,children:`View members`}),(0,Z.jsx)(`a`,{className:`nowrap font-semibold underline`,href:`https://ghost.org/help/duplicate-subscription-warning/`,rel:`noopener noreferrer`,target:`_blank`,children:`Learn more`})]})]})}):null},ga=[`subscriptions.plan_interval`,`subscriptions.status`,`subscriptions.start_date`,`subscriptions.current_period_end`,`conversion`,`offer_redemptions`,vr];function _a(e,t){return t&&e.length===0?!1:!e.some(e=>ga.includes(e.field))}function va({isFetching:e,isFetchingNextPage:t}){return e&&!t}var ya=on(Ir,`date`);function ba(e,t){return un(t,e.field,`UTC`)?.definition.operators.includes(e.operator)??!1}function xa(e){return Array.isArray(e.$and)?{operator:`$and`,children:e.$and}:Array.isArray(e.$or)?{operator:`$or`,children:e.$or}:null}function Sa(e){if(typeof e.subscribed==`boolean`)return{field:`subscribed`,operator:`is`,values:[e.subscribed?`subscribed`:`unsubscribed`]};if(typeof e.email_disabled==`number`){if(e.email_disabled===1)return{field:`subscribed`,operator:`is`,values:[`email-disabled`]};if(e.email_disabled===0)return{field:`subscribed`,operator:`is-not`,values:[`email-disabled`]}}let t=xa(e);if(!t||t.children.length!==2)return null;let n,r;for(let e of t.children)typeof e.subscribed==`boolean`&&(n=e.subscribed),typeof e.email_disabled==`number`&&(r=e.email_disabled);return t.operator===`$and`&&r===0&&n!==void 0?{field:`subscribed`,operator:`is`,values:[n?`subscribed`:`unsubscribed`]}:t.operator===`$or`&&r===1&&n!==void 0?{field:`subscribed`,operator:`is-not`,values:[n?`unsubscribed`:`subscribed`]}:null}function Ca(e){let t=xa(e);if(!t||t.children.length!==2)return null;let n,r;for(let e of t.children){let t=e[`newsletters.slug`];typeof t==`string`&&(n=t),t&&typeof t==`object`&&!Array.isArray(t)&&typeof t.$ne==`string`&&(n=t.$ne),typeof e.email_disabled==`number`&&(r=e.email_disabled)}return n?t.operator===`$and`&&r===0?{field:`newsletters.${n}`,operator:`is`,values:[`subscribed`]}:t.operator===`$or`&&r===1?{field:`newsletters.${n}`,operator:`is`,values:[`unsubscribed`]}:null:null}function wa(e){let t=xa(e);if(!t||t.operator!==`$and`||t.children.length!==2)return null;let n,r;for(let e of t.children)typeof e[`feedback.post_id`]==`string`&&(n=e[`feedback.post_id`]),typeof e[`feedback.score`]==`number`&&(r=e[`feedback.score`]);return!n||r!==0&&r!==1?null:{field:`newsletter_feedback`,operator:String(r),values:[n]}}var Ta=[Sa,Ca,wa];function Ea(e,t){for(let t of Ta){let n=t(e);if(n)return[n]}let n=xa(e);return n?.operator===`$and`?n.children.flatMap(e=>Ea(e,t)):dn([e],Ir,t)}function Da(e,t){let n=en(e??``);return n?sn(Ea(n,t)):[]}function Oa(e){let t=en(e??``);return t?ln(t,ya):!1}function ka(e,t){return qt(e,Ir,t)}function Aa(e,t,n=!t){return!!e&&n&&!t&&Oa(e)}function ja(e,t){return e.filter(e=>ba(e,t))}function Ma({baseSearchParams:e,filters:t,search:n,timezone:r,fields:i}){let a=new URLSearchParams(e),o=ka(ja(t,i),r);return a.delete(`filter`),a.delete(`search`),o&&a.set(`filter`,o),n&&a.set(`search`,n),a}function Na(e){let t=(0,X.useMemo)(()=>Lr(),[]),[n,r]=_(),i=(0,X.useRef)(null),a=(0,X.useMemo)(()=>n.get(`filter`)??void 0,[n]),o=(0,X.useMemo)(()=>n.toString(),[n]),s=(0,X.useMemo)(()=>ja(Da(a,e),t),[a,e,t]),[c,l]=(0,X.useState)(s),u=(0,X.useMemo)(()=>n.get(`search`)??``,[n]),d=(0,X.useMemo)(()=>ka(ja(c,t),e),[c,e,t]);return(0,X.useEffect)(()=>{o!==i.current&&(l(s),i.current=o)},[o,s]),(0,X.useEffect)(()=>{if(i.current!==null&&o!==i.current)return;let a=Ma({baseSearchParams:n,filters:c,search:u,timezone:e,fields:t}),s=a.toString();s!==o&&(i.current=s,r(a,{replace:!0}))},[o,c,u,n,r,e,t]),{filters:c,nql:d,search:u,setFilters:(0,X.useCallback)((a,o={})=>{let s=o.replace??!0,c=Ma({baseSearchParams:n,filters:a,search:u,timezone:e,fields:t});l(a),i.current=c.toString(),r(c,{replace:s})},[u,n,r,e,t]),setSearch:(0,X.useCallback)((a,o={})=>{let s=o.replace??!0,l=Ma({baseSearchParams:n,filters:c,search:a,timezone:e,fields:t});i.current=l.toString(),r(l,{replace:s})},[c,n,r,e,t]),clearFilters:(0,X.useCallback)(({replace:a=!0}={})=>{let o=Ma({baseSearchParams:n,filters:[],search:u,timezone:e,fields:t});l([]),i.current=o.toString(),r(o,{replace:a})},[u,n,r,e,t]),clearAll:(0,X.useCallback)(({replace:a=!0}={})=>{let o=Ma({baseSearchParams:n,filters:[],search:``,timezone:e,fields:t});l([]),i.current=o.toString(),r(o,{replace:a})},[n,r,e,t]),hasFilterOrSearch:!!d||u.length>0}}function Pa({enabled:e}){let{data:t}=Pt({searchParams:{filter:yr,limit:`1`,fields:`id`,order:`id`},defaultErrorHandler:!1,enabled:e,refetchOnMount:`always`,staleTime:0});return{count:t?.meta?.pagination?.total??0,hasResolvedCount:t!==void 0}}var Fa=250,Ia=6,La=({emailAnalyticsEnabled:e,hasStripeEnabled:t,membershipsEnabled:n,timezone:r})=>{let i=(0,X.useRef)(null),a=(0,X.useCallback)(e=>{i.current=e?.closest(`[data-list-page="header"]`)},[]),{filters:o,nql:s,search:c,setFilters:l,setSearch:u,hasFilterOrSearch:d,clearAll:f}=Na(r),p=v(),m=si(),h=ui(m,s),[g,_]=(0,X.useState)(!1),[y,b]=(0,X.useState)(!1),[x,S]=(0,X.useState)(c),C=Qe(e=>{u(e)},Fa),{count:w,hasResolvedCount:T}=Pa({enabled:t}),E=(0,X.useMemo)(()=>zr(o),[o]),D=(0,X.useMemo)(()=>_a(o,s),[o,s]),{data:k,isError:A,isFetching:j,isFetchingNextPage:M,refetch:F,fetchNextPage:I,hasNextPage:L}=mt({searchParams:(0,X.useMemo)(()=>Vr({filters:o,nql:s,search:c}),[o,s,c]),keepPreviousData:!0}),R=va({isFetching:j,isFetchingNextPage:M}),z=k?.meta?.pagination?.total??0,B=o.length>0,ee=g,te=B,ne=d||z>0,re=!d&&!R&&!A&&z<Ia;(0,X.useEffect)(()=>{S(c),C.cancel()},[c,C]);let ie=e=>{S(e),C(e)};return(0,Z.jsx)(gn,{children:(0,Z.jsxs)(be,{"data-testid":`members-page`,children:[(0,Z.jsx)(be.Header,{className:`py-4 sidebar:py-5`,children:(0,Z.jsxs)(`div`,{ref:a,className:`flex flex-col gap-4 sidebar:gap-6`,children:[(0,Z.jsxs)(H,{blurredBackground:!1,sticky:!1,children:[(0,Z.jsx)(H.Left,{children:(0,Z.jsxs)(H.Title,{children:[`Members`,` `,!R&&z>0&&(0,Z.jsx)(H.Count,{className:`hidden sm:inline`,children:P(z)})]})}),(0,Z.jsx)(H.Actions,{children:(0,Z.jsxs)(H.ActionGroup,{className:`ml-auto flex-wrap justify-end sm:ml-0 sm:flex-nowrap`,children:[ne&&(0,Z.jsxs)(Z.Fragment,{children:[(0,Z.jsx)(`div`,{className:`hidden lg:flex`,children:(0,Z.jsx)(Li,{search:x,onSearchChange:ie})}),(0,Z.jsx)(V,{"aria-label":g?`Hide member search`:`Show member search`,className:O(`lg:hidden`,g&&`bg-secondary hover:bg-secondary`),variant:`outline`,onClick:()=>{if(g){_(!1),b(!1);return}b(!0),_(!0)},children:(0,Z.jsx)(N,{className:`size-4`})}),!B&&(0,Z.jsx)(Ii,{activeView:h,filters:o,iconOnly:!0,multipleActiveSubscriptionsCount:w,nql:s,savedViews:m,onFiltersChange:l})]}),(0,Z.jsx)(Kr,{canBulkDelete:D,hasFilterOrSearch:d,memberCount:z,nql:s,search:c,showMenu:ne,showNewMember:ne,onImportComplete:()=>{F()}})]})})]}),ne&&(te||ee)&&(0,Z.jsxs)(tn,{className:O(`flex-col gap-4 lg:flex-row lg:items-center sidebar:gap-6 lg:gap-6`,!te&&`lg:hidden`),children:[ee&&(0,Z.jsx)(`div`,{className:`w-full lg:hidden`,children:(0,Z.jsx)(Li,{ariaLabel:`Search members mobile`,autoFocus:y,search:x,onSearchChange:ie})}),te&&(0,Z.jsx)(Ii,{activeView:h,filters:o,multipleActiveSubscriptionsCount:w,nql:s,savedViews:m,onFiltersChange:l})]}),t&&(0,Z.jsx)(ha,{count:w,hasResolvedCount:T,nql:s,search:c})]})}),(0,Z.jsxs)(be.Body,{children:[R?(0,Z.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,Z.jsx)(St,{size:`lg`})}):A?(0,Z.jsxs)(`div`,{className:`mb-16 flex flex-1 flex-col items-center justify-center`,children:[(0,Z.jsx)(`h2`,{className:`mb-2 text-xl font-medium`,children:`Error loading members`}),(0,Z.jsx)(`p`,{className:`mb-4 text-muted-foreground`,children:`Please reload the page to try again`}),(0,Z.jsx)(V,{onClick:()=>window.location.reload(),children:`Reload page`})]}):k?.members.length?(0,Z.jsx)(pa,{activeColumns:E,backPath:`${p.pathname}${p.search}`,fetchNextPage:I,hasNextPage:L,isFetchingNextPage:M,isLoading:j&&!M,items:k.members,pageHeaderRef:i,showEmailOpenRate:e,timezone:r,totalItems:z}):d?(0,Z.jsx)(`div`,{className:`flex flex-1 flex-col items-center justify-center`,children:(0,Z.jsx)(He,{actions:(0,Z.jsx)(V,{variant:`outline`,onClick:()=>{C.cancel(),S(``),f({replace:!1})},children:`Show all members`}),title:`No matching members found.`,children:(0,Z.jsx)(pe,{})})}):(0,Z.jsx)(qr,{membershipsEnabled:n,onMemberCreated:async()=>{await F()}}),re&&(0,Z.jsx)(`div`,{className:O(k?.members.length&&`mt-8`),children:(0,Z.jsx)(Bi,{})})]})]})})},Ra=()=>{let[e]=_(),{data:t,isLoading:n}=yt({}),{data:r,isLoading:i}=Dt(),a=Aa(e.get(`filter`)??void 0,!!t?.settings,n);if(n||i||!t?.settings||!r?.config||a)return(0,Z.jsx)(gn,{children:(0,Z.jsxs)(be,{children:[(0,Z.jsx)(be.Header,{className:`py-4 sidebar:py-6`,children:(0,Z.jsx)(H,{blurredBackground:!1,sticky:!1,children:(0,Z.jsx)(H.Left,{children:(0,Z.jsx)(H.Title,{children:`Members`})})})}),(0,Z.jsx)(be.Body,{children:(0,Z.jsx)(`div`,{className:`flex flex-1 items-center justify-center`,children:(0,Z.jsx)(St,{size:`lg`})})})]})});let o=_n(t.settings),s=K(t.settings,`members_signup_access`)!==`none`,c=r.config.emailAnalytics===!0,l=kt(t.settings,r.config);return(0,Z.jsx)(La,{emailAnalyticsEnabled:c,hasStripeEnabled:l,membershipsEnabled:s,timezone:o})};export{Ra as default};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{i as r,n as i,r as a,t as o}from"./tabs-Bw8aEqsd.js";import{Nn as s,t as c}from"./button-DiwO9Rof.js";import{An as l,Dn as u,En as d,Et as f,It as p,K as m,M as h,Tt as g,U as _,ct as v,ei as y,et as b,k as x,lt as S,ri as C,st as w,ut as T}from"./index-BMhs4O3N.js";import"./layout-szLkuQ88.js";var E=e(t(),1),D=n(),O=()=>{let{data:e,isLoading:t}=S(`index`),{data:n,isLoading:O}=T(`index`),k=t?[,,,,,].fill({apId:``,name:``,handle:``,avatarUrl:``}):e?.pages.flatMap(e=>e.accounts)??[],A=O?[,,,,,].fill({apId:``,name:``}):n?.pages.flatMap(e=>e.domains)??[],j=v(`index`),M=f(`index`),[N,P]=(0,E.useState)(new Set),F=w(`index`),I=g(`index`),[L,R]=(0,E.useState)(new Set),[z,B]=(0,E.useState)(null),V=p(),H=e=>{P(t=>{let n=new Set([...t]);return n.add(e.apId),n}),M.mutate(e),y.success(`User unblocked`)},U=e=>{P(t=>{let n=new Set([...t]);return n.delete(e.apId),n}),j.mutate(e),y.success(`User blocked`)},W=e=>{R(t=>{let n=new Set([...t]);return n.add(e.url),n}),I.mutate({url:e.url}),y.success(`Domain unblocked`)},G=e=>{R(t=>{let n=new Set([...t]);return n.delete(e.url),n}),F.mutate({url:e.url}),y.success(`Domain blocked`)};return(0,D.jsx)(x,{children:(0,D.jsxs)(`div`,{className:`mx-auto max-w-[620px] py-[min(4vh,48px)]`,children:[(0,D.jsx)(`div`,{className:`flex items-center justify-between gap-8`,children:(0,D.jsx)(C,{children:`Moderation`})}),(0,D.jsx)(`div`,{className:`mt-6`,children:(0,D.jsxs)(o,{defaultValue:`blocked_users`,variant:`underline`,children:[(0,D.jsxs)(a,{children:[(0,D.jsx)(r,{value:`blocked_users`,children:`Blocked users`}),(0,D.jsx)(r,{value:`blocked_domains`,children:`Blocked domains`})]}),(0,D.jsx)(i,{className:`mt-2`,value:`blocked_users`,children:!t&&k.length===0?(0,D.jsxs)(d,{children:[(0,D.jsx)(u,{children:(0,D.jsx)(s,{})}),(0,D.jsx)(`div`,{className:`mt-2 flex max-w-[400px] flex-col items-center gap-1 text-center`,children:(0,D.jsx)(`p`,{children:`When you block someone, they won't be able to follow you or interact with your content on the social web.`})})]}):k.map((e,n)=>(0,D.jsx)(m,{actor:e,isCurrentUser:!0,children:(0,D.jsx)(`div`,{children:(0,D.jsxs)(h,{onClick:t?void 0:()=>_(e.handle,V),children:[(0,D.jsx)(b,{author:{icon:{url:e.avatarUrl},name:e.name,handle:e.handle}}),(0,D.jsxs)(`div`,{className:`flex min-w-0 flex-col`,children:[(0,D.jsx)(`span`,{className:`block truncate font-semibold text-black dark:text-white`,children:t?(0,D.jsx)(l,{className:`w-24`}):e.name}),(0,D.jsx)(`span`,{className:`block truncate text-sm text-gray-600`,children:t?(0,D.jsx)(l,{className:`w-40`}):e.handle})]}),N.has(e.apId)?(0,D.jsx)(c,{className:`ml-auto min-w-[90px] text-red hover:bg-red/5! hover:text-red-400`,variant:`outline`,onClick:t=>{t.stopPropagation(),U(e)},children:`Block`}):t?(0,D.jsx)(`div`,{className:`ml-auto w-16`,children:(0,D.jsx)(l,{})}):(0,D.jsx)(c,{className:`ml-auto min-w-[90px]`,variant:`destructive`,onClick:t=>{t.stopPropagation(),H(e)},onMouseEnter:()=>B(e.apId),onMouseLeave:()=>B(null),children:z===e.apId?`Unblock`:`Blocked`})]})})},e.apId?e.apId:`loading-${n}`))}),(0,D.jsx)(i,{className:`mt-[11px]`,value:`blocked_domains`,children:!O&&A.length===0?(0,D.jsxs)(d,{children:[(0,D.jsx)(u,{children:(0,D.jsx)(s,{})}),(0,D.jsx)(`div`,{className:`mt-2 flex max-w-[400px] flex-col items-center gap-1 text-center`,children:(0,D.jsx)(`p`,{children:`When you block a domain, all users from that domain won't be able to follow you or interact with your content.`})})]}):A.map((e,t)=>(0,D.jsxs)(h,{children:[(0,D.jsx)(`div`,{className:`flex min-w-0 flex-col`,children:(0,D.jsx)(`span`,{className:`block truncate font-semibold text-black dark:text-white`,children:O?(0,D.jsx)(l,{className:`w-48`}):new URL(e.url).hostname})}),L.has(e.url)?(0,D.jsx)(c,{className:`ml-auto min-w-[90px] text-red hover:bg-red/5! hover:text-red-400`,variant:`outline`,onClick:()=>G(e),children:`Block`}):O?(0,D.jsx)(`div`,{className:`ml-auto w-16`,children:(0,D.jsx)(l,{})}):(0,D.jsx)(c,{className:`ml-auto min-w-[90px]`,variant:`destructive`,onClick:()=>W(e),onMouseEnter:()=>B(e.url),onMouseLeave:()=>B(null),children:z===e.url?`Unblock`:`Blocked`})]},e.url?e.url:`loading-${t}`))})]})})]})})};export{O as default};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{i as n}from"./hooks-tBACnBdQ.js";import{t as r}from"./jsx-runtime-CtMZ-PAS.js";import{i,r as a,t as o}from"./tabs-Bw8aEqsd.js";import{c as s,d as c,l,o as u,s as d,u as f}from"./pagemenu-C4paivNj.js";import{t as p}from"./posts-D_gBhqmK.js";import{o as m}from"./post-helpers-C5OQMBoi.js";import{m as h}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{a as g}from"./router-provider-DcttGCQn.js";import{E as _,Fn as v,Qn as y,T as b,Xn as x,Zn as S,it as C,j as w,mn as T,t as E,tr as D}from"./button-DiwO9Rof.js";import{a as O,i as k,n as A,o as j,t as M}from"./links-CfAB2Yeq.js";import{r as ee,t as te}from"./post-analytics-header-DAQep1VQ.js";import{c as ne,l as re,n as ie,o as ae,r as oe,s as se,t as ce,u as le}from"./data-list-D3nkd86L.js";import{i as N,n as P,o as F,r as I,t as ue}from"./use-simple-pagination-CH6qw-vr.js";import{In as L,Jn as de,Ln as R,Mn as z,On as fe,cr as B,g as pe,jn as me,oi as he,ur as ge}from"./index-BMhs4O3N.js";import{i as _e,r as V}from"./stats-CrlPzgdd.js";import{n as ve}from"./post-analytics-context-Dy17HR1_.js";import{a as H,i as U,n as W,r as G,t as K}from"./kpi-card-B2y2dMMS.js";import{t as ye}from"./member-route-0Aa52Ntz.js";var q=n({dataType:`FeedbackResponseType`,path:e=>`/feedback/${e}/`}),J=e(t()),Y=(e,t)=>{let{data:n,isLoading:r,error:i}=q(e,{searchParams:{limit:`50`,...t===void 0?{}:{score:t.toString()}}});return{feedback:(0,J.useMemo)(()=>n?.feedback?n.feedback:[],[n]),isLoading:r,error:i}},X=r(),be=({feedbackStats:e})=>{let{postId:t}=h(),n=g(),[r,p]=(0,J.useState)(`positive`),{feedback:m,isLoading:v}=Y(t||``,+(r===`positive`)),{totalPages:x,paginatedData:C,nextPage:T,previousPage:O,hasNextPage:k,hasPreviousPage:A}=ue({data:m,itemsPerPage:9}),j=v;return(0,X.jsxs)(u,{children:[(0,X.jsxs)(f,{className:`pb-5`,children:[(0,X.jsx)(c,{children:`Feedback`}),(0,X.jsx)(s,{children:`What did your readers think?`})]}),e.totalFeedback>0?(0,X.jsxs)(d,{className:`pb-3`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-3`,children:[(0,X.jsx)(o,{className:`pb-3`,defaultValue:`positive`,value:r,variant:`button`,onValueChange:e=>p(e),children:(0,X.jsxs)(a,{className:`gap-1`,children:[(0,X.jsx)(i,{className:`h-7`,value:`positive`,children:(0,X.jsxs)(`div`,{className:`flex items-center gap-1 text-xs`,children:[(0,X.jsx)(b,{size:14,strokeWidth:1.25}),(0,X.jsx)(`span`,{className:`hidden font-medium sm:visible! sm:inline!`,children:`More like this`}),(0,X.jsx)(`span`,{className:`font-semibold tracking-tight`,children:S(e.positiveFeedback/e.totalFeedback)})]})}),(0,X.jsx)(i,{className:`h-7`,value:`negative`,children:(0,X.jsxs)(`div`,{className:`flex items-center gap-1 text-xs`,children:[(0,X.jsx)(_,{size:14,strokeWidth:1.25}),(0,X.jsx)(`span`,{className:`hidden font-medium sm:visible! sm:inline!`,children:`Less like this`}),(0,X.jsx)(`span`,{className:`font-semibold tracking-tight`,children:S(e.negativeFeedback/e.totalFeedback)})]})})]})}),(0,X.jsx)(he,{className:`mr-2 mb-3 lg:hidden xl:visible! xl:block!`,children:`Date`})]}),(0,X.jsx)(z,{}),j?(0,X.jsx)(me,{className:`mt-3`,lines:3}):C&&C.length>0?(0,X.jsx)(`div`,{className:`flex w-full flex-col py-3`,children:C.map(e=>(0,X.jsxs)(`div`,{className:`flex h-10 w-full items-center justify-between gap-3 rounded-sm border-none px-2 text-sm hover:cursor-pointer hover:bg-accent`,onClick:()=>{n(`/members/${e.member.id}`,{crossApp:!0})},children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 font-medium`,children:[(0,X.jsxs)(L,{className:`size-7`,children:[e.member?.avatar_image&&(0,X.jsx)(`img`,{className:`absolute aspect-square size-full`,src:e.member?.avatar_image}),(0,X.jsx)(R,{className:`text-white`,style:{backgroundColor:`${D(B(e.member),`45`,`55`)}`},children:ge(e.member)})]}),B(e.member)]}),(0,X.jsx)(`div`,{className:`whitespace-nowrap text-muted-foreground`,children:y(e.created_at)})]},e.id))}):(0,X.jsx)(`div`,{className:`flex h-full items-center justify-center py-8 text-center text-sm text-muted-foreground`,children:(0,X.jsxs)(`div`,{children:[`No `,r===`positive`?`positive`:`negative`,` feedback yet`]})})]}):(0,X.jsxs)(d,{className:`flex grow flex-col items-center justify-center text-center text-sm text-muted-foreground`,children:[(0,X.jsx)(`div`,{children:`No members have given feedback yet`}),(0,X.jsx)(`div`,{children:`When someone does, you'll see their response here.`})]}),e.totalFeedback>0&&(0,X.jsx)(l,{className:`grow-0`,children:(0,X.jsxs)(`div`,{className:`flex w-full items-center justify-between gap-3`,children:[(0,X.jsxs)(E,{variant:`outline`,onClick:()=>{let e=`(feedback.post_id:'${t}'+feedback.score:1)`,i=`(feedback.post_id:'${t}'+feedback.score:0)`,a=`${encodeURIComponent(e)}&post=${t}`,o=`${encodeURIComponent(i)}&post=${t}`;n(`/members?filter=${r===`positive`?a:o}`,{crossApp:!0})},children:[`View all`,(0,X.jsx)(w,{})]}),x>1&&(0,X.jsx)(P,{className:`pb-0`,children:(0,X.jsxs)(I,{children:[(0,X.jsx)(F,{disabled:!A,onClick:O}),(0,X.jsx)(N,{disabled:!k,onClick:T})]})})]})})]})},xe=()=>{let{mutateAsync:e,isLoading:t}=M();return{editLinks:e,isEditLinksLoading:t}},Se=e=>{let{data:t,isLoading:n}=p(e),{data:r,isLoading:i}=p(e,{searchParams:{include:`count.positive_feedback,count.negative_feedback`}}),a=(0,J.useMemo)(()=>t?.posts[0],[t]),o=(0,J.useMemo)(()=>r?.posts[0],[r]),s=(0,J.useMemo)(()=>a?{sent:a.email?.email_count||0,opened:a.email?.opened_count||0,clicked:a.count?.clicks||0,openedRate:a.email?.opened_count?a.email.opened_count/a.email.email_count:0,clickedRate:a.count?.clicks&&a.email?.email_count?a.count.clicks/a.email.email_count:0}:{sent:0,opened:0,clicked:0,openedRate:0,clickedRate:0},[a]),c=(0,J.useMemo)(()=>{if(!o?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};let e=o.count.positive_feedback||0,t=o.count.negative_feedback||0;return{positiveFeedback:e,negativeFeedback:t,totalFeedback:e+t}},[o]),l=(0,J.useMemo)(()=>a?.newsletter?.id,[a]),{data:u,isLoading:d}=V({searchParams:l?{newsletter_id:l}:{},enabled:!!l}),f=(0,J.useMemo)(()=>u?.stats?u.stats.map(e=>e.post_id):[],[u]),{data:m,isLoading:h}=_e({searchParams:l&&f.length>0?{newsletter_id:l,post_ids:f.join(`,`)}:{},enabled:!!l&&f.length>0}),g=(0,J.useMemo)(()=>{if(!u?.stats)return;let e=u.stats,t=m?.stats||[],n=new Map;t.forEach(e=>{n.set(e.post_id,e)});let r=e.map(e=>{let t=n.get(e.post_id);return{...e,total_clicks:t?.total_clicks||0,click_rate:t?.click_rate||0}});return{...u,stats:r}},[u,m]),_=d||h,{data:v,isLoading:y,refetch:b}=A({searchParams:{filter:`post_id:'${e}'`}}),x=(0,J.useMemo)(()=>{if(!g||!g.stats)return{openRate:0,clickRate:0};let e=g.stats;if(e.length===0)return{openRate:0,clickRate:0};let t=e.reduce((e,t)=>e+(t.open_rate||0),0),n=e.reduce((e,t)=>e+(t.click_rate||0),0);return{openRate:Number((t/e.length).toFixed(2)),clickRate:Number((n/e.length).toFixed(2))}},[g]),S=(0,J.useMemo)(()=>O(v),[v]);return{post:a,stats:s,feedbackStats:c,averageStats:(0,J.useMemo)(()=>({openedRate:x.openRate,clickedRate:x.clickRate}),[x]),topLinks:S,refetchTopLinks:b,isLoading:n||i||_||y}},Ce=({breakpoints:e={sm:1080,md:1280,lg:1360}}={})=>{let[t,n]=(0,J.useState)(`md`);return(0,J.useEffect)(()=>{let t=()=>{let t=window.innerWidth;t<e.sm?n(`sm`):t<e.md?n(`md`):n(`lg`)};return t(),window.addEventListener(`resize`,t),()=>window.removeEventListener(`resize`,t)},[e]),{chartSize:t,isSmall:t===`sm`,isMedium:t===`md`,isLarge:t===`lg`}},we=()=>(0,X.jsx)(`div`,{className:`absolute top-1/2 -right-4 z-10 hidden size-8 -translate-y-1/2 items-center justify-center rounded-full border bg-background text-muted-foreground md:visible! md:flex!`,children:(0,X.jsx)(T,{className:`ml-0.5`,size:16,strokeWidth:1.5})}),Te=({dataColor:e,value:t,avgValue:n})=>(0,X.jsxs)(`div`,{className:`absolute top-6 left-1/2 z-50 flex w-[200px] -translate-x-1/2 flex-col items-stretch gap-1.5 rounded-md bg-background px-4 py-2 text-sm opacity-0 shadow-md transition-all group-hover/block:top-3 group-hover/block:opacity-100`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,X.jsx)(`div`,{className:`size-2 rounded-full bg-chart-blue opacity-50`,style:{backgroundColor:e}}),`This newsletter`]}),(0,X.jsx)(`div`,{className:`text-right font-mono`,children:t})]}),(0,X.jsxs)(`div`,{className:`flex items-center justify-between gap-4`,children:[(0,X.jsxs)(`div`,{className:`flex items-center gap-2 text-muted-foreground`,children:[(0,X.jsx)(`div`,{className:`size-2 rounded-full bg-chart-gray opacity-80`}),`Average`]}),(0,X.jsx)(`div`,{className:`text-right font-mono`,children:n})]})]}),Ee=()=>{let e=g(),[t,n]=(0,J.useState)(null),[r,i]=(0,J.useState)(``),a=(0,J.useRef)(null),o=(0,J.useRef)(null),{chartSize:p}=Ce(),{appSettings:h}=pe(),{emailTrackClicks:_,emailTrackOpens:y}=h?.analytics||{},{post:b,isPostLoading:w,postId:T}=ve(),D=t=>e(ye({filter:t}),{crossApp:!0}),O=b,A=m(O);(0,J.useEffect)(()=>{!w&&!A&&e(`/posts/analytics/${T}`)},[e,T,w,A]);let{stats:M,averageStats:L,topLinks:R,isLoading:B,refetchTopLinks:ge}=Se(T),{editLinks:_e}=xe(),V=(0,J.useMemo)(()=>{if(!O?.count)return{positiveFeedback:0,negativeFeedback:0,totalFeedback:0};let e=O.count.positive_feedback||0,t=O.count.negative_feedback||0;return{positiveFeedback:e,negativeFeedback:t,totalFeedback:e+t}},[O]),q=(0,J.useMemo)(()=>O?.newsletter?.feedback_enabled===!0,[O]),Y=(0,J.useMemo)(()=>V.totalFeedback>0?!0:q,[V.totalFeedback,q]),Ee=e=>{let t=k(R,e);t&&(n(e),i(t.link.to))},De=()=>{if(!t)return;let e=k(R,t);if(!e)return;let a=r.trim();if(a===``||a===e.link.to){n(null),i(``);return}_e({originalUrl:e.link.originalTo,editedUrl:r,postId:T},{onSuccess:()=>{n(null),i(``),ge()}})},{totalPages:Oe,paginatedData:ke,nextPage:Ae,previousPage:je,hasNextPage:Me,hasPreviousPage:Ne}=ue({data:R,itemsPerPage:10});(0,J.useEffect)(()=>{if(t&&a.current){a.current.focus();let e=k(R,t),s=t=>{o.current&&!o.current.contains(t.target)&&r===e?.link.to&&(n(null),i(``))};return document.addEventListener(`mousedown`,s),()=>{document.removeEventListener(`mousedown`,s)}}},[t,r,R]);let Z=B||w,Pe=[{datatype:`Sent`,value:1,fill:`url(#gradientPurple)`,color:`var(--chart-purple)`}],Fe={percentage:{label:`O`},Average:{label:`Average`},"This newsletter":{label:`This newsletter`}},Ie=[{datatype:`Average`,value:L.openedRate,fill:`url(#gradientGray)`,color:`var(--chart-gray)`},{datatype:`This newsletter`,value:M.openedRate,fill:`url(#gradientBlue)`,color:`var(--chart-blue)`}],Le={percentage:{label:`Opened`},Average:{label:`Average`},"This newsletter":{label:`This newsletter`}},Re=[{datatype:`Average`,value:L.clickedRate,fill:`url(#gradientGray)`,color:`var(--chart-gray)`},{datatype:`This newsletter`,value:M.clickedRate,fill:`url(#gradientTeal)`,color:`var(--chart-teal)`}],ze={percentage:{label:`Clicked`},Average:{label:`Average`},"This newsletter":{label:`This newsletter`}},Q=`grid-cols-3`,$=`aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-[10/14] md:max-w-none lg:aspect-square`;return(!_||!y)&&(Q=`grid-cols-2`,$=`aspect-[16/10] w-full max-w-[320px] sm:aspect-[2/1] md:aspect-square md:max-w-none lg:aspect-[15/10]`),!_&&!y&&(Q=`grid-cols-1`,$=`aspect-square w-full sm:aspect-[16/10] md:max-w-[320px] md:max-h-[320px] lg:aspect-[12/10]`),(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(te,{currentTab:`Newsletter`}),(0,X.jsx)(ee,{children:(0,X.jsxs)(`div`,{className:`grid grid-cols-1 gap-6 ${Y&&_&&`lg:grid-cols-2`}`,children:[(0,X.jsxs)(u,{className:Y&&_?`lg:col-span-2`:``,children:[(0,X.jsxs)(f,{className:`hidden`,children:[(0,X.jsx)(c,{children:`Newsletters`}),(0,X.jsx)(s,{children:`How did this post perform`})]}),Z?(0,X.jsx)(d,{className:`h-[25vw] p-6`,children:(0,X.jsx)(fe,{})}):(0,X.jsxs)(d,{className:`p-0`,children:[(0,X.jsxs)(`div`,{className:`grid ${Q} items-stretch border-b`,children:[(0,X.jsxs)(K,{className:`group relative isolate grow p-3 md:px-6 md:py-5`,children:[(0,X.jsx)(U,{onClick:()=>{D(`emails.post_id:${T}`)},children:`View members →`}),(0,X.jsxs)(G,{onClick:()=>{D(`emails.post_id:${T}`)},children:[(0,X.jsx)(`div`,{className:`ml-0.5 size-[9px] rounded-full bg-chart-purple opacity-50`}),`Sent`]}),(0,X.jsx)(W,{children:(0,X.jsx)(H,{className:`text-xl leading-none sm:text-2xl md:text-[2.6rem]`,children:x(M.sent)})})]}),y&&(0,X.jsxs)(K,{className:`p-3 md:px-6 md:py-5`,children:[(0,X.jsx)(U,{onClick:()=>{D(`opened_emails.post_id:${T}`)},children:`View members →`}),(0,X.jsxs)(G,{onClick:()=>{D(`opened_emails.post_id:${T}`)},children:[(0,X.jsx)(`div`,{className:`ml-0.5 size-[9px] rounded-full bg-chart-blue opacity-50`}),`Opened`]}),(0,X.jsx)(W,{children:(0,X.jsx)(H,{className:`text-xl leading-none sm:text-2xl md:text-[2.6rem]`,children:x(M.opened)})})]}),_&&(0,X.jsxs)(K,{className:`group relative isolate grow p-3 md:px-6 md:py-5`,children:[(0,X.jsx)(U,{onClick:()=>{D(`clicked_links.post_id:${T}`)},children:`View members →`}),(0,X.jsxs)(G,{onClick:()=>{D(`clicked_links.post_id:${T}`)},children:[(0,X.jsx)(`div`,{className:`ml-0.5 size-[9px] rounded-full bg-chart-teal opacity-50`}),`Clicked`]}),(0,X.jsx)(W,{children:(0,X.jsx)(H,{className:`text-xl leading-none sm:text-2xl md:text-[2.6rem]`,children:x(M.clicked)})})]})]}),(0,X.jsxs)(`div`,{className:`$ mx-auto grid grid-cols-1 items-center justify-center gap-4 transition-all md:gap-0 ${Q===`grid-cols-2`&&`md:grid-cols-2`} ${Q===`grid-cols-3`&&`md:grid-cols-3`}`,children:[(0,X.jsxs)(`div`,{className:`relative border-r-0 px-6 ${(y||_)&&`md:border-r`}`,children:[(0,X.jsx)(j,{className:$,config:Fe,data:Pe,percentageLabel:`Sent`,percentageValue:S(1),size:p,tooltip:!1}),(y||_)&&(0,X.jsx)(we,{})]}),y&&(0,X.jsxs)(`div`,{className:`group/block relative border-r-0 px-6 transition-all hover:bg-muted/25 ${_&&`md:border-r`}`,children:[(0,X.jsx)(Te,{avgValue:S(L.openedRate),dataColor:`var(--chart-blue)`,value:S(M.openedRate)}),(0,X.jsx)(j,{className:$,config:Le,data:Ie,percentageLabel:`Open rate`,percentageValue:S(M.openedRate),size:p,tooltip:!1}),_&&(0,X.jsx)(we,{})]}),_&&(0,X.jsxs)(`div`,{className:`group/block relative px-6 transition-all hover:bg-muted/25`,children:[(0,X.jsx)(Te,{avgValue:S(L.clickedRate),dataColor:`var(--chart-teal)`,value:S(M.clickedRate)}),(0,X.jsx)(j,{className:$,config:ze,data:Re,percentageLabel:`Click rate`,percentageValue:S(M.clickedRate),size:p,tooltip:!1})]})]})]})]}),Y&&(0,X.jsx)(be,{feedbackStats:V}),_&&(0,X.jsxs)(u,{className:`group/datalist overflow-hidden`,children:[(0,X.jsxs)(`div`,{className:`flex items-center justify-between p-6`,children:[(0,X.jsxs)(f,{className:`p-0`,children:[(0,X.jsx)(c,{children:`Newsletter clicks`}),(0,X.jsx)(s,{children:`Which links resonated with your readers`})]}),(0,X.jsx)(he,{className:`mr-2`,children:`Members`})]}),Z?(0,X.jsxs)(d,{className:`p-6 pt-0`,children:[(0,X.jsx)(z,{}),(0,X.jsx)(me,{className:`mt-6`})]}):(0,X.jsxs)(d,{className:`pb-0`,children:[(0,X.jsx)(z,{}),R.length>0?(0,X.jsx)(ce,{className:``,children:(0,X.jsx)(oe,{children:ke?.map(e=>{let n=M.clicked>0?e.count/M.clicked:0,s=e.link.link_id,c=e.link.title,l=e.link.to,u=e.link.edited;return(0,X.jsxs)(le,{children:[t!==s&&(0,X.jsx)(ie,{style:{width:`${n?Math.round(n*100):0}%`}}),(0,X.jsx)(ae,{className:`w-full`,children:t===s?(0,X.jsxs)(`div`,{ref:o,className:`flex w-full items-center gap-2`,children:[(0,X.jsx)(de,{ref:a,className:`z-50 h-7 w-full border-border bg-background text-sm`,value:r,onChange:e=>i(e.target.value)}),(0,X.jsx)(E,{size:`sm`,onClick:De,children:`Update`})]}):(0,X.jsxs)(X.Fragment,{children:[(0,X.jsx)(E,{className:`mr-2 shrink-0 bg-background`,size:`sm`,variant:`outline`,onClick:()=>Ee(s),children:(0,X.jsx)(C,{})}),(0,X.jsx)(`a`,{className:`block truncate font-medium hover:underline`,href:l,rel:`noreferrer`,target:`_blank`,title:c,children:c}),u&&(0,X.jsx)(`span`,{className:`ml-1 text-gray-500`,children:`(edited)`})]})}),(0,X.jsxs)(se,{children:[(0,X.jsx)(ne,{children:x(e.count||0)}),(0,X.jsx)(re,{children:S(n)})]})]},s)})})}):(0,X.jsx)(`div`,{className:`py-20 text-center text-sm text-gray-700`,children:`You have no links in your post.`})]}),!Z&&R.length>1&&(0,X.jsx)(l,{children:(0,X.jsxs)(`div`,{className:`flex w-full items-start justify-between gap-3`,children:[(0,X.jsxs)(`div`,{className:`mt-2 flex items-start gap-2 pl-4 text-sm text-green`,children:[(0,X.jsx)(v,{size:20,strokeWidth:1.5}),`Sent a broken link? You can update it!`]}),Oe>1&&(0,X.jsx)(P,{className:`pb-0`,children:(0,X.jsxs)(I,{children:[(0,X.jsx)(F,{disabled:!Ne,onClick:je}),(0,X.jsx)(N,{disabled:!Me,onClick:Ae})]})})]})})]})]})})]})};export{Ee as default};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-DAXXjFlN.js";import{t}from"./react-Bb3IsNbi.js";import{t as n}from"./jsx-runtime-CtMZ-PAS.js";import{m as r}from"./chunk-KS7C4IRE-DG9HTHQ3.js";import{c as i}from"./router-provider-DcttGCQn.js";import{Lt as a}from"./button-DiwO9Rof.js";import{An as o,B as s,D as c,H as l,It as u,K as d,Mt as f,O as p,Pt as m,U as h,et as g,k as _,kn as v}from"./index-BMhs4O3N.js";import{i as y,n as b,r as x,t as S}from"./use-reply-chain-data-DtEC2Azp.js";var C=e(t(),1),w=n(),T=()=>(0,w.jsx)(`div`,{className:`h-px w-full bg-gray-200 dark:bg-gray-950`}),E=()=>{let{postId:e}=r(),{canGoBack:t}=i(),[n,E]=(0,C.useState)(new Set),[D,O]=(0,C.useState)(new Set),[k,A]=(0,C.useState)(new Set),[j,M]=(0,C.useState)(!1),N=(0,C.useRef)(null),P=(0,C.useRef)(null),F=(0,C.useRef)(null),I=(0,C.useRef)(null),L=u(),{threadParents:R,post:z,processedReplies:B,isLoading:V,loadMoreChildren:H,loadMoreChildReplies:U,hasMoreChildren:W,hasMoreChildReplies:G}=S(decodeURIComponent(e??``),{includeAncestors:!0}),K=z?.object,q=K?.replyCount??0,[J,Y]=(0,C.useState)(!1);if((0,C.useEffect)(()=>{P.current&&R.length>0&&!J&&(P.current.scrollIntoView({behavior:`instant`,block:`start`}),Y(!0))},[R,J]),(0,C.useEffect)(()=>{F.current&&F.current.disconnect();let e=document.querySelector(`[data-scrollable-container]`);if(e)return F.current=new IntersectionObserver(async e=>{if(e[0].isIntersecting&&W&&!j){M(!0);try{await H()}catch(e){console.error(`Failed to load more top-level replies:`,e)}finally{M(!1)}}},{root:e,rootMargin:`200px`}),I.current&&F.current.observe(I.current),()=>{F.current&&F.current.disconnect()}},[W,j,H]),V)return(0,w.jsx)(_,{children:(0,w.jsxs)(`div`,{className:`mx-auto flex max-w-[620px] flex-col items-center gap-3 pt-9 lg:px-8`,children:[(0,w.jsxs)(`div`,{className:`flex w-full items-center gap-3`,children:[(0,w.jsx)(o,{className:`size-10 rounded-full`}),(0,w.jsxs)(`div`,{className:`grow pt-1`,children:[(0,w.jsx)(o,{className:`w-24`}),(0,w.jsx)(o,{className:`w-3/5`})]})]}),(0,w.jsxs)(`div`,{className:`mb-7 w-full`,children:[(0,w.jsx)(o,{}),(0,w.jsx)(o,{className:`w-4/5`}),(0,w.jsx)(o,{})]}),(0,w.jsx)(T,{}),(0,w.jsxs)(`div`,{className:`flex w-full items-center gap-3 py-3`,children:[(0,w.jsx)(o,{className:`block size-full`,containerClassName:`size-10 rounded-full overflow-hidden`}),(0,w.jsxs)(`div`,{children:[(0,w.jsx)(o,{className:`w-52`}),(0,w.jsx)(o,{className:`w-28`})]})]}),(0,w.jsx)(T,{})]})});if(!z)return(0,w.jsx)(_,{children:(0,w.jsx)(`div`,{className:`mx-auto mt-4 flex w-full max-w-[620px] flex-col items-center`,children:(0,w.jsxs)(p,{children:[(0,w.jsx)(c,{children:(0,w.jsx)(a,{})}),(0,w.jsx)(`div`,{children:`Error loading note.`})]})})});function X(){}function Z(e){E(t=>{let n=new Set(t);return n.has(e)?n.delete(e):(n.add(e),O(t=>{let n=new Set(t);return n.add(e),n})),n})}async function Q(e,t){if(!k.has(e)){A(t=>new Set(t).add(e));try{U&&await U(t)}catch(e){console.error(`Failed to load more replies for chain:`,e)}finally{A(t=>{let n=new Set(t);return n.delete(e),n})}}}return(0,w.jsx)(_,{children:(0,w.jsx)(`div`,{className:`mx-auto flex h-full max-w-[620px] flex-col`,children:(0,w.jsx)(`div`,{className:`relative flex-1`,children:(0,w.jsx)(`div`,{className:`grow overflow-y-auto`,children:(0,w.jsxs)(`div`,{className:`mx-auto px-8 pt-5 pb-10 max-lg:px-0`,children:[!R.length&&(0,w.jsx)(d,{actor:z.actor,isCurrentUser:z.object.authored,children:(0,w.jsxs)(`div`,{className:`col-[2/3] mx-auto flex w-full cursor-pointer items-center gap-3 ${t?`pt-10 max-md:pt-5`:`pt-5`}`,children:[(0,w.jsx)(`div`,{className:`relative z-10`,children:(0,w.jsx)(g,{author:z.actor,showFollowButton:!z.object.authored&&!z.actor.followedByMe})}),(0,w.jsxs)(`div`,{className:`relative z-10 flex w-full min-w-0 cursor-pointer flex-col overflow-visible text-[1.5rem]`,onClick:e=>{h(z.actor,L,e)},children:[(0,w.jsx)(`div`,{className:`flex w-full`,children:(0,w.jsx)(`span`,{className:`min-w-0 truncate font-semibold whitespace-nowrap hover:underline`,children:z.actor.name})}),(0,w.jsxs)(`div`,{className:`flex w-full`,children:[(0,w.jsx)(`span`,{className:`truncate text-gray-700 after:mx-1 after:font-normal after:text-gray-700 after:content-["·"]`,children:m(z.actor)}),(0,w.jsx)(`span`,{className:`text-gray-700`,children:l(K,!K.authored)})]})]})]})}),R.map(e=>e.object.type===`Tombstone`?(0,w.jsx)(x,{last:!1}):(0,w.jsx)(s,{actor:e.actor,allowDelete:!1,commentCount:e.object.replyCount??0,last:!1,layout:`reply`,likeCount:e.object.likeCount??0,object:e.object,repostCount:e.object.repostCount??0,type:`Note`,onClick:()=>{L(`/${e.object.type===`Article`?`reader`:`notes`}/${encodeURIComponent(e.object.id)}`)}})),(0,w.jsx)(`div`,{ref:P,className:`${t?`scroll-mt-[12px]`:`scroll-mt-[124px]`}`,children:(0,w.jsxs)(`div`,{className:`${R.length>0&&`min-h-[calc(100vh-52px)]`}`,children:[(0,w.jsx)(s,{actor:z.actor,allowDelete:!1,commentCount:q,last:!0,layout:`modal`,likeCount:K.likeCount??0,object:K,repostCount:K.repostCount,showHeader:R.length>0,showStats:!0,type:`Note`}),(0,w.jsx)(y,{object:K}),(0,w.jsx)(T,{}),(0,w.jsxs)(`div`,{ref:N,children:[B.map((e,t)=>{let r=t===B.length-1,i=e.mainReply.id,a=n.has(i),o=D.has(i),c=k.has(i),l=e.chain.length>0;return(0,w.jsxs)(C.Fragment,{children:[(0,w.jsx)(s,{actor:e.mainReply.actor,allowDelete:e.mainReply.object.authored,commentCount:e.mainReply.object.replyCount??0,isChainParent:l,isPending:f(e.mainReply.id),last:!l,layout:`reply`,likeCount:e.mainReply.object.likeCount??0,object:e.mainReply.object,parentId:K.id,repostCount:e.mainReply.object.repostCount??0,type:`Note`,onClick:()=>{L(`/notes/${encodeURIComponent(e.mainReply.id)}`)},onDelete:X}),l&&e.chain[0]&&(0,w.jsx)(s,{actor:e.chain[0].actor,allowDelete:e.chain[0].object.authored,commentCount:e.chain[0].object.replyCount??0,isChainContinuation:!0,isPending:f(e.chain[0].id),last:e.chain.length===1,layout:`reply`,likeCount:e.chain[0].object.likeCount??0,object:e.chain[0].object,parentId:K.id,repostCount:e.chain[0].object.repostCount??0,type:`Note`,onClick:()=>{L(`/notes/${encodeURIComponent(e.chain[0].id)}`)},onDelete:X},e.chain[0].id),l&&a&&e.chain.slice(1).map((n,r)=>{let i=r===e.chain.slice(1).length-1,a=G&&G(t),o=i&&a;return(0,w.jsx)(s,{actor:n.actor,allowDelete:n.object.authored,commentCount:n.object.replyCount??0,isChainContinuation:!0,isPending:f(n.id),last:i&&!o,layout:`reply`,likeCount:n.object.likeCount??0,object:n.object,parentId:K.id,repostCount:n.object.repostCount??0,type:`Note`,onClick:()=>{L(`/notes/${encodeURIComponent(n.id)}`)},onDelete:X},n.id)}),l&&e.chain.length>1&&!a&&(0,w.jsx)(b,{variant:`expand`,onClick:()=>Z(i)}),l&&a&&o&&G&&G(t)&&(0,w.jsx)(b,{loading:c,variant:`loadMore`,onClick:()=>Q(i,t)}),!r&&(0,w.jsx)(T,{})]},e.mainReply.id)}),j&&(0,w.jsx)(`div`,{className:`flex flex-col items-center justify-center text-center`,children:(0,w.jsx)(v,{size:`md`})})]}),W&&(0,w.jsx)(`div`,{ref:I,className:`h-1`})]})})]})})})})})};export{E as default};