ghost 6.55.0 → 6.56.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/components/tryghost-custom-field-types-0.0.0.tgz +0 -0
  2. package/components/tryghost-kg-default-cards-10.3.3.tgz +0 -0
  3. package/components/tryghost-kg-default-nodes-2.1.4.tgz +0 -0
  4. package/components/tryghost-kg-default-transforms-1.3.3.tgz +0 -0
  5. package/components/tryghost-kg-html-to-lexical-1.3.3.tgz +0 -0
  6. package/components/tryghost-kg-lexical-html-renderer-1.4.3.tgz +0 -0
  7. package/components/tryghost-nql-string-0.0.0.tgz +0 -0
  8. package/core/built/admin/assets/{Combination-CJG7Flp-.js → Combination-BCm9FL4o.js} +1 -1
  9. package/core/built/admin/assets/{PolarAngleAxis-BGjf7sBu.js → PolarAngleAxis-C4qtHy1B.js} +1 -1
  10. package/core/built/admin/assets/{RadialBarChart-zeFf9mBz.js → RadialBarChart-Bh09Stsj.js} +1 -1
  11. package/core/built/admin/assets/{account-migration-sjHLx5dy.js → account-migration-D3O_yVck.js} +1 -1
  12. package/core/built/admin/assets/activitypub/{account-migration-DoYXtnZ8.js → account-migration-D8FbP-Z-.js} +7 -7
  13. package/core/built/admin/assets/activitypub/activitypub.js +6 -6
  14. package/core/built/admin/assets/activitypub/{avatar-B3DEDB1l.js → avatar-11EA1VSs.js} +2 -2
  15. package/core/built/admin/assets/activitypub/{avatar-flipboard-Cqrg0XMx.js → avatar-flipboard-jfbLG-xe.js} +2 -2
  16. package/core/built/admin/assets/activitypub/{bluesky-sharing-Bxeh6MKW.js → bluesky-sharing-f1jTQe2P.js} +16 -16
  17. package/core/built/admin/assets/activitypub/{content-formatters-BpQARh28.js → content-formatters-nmTOPY9M.js} +3 -3
  18. package/core/built/admin/assets/activitypub/{copy-D9UWIAan.js → copy-BCwo9ep3.js} +2 -2
  19. package/core/built/admin/assets/activitypub/{dist-D8sFfdpC.js → dist-BEfX-0aW.js} +12 -12
  20. package/core/built/admin/assets/activitypub/{domain-CWueFW6q.js → domain-AaDlZlrA.js} +9 -9
  21. package/core/built/admin/assets/activitypub/{edit-profile-BGxPU7N5.js → edit-profile-DPi8Tl5M.js} +945 -945
  22. package/core/built/admin/assets/activitypub/{explore-DBK-u0Ch.js → explore-CxTzjILQ.js} +8 -8
  23. package/core/built/admin/assets/activitypub/{feed-Bcir5RQZ.js → feed-DPv5x2MX.js} +33 -33
  24. package/core/built/admin/assets/activitypub/{field-BV-CIT3d.js → field-DbgA8lat.js} +3 -3
  25. package/core/built/admin/assets/activitypub/{hash-BC9Q0N4c.js → hash-BWuZoYkA.js} +2 -2
  26. package/core/built/admin/assets/activitypub/{inbox-DQ4ZnC1m.js → inbox-35VDQ2K2.js} +2 -2
  27. package/core/built/admin/assets/activitypub/{inbox-yC0nfvzl.js → inbox-DSrF_i1O.js} +85 -85
  28. package/core/built/admin/assets/activitypub/{label-DTRS9TDk.js → label-CPjFBbo7.js} +3 -3
  29. package/core/built/admin/assets/activitypub/layout-CTgrezN7.js +1 -0
  30. package/core/built/admin/assets/activitypub/{moderation-Dwl9t0pb.js → moderation-BkDC1XVZ.js} +11 -11
  31. package/core/built/admin/assets/activitypub/{note-B-zKsZ7r.js → note-xEyH4xT-.js} +7 -7
  32. package/core/built/admin/assets/activitypub/{notifications-DjJZD54t.js → notifications-DClaL3ui.js} +9 -9
  33. package/core/built/admin/assets/activitypub/{preferences-CoU8vs6d.js → preferences-DpnOa-4Z.js} +20 -20
  34. package/core/built/admin/assets/activitypub/{profile-BAsaJekx.js → profile-Dvi9mz-6.js} +237 -237
  35. package/core/built/admin/assets/activitypub/{reply-CpdMeAO5.js → reply-Cs9ySd6Z.js} +2 -2
  36. package/core/built/admin/assets/activitypub/{routes-CLH3OVTP.js → routes-DFBeTnfn.js} +1139 -1150
  37. package/core/built/admin/assets/activitypub/{separator-BI1FLsYM.js → separator-C5u_VjzY.js} +3 -3
  38. package/core/built/admin/assets/activitypub/{settings-DA6pNJ-Q.js → settings-CV2fFu6D.js} +13 -13
  39. package/core/built/admin/assets/activitypub/{site-CQD42Pw5.js → site-_TgDd_EM.js} +81 -81
  40. package/core/built/admin/assets/activitypub/{step-1-DIDg4aHb.js → step-1-BfnNL2oF.js} +5 -5
  41. package/core/built/admin/assets/activitypub/{step-2-BfGe8BYt.js → step-2-DLndZkO-.js} +6 -6
  42. package/core/built/admin/assets/activitypub/{step-3-mE9spAqw.js → step-3-A-PZTtRE.js} +10 -10
  43. package/core/built/admin/assets/activitypub/{tabs-Cg0saow1.js → tabs-BUbz7tea.js} +317 -315
  44. package/core/built/admin/assets/activitypub/{topic-filter-DLHBZT93.js → topic-filter-BdX_xYYT.js} +3 -3
  45. package/core/built/admin/assets/activitypub/{use-activity-pub-queries-VzbN99u_.js → use-activity-pub-queries-EwuRemHh.js} +2 -2
  46. package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-CAwXTmqH.js → use-navigate-with-base-path-cy4ACBc4.js} +92 -90
  47. package/core/built/admin/assets/activitypub/{use-reply-chain-data-Br4aOWOh.js → use-reply-chain-data-CyFcGfan.js} +5 -5
  48. package/core/built/admin/assets/activitypub/{x-C8tAnXly.js → x-7zk8mV2p.js} +2 -2
  49. package/core/built/admin/assets/{audience-DjEWNhp3.js → audience-CkBb2LlO.js} +1 -1
  50. package/core/built/admin/assets/{automated-emails-DRy7qY-J.js → automated-emails-6t2bIRWf.js} +1 -1
  51. package/core/built/admin/assets/{automations-Bx3VcFIL.js → automations-cMllU545.js} +1 -1
  52. package/core/built/admin/assets/{bluesky-sharing-ClMd0-Ft.js → bluesky-sharing-DPGpyD-G.js} +1 -1
  53. package/core/built/admin/assets/{box-BWbhXh21.js → box-By_EgGtm.js} +1 -1
  54. package/core/built/admin/assets/{breadcrumb-BD0U2ygg.js → breadcrumb-DIfcF5ow.js} +1 -1
  55. package/core/built/admin/assets/build-CsiH26uS.js +1 -0
  56. package/core/built/admin/assets/{card-DGoDJzrn.js → card-aUHX0hyR.js} +1 -1
  57. package/core/built/admin/assets/{chart-BuRT2Y6p.js → chart-BnXyfH11.js} +1 -1
  58. package/core/built/admin/assets/{chart-helpers-fjQKRVyY.js → chart-helpers-DV0FkdcD.js} +1 -1
  59. package/core/built/admin/assets/{checkbox-CWa28lgO.js → checkbox-BIl077a0.js} +1 -1
  60. package/core/built/admin/assets/{chunk.481.6c7395a49484bb4583aa.js → chunk.332.05991a101d67f732dec3.js} +43 -42
  61. package/core/built/admin/assets/chunk.524.87b52f4fada529df2c4c.js +25 -0
  62. package/core/built/admin/assets/chunk.582.340bcca873e806cbd4bb.js +27 -0
  63. package/core/built/admin/assets/{code-editor-view-CCr0rBWS.js → code-editor-view-C0aWNwdl.js} +1 -1
  64. package/core/built/admin/assets/comments-qwhIjH3c.js +1 -0
  65. package/core/built/admin/assets/{container-BYz2Ed39.js → container-LiZf3XdY.js} +1 -1
  66. package/core/built/admin/assets/{data-list-16rkJYYi.js → data-list-CupF7bjM.js} +1 -1
  67. package/core/built/admin/assets/{date-range-select-BFp58EMk.js → date-range-select-dXc-GsVe.js} +1 -1
  68. package/core/built/admin/assets/{disabled-sources-indicator-CUxMfiPa.js → disabled-sources-indicator-DYAXW-6V.js} +1 -1
  69. package/core/built/admin/assets/dist-BUKmD51u.js +1 -0
  70. package/core/built/admin/assets/{dist-2Tnz2Yfq.js → dist-CNlMj7ML.js} +1 -1
  71. package/core/built/admin/assets/{dist-DGzPJ_bO.js → dist-Cb5RSHSg.js} +1 -1
  72. package/core/built/admin/assets/{dist-P_ohUlTi.js → dist-CqO2lWS0.js} +1 -1
  73. package/core/built/admin/assets/domain-B5ogXUBa.js +1 -0
  74. package/core/built/admin/assets/{dropzone-DlK-K2DQ.js → dropzone-BnFG7dDP.js} +1 -1
  75. package/core/built/admin/assets/{edit-profile-BKT-REJw.js → edit-profile-B07jCZy9.js} +1 -1
  76. package/core/built/admin/assets/editor-DDYSOXGN.js +8 -0
  77. package/core/built/admin/assets/{empty-indicator-oX1u1Pkn.js → empty-indicator-WB1WgT9h.js} +1 -1
  78. package/core/built/admin/assets/{explore-ClUpJZOp.js → explore-Ca1y8HW_.js} +1 -1
  79. package/core/built/admin/assets/{feed-DF92dUMP.js → feed-x4iFMBP4.js} +1 -1
  80. package/core/built/admin/assets/{field-Do7lieBA.js → field-ChCAabZg.js} +1 -1
  81. package/core/built/admin/assets/filter-sources-LdtH1e-T.js +1 -0
  82. package/core/built/admin/assets/filters-CLehPo_D.js +1 -0
  83. package/core/built/admin/assets/filters-CjVKRP8U.js +1 -0
  84. package/core/built/admin/assets/{ghost-c4057474943effc568c5659ccc4909d7.js → ghost-7f01131115186d1af84ead76e79646dd.js} +149 -129
  85. package/core/built/admin/assets/{ghost-a9c788f6f0b1ea6cf0f14ca4b13f4496.css → ghost-d38c30b866e59f2e06a357b5eb844fe5.css} +1 -1
  86. package/core/built/admin/assets/{ghost-dark-db36d795d21c61426837df40af270966.css → ghost-dark-1bffd5099ba7a749303133efacf8480b.css} +1 -1
  87. package/core/built/admin/assets/{gift-link-modal-f9VIMNDv.js → gift-link-modal-Buqh2vXh.js} +1 -1
  88. package/core/built/admin/assets/{growth-B3I6gNLm.js → growth-DajOBdN0.js} +1 -1
  89. package/core/built/admin/assets/{growth-CVw1My4S.js → growth-Dy2UOSay.js} +2 -2
  90. package/core/built/admin/assets/{inbox-CFBSu4Ed.js → inbox-BUOLDoji.js} +12 -12
  91. package/core/built/admin/assets/index-08n05-rc.js +67 -0
  92. package/core/built/admin/assets/index-DgUzgFvS.css +1 -0
  93. package/core/built/admin/assets/{inline-EMAm3okk.js → inline-Cw-gigDW.js} +1 -1
  94. package/core/built/admin/assets/input-group-uSK3XT7b.js +1 -0
  95. package/core/built/admin/assets/{input-surface-BpAjZXY5.js → input-surface-BdOe4KzO.js} +1 -1
  96. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +9535 -9527
  97. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +124 -124
  98. package/core/built/admin/assets/{koenig-lexical-f8vHRYvz.js → koenig-lexical-BFc4yFed.js} +86 -86
  99. package/core/built/admin/assets/{kpi-card-DSap9rAy.js → kpi-card-BN-E6WYX.js} +1 -1
  100. package/core/built/admin/assets/{kpi-card-DU0rn9Cj.js → kpi-card-CCt-qeWD.js} +1 -1
  101. package/core/built/admin/assets/{kpi-helpers-Dz33AV6h.js → kpi-helpers-DlxTbTs4.js} +1 -1
  102. package/core/built/admin/assets/{kpi-tabs-BtTTrKvJ.js → kpi-tabs-BlcUttpn.js} +1 -1
  103. package/core/built/admin/assets/{label-DS8Mi6G5.js → label-AVrxwmsz.js} +1 -1
  104. package/core/built/admin/assets/{label-picker-1DvSuLA1.js → label-picker-DVnpu_IF.js} +1 -1
  105. package/core/built/admin/assets/labels-DAIqKed7.js +1 -0
  106. package/core/built/admin/assets/layout-B0YLh7R9.js +1 -0
  107. package/core/built/admin/assets/link-helpers-D9LsDOkG.js +1 -0
  108. package/core/built/admin/assets/{list-page-B6ANtzkd.js → list-page-CdsnQR9N.js} +1 -1
  109. package/core/built/admin/assets/member-custom-fields-C8NpZYza.js +1 -0
  110. package/core/built/admin/assets/member-detail-CIVAdKXf.js +1 -0
  111. package/core/built/admin/assets/{members-CQpVFJu4.js → members-oLPiSkXD.js} +2 -2
  112. package/core/built/admin/assets/modals-CB7v-k3T.js +31 -0
  113. package/core/built/admin/assets/{moderation-DySbgyUS.js → moderation-CQ3urTFE.js} +1 -1
  114. package/core/built/admin/assets/newsletter-rbeDX9Wk.js +1 -0
  115. package/core/built/admin/assets/newsletters-vt3Ni1Ov.js +1 -0
  116. package/core/built/admin/assets/{note-C8kxrz6w.js → note-Dk877BTv.js} +1 -1
  117. package/core/built/admin/assets/{notifications-CgtSfX7t.js → notifications-CPlLjPxO.js} +1 -1
  118. package/core/built/admin/assets/{onboarding-route-4qtziA9d.js → onboarding-route-DdStOtjy.js} +1 -1
  119. package/core/built/admin/assets/{overview-Bf2sbznq.js → overview--4V-kx9c.js} +1 -1
  120. package/core/built/admin/assets/overview-DSLv30oz.js +1 -0
  121. package/core/built/admin/assets/{page-header-B3Wb9Jqv.js → page-header-pp4dWmOS.js} +1 -1
  122. package/core/built/admin/assets/{post-analytics-We-ko5Cb.js → post-analytics-BMJrI81R.js} +1 -1
  123. package/core/built/admin/assets/post-analytics-header-pU2m9ZuV.js +1 -0
  124. package/core/built/admin/assets/{post-analytics-provider-B6UynTGb.js → post-analytics-provider-Btml5vJI.js} +1 -1
  125. package/core/built/admin/assets/{post-share-modal-DFfO93_0.js → post-share-modal-AcUZkbfL.js} +1 -1
  126. package/core/built/admin/assets/preferences-Ru4CRPHC.js +5 -0
  127. package/core/built/admin/assets/profile-BNb1oj7D.js +1 -0
  128. package/core/built/admin/assets/{router-provider-C1R4AZ2o.js → router-provider-BmEZf6c6.js} +1 -1
  129. package/core/built/admin/assets/select-B0HteHrp.js +1 -0
  130. package/core/built/admin/assets/settings-B1C9Q3wo.js +4 -0
  131. package/core/built/admin/assets/{settings-WXNeWyU1.js → settings-BGgk7oCI.js} +1 -1
  132. package/core/built/admin/assets/{shade-app-B3heOAfz-CGXQwWeO.js → shade-app-B3heOAfz-BhQXxNkT.js} +1 -1
  133. package/core/built/admin/assets/{share-modal-DsgW3wbg.js → share-modal-BeuydaBf.js} +1 -1
  134. package/core/built/admin/assets/social-urls-DA2lXrhW.js +8 -0
  135. package/core/built/admin/assets/{sort-button-Bb_FCl7e.js → sort-button-Df4t2AL8.js} +1 -1
  136. package/core/built/admin/assets/{source-icon-BeaRxUn9.js → source-icon-ajoaKb41.js} +1 -1
  137. package/core/built/admin/assets/{stack-xiN0eQ6Z.js → stack-CIfOAAVf.js} +1 -1
  138. package/core/built/admin/assets/{stats-Bjj_kmJ1.js → stats-C_lfxZAw.js} +1 -1
  139. package/core/built/admin/assets/{stats-view-BxPbW6K1.js → stats-view-Cxot1iD8.js} +1 -1
  140. package/core/built/admin/assets/{step-1-B1e3-1F8.js → step-1-ogAA4lDr.js} +1 -1
  141. package/core/built/admin/assets/{step-2-C5WaeBJo.js → step-2-C5Xini-7.js} +1 -1
  142. package/core/built/admin/assets/{step-3-B46iVPwu.js → step-3-CZv1FV81.js} +2 -2
  143. package/core/built/admin/assets/{switch-z5Y6Uzt6.js → switch-CyQcwMAv.js} +1 -1
  144. package/core/built/admin/assets/{table-CB-4_HBJ.js → table-DFj1wiYv.js} +1 -1
  145. package/core/built/admin/assets/{tabs-CCEgKYzq.js → tabs-D4y1gqUd.js} +1 -1
  146. package/core/built/admin/assets/{tags-Cg2VJGmG.js → tags-Dmft-Y4O.js} +1 -1
  147. package/core/built/admin/assets/{text-DwtjwGkh.js → text-DU9Hv33_.js} +1 -1
  148. package/core/built/admin/assets/textarea-d9qEkMOP.js +1 -0
  149. package/core/built/admin/assets/{toggle-group-b3IlxvhV.js → toggle-group-R2QMFvXW.js} +1 -1
  150. package/core/built/admin/assets/{topic-filter-DAFT87tQ.js → topic-filter-DGDxDalo.js} +1 -1
  151. package/core/built/admin/assets/{use-analytics-data-S0FTd43s.js → use-analytics-data-C76v4LIp.js} +1 -1
  152. package/core/built/admin/assets/use-filter-params-WrdhAISv.js +1 -0
  153. package/core/built/admin/assets/{use-growth-stats-CIaiHOVb.js → use-growth-stats-aNXJOmQr.js} +1 -1
  154. package/core/built/admin/assets/{use-post-referrers-Cq2vBPrA.js → use-post-referrers-CG0SZioj.js} +1 -1
  155. package/core/built/admin/assets/{use-reply-chain-data-DBDRtGu-.js → use-reply-chain-data-RLdPKRmS.js} +1 -1
  156. package/core/built/admin/assets/{use-simple-pagination-CjYNxdwe.js → use-simple-pagination-DgcF69KI.js} +1 -1
  157. package/core/built/admin/assets/{use-tinybird-query-falHAtuK.js → use-tinybird-query-C1R_Kbmy.js} +1 -1
  158. package/core/built/admin/assets/{use-tinybird-token-D7-8ND1y.js → use-tinybird-token-C9fPjVM_.js} +1 -1
  159. package/core/built/admin/assets/{virtual-list-CvnC9zF2.js → virtual-list-BmTUzeoF.js} +1 -1
  160. package/core/built/admin/assets/{web-B_5GZRvH.js → web-BqW0b0_C.js} +1 -1
  161. package/core/built/admin/assets/web-Cy5GKMWM.js +2 -0
  162. package/core/built/admin/index.html +16 -16
  163. package/core/frontend/services/data/fetch-data.js +10 -5
  164. package/core/frontend/services/routing/api-adapter.js +115 -0
  165. package/core/frontend/services/routing/api-adapter.ts +157 -0
  166. package/core/frontend/services/routing/collection-router.js +5 -3
  167. package/core/frontend/services/routing/controllers/index.js +1 -1
  168. package/core/frontend/services/routing/controllers/rss.js +26 -31
  169. package/core/frontend/services/routing/controllers/rss.ts +66 -0
  170. package/core/frontend/services/routing/controllers/static.js +8 -7
  171. package/core/frontend/services/routing/parent-router.js +17 -4
  172. package/core/frontend/services/routing/permalink-adapter.js +26 -0
  173. package/core/frontend/services/routing/permalink-adapter.ts +23 -0
  174. package/core/frontend/services/routing/registry.js +59 -33
  175. package/core/frontend/services/routing/router-manager.js +9 -13
  176. package/core/frontend/services/routing/static-routes-router.js +4 -4
  177. package/core/frontend/services/routing/taxonomy-router.js +6 -2
  178. package/core/server/data/migrations/versions/6.56/2026-08-03-19-27-51-add-automation-run-step-id-to-automated-email-recipients.js +8 -0
  179. package/core/server/data/migrations/versions/6.56/2026-08-04-14-42-39-restrict-notification-add-permission-to-administrators.js +12 -0
  180. package/core/server/data/schema/fixtures/fixtures.json +2 -2
  181. package/core/server/data/schema/schema.js +1 -0
  182. package/core/server/models/post.js +10 -1
  183. package/core/server/services/automations/automations-repository.ts +3 -1
  184. package/core/server/services/automations/database-automations-repository.js +33 -14
  185. package/core/server/services/automations/database-automations-repository.ts +41 -15
  186. package/core/server/services/automations/get-scheduler-idempotency-key.js +13 -0
  187. package/core/server/services/automations/get-scheduler-idempotency-key.ts +8 -0
  188. package/core/server/services/automations/poll.js +3 -1
  189. package/core/server/services/automations/poll.ts +4 -1
  190. package/core/server/services/automations/service.js +5 -1
  191. package/core/server/services/automations/service.ts +5 -1
  192. package/core/server/services/gift-links/CONTEXT.md +9 -0
  193. package/core/server/services/gifts/CONTEXT.md +55 -0
  194. package/core/server/services/gifts/README.md +28 -0
  195. package/core/server/services/gifts/gift-bookshelf-repository.js +65 -45
  196. package/core/server/services/gifts/gift-bookshelf-repository.ts +203 -74
  197. package/core/server/services/gifts/gift-checkout-adapter.js +59 -0
  198. package/core/server/services/gifts/gift-checkout-offer.js +74 -0
  199. package/core/server/services/gifts/gift-checkout-offer.ts +127 -0
  200. package/core/server/services/gifts/gift-codec.js +63 -0
  201. package/core/server/services/gifts/gift-codec.ts +62 -0
  202. package/core/server/services/gifts/gift-controller.js +6 -31
  203. package/core/server/services/gifts/gift-controller.ts +6 -69
  204. package/core/server/services/gifts/gift-email-service.ts +3 -2
  205. package/core/server/services/gifts/gift-schema.js +34 -0
  206. package/core/server/services/gifts/gift-schema.ts +39 -0
  207. package/core/server/services/gifts/gift-service-wrapper.js +13 -11
  208. package/core/server/services/gifts/gift-service.js +265 -52
  209. package/core/server/services/gifts/gift-service.ts +431 -97
  210. package/core/server/services/gifts/gift.ts +16 -39
  211. package/core/server/services/link-tracking/link-click-repository.js +6 -1
  212. package/core/server/services/link-tracking/link-click-tracking-service.js +12 -3
  213. package/core/server/services/member-welcome-emails/member-welcome-email-renderer.js +4 -3
  214. package/core/server/services/member-welcome-emails/service.js +7 -3
  215. package/core/server/services/members/api.js +1 -2
  216. package/core/server/services/members/import-export/import/importer.ts +3 -2
  217. package/core/server/services/members/import-export/index.js +10 -2
  218. package/core/server/services/members/import-export/index.ts +14 -4
  219. package/core/server/services/members/members-api/controllers/router-controller.js +38 -36
  220. package/core/server/services/members/members-api/members-api.js +13 -7
  221. package/core/server/services/members/members-api/repositories/event-repository.js +4 -94
  222. package/core/server/services/members/members-api/services/member-bread-service.js +3 -3
  223. package/core/server/services/members/members-api/services/payments-service.js +6 -68
  224. package/core/server/services/members-custom-fields/schema.js +8 -1
  225. package/core/server/services/members-custom-fields/schema.ts +8 -0
  226. package/core/server/services/members-custom-fields/values-service.js +118 -2
  227. package/core/server/services/members-custom-fields/values-service.ts +134 -4
  228. package/core/server/services/oembed/oembed-service.js +44 -3
  229. package/core/server/services/posts/posts-service.js +11 -0
  230. package/core/server/services/route-settings/dynamic-routing-service.js +1 -3
  231. package/core/server/services/route-settings/route-settings-parser.js +25 -25
  232. package/core/server/services/route-settings/route-settings-parser.ts +27 -27
  233. package/core/server/services/route-settings/validation-errors.js +68 -4
  234. package/core/server/services/route-settings/validation-errors.ts +79 -4
  235. package/core/server/services/stats/posts-stats-service.js +27 -23
  236. package/core/server/services/stripe/services/webhook/charge-refunded-event-service.js +1 -1
  237. package/core/server/services/stripe/services/webhook/checkout-session-event-service.js +16 -4
  238. package/core/server/services/stripe/stripe-api.js +10 -0
  239. package/core/server/web/gift-preview/controller.js +10 -25
  240. package/core/shared/labs.js +2 -2
  241. package/package.json +10 -9
  242. package/pnpm-lock.yaml +28 -18
  243. package/pnpm-workspace.yaml +5 -4
  244. package/components/tryghost-kg-default-nodes-2.1.3.tgz +0 -0
  245. package/core/built/admin/assets/activitypub/layout-qx-bUL1k.js +0 -1
  246. package/core/built/admin/assets/chunk.524.cffd399783a519e404a9.js +0 -25
  247. package/core/built/admin/assets/chunk.582.eebf0d0b2d202bb746a5.js +0 -27
  248. package/core/built/admin/assets/comments-DyUSMUdj.js +0 -1
  249. package/core/built/admin/assets/dist-CjY-f5Z1.js +0 -1
  250. package/core/built/admin/assets/domain-C0bV2UV8.js +0 -1
  251. package/core/built/admin/assets/editor-Dp865O-4.js +0 -8
  252. package/core/built/admin/assets/filter-sources-BV2rnpfA.js +0 -1
  253. package/core/built/admin/assets/filters-CUXJ2Nm9.js +0 -1
  254. package/core/built/admin/assets/filters-DfbIWc_l.js +0 -1
  255. package/core/built/admin/assets/index-9Cw8z3rA.css +0 -1
  256. package/core/built/admin/assets/index-BGG7NckO.js +0 -67
  257. package/core/built/admin/assets/input-group-BSgG_lVw.js +0 -1
  258. package/core/built/admin/assets/labels-CDSUt4J_.js +0 -1
  259. package/core/built/admin/assets/layout-yQEi2qDM.js +0 -1
  260. package/core/built/admin/assets/link-helpers-7EYqvvHs.js +0 -1
  261. package/core/built/admin/assets/member-custom-fields-yOMHyAg9.js +0 -1
  262. package/core/built/admin/assets/member-detail-BAq7gDaa.js +0 -1
  263. package/core/built/admin/assets/modals-ReORvWnu.js +0 -31
  264. package/core/built/admin/assets/newsletter-CJQvtHqN.js +0 -1
  265. package/core/built/admin/assets/newsletters-B3QQXfGT.js +0 -1
  266. package/core/built/admin/assets/nql-BsgFMd93.js +0 -1
  267. package/core/built/admin/assets/overview-CBfePxcr.js +0 -1
  268. package/core/built/admin/assets/post-analytics-header-Bmc9su6q.js +0 -1
  269. package/core/built/admin/assets/preferences-DJPfHEGu.js +0 -5
  270. package/core/built/admin/assets/profile-DqBQp-gT.js +0 -1
  271. package/core/built/admin/assets/select-C5_xEt5b.js +0 -1
  272. package/core/built/admin/assets/settings-BwiVIXau.js +0 -4
  273. package/core/built/admin/assets/social-urls-BQPFEk1_.js +0 -8
  274. package/core/built/admin/assets/textarea-Bjccvh_E.js +0 -1
  275. package/core/built/admin/assets/use-filter-params-Gpoq2E1L.js +0 -1
  276. package/core/built/admin/assets/web-jFYWCKDn.js +0 -2
  277. package/core/server/services/gifts/gift-repository.js +0 -2
  278. package/core/server/services/gifts/gift-repository.ts +0 -29
  279. package/core/server/services/route-settings/activation-bridge.js +0 -174
  280. package/core/server/services/route-settings/activation-bridge.ts +0 -250
@@ -134,13 +134,11 @@ document.dispatchEvent(e)}},window.addEventListener("message",this.messageHandle
134
134
  if(e&&e.body){const t=e.createElement("script")
135
135
  t.setAttribute("data-ghost-preview-escape-handler","true"),t.innerHTML="\n (function() {\n // Mark that the escape handler is ready\n window.ghostPreviewEscapeHandlerReady = true;\n\n // Listen for escape key and post message to parent\n document.addEventListener('keydown', function(e) {\n if (e.key === 'Escape') {\n window.parent.postMessage({ type: 'escapeKeyPressed' }, '*');\n }\n }, true);\n\n // Also listen on window to catch all events\n window.addEventListener('keydown', function(e) {\n if (e.key === 'Escape') {\n window.parent.postMessage({ type: 'escapeKeyPressed' }, '*');\n }\n }, true);\n })();\n ",e.body.appendChild(t)}}catch(o){}},500)}willDestroy(){super.willDestroy(...arguments),this.messageHandler&&window.removeEventListener("message",this.messageHandler)}},s=r.prototype,o="setupPreview",l=[i],u=Object.getOwnPropertyDescriptor(r.prototype,"setupPreview"),c=r.prototype,d={},Object.keys(u).forEach(function(e){d[e]=u[e]}),d.enumerable=!!d.enumerable,d.configurable=!!d.configurable,("value"in d||d.initializer)&&(d.writable=!0),d=l.slice().reverse().reduce(function(e,t){return t(s,o,e)||e},d),c&&void 0!==d.initializer&&(d.value=d.initializer?d.initializer.call(c):void 0,d.initializer=void 0),void 0===d.initializer&&Object.defineProperty(s,o,d),r)
136
136
  var s,o,l,u,c,d
137
- Ember._setComponentTemplate(n,a)}),define("ghost-admin/components/editor/modals/preview/email",["exports","@glimmer/component","validator","ghost-admin/decorators/inject","ember-concurrency"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A
138
- function I(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function L(e,t,i,r,n){var a={}
137
+ Ember._setComponentTemplate(n,a)}),define("ghost-admin/components/editor/modals/preview/email",["exports","@glimmer/component","validator","ghost-admin/decorators/inject","ember-concurrency"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M
138
+ function D(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function A(e,t,i,r,n){var a={}
139
139
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
140
- const R=Ember.HTMLBars.template({id:"5iX8dwAf",block:'{"symbols":["overLimit","emailSizeKb","option","@skipAnimation","@mobile","@memberDescription","@post","@savePostTask","@memberTier","@memberStatus"],"statements":[[10,"div"],[15,0,[31,["gh-post-preview-container gh-post-preview-email-container ",[30,[36,5],[[32,5],"gh-pe-mobile-container"],null]," ",[30,[36,4],[[32,4],"fade-in"],null]]]],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-post-preview-email ",[30,[36,5],[[32,5],"gh-pe-mobile-bezel"],null]]]],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-post-preview-email-mockup ",[30,[36,5],[[32,5],"gh-post-preview-email-mockup-mobile gh-pe-mobile-screen"],null]]]],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-post-preview-email-header ",[30,[36,5],[[30,[36,6],[[32,0,["newslettersList","length"]],1],null],"gh-post-preview-multiple-newsletters"],null]]]],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-preview-email-columns"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-preview-email-group"],[12],[2,"\\n "],[10,"form"],[14,0,"gh-email-preview-newsletter-select"],[14,"data-test-email-preview-newsletter-select-section",""],[12],[2,"\\n "],[10,"label"],[14,"for","email-preview-newsletter-select"],[12],[2,"From"],[13],[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,0,["newslettersList","length"]],1],null]],null,[["default","else"],[{"statements":[[2," "],[8,"power-select",[[24,"data-test-email-preview-newsletter-select",""]],[["@selected","@options","@onChange","@triggerComponent","@triggerClass","@dropdownClass","@selectedItemComponent","@matchTriggerWidth"],[[32,0,["newsletter"]],[32,0,["newslettersList"]],[32,0,["setNewsletter"]],[30,[36,2],["gh-power-select/trigger"],null],"gh-preview-newsletter-trigger gh-input-x","gh-dropdown-x gh-publish-newsletter-dropdown gh-preview-newsletter-dropdown",[30,[36,2],["editor/modals/preview/selected-newsletter-label"],null],false]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[1,[32,3,["name"]]],[2," "],[1,[30,[36,3],["<",[30,[36,1],[[32,3,["senderEmail"]]],null],">"],null]],[13],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"p"],[14,0,"gh-preview-newsletter-name"],[14,"data-test-text","newsletter-from"],[12],[2,"\\n "],[1,[32,0,["newsletter","name"]]],[2,"\\n "],[10,"span"],[14,0,"gh-preview-email-address"],[12],[2,"<"],[1,[30,[36,1],[[32,0,["newsletter","senderEmail"]]],null]],[2,">"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-post-test-email-group"],[12],[2,"\\n "],[8,"gh-dropdown-button",[[24,"data-test-button","post-preview-test-email"]],[["@dropdownName","@classNames"],["post-preview-test-email","gh-btn gh-btn-icon gh-post-preview-email-trigger"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[1,[30,[36,0],["send-email"],null]],[2,"Test"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"gh-dropdown",[],[["@name","@classNames","@onOpen"],["post-preview-test-email","dropdown-menu gh-post-preview-email-test-dropdown",[32,0,["focusInput"]]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-post-preview-email-test"],[12],[2,"\\n "],[10,"form"],[14,0,"form-group"],[12],[2,"\\n "],[10,"label"],[14,"for","post-preview-email-input"],[12],[2,"Send test email"],[13],[2,"\\n "],[8,"input",[[24,0,"gh-input gh-input-x gh-post-preview-email-input"],[24,"placeholder","you@yoursite.com"],[24,"aria-label","Email address to receive preview"],[16,"aria-invalid",[30,[36,5],[[32,0,["sendPreviewEmailError"]],"true"],null]],[16,"aria-describedby",[30,[36,5],[[32,0,["sendPreviewEmailError"]],"sendError"],null]],[24,"data-post-preview-email-input",""],[4,[38,7],null,null],[4,[38,9],["Enter",[30,[36,8],[[32,0,["sendPreviewEmailTask"]]],null]],null]],[["@value"],[[32,0,["previewEmailAddress"]]]],null],[2,"\\n "],[10,"p"],[14,0,"description"],[12],[2,"You\'ll receive this as a "],[1,[32,6]],[2,"."],[13],[2,"\\n "],[8,"gh-task-button",[[24,"data-test-button","send-test-email"]],[["@task","@buttonText","@successText","@runningText","@class"],[[32,0,["sendPreviewEmailTask"]],"Send","Sent","Sending...","gh-btn gh-btn-icon gh-btn-primary"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,5],[[32,0,["sendPreviewEmailError"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-post-preview-email-error"],[12],[2,"\\n "],[10,"span"],[14,0,"response"],[14,1,"sendError"],[12],[1,[32,0,["sendPreviewEmailError"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"hr"],[12],[13],[2,"\\n\\n "],[10,"form"],[14,0,"gh-email-preview-newsletter-select"],[12],[2,"\\n "],[10,"label"],[14,"for","email-preview-newsletter-select"],[12],[2,"Subject"],[13],[2,"\\n "],[8,"editor/modals/preview/email/email-subject",[],[["@post","@savePostTask","@mobile"],[[32,7],[32,8],[32,5]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"editor/email-size-warning",[],[["@post"],[[32,7]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[32,1]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-email-preview-clip-container"],[12],[2,"\\n "],[1,[30,[36,0],["email-warning"],null]],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-preview-clip-title"],[12],[2,"This newsletter is "],[10,"span"],[14,0,"yellow-d1"],[12],[1,[32,2]],[2,"kB"],[13],[13],[2,"\\n "],[10,"div"],[14,0,"gh-email-preview-clip-description"],[12],[2,"Emails may get clipped in the inbox behind a “View entire message” link when they’re over 100kB."],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[1,2]}]]],[2,"\\n "],[11,"iframe"],[24,0,"gh-pe-iframe"],[24,"title","Email preview"],[24,"tabindex","0"],[24,"sandbox","allow-same-origin allow-popups allow-popups-to-escape-sandbox"],[4,[38,10],[[32,0,["renderEmailPreview"]]],null],[4,[38,11],[[32,0,["renderEmailPreview"]],[32,10],[32,9]],null],[4,[38,12],["focusin",[32,0,["focusPreviewFrame"]]],null],[4,[38,13],null,null],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["svg-jar","sender-email-address","component","concat","unless","if","gt","autofocus","perform","on-key","did-insert","did-update","on","close-dropdowns-on-click"]}',moduleName:"ghost-admin/components/editor/modals/preview/email.hbs"})
141
- let N=e.default=(a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember._tracked,p=Ember._tracked,m=Ember._tracked,h=Ember._tracked,b=Ember._tracked,f=Ember._tracked,g=Ember._action,v=Ember._action,y=(0,n.task)({drop:!0}),w=Ember._action,E=class extends t.default{constructor(){super(...arguments),I(this,"ajax",P,this),I(this,"feature",_,this),I(this,"ghostPaths",k,this),I(this,"session",O,this),I(this,"settings",j,this),I(this,"store",T,this),I(this,"config",z,this),I(this,"html",x,this),I(this,"subject",S,this),I(this,"previewEmailAddress",C,this),I(this,"sendPreviewEmailError",M,this),I(this,"newsletter",D,this),I(this,"newslettersList",A,this),this.loadNewslettersTask.perform()}get mailgunIsEnabled(){return this.config.mailgunIsConfigured||!!(this.settings.mailgunApiKey&&this.settings.mailgunDomain&&this.settings.mailgunBaseUrl)}get _audienceParams(){const{memberStatus:e,memberTier:t}=this.args
142
- if(!this.feature.previewByTier)return{memberSegment:"paid"===e?"status:-free":"status:free"}
143
- const i={member_status:e}
140
+ const I=Ember.HTMLBars.template({id:"5iX8dwAf",block:'{"symbols":["overLimit","emailSizeKb","option","@skipAnimation","@mobile","@memberDescription","@post","@savePostTask","@memberTier","@memberStatus"],"statements":[[10,"div"],[15,0,[31,["gh-post-preview-container gh-post-preview-email-container ",[30,[36,5],[[32,5],"gh-pe-mobile-container"],null]," ",[30,[36,4],[[32,4],"fade-in"],null]]]],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-post-preview-email ",[30,[36,5],[[32,5],"gh-pe-mobile-bezel"],null]]]],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-post-preview-email-mockup ",[30,[36,5],[[32,5],"gh-post-preview-email-mockup-mobile gh-pe-mobile-screen"],null]]]],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-post-preview-email-header ",[30,[36,5],[[30,[36,6],[[32,0,["newslettersList","length"]],1],null],"gh-post-preview-multiple-newsletters"],null]]]],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-preview-email-columns"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-preview-email-group"],[12],[2,"\\n "],[10,"form"],[14,0,"gh-email-preview-newsletter-select"],[14,"data-test-email-preview-newsletter-select-section",""],[12],[2,"\\n "],[10,"label"],[14,"for","email-preview-newsletter-select"],[12],[2,"From"],[13],[2,"\\n"],[6,[37,5],[[30,[36,6],[[32,0,["newslettersList","length"]],1],null]],null,[["default","else"],[{"statements":[[2," "],[8,"power-select",[[24,"data-test-email-preview-newsletter-select",""]],[["@selected","@options","@onChange","@triggerComponent","@triggerClass","@dropdownClass","@selectedItemComponent","@matchTriggerWidth"],[[32,0,["newsletter"]],[32,0,["newslettersList"]],[32,0,["setNewsletter"]],[30,[36,2],["gh-power-select/trigger"],null],"gh-preview-newsletter-trigger gh-input-x","gh-dropdown-x gh-publish-newsletter-dropdown gh-preview-newsletter-dropdown",[30,[36,2],["editor/modals/preview/selected-newsletter-label"],null],false]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[1,[32,3,["name"]]],[2," "],[1,[30,[36,3],["<",[30,[36,1],[[32,3,["senderEmail"]]],null],">"],null]],[13],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"p"],[14,0,"gh-preview-newsletter-name"],[14,"data-test-text","newsletter-from"],[12],[2,"\\n "],[1,[32,0,["newsletter","name"]]],[2,"\\n "],[10,"span"],[14,0,"gh-preview-email-address"],[12],[2,"<"],[1,[30,[36,1],[[32,0,["newsletter","senderEmail"]]],null]],[2,">"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-post-test-email-group"],[12],[2,"\\n "],[8,"gh-dropdown-button",[[24,"data-test-button","post-preview-test-email"]],[["@dropdownName","@classNames"],["post-preview-test-email","gh-btn gh-btn-icon gh-post-preview-email-trigger"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[1,[30,[36,0],["send-email"],null]],[2,"Test"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,"gh-dropdown",[],[["@name","@classNames","@onOpen"],["post-preview-test-email","dropdown-menu gh-post-preview-email-test-dropdown",[32,0,["focusInput"]]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-post-preview-email-test"],[12],[2,"\\n "],[10,"form"],[14,0,"form-group"],[12],[2,"\\n "],[10,"label"],[14,"for","post-preview-email-input"],[12],[2,"Send test email"],[13],[2,"\\n "],[8,"input",[[24,0,"gh-input gh-input-x gh-post-preview-email-input"],[24,"placeholder","you@yoursite.com"],[24,"aria-label","Email address to receive preview"],[16,"aria-invalid",[30,[36,5],[[32,0,["sendPreviewEmailError"]],"true"],null]],[16,"aria-describedby",[30,[36,5],[[32,0,["sendPreviewEmailError"]],"sendError"],null]],[24,"data-post-preview-email-input",""],[4,[38,7],null,null],[4,[38,9],["Enter",[30,[36,8],[[32,0,["sendPreviewEmailTask"]]],null]],null]],[["@value"],[[32,0,["previewEmailAddress"]]]],null],[2,"\\n "],[10,"p"],[14,0,"description"],[12],[2,"You\'ll receive this as a "],[1,[32,6]],[2,"."],[13],[2,"\\n "],[8,"gh-task-button",[[24,"data-test-button","send-test-email"]],[["@task","@buttonText","@successText","@runningText","@class"],[[32,0,["sendPreviewEmailTask"]],"Send","Sent","Sending...","gh-btn gh-btn-icon gh-btn-primary"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,5],[[32,0,["sendPreviewEmailError"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-post-preview-email-error"],[12],[2,"\\n "],[10,"span"],[14,0,"response"],[14,1,"sendError"],[12],[1,[32,0,["sendPreviewEmailError"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"hr"],[12],[13],[2,"\\n\\n "],[10,"form"],[14,0,"gh-email-preview-newsletter-select"],[12],[2,"\\n "],[10,"label"],[14,"for","email-preview-newsletter-select"],[12],[2,"Subject"],[13],[2,"\\n "],[8,"editor/modals/preview/email/email-subject",[],[["@post","@savePostTask","@mobile"],[[32,7],[32,8],[32,5]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[8,"editor/email-size-warning",[],[["@post"],[[32,7]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,5],[[32,1]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-email-preview-clip-container"],[12],[2,"\\n "],[1,[30,[36,0],["email-warning"],null]],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-preview-clip-title"],[12],[2,"This newsletter is "],[10,"span"],[14,0,"yellow-d1"],[12],[1,[32,2]],[2,"kB"],[13],[13],[2,"\\n "],[10,"div"],[14,0,"gh-email-preview-clip-description"],[12],[2,"Emails may get clipped in the inbox behind a “View entire message” link when they’re over 100kB."],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[1,2]}]]],[2,"\\n "],[11,"iframe"],[24,0,"gh-pe-iframe"],[24,"title","Email preview"],[24,"tabindex","0"],[24,"sandbox","allow-same-origin allow-popups allow-popups-to-escape-sandbox"],[4,[38,10],[[32,0,["renderEmailPreview"]]],null],[4,[38,11],[[32,0,["renderEmailPreview"]],[32,10],[32,9]],null],[4,[38,12],["focusin",[32,0,["focusPreviewFrame"]]],null],[4,[38,13],null,null],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["svg-jar","sender-email-address","component","concat","unless","if","gt","autofocus","perform","on-key","did-insert","did-update","on","close-dropdowns-on-click"]}',moduleName:"ghost-admin/components/editor/modals/preview/email.hbs"})
141
+ let L=e.default=(a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,c=Ember._tracked,d=Ember._tracked,p=Ember._tracked,m=Ember._tracked,h=Ember._tracked,b=Ember._tracked,f=Ember._action,g=Ember._action,v=(0,n.task)({drop:!0}),y=Ember._action,w=class extends t.default{constructor(){super(...arguments),D(this,"ajax",E,this),D(this,"ghostPaths",P,this),D(this,"session",_,this),D(this,"settings",k,this),D(this,"store",O,this),D(this,"config",j,this),D(this,"html",T,this),D(this,"subject",z,this),D(this,"previewEmailAddress",x,this),D(this,"sendPreviewEmailError",S,this),D(this,"newsletter",C,this),D(this,"newslettersList",M,this),this.loadNewslettersTask.perform()}get mailgunIsEnabled(){return this.config.mailgunIsConfigured||!!(this.settings.mailgunApiKey&&this.settings.mailgunDomain&&this.settings.mailgunBaseUrl)}get _audienceParams(){const{memberStatus:e,memberTier:t}=this.args,i={member_status:e}
144
142
  return t&&(i.member_tier=t),i}async renderEmailPreview(e){this._previewIframe=e,await this._fetchEmailData(),await(0,n.timeout)(100),e&&(e.contentWindow.document.open(),e.contentWindow.document.write(this.html),e.contentWindow.document.close())}focusPreviewFrame(e){const t=e?.target,i=t?.contentDocument?.body
145
143
  i?(i.hasAttribute("tabindex")||i.setAttribute("tabindex","-1"),i.focus({preventScroll:!0})):t?.contentWindow?.focus()}*sendPreviewEmailTask(){try{const e=this.args.post.id,t=this.previewEmailAddress.trim()
146
144
  if(!i.default.isEmail(t))return this.sendPreviewEmailError="Please enter a valid email",!1
@@ -160,8 +158,8 @@ let n=await this.ajax.request(i.href),[a]=n.email_previews
160
158
  e=a.html,t=a.subject}let s=(new DOMParser).parseFromString(e,"text/html"),o=s.querySelector("style"),l=o.innerHTML
161
159
  o.innerHTML=`${l}\n\n\nhtml {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.2) transparent;\n}\nhtml::-webkit-scrollbar {\n width: 8px;\n background: transparent;\n}\nhtml::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, 0.2);\n}\nhtml::-webkit-scrollbar-thumb:hover {\n background-color: rgba(0, 0, 0, 0.3);\n}\n`
162
160
  e=(new XMLSerializer).serializeToString(s.doctype)+s.documentElement.outerHTML,this.html=e,this.subject=t}*loadNewslettersTask(){const e=yield this.store.query("newsletter",{filter:"status:active"})
163
- this.newslettersList=e}setNewsletter(e){this.newsletter=e,this._previewIframe&&this.renderEmailPreview(this._previewIframe)}},P=L(E.prototype,"ajax",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=L(E.prototype,"feature",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=L(E.prototype,"ghostPaths",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=L(E.prototype,"session",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=L(E.prototype,"settings",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=L(E.prototype,"store",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=L(E.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=L(E.prototype,"html",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),S=L(E.prototype,"subject",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),C=L(E.prototype,"previewEmailAddress",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return this.session.user.email}}),M=L(E.prototype,"sendPreviewEmailError",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),D=L(E.prototype,"newsletter",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return this.args.post.newsletter||this.args.newsletter}}),A=L(E.prototype,"newslettersList",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L(E.prototype,"renderEmailPreview",[g],Object.getOwnPropertyDescriptor(E.prototype,"renderEmailPreview"),E.prototype),L(E.prototype,"focusPreviewFrame",[v],Object.getOwnPropertyDescriptor(E.prototype,"focusPreviewFrame"),E.prototype),L(E.prototype,"sendPreviewEmailTask",[y],Object.getOwnPropertyDescriptor(E.prototype,"sendPreviewEmailTask"),E.prototype),L(E.prototype,"loadNewslettersTask",[n.task],Object.getOwnPropertyDescriptor(E.prototype,"loadNewslettersTask"),E.prototype),L(E.prototype,"setNewsletter",[w],Object.getOwnPropertyDescriptor(E.prototype,"setNewsletter"),E.prototype),E)
164
- Ember._setComponentTemplate(R,N)}),define("ghost-admin/components/editor/modals/preview/email/email-subject",["exports","@glimmer/component"],function(e,t){var i,r,n,a,s
161
+ this.newslettersList=e}setNewsletter(e){this.newsletter=e,this._previewIframe&&this.renderEmailPreview(this._previewIframe)}},E=A(w.prototype,"ajax",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=A(w.prototype,"ghostPaths",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=A(w.prototype,"session",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=A(w.prototype,"settings",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=A(w.prototype,"store",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=A(w.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=A(w.prototype,"html",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),z=A(w.prototype,"subject",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),x=A(w.prototype,"previewEmailAddress",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return this.session.user.email}}),S=A(w.prototype,"sendPreviewEmailError",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),C=A(w.prototype,"newsletter",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return this.args.post.newsletter||this.args.newsletter}}),M=A(w.prototype,"newslettersList",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A(w.prototype,"renderEmailPreview",[f],Object.getOwnPropertyDescriptor(w.prototype,"renderEmailPreview"),w.prototype),A(w.prototype,"focusPreviewFrame",[g],Object.getOwnPropertyDescriptor(w.prototype,"focusPreviewFrame"),w.prototype),A(w.prototype,"sendPreviewEmailTask",[v],Object.getOwnPropertyDescriptor(w.prototype,"sendPreviewEmailTask"),w.prototype),A(w.prototype,"loadNewslettersTask",[n.task],Object.getOwnPropertyDescriptor(w.prototype,"loadNewslettersTask"),w.prototype),A(w.prototype,"setNewsletter",[y],Object.getOwnPropertyDescriptor(w.prototype,"setNewsletter"),w.prototype),w)
162
+ Ember._setComponentTemplate(I,L)}),define("ghost-admin/components/editor/modals/preview/email/email-subject",["exports","@glimmer/component"],function(e,t){var i,r,n,a,s
165
163
  function o(e,t,i,r,n){var a={}
166
164
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
167
165
  const l=Ember.HTMLBars.template({id:"//BbnTsv",block:'{"symbols":["@post","@mobile"],"statements":[[10,"div"],[14,0,"gh-email-subject"],[12],[2,"\\n"],[6,[37,3],[[32,2]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[14,0,"gh-preview-email-subject-text"],[12],[1,[32,0,["subject"]]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[11,"input"],[24,"aria-label","Email subject"],[24,0,"gh-input gh-input-x"],[16,"placeholder",[30,[36,0],[[32,1,["title"]],40],null]],[16,2,[32,0,["subject"]]],[24,4,"text"],[4,[38,1],["blur",[32,0,["setSubject"]]],null],[4,[38,2],["Enter",[32,0,["setSubject"]]],null],[12],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[10,"div"],[14,0,"error"],[12],[2,"\\n "],[8,"gh-error-message",[],[["@errors","@property"],[[32,1,["errors"]],"emailSubject"]],null],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["truncate","on","on-key","if"]}',moduleName:"ghost-admin/components/editor/modals/preview/email/email-subject.hbs"})
@@ -319,7 +317,7 @@ if(await this._validatePost()&&(!this.updateFlowModal||this.updateFlowModal.isCl
319
317
  const e=await this.updateFlowModal
320
318
  e?.afterTask&&this[e?.afterTask]&&(await(0,c.timeout)(160),this[e.afterTask].perform())}}async openPreview(e,{skipAnimation:t}={}){e?.preventDefault()
321
319
  const i=await this._validatePost()
322
- await this._ensureTiersLoaded(),!i||this.previewModal&&!this.previewModal.isClosing||(this.previewModal=this.modals.open(r.default,{publishOptions:this.publishOptions,hasDirtyAttributes:this.args.hasUnsavedChanges,saveTask:this.saveTask,togglePreviewPublish:this.togglePreviewPublish,initialPreviewFormat:this.previewFormat,changePreviewFormat:this.changePreviewFormat,initialPreviewSize:this.previewSize,changePreviewSize:this.changePreviewSize,initialPreviewAsSegment:this.previewAsSegment,changePreviewAsSegment:this.changePreviewAsSegment,initialPreviewTierSlug:this.previewTierSlug,changePreviewTier:this.changePreviewTier,tiers:this.tiers,skipAnimation:t}))}async _ensureTiersLoaded(){if(this.feature.previewByTier&&this.settings.paidMembersEnabled&&!this.loadTiersTask.lastSuccessful)try{await this.loadTiersTask.perform()}catch(e){}}togglePreview(e){e?.defaultPrevented||(e?.preventDefault(),!this.previewModal||this.previewModal.isClosing?this.publishFlowModal&&!this.publishFlowModal.isClosing?this.togglePreviewPublish():this.openPreview():this.previewModal.close())}changePreviewFormat(e){this.previewFormat=e}changePreviewSize(e){this.previewSize=e}changePreviewAsSegment(e){this.previewAsSegment=e}changePreviewTier(e){this.previewTierSlug=e}*loadTiersTask(){const e=yield this.store.query("tier",{filter:"type:paid",limit:"all"})
320
+ await this._ensureTiersLoaded(),!i||this.previewModal&&!this.previewModal.isClosing||(this.previewModal=this.modals.open(r.default,{publishOptions:this.publishOptions,hasDirtyAttributes:this.args.hasUnsavedChanges,saveTask:this.saveTask,togglePreviewPublish:this.togglePreviewPublish,initialPreviewFormat:this.previewFormat,changePreviewFormat:this.changePreviewFormat,initialPreviewSize:this.previewSize,changePreviewSize:this.changePreviewSize,initialPreviewAsSegment:this.previewAsSegment,changePreviewAsSegment:this.changePreviewAsSegment,initialPreviewTierSlug:this.previewTierSlug,changePreviewTier:this.changePreviewTier,tiers:this.tiers,skipAnimation:t}))}async _ensureTiersLoaded(){if(this.settings.paidMembersEnabled&&!this.loadTiersTask.lastSuccessful)try{await this.loadTiersTask.perform()}catch(e){}}togglePreview(e){e?.defaultPrevented||(e?.preventDefault(),!this.previewModal||this.previewModal.isClosing?this.publishFlowModal&&!this.publishFlowModal.isClosing?this.togglePreviewPublish():this.openPreview():this.previewModal.close())}changePreviewFormat(e){this.previewFormat=e}changePreviewSize(e){this.previewSize=e}changePreviewAsSegment(e){this.previewAsSegment=e}changePreviewTier(e){this.previewTierSlug=e}*loadTiersTask(){const e=yield this.store.query("tier",{filter:"type:paid",limit:"all"})
323
321
  this.tiers=e.toArray()}async togglePreviewPublish(e){e?.preventDefault(),this.previewModal&&!this.previewModal.isClosing?(this.openPublishFlow(e,{skipAnimation:!0}),await(0,c.timeout)(160),this.previewModal.close()):this.publishFlowModal&&!this.publishFlowModal.isClosing&&(this.openPreview(e,{skipAnimation:!0}),await(0,c.timeout)(160),this.publishFlowModal.close())}async _validatePost(){this.notifications.closeAlerts("post.save")
324
322
  try{return await this.publishOptions.post.validate(),!0}catch(e){if(void 0===e&&0!==this.publishOptions.post.errors.length){const e=`Validation failed: ${this.publishOptions.post.errors.messages[0]}`
325
323
  return this.notifications.showAlert(e,{type:"error",key:"post.save"}),!1}this.notifications.showAPIError(e)}}*publishTask({taskName:e="saveTask"}={}){const t=this.publishOptions.willEmailImmediately
@@ -369,7 +367,7 @@ super(...e),t=this,i="notifications",a=this,(r=n)&&Object.defineProperty(t,i,{en
369
367
  var o,l,u,c,d,p
370
368
  Ember._setComponentTemplate(a,s)}),define("ghost-admin/components/gh-app",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
371
369
  const t=Ember.HTMLBars.template({id:"8aitR5i8",block:'{"symbols":["&attrs","&default"],"statements":[[11,"div"],[24,0,"gh-app"],[17,1],[12],[2,"\\n "],[18,2,null],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":[]}',moduleName:"ghost-admin/components/gh-app.hbs"})
372
- e.default=Ember._setComponentTemplate(t,Ember._templateOnlyComponent())}),define("ghost-admin/components/gh-authors-token-input",["exports","@glimmer/component","ghost-admin/utils/escape-nql-string","ember-power-select/utils/group-utils"],function(e,t,i,r){var n,a,s,o,l,u,c
370
+ e.default=Ember._setComponentTemplate(t,Ember._templateOnlyComponent())}),define("ghost-admin/components/gh-authors-token-input",["exports","@glimmer/component","@tryghost/nql-string","ember-power-select/utils/group-utils"],function(e,t,i,r){var n,a,s,o,l,u,c
373
371
  function d(e,t,i,r,n){var a={}
374
372
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
375
373
  const p=Ember.HTMLBars.template({id:"5PPrf/Wo",block:'{"symbols":["@disabled","@onChange","@placeholder","@renderInPlace","@selected","@selectedItemComponent","@triggerClass","@triggerId"],"statements":[[8,"gh-paginated-token-input",[],[["@allowCreation","@disabled","@loadPage","@loadingMessage","@matcher","@onChange","@placeholder","@renderInPlace","@searchDebounceMs","@searchField","@searchPage","@selected","@selectedItemComponent","@sortOptions","@triggerClass","@triggerId"],[false,[32,1],[32,0,["loadAuthorsPage"]],"Loading authors...",[32,0,["matchAuthor"]],[32,2],[32,3],[32,4],[32,0,["searchDebounceMs"]],null,[32,0,["searchAuthorsPage"]],[32,5],[32,6],[32,0,["sortAuthors"]],[32,7],[32,8]]],null],[2,"\\n"]],"hasEval":false,"upvars":[]}',moduleName:"ghost-admin/components/gh-authors-token-input.hbs"}),m="count.posts",h="count.posts desc, name asc"
@@ -392,8 +390,7 @@ let z=e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.se
392
390
  if(!this.billing.isValidBillingIframeMessage(e))return
393
391
  const t=e.data
394
392
  if("billingAppReady"===t?.request)return this.billing.markBillingAppLoaded(t),void(t?.route&&this.billing.handleRouteChangeInIframe(t.route))
395
- this.billing.recordBillingAppPreReadyMessage(t),t?.route&&this.billing.handleRouteChangeInIframe(t.route),"token"===t?.request&&this._handleTokenRequest(),"forceUpgradeInfo"===t?.request&&this._handleForceUpgradeRequest(),"navigateToAdmin"===t?.request&&this.billing.navigateToAdminDestination(t.destination),t?.subscription&&await this._handleSubscriptionUpdate(t)}_postMessageToBillingIframe(e){const t=this.billing.getBillingIframe()?.contentWindow,i=this.billing.getBillingAppOrigin()
396
- t&&i&&t.postMessage(e,i)}_handleTokenRequest(){const e=()=>{this.isOwner=!1,this._postMessageToBillingIframe({request:"token",response:null})}
393
+ this.billing.recordBillingAppPreReadyMessage(t),t?.route&&this.billing.handleRouteChangeInIframe(t.route),"token"===t?.request&&this._handleTokenRequest(),"forceUpgradeInfo"===t?.request&&this._handleForceUpgradeRequest(),"navigateToAdmin"===t?.request&&this.billing.navigateToAdminDestination(t.destination),t?.subscription&&await this._handleSubscriptionUpdate(t)}_postMessageToBillingIframe(e){this.billing.postMessageToBillingApp(e)}_handleTokenRequest(){const e=()=>{this.isOwner=!1,this._postMessageToBillingIframe({request:"token",response:null})}
397
394
  if(!this.session.user?.isOwnerOnly)return void e()
398
395
  const t=this.ghostPaths.url.api("identities")
399
396
  this.ajax.request(t).then(e=>{const t=e?.identities?.[0]?.token
@@ -985,7 +982,7 @@ let c=e.default=(t=Ember.inject.service,i=Ember.computed("post.visibility"),r=Em
985
982
  super(...e),t=this,i="settings",n=this,(r=a)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),s(this,"post",null)}get selectedVisibility(){return this.get("post.visibility")||this.settings.defaultContentVisibility}init(){super.init(...arguments),this.availableVisibilities=[...u],this.availableVisibilities.push({label:"Specific tier(s)",name:"tiers"})}updateVisibility(e){if(this.post.set("visibility",e),"tiers"!==e&&this.post.set("tiers",[]),this.savePostOnChange)return this.savePostOnChange()}},a=o(n.prototype,"settings",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(n.prototype,"selectedVisibility",[i],Object.getOwnPropertyDescriptor(n.prototype,"selectedVisibility"),n.prototype),o(n.prototype,"updateVisibility",[r],Object.getOwnPropertyDescriptor(n.prototype,"updateVisibility"),n.prototype),n)
986
983
  Ember._setComponentTemplate(l,c)}),define("ghost-admin/components/gh-recipient-filter-count",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
987
984
  const t=Ember.HTMLBars.template({id:"wrLae6UW",block:'{"symbols":["@filter","@newsletter","@knownCount"],"statements":[[6,[37,0],[[32,1]],null,[["default","else"],[{"statements":[[8,"gh-members-filter-count",[],[["@filter","@newsletter","@knownCount"],[[32,1],[32,2],[32,3]]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2,"0 members\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["if"]}',moduleName:"ghost-admin/components/gh-recipient-filter-count.hbs"})
988
- e.default=Ember._setComponentTemplate(t,Ember._templateOnlyComponent())}),define("ghost-admin/components/gh-resource-select",["exports","@glimmer/component","ember-power-select/utils/group-utils","ghost-admin/utils/escape-nql-string","ember-concurrency"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p
985
+ e.default=Ember._setComponentTemplate(t,Ember._templateOnlyComponent())}),define("ghost-admin/components/gh-resource-select",["exports","@glimmer/component","ember-power-select/utils/group-utils","@tryghost/nql-string","ember-concurrency"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p
989
986
  function m(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function h(e,t,i,r,n){var a={}
990
987
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
991
988
  const b=Ember.HTMLBars.template({id:"SN5K7c6h",block:'{"symbols":["resource","@disabled","@searchMessage"],"statements":[[8,"power-select",[],[["@searchEnabled","@options","@selected","@onChange","@triggerClass","@dropdownClass","@placeholder","@renderInPlace","@disabled","@optionsComponent","@search","@searchField","@searchMessage","@searchPlaceholder"],[true,[32,0,["options"]],[32,0,["selectedOption"]],[32,0,["onChange"]],"gh-resource-select-trigger","gh-resource-select-dropdown",[32,0,["placeholderText"]],[32,0,["renderInPlace"]],[30,[36,0],[[32,2],[32,0,["fetchOptionsTask","isRunning"]]],null],[30,[36,1],["power-select/options"],null],[32,0,["searchAndSuggest"]],[32,0,["searchField"]],[32,3],[32,0,["searchPlaceholderText"]]]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[1,[32,1,["title"]]],[13],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["or","component"]}',moduleName:"ghost-admin/components/gh-resource-select.hbs"})
@@ -1013,16 +1010,17 @@ let t=this.args.triggerOffset||{}
1013
1010
  "number"==typeof t&&(t={top:t,bottom:t,left:t,right:t})
1014
1011
  let r={viewportSpy:!0,viewportTolerance:t,scrollableArea:this.args.scrollable||(0,i.default)(e)},{onEnter:n,onExit:a}=this.inViewport.watchElement(e,r)
1015
1012
  n(this.didEnterViewport.bind(this)),a(this.didExitViewport.bind(this)),this.args.registerElement?.(e)}didEnterViewport(){this.args.enter?.()}didExitViewport(){this.args.exit?.()}teardownInViewport(e){this.inViewport.stopWatching(e)}},o=l(s.prototype,"inViewport",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l(s.prototype,"setupInViewport",[n],Object.getOwnPropertyDescriptor(s.prototype,"setupInViewport"),s.prototype),l(s.prototype,"teardownInViewport",[a],Object.getOwnPropertyDescriptor(s.prototype,"teardownInViewport"),s.prototype),s)
1016
- Ember._setComponentTemplate(u,c)}),define("ghost-admin/components/gh-search-input",["exports","@glimmer/component"],function(e,t){var i,r,n,a,s,o,l
1017
- function u(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function c(e,t,i,r,n){var a={}
1013
+ Ember._setComponentTemplate(u,c)}),define("ghost-admin/components/gh-search-input",["exports","@glimmer/component","ghost-admin/utils/search"],function(e,t,i){var r,n,a,s,o,l,u,c,d
1014
+ function p(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function m(e,t,i,r,n){var a={}
1018
1015
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
1019
- const d=Ember.HTMLBars.template({id:"P9iifeDx",block:'{"symbols":["name","select","&attrs"],"statements":[[11,"div"],[17,3],[12],[2,"\\n "],[10,"div"],[14,0,"ember-power-select-search"],[12],[2,"\\n "],[8,"power-select",[],[["@search","@onChange","@onClose","@placeholder","@searchEnabled","@triggerComponent","@renderInPlace","@loadingMessage","@extra"],[[30,[36,3],[[32,0,["search","searchTask"]]],null],[32,0,["openSelected"]],[32,0,["onClose"]],"Search site",false,[30,[36,4],["gh-input-with-select/trigger"],null],true,"Loading",[30,[36,5],null,[["autofocus","inputType","inputIcon","inputIconClass"],[true,"search","search","gh-nav-search-icon"]]]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-nav-search-option"],[12],[2,"\\n "],[10,"div"],[12],[1,[30,[36,6],[[32,1,["title"]],[32,2,["searchText"]]],null]],[13],[2,"\\n"],[6,[37,1],[[30,[36,7],[[30,[36,0],[[32,1,["status"]],"draft"],null],[30,[36,0],[[32,1,["status"]],"scheduled"],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[15,0,[31,["gh-nav-search-label ",[30,[36,1],[[30,[36,0],[[32,1,["status"]],"draft"],null],"draft"],null]," ",[30,[36,1],[[30,[36,0],[[32,1,["status"]],"scheduled"],null],"scheduled"],null]]]],[12],[1,[30,[36,2],[[32,1,["status"]]],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[1,2]}]]],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["eq","if","capitalize","perform","component","hash","highlighted-text","or"]}',moduleName:"ghost-admin/components/gh-search-input.hbs"})
1020
- let p=e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember._action,a=Ember._action,s=class extends t.default{constructor(...e){super(...e),u(this,"router",o,this),u(this,"search",l,this)}openSelected(e){if(e){if(this.args.onSelected?.(e),"Posts"===e.groupName){let t=e.id.replace("post.","")
1016
+ const h=Ember.HTMLBars.template({id:"P9iifeDx",block:'{"symbols":["name","select","&attrs"],"statements":[[11,"div"],[17,3],[12],[2,"\\n "],[10,"div"],[14,0,"ember-power-select-search"],[12],[2,"\\n "],[8,"power-select",[],[["@search","@onChange","@onClose","@placeholder","@searchEnabled","@triggerComponent","@renderInPlace","@loadingMessage","@extra"],[[30,[36,3],[[32,0,["search","searchTask"]]],null],[32,0,["openSelected"]],[32,0,["onClose"]],"Search site",false,[30,[36,4],["gh-input-with-select/trigger"],null],true,"Loading",[30,[36,5],null,[["autofocus","inputType","inputIcon","inputIconClass"],[true,"search","search","gh-nav-search-icon"]]]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-nav-search-option"],[12],[2,"\\n "],[10,"div"],[12],[1,[30,[36,6],[[32,1,["title"]],[32,2,["searchText"]]],null]],[13],[2,"\\n"],[6,[37,1],[[30,[36,7],[[30,[36,0],[[32,1,["status"]],"draft"],null],[30,[36,0],[[32,1,["status"]],"scheduled"],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[15,0,[31,["gh-nav-search-label ",[30,[36,1],[[30,[36,0],[[32,1,["status"]],"draft"],null],"draft"],null]," ",[30,[36,1],[[30,[36,0],[[32,1,["status"]],"scheduled"],null],"scheduled"],null]]]],[12],[1,[30,[36,2],[[32,1,["status"]]],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[1,2]}]]],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["eq","if","capitalize","perform","component","hash","highlighted-text","or"]}',moduleName:"ghost-admin/components/gh-search-input.hbs"})
1017
+ let b=e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember._action,o=Ember._action,l=class extends t.default{constructor(...e){super(...e),p(this,"billing",u,this),p(this,"router",c,this),p(this,"search",d,this)}openSelected(e){if(e){if(this.args.onSelected?.(e),e.groupKey===i.BILLING_SEARCH_GROUP_KEY){const t=this.billing.getAdminRouteForSubRoute(e.path)
1018
+ return void(this.router.currentURL===t?this.billing.navigateToSubRoute(e.path):this.router.transitionTo(t))}if("Posts"===e.groupName){let t=e.id.replace("post.","")
1021
1019
  this.router.transitionTo("lexical-editor.edit","post",t)}if("Pages"===e.groupName){let t=e.id.replace("page.","")
1022
1020
  this.router.transitionTo("lexical-editor.edit","page",t)}if("Staff"===e.groupName){let t=e.id.replace("user.","")
1023
1021
  this.router.transitionTo(`/settings/staff/${t}`)}if("Tags"===e.groupName){let t=e.id.replace("tag.","")
1024
- this.router.transitionTo("tag",t)}}}onClose(e,t){Ember.run.later(()=>{t?.target.focus()})}},o=c(s.prototype,"router",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=c(s.prototype,"search",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c(s.prototype,"openSelected",[n],Object.getOwnPropertyDescriptor(s.prototype,"openSelected"),s.prototype),c(s.prototype,"onClose",[a],Object.getOwnPropertyDescriptor(s.prototype,"onClose"),s.prototype),s)
1025
- Ember._setComponentTemplate(d,p)}),define("ghost-admin/components/gh-segment-token-input",["exports","@glimmer/component","ghost-admin/utils/flatten-grouped-options","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l
1022
+ this.router.transitionTo("tag",t)}}}onClose(e,t){Ember.run.later(()=>{t?.target.focus()})}},u=m(l.prototype,"billing",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=m(l.prototype,"router",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=m(l.prototype,"search",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m(l.prototype,"openSelected",[s],Object.getOwnPropertyDescriptor(l.prototype,"openSelected"),l.prototype),m(l.prototype,"onClose",[o],Object.getOwnPropertyDescriptor(l.prototype,"onClose"),l.prototype),l)
1023
+ Ember._setComponentTemplate(h,b)}),define("ghost-admin/components/gh-segment-token-input",["exports","@glimmer/component","ghost-admin/utils/flatten-grouped-options","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l
1026
1024
  function u(e,t,i,r,n){var a={}
1027
1025
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
1028
1026
  const c=Ember.HTMLBars.template({id:"40tjlb+k",block:'{"symbols":["option","@disabled","@onChange","@class","@dropdownClass","@searchMessage","@placeholder"],"statements":[[8,"gh-token-input",[],[["@options","@selected","@disabled","@optionsComponent","@allowCreation","@search","@renderInPlace","@onChange","@class","@dropdownClass","@searchMessage","@placeholder"],[[32,0,["mergedOptions"]],[32,0,["selectedOptions"]],[32,2],[30,[36,1],["power-select-options-with-scroll"],[["lastReached"],[[30,[36,0],[[32,0,["loadMoreLabelsTask"]]],null]]]],false,[30,[36,2],[[32,0,["useServerSideSearch"]],[30,[36,0],[[32,0,["searchTask"]]],null],null],null],[32,0,["renderInPlace"]],[32,3],[32,4],[32,5],[32,6],[32,7]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,1,["name"]]],[2,"\\n"]],"parameters":[1]}]]],[2,"\\n"]],"hasEval":false,"upvars":["perform","component","if"]}',moduleName:"ghost-admin/components/gh-segment-token-input.hbs"})
@@ -1047,7 +1045,7 @@ Ember._setComponentTemplate(m,h)}),define("ghost-admin/components/gh-skip-link",
1047
1045
  e.default=Ember.Component.extend({tagName:"a",anchor:"",classNames:["sr-only","sr-only-focusable"],attributeBindings:["href"],href:Ember.String.htmlSafe("javascript:;"),click(){let e=document.querySelector(this.anchor)
1048
1046
  if(e){document.body.scrollTop=e.getBoundingClientRect().top
1049
1047
  let t=function(){e.removeAttribute("tabindex")}
1050
- e.setAttribute("tabindex",-1),e.focus(),e.addEventListener("blur",t),e.addEventListener("focusout",t)}}})}),define("ghost-admin/components/gh-tags-token-input",["exports","@glimmer/component","tracked-built-ins","ghost-admin/utils/escape-nql-string"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m,h
1048
+ e.setAttribute("tabindex",-1),e.focus(),e.addEventListener("blur",t),e.addEventListener("focusout",t)}}})}),define("ghost-admin/components/gh-tags-token-input",["exports","@glimmer/component","tracked-built-ins","@tryghost/nql-string"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m,h
1051
1049
  function b(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function f(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
1052
1050
  var i=e[Symbol.toPrimitive]
1053
1051
  if(void 0!==i){var r=i.call(e,t||"default")
@@ -1304,10 +1302,8 @@ return r.default.createElement(i,t)}
1304
1302
  let D=e.default=(o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember.inject.service,p=Ember.inject.service,m=Ember._action,h=class extends i.default{constructor(...e){super(...e),P(this,"ajax",b,this),P(this,"feature",f,this),P(this,"koenig",g,this),P(this,"search",v,this),P(this,"settings",y,this),P(this,"store",w,this),P(this,"config",E,this),O(this,"defaultLinks",null),O(this,"editorResource",this.koenig.resource),O(this,"ReactComponent",e=>{const t={searchLinks:async e=>{if(!e){if(this.defaultLinks)return this.defaultLinks
1305
1303
  const e=(await this.store.query("post",{filter:"status:published",fields:"id,url,title,visibility,published_at",order:"published_at desc",limit:5})).toArray().map(e=>({groupName:"Latest posts",id:e.id,title:e.title,url:e.url,visibility:e.visibility,publishedAt:e.publishedAtUTC.toISOString()}))
1306
1304
  return e.forEach(e=>(0,n.decoratePostSearchResult)(e,this.settings)),this.defaultLinks=[{label:"Latest posts",items:e}],this.defaultLinks}let t=[]
1307
- try{t=await this.search.searchTask.perform(e)}catch(r){if(!(0,a.didCancel)(r))throw r
1308
- return[]}const i=[]
1309
- return t.forEach(e=>{let t=e.options
1310
- "Posts"!==e.groupName&&"Pages"!==e.groupName||(t=t.filter(e=>"published"===e.status)),"Staff"===e.groupName&&(t=t.filter(e=>!/\/404\//.test(e.url))),0!==t.length&&("Posts"!==e.groupName&&"Pages"!==e.groupName||t.forEach(e=>(0,n.decoratePostSearchResult)(e,this.settings)),i.push({label:e.groupName,items:t}))}),i}}
1305
+ try{t=await this.search.searchTask.perform(e)}catch(i){if(!(0,a.didCancel)(i))throw i
1306
+ return[]}return(0,n.filterLinkSearchResults)(t,this.settings)}}
1311
1307
  return r.default.createElement("div",{className:["koenig-react-editor",this.args.className].filter(Boolean).join(" ")},r.default.createElement(T,{config:this.config},r.default.createElement(r.Suspense,{fallback:r.default.createElement("p",{className:"koenig-react-editor-loading"},"Loading editor...")},r.default.createElement(z,{editorResource:this.editorResource,initialEditorState:this.args.lexical,onError:this.onError,isTKEnabled:!!this.args.onTKCountChange,cardConfig:t},r.default.createElement(x,{editorResource:this.editorResource,darkMode:this.feature.nightShift,onChange:e.onChange,onBlur:e.onBlur,onFocus:e.onFocus,isSnippetsEnabled:!1,singleParagraph:!0,className:"koenig-lexical-editor-input "+(this.feature.nightShift?"dark":""),placeholderText:e.placeholderText,placeholderClassName:"koenig-lexical-editor-input-placeholder",registerAPI:this.args.registerAPI},r.default.createElement(S,{editorResource:this.editorResource,html:e.html,setHtml:e.onChangeHtml}),this.emojiPicker?r.default.createElement(C,{editorResource:this.editorResource}):null,this.args.onTKCountChange?r.default.createElement(M,{editorResource:this.editorResource,onChange:this.args.onTKCountChange}):null)))))})}get emojiPicker(){return this.args.emojiPicker??!0}onError(e){console.error(e),this.config.sentry_dsn&&t.captureException(e,{tags:{lexical:!0}})}},b=_(h.prototype,"ajax",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=_(h.prototype,"feature",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=_(h.prototype,"koenig",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=_(h.prototype,"search",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=_(h.prototype,"settings",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=_(h.prototype,"store",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=_(h.prototype,"config",[s.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_(h.prototype,"onError",[m],Object.getOwnPropertyDescriptor(h.prototype,"onError"),h.prototype),h)
1312
1308
  Ember._setComponentTemplate(j,D)}),define("ghost-admin/components/koenig-lexical-editor",["exports","@sentry/ember","@glimmer/component","react","moment-timezone","ember-concurrency","ghost-admin/decorators/inject","@tryghost/admin-x-framework/hooks"],function(e,t,i,r,n,a,s,o){var l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S
1313
1309
  function C(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function M(e,t,i,r,n){var a={}
@@ -1317,17 +1313,19 @@ if(void 0!==i){var r=i.call(e,t||"default")
1317
1313
  if("object"!=typeof r)return r
1318
1314
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
1319
1315
  return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function A(){return A=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var i=arguments[t]
1320
- for(var r in i)({}).hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},A.apply(null,arguments)}Object.defineProperty(e,"__esModule",{value:!0}),e.buildCardConfigPost=F,e.decoratePostSearchResult=N,e.default=void 0,e.getCardVisibilitySettings=U,e.offerUrls=B
1316
+ for(var r in i)({}).hasOwnProperty.call(i,r)&&(e[r]=i[r])}return e},A.apply(null,arguments)}Object.defineProperty(e,"__esModule",{value:!0}),e.buildCardConfigPost=B,e.decoratePostSearchResult=N,e.default=void 0,e.filterLinkSearchResults=U,e.getCardVisibilitySettings=F,e.offerUrls=H
1321
1317
  const I=Ember.HTMLBars.template({id:"AO6673WM",block:'{"symbols":[],"statements":[[11,"div"],[4,[38,1],[[32,0,["ReactComponent"]]],[["props"],[[30,[36,0],null,[["cardConfig"],[[32,0,["normalizedCardConfig"]]]]]]]],[12],[13]],"hasEval":false,"upvars":["hash","react-render"]}',moduleName:"ghost-admin/components/koenig-lexical-editor.hbs"})
1322
1318
  function L({...e}){return r.default.createElement("svg",A({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 16 16"},e),r.default.createElement("g",{transform:"matrix(0.6666666666666666,0,0,0.6666666666666666,0,0)"},r.default.createElement("path",{fill:"currentColor",d:"M19.5,9.5h-.75V6.75a6.75,6.75,0,0,0-13.5,0V9.5H4.5a2,2,0,0,0-2,2V22a2,2,0,0,0,2,2h15a2,2,0,0,0,2-2V11.5A2,2,0,0,0,19.5,9.5Zm-7.5,9a2,2,0,1,1,2-2A2,2,0,0,1,12,18.5ZM16.25,9a.5.5,0,0,1-.5.5H8.25a.5.5,0,0,1-.5-.5V6.75a4.25,4.25,0,0,1,8.5,0Z"})))}function R({...e}){return r.default.createElement("svg",A({xmlns:"http://www.w3.org/2000/svg",height:"24",width:"24",viewBox:"0 0 24 24"},e),r.default.createElement("g",{fill:"currentColor",class:"nc-icon-wrapper"},r.default.createElement("path",{d:"M13,10.265V5.013a9.722,9.722,0,0,1,2.6.722l1.342.662,1.327-2.69-1.345-.663A12.4,12.4,0,0,0,13,1.989V0H11V1.983c-3.537.306-5.773,2.3-5.773,5.264,0,3.726,3.174,4.85,5.773,5.577V18.09a15.77,15.77,0,0,1-4.24-.819l-1.411-.509L4.33,19.583l1.411.51A18.577,18.577,0,0,0,11,21.1V24h2V21.087c5.125-.431,5.708-3.776,5.708-5.264C18.708,12.129,15.587,10.993,13,10.265ZM8.227,7.247c0-1.6,1.6-2.1,2.773-2.249V9.69C9.1,9.092,8.227,8.523,8.227,7.247ZM13,18.072V13.4c1.857.591,2.708,1.161,2.708,2.422C15.708,16.382,15.7,17.769,13,18.072Z",fill:"currentColor"})))}function N(e,t){const i=n.default.utc(e.publishedAt).tz(t.timezone).format("D MMM YYYY")
1323
- e.metaText=i,t.membersEnabled&&e.visibility&&("members"===e.visibility?(e.MetaIcon=L,e.metaIconTitle="Members only"):"paid"===e.visibility?(e.MetaIcon=R,e.metaIconTitle="Paid-members only"):"tiers"===e.visibility&&(e.MetaIcon=R,e.metaIconTitle="Specific tiers only"))}function U(e={}){const t=e.post
1324
- return t?.isPage||"page"===t?.displayName?"web only":"web and email"}function F(e,t){if(e)return{displayName:e.displayName,isPage:e.isPage,showTitleAndFeatureImage:e.showTitleAndFeatureImage,visibility:e.visibility||t}}async function B(){let e=[]
1325
- try{e=await this.fetchOffersTask.perform()}catch(t){return[]}return e.map(e=>({label:`Offer — ${e.name}`,value:this.config.getSiteUrl(e.code)}))}class H extends r.default.Component{constructor(...e){super(...e),D(this,"state",{hasError:!1})}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){this.props.config.sentry_dsn&&t.captureException(e,{tags:{lexical:!0}}),console.error(e)}render(){return this.state.hasError?r.default.createElement("p",{className:"koenig-react-editor-error"},"Loading has failed. Try refreshing the browser!"):this.props.children}}const V=({editorResource:e,...t})=>{const{KoenigComposer:i}=e.read()
1326
- return r.default.createElement(i,t)},q=({editorResource:e,...t})=>{const{KoenigEditor:i}=e.read()
1327
- return r.default.createElement(i,t)},$=({editorResource:e,...t})=>{const{WordCountPlugin:i}=e.read()
1328
- return r.default.createElement(i,t)},Y=({editorResource:e,...t})=>{const{TKCountPlugin:i}=e.read()
1329
- return r.default.createElement(i,t)},W={useFileUpload:o.useKoenigFileUpload,fileTypes:o.koenigFileUploadTypes},K=()=>{},G=({cardConfig:e,darkMode:t,editorArgs:i,editorResource:n,isInitInstance:a,onError:s})=>r.default.createElement("div",{"data-secondary-instance":!!a,style:a?{display:"none"}:{}},r.default.createElement(V,{editorResource:n,cardConfig:e,fileUploader:W,initialEditorState:i.lexical,onError:s,darkMode:t,isTKEnabled:!0},r.default.createElement(q,{editorResource:n,cursorDidExitAtTop:a?null:i.cursorDidExitAtTop,placeholderText:a?null:i.placeholderText,darkMode:a?null:t,onChange:a?i.updateSecondaryInstanceModel:i.onChange,registerAPI:a?i.registerSecondaryAPI:i.registerAPI}),r.default.createElement($,{editorResource:n,onChange:a?K:i.updateWordCount}),r.default.createElement(Y,{editorResource:n,onChange:a?K:i.updatePostTkCount})))
1330
- let J=e.default=(l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember.inject.service,p=Ember.inject.service,m=Ember.inject.service,h=Ember.inject.service,b=Ember.inject.service,f=Ember.inject.service,g=Ember._action,v=(0,a.task)({restartable:!1}),y=(0,a.task)({restartable:!1}),w=class extends i.default{constructor(...e){super(...e),C(this,"ajax",E,this),C(this,"feature",P,this),C(this,"ghostPaths",_,this),C(this,"koenig",k,this),C(this,"membersUtils",O,this),C(this,"search",j,this),C(this,"session",T,this),C(this,"settings",z,this),C(this,"store",x,this),C(this,"config",S,this),D(this,"offers",null),D(this,"contentKey",null),D(this,"defaultLinks",null),D(this,"editorResource",this.koenig.resource),D(this,"ReactComponent",e=>{const t={defaultHeaders:{Authorization:"Client-ID 8672af113b0a8573edae3aa3713886265d9bb741d707f6c01a486cde8c278980","Accept-Version":"v1","Content-Type":"application/json","App-Pragma":"no-cache","X-Unsplash-Cache":!0}},i={unsplash:this.settings.unsplash?t.defaultHeaders:null,klipy:this.config.klipy?.apiKey?this.config.klipy:null,fetchAutocompleteLinks:async()=>{const e="page"===this.args.cardConfig?.post?.displayName?"page":"post",t=[{label:"Homepage",value:window.location.origin+"/"},{label:"Free signup",value:"#/portal/signup/free"}],i=[{label:`Share ${e}`,value:"#/share"}],r=await B.call(this)
1319
+ e.metaText=i,t.membersEnabled&&e.visibility&&("members"===e.visibility?(e.MetaIcon=L,e.metaIconTitle="Members only"):"paid"===e.visibility?(e.MetaIcon=R,e.metaIconTitle="Paid-members only"):"tiers"===e.visibility&&(e.MetaIcon=R,e.metaIconTitle="Specific tiers only"))}function U(e,t){const i=[]
1320
+ return e.forEach(e=>{let r=e.options.filter(e=>e.url)
1321
+ "Posts"!==e.groupName&&"Pages"!==e.groupName||(r=r.filter(e=>"published"===e.status)),"Staff"===e.groupName&&(r=r.filter(e=>!/\/404\//.test(e.url))),0!==r.length&&("Posts"!==e.groupName&&"Pages"!==e.groupName||r.forEach(e=>N(e,t)),i.push({label:e.groupName,items:r}))}),i}function F(e={}){const t=e.post
1322
+ return t?.isPage||"page"===t?.displayName?"web only":"web and email"}function B(e,t){if(e)return{displayName:e.displayName,isPage:e.isPage,showTitleAndFeatureImage:e.showTitleAndFeatureImage,visibility:e.visibility||t}}async function H(){let e=[]
1323
+ try{e=await this.fetchOffersTask.perform()}catch(t){return[]}return e.map(e=>({label:`Offer — ${e.name}`,value:this.config.getSiteUrl(e.code)}))}class V extends r.default.Component{constructor(...e){super(...e),D(this,"state",{hasError:!1})}static getDerivedStateFromError(){return{hasError:!0}}componentDidCatch(e){this.props.config.sentry_dsn&&t.captureException(e,{tags:{lexical:!0}}),console.error(e)}render(){return this.state.hasError?r.default.createElement("p",{className:"koenig-react-editor-error"},"Loading has failed. Try refreshing the browser!"):this.props.children}}const q=({editorResource:e,...t})=>{const{KoenigComposer:i}=e.read()
1324
+ return r.default.createElement(i,t)},$=({editorResource:e,...t})=>{const{KoenigEditor:i}=e.read()
1325
+ return r.default.createElement(i,t)},Y=({editorResource:e,...t})=>{const{WordCountPlugin:i}=e.read()
1326
+ return r.default.createElement(i,t)},W=({editorResource:e,...t})=>{const{TKCountPlugin:i}=e.read()
1327
+ return r.default.createElement(i,t)},K={useFileUpload:o.useKoenigFileUpload,fileTypes:o.koenigFileUploadTypes},G=()=>{},J=({cardConfig:e,darkMode:t,editorArgs:i,editorResource:n,isInitInstance:a,onError:s})=>r.default.createElement("div",{"data-secondary-instance":!!a,style:a?{display:"none"}:{}},r.default.createElement(q,{editorResource:n,cardConfig:e,fileUploader:K,initialEditorState:i.lexical,onError:s,darkMode:t,isTKEnabled:!0},r.default.createElement($,{editorResource:n,cursorDidExitAtTop:a?null:i.cursorDidExitAtTop,placeholderText:a?null:i.placeholderText,darkMode:a?null:t,onChange:a?i.updateSecondaryInstanceModel:i.onChange,registerAPI:a?i.registerSecondaryAPI:i.registerAPI}),r.default.createElement(Y,{editorResource:n,onChange:a?G:i.updateWordCount}),r.default.createElement(W,{editorResource:n,onChange:a?G:i.updatePostTkCount})))
1328
+ let X=e.default=(l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember.inject.service,p=Ember.inject.service,m=Ember.inject.service,h=Ember.inject.service,b=Ember.inject.service,f=Ember.inject.service,g=Ember._action,v=(0,a.task)({restartable:!1}),y=(0,a.task)({restartable:!1}),w=class extends i.default{constructor(...e){super(...e),C(this,"ajax",E,this),C(this,"feature",P,this),C(this,"ghostPaths",_,this),C(this,"koenig",k,this),C(this,"membersUtils",O,this),C(this,"search",j,this),C(this,"session",T,this),C(this,"settings",z,this),C(this,"store",x,this),C(this,"config",S,this),D(this,"offers",null),D(this,"contentKey",null),D(this,"defaultLinks",null),D(this,"editorResource",this.koenig.resource),D(this,"ReactComponent",e=>{const t={defaultHeaders:{Authorization:"Client-ID 8672af113b0a8573edae3aa3713886265d9bb741d707f6c01a486cde8c278980","Accept-Version":"v1","Content-Type":"application/json","App-Pragma":"no-cache","X-Unsplash-Cache":!0}},i={unsplash:this.settings.unsplash?t.defaultHeaders:null,klipy:this.config.klipy?.apiKey?this.config.klipy:null,fetchAutocompleteLinks:async()=>{const e="page"===this.args.cardConfig?.post?.displayName?"page":"post",t=[{label:"Homepage",value:window.location.origin+"/"},{label:"Free signup",value:"#/portal/signup/free"}],i=[{label:`Share ${e}`,value:"#/share"}],r=await H.call(this)
1331
1329
  return[...t,...(()=>{let e=[]
1332
1330
  return this.membersUtils.paidMembersEnabled&&(e=[{label:"Paid signup",value:"#/portal/signup"},{label:"Upgrade or change plan",value:"#/portal/account/plans"}]),e})(),...(()=>this.settings.donationsEnabled?[{label:"Tips and donations",value:"#/portal/support"}]:[])(),...(()=>this.membersUtils.paidMembersEnabled?[{label:"Gift subscriptions",value:"#/portal/gift"}]:[])(),...i,...(()=>this.settings.recommendationsEnabled?[{label:"Recommendations",value:"#/portal/recommendations"}]:[])(),...r]},fetchEmbed:async(e,{type:t})=>{let i=this.ghostPaths.url.api("oembed")
1333
1331
  return await this.ajax.request(i,{data:{url:e,type:t}})},fetchLabels:async()=>{let e=[]
@@ -1335,16 +1333,14 @@ try{e=await this.fetchLabelsTask.perform()}catch(t){if((0,a.didCancel)(t))return
1335
1333
  throw t}return e.map(e=>e.name)},renderLabels:!this.session.user.isContributor,feature:{transistor:this.settings.transistor,paywallImprovements:this.feature.paywallImprovements},deprecated:{headerV1:!0},membersEnabled:"all"===this.settings.membersSignupAccess,searchLinks:async e=>{if(!e){if(this.defaultLinks)return this.defaultLinks
1336
1334
  const e=(await this.store.query("post",{filter:"status:published",fields:"id,url,title,visibility,published_at",order:"published_at desc",limit:5})).toArray().map(e=>({groupName:"Latest posts",id:e.id,title:e.title,url:e.url,visibility:e.visibility,publishedAt:e.publishedAtUTC.toISOString()}))
1337
1335
  return e.forEach(e=>N(e,this.settings)),this.defaultLinks=[{label:"Latest posts",items:e}],this.defaultLinks}let t=[]
1338
- try{t=await this.search.searchTask.perform(e)}catch(r){if(!(0,a.didCancel)(r))throw r
1339
- return}const i=[]
1340
- return t.forEach(e=>{let t=e.options
1341
- "Posts"!==e.groupName&&"Pages"!==e.groupName||(t=t.filter(e=>"published"===e.status)),"Staff"===e.groupName&&(t=t.filter(e=>!/\/404\//.test(e.url))),0!==t.length&&("Posts"!==e.groupName&&"Pages"!==e.groupName||t.forEach(e=>N(e,this.settings)),i.push({label:e.groupName,items:t}))}),i},siteTitle:this.settings.title,siteDescription:this.settings.description,siteUrl:this.config.getSiteUrl("/"),siteUuid:this.config.site_uuid,stripeEnabled:(()=>{const e=!(!this.settings.stripeSecretKey||!this.settings.stripePublishableKey),t=!(!this.settings.stripeConnectSecretKey||!this.settings.stripeConnectPublishableKey)
1342
- return this.config.stripeDirect?e:e||t})(),visibilitySettings:U(e.cardConfig)},n={cardConfig:Object.assign({},i,e.cardConfig,{pinturaConfig:this.pinturaConfig,visibilitySettings:i.visibilitySettings}),darkMode:this.feature.nightShift,editorArgs:this.args,editorResource:this.editorResource,onError:this.onError}
1343
- return r.default.createElement("div",{className:["koenig-react-editor","koenig-lexical",this.args.className].filter(Boolean).join(" ")},r.default.createElement(H,{config:this.config},r.default.createElement(r.Suspense,{fallback:r.default.createElement("p",{className:"koenig-react-editor-loading"},"Loading editor...")},r.default.createElement(G,n),r.default.createElement(G,A({},n,{isInitInstance:!0})))))})}get normalizedCardConfig(){return{...this.args.cardConfig,post:F(this.args.cardConfig?.post,this.settings.defaultContentVisibility)}}get pinturaJsUrl(){return this.settings.pintura?this.config.pintura?.js||this.settings.pinturaJsUrl:null}get pinturaCSSUrl(){return this.settings.pintura?this.config.pintura?.css||this.settings.pinturaCssUrl:null}get pinturaConfig(){const e=this.getImageEditorJSUrl(),t=this.getImageEditorCSSUrl()
1336
+ try{t=await this.search.searchTask.perform(e)}catch(i){if(!(0,a.didCancel)(i))throw i
1337
+ return}return U(t,this.settings)},siteTitle:this.settings.title,siteDescription:this.settings.description,siteUrl:this.config.getSiteUrl("/"),siteUuid:this.config.site_uuid,stripeEnabled:(()=>{const e=!(!this.settings.stripeSecretKey||!this.settings.stripePublishableKey),t=!(!this.settings.stripeConnectSecretKey||!this.settings.stripeConnectPublishableKey)
1338
+ return this.config.stripeDirect?e:e||t})(),visibilitySettings:F(e.cardConfig)},n={cardConfig:Object.assign({},i,e.cardConfig,{pinturaConfig:this.pinturaConfig,visibilitySettings:i.visibilitySettings}),darkMode:this.feature.nightShift,editorArgs:this.args,editorResource:this.editorResource,onError:this.onError}
1339
+ return r.default.createElement("div",{className:["koenig-react-editor","koenig-lexical",this.args.className].filter(Boolean).join(" ")},r.default.createElement(V,{config:this.config},r.default.createElement(r.Suspense,{fallback:r.default.createElement("p",{className:"koenig-react-editor-loading"},"Loading editor...")},r.default.createElement(J,n),r.default.createElement(J,A({},n,{isInitInstance:!0})))))})}get normalizedCardConfig(){return{...this.args.cardConfig,post:B(this.args.cardConfig?.post,this.settings.defaultContentVisibility)}}get pinturaJsUrl(){return this.settings.pintura?this.config.pintura?.js||this.settings.pinturaJsUrl:null}get pinturaCSSUrl(){return this.settings.pintura?this.config.pintura?.css||this.settings.pinturaCssUrl:null}get pinturaConfig(){const e=this.getImageEditorJSUrl(),t=this.getImageEditorCSSUrl()
1344
1340
  return e&&t?{jsUrl:e,cssUrl:t}:null}getImageEditorJSUrl(){let e=this.pinturaJsUrl
1345
1341
  return e?(e.startsWith("/")&&(e=window.location.origin+this.ghostPaths.adminRoot.replace(/\/$/,"")+e),e):null}getImageEditorCSSUrl(){let e=this.pinturaCSSUrl
1346
1342
  return e?(e.startsWith("/")&&(e=window.location.origin+this.ghostPaths.adminRoot.replace(/\/$/,"")+e),e):null}onError(e){console.error(e),this.config.sentry_dsn&&t.captureException(e,{tags:{lexical:!0},contexts:{koenig:{version:window["@tryghost/koenig-lexical"]?.version}}})}*fetchOffersTask(){return this.offers||(this.offers=yield this.store.query("offer",{filter:"status:active+redemption_type:signup"})),this.offers}*fetchLabelsTask(){return this.labels||(this.labels=yield this.store.query("label",{limit:"all",fields:"id, name"})),this.labels}},E=M(w.prototype,"ajax",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=M(w.prototype,"feature",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=M(w.prototype,"ghostPaths",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=M(w.prototype,"koenig",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=M(w.prototype,"membersUtils",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=M(w.prototype,"search",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=M(w.prototype,"session",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=M(w.prototype,"settings",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=M(w.prototype,"store",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=M(w.prototype,"config",[s.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M(w.prototype,"onError",[g],Object.getOwnPropertyDescriptor(w.prototype,"onError"),w.prototype),M(w.prototype,"fetchOffersTask",[v],Object.getOwnPropertyDescriptor(w.prototype,"fetchOffersTask"),w.prototype),M(w.prototype,"fetchLabelsTask",[y],Object.getOwnPropertyDescriptor(w.prototype,"fetchLabelsTask"),w.prototype),w)
1347
- Ember._setComponentTemplate(I,J)}),define("ghost-admin/components/lf-get-outlet-state",["exports","liquid-fire/components/lf-get-outlet-state"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-append",["exports","liquid-wormhole/components/liquid-append"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-bind",["exports","liquid-fire/components/liquid-bind"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-child",["exports","liquid-fire/components/liquid-child"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-container",["exports","liquid-fire/components/liquid-container","ghost-admin/config/environment"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
1343
+ Ember._setComponentTemplate(I,X)}),define("ghost-admin/components/lf-get-outlet-state",["exports","liquid-fire/components/lf-get-outlet-state"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-append",["exports","liquid-wormhole/components/liquid-append"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-bind",["exports","liquid-fire/components/liquid-bind"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-child",["exports","liquid-fire/components/liquid-child"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-container",["exports","liquid-fire/components/liquid-container","ghost-admin/config/environment"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
1348
1344
  e.default=t.default.extend({init(){this._super(...arguments),"test"===i.default.environment&&(this.growDuration=5)}})}),define("ghost-admin/components/liquid-destination",["exports","liquid-wormhole/components/liquid-destination"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-if",["exports","liquid-fire/components/liquid-if"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-measured",["exports","liquid-fire/components/liquid-measured"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"measure",{enumerable:!0,get:function(){return t.measure}})}),define("ghost-admin/components/liquid-outlet",["exports","liquid-fire/components/liquid-outlet"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-spacer",["exports","liquid-fire/components/liquid-spacer"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-sync",["exports","liquid-fire/components/liquid-sync"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-unless",["exports","liquid-fire/components/liquid-unless"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-versions",["exports","liquid-fire/components/liquid-versions"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/liquid-wormhole",["exports","liquid-wormhole/components/liquid-wormhole"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/maybe-in-element",["exports","ember-maybe-in-element/components/maybe-in-element"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/components/member/activity-feed-empty",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
1349
1345
  const t=Ember.HTMLBars.template({id:"mNWUZ/AT",block:'{"symbols":[],"statements":[[10,"div"],[14,0,"gh-members-no-data gh-members-no-list"],[12],[2,"\\n "],[10,"div"],[14,0,"lightgrey"],[12],[1,[30,[36,0],["no-data-list"],null]],[13],[2,"\\n "],[10,"h4"],[12],[2,"Activity"],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n All events related to this member will be shown here.\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["svg-jar"]}',moduleName:"ghost-admin/components/member/activity-feed-empty.hbs"})
1350
1346
  e.default=Ember._setComponentTemplate(t,Ember._templateOnlyComponent())}),define("ghost-admin/components/member/activity-feed",["exports","@glimmer/component"],function(e,t){var i,r,n,a,s
@@ -2033,7 +2029,7 @@ e.default=(i=Ember.inject.service,r=Ember._action,n=class extends t.default{cons
2033
2029
  super(...e),t=this,i="router",n=this,(r=a)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),s(this,"availableTypes",l),s(this,"availableOrders",u)}openEditor(e){this.router.transitionTo("lexical-editor.edit","page",e.get("id"))}},a=o(n.prototype,"router",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(n.prototype,"openEditor",[r],Object.getOwnPropertyDescriptor(n.prototype,"openEditor"),n.prototype),n)}),define("ghost-admin/controllers/posts-loading",["exports","ghost-admin/decorators/inject"],function(e,t){var i,r,n,a,s,o,l,u
2034
2030
  function c(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function d(e,t,i,r,n){var a={}
2035
2031
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2036
- e.default=(i=Ember.inject.controller("posts"),r=Ember.inject.service,n=Ember.inject.service,a=class extends Ember.Controller{constructor(...e){super(...e),c(this,"postsController",s,this),c(this,"session",o,this),c(this,"ui",l,this),c(this,"config",u,this)}get availableTypes(){return this.postsController.availableTypes}get selectedType(){return this.postsController.selectedType}get selectedVisibility(){return this.postsController.selectedVisibility}get availableVisibilities(){return this.postsController.availableVisibilities}get staticTagOptions(){return this.postsController.staticTagOptions}get selectedTag(){return this.postsController.selectedTag}get staticAuthorOptions(){return this.postsController.staticAuthorOptions}get selectedAuthor(){return this.postsController.selectedAuthor}get availableOrders(){return this.postsController.availableOrders}get selectedOrder(){return this.postsController.selectedOrder}},s=d(a.prototype,"postsController",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=d(a.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=d(a.prototype,"ui",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=d(a.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a)}),define("ghost-admin/controllers/posts",["exports","ghost-admin/components/posts-list/selection-list","ghost-admin/helpers/reset-query-params","ghost-admin/utils/escape-nql-string","ghost-admin/decorators/inject"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U
2032
+ e.default=(i=Ember.inject.controller("posts"),r=Ember.inject.service,n=Ember.inject.service,a=class extends Ember.Controller{constructor(...e){super(...e),c(this,"postsController",s,this),c(this,"session",o,this),c(this,"ui",l,this),c(this,"config",u,this)}get availableTypes(){return this.postsController.availableTypes}get selectedType(){return this.postsController.selectedType}get selectedVisibility(){return this.postsController.selectedVisibility}get availableVisibilities(){return this.postsController.availableVisibilities}get staticTagOptions(){return this.postsController.staticTagOptions}get selectedTag(){return this.postsController.selectedTag}get staticAuthorOptions(){return this.postsController.staticAuthorOptions}get selectedAuthor(){return this.postsController.selectedAuthor}get availableOrders(){return this.postsController.availableOrders}get selectedOrder(){return this.postsController.selectedOrder}},s=d(a.prototype,"postsController",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=d(a.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=d(a.prototype,"ui",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=d(a.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a)}),define("ghost-admin/controllers/posts",["exports","ghost-admin/components/posts-list/selection-list","ghost-admin/helpers/reset-query-params","@tryghost/nql-string","ghost-admin/decorators/inject"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U
2037
2033
  function F(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function B(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
2038
2034
  var i=e[Symbol.toPrimitive]
2039
2035
  if(void 0!==i){var r=i.call(e,t||"default")
@@ -2707,7 +2703,7 @@ var a,s,o,l,u,c}),define("ghost-admin/routes/application",["exports","@sentry/em
2707
2703
  let h={esc:{action:"closeMenus",scope:"default"}}
2708
2704
  h[`${l.default}+s`]={action:"save",scope:"all"},h[`${l.default}+k`]={action:"openSearchModal"},h[`${l.default}+,`]={action:"openSettings"},window.React=n.default,window.React.jsx=i.jsx,window.React.jsxs=i.jsxs,window.React.Fragment=i.Fragment,window.ReactDOM=a.default
2709
2705
  e.default=Ember.Route.extend(o.default,{ajax:Ember.inject.service(),configManager:Ember.inject.service(),ghostPaths:Ember.inject.service(),notifications:Ember.inject.service(),router:Ember.inject.service(),session:Ember.inject.service(),settings:Ember.inject.service(),stateBridge:Ember.inject.service(),ui:Ember.inject.service(),billing:Ember.inject.service(),modals:Ember.inject.service(),shortcuts:h,routeAfterAuthentication:"index",init(){this._super(...arguments),this.router.on("routeDidChange",()=>{this.notifications.displayDelayed()}),this.ui.initBodyDragHandlers()},config:(0,d.inject)(),async beforeModel(e){return await this.session.setup(),"index"!==e.to?.name||this.session.isAuthenticated?this.prepareApp():(e.abort(),this.transitionTo("signin"))},async afterModel(e,t){this._super(...arguments),this.get("session.isAuthenticated")&&(this.session.appLoadTransition=t),this._appLoaded=!0},actions:{closeMenus(){this.ui.closeMenus()},didTransition(){this.session.appLoadTransition=null,this.send("closeMenus"),Ember.run.later(()=>{t.setTag("route",this.router.currentRouteName)},2)},authorizationFailed(){u.default.replaceLocation(r.default.rootURL)},save:function(){return this},error(e,t){return!(0,p.isUnauthorizedError)(e)&&(!(!(0,p.isNotFoundError)(e)||!t)||(!(0,m.isVersionMismatchError)(e)||(t&&t.abort(),this.upgradeStatus.requireUpgrade(),!this._appLoaded))&&((!(0,m.isMaintenanceError)(e)||(t&&t.abort(),this.upgradeStatus.maintenanceAlert(),!this._appLoaded))&&!(((0,p.isAjaxError)(e)||e&&e.payload&&Ember.isArray(e.payload.errors))&&(this.notifications.showAPIError(e),!t))))},openSearchModal(){if(!this.ui.isFullScreen)return this.modals.open(s.default)},openSettings(){this.ui.isFullScreen||this.router.transitionTo("/settings")}},willDestroy(){this.ui.cleanupBodyDragHandlers()},async prepareApp(){if(await this.configManager.fetchUnauthenticated(),this.config.sentry_dsn){const e=(0,c.getSentryConfig)(this.config.sentry_dsn,this.config.sentry_env,this.config.version)
2710
- t.init(e)}if(this.session.isAuthenticated){try{await this.session.populateUser()}catch(e){await this.session.invalidate()}await this.session.postAuthPreparation()}this.config.hostSettings?.forceUpgrade&&this.billing.openBillingWindow(this.router.currentURL,"/pro"),this.stateBridge.triggerSubscriptionChange({subscription:this.billing.subscription})}})}),define("ghost-admin/routes/authenticated",["exports","ember-simple-auth/configuration","ghost-admin/utils/window-proxy"],function(e,t,i){var r,n,a
2706
+ t.init(e)}if(this.session.isAuthenticated){try{await this.session.populateUser()}catch(e){await this.session.invalidate()}await this.session.postAuthPreparation()}this.config.hostSettings?.forceUpgrade&&this.billing.openBillingWindow(this.router.currentURL,this.billing.getBillingRouteFromHash()),this.stateBridge.triggerSubscriptionChange({subscription:this.billing.subscription})}})}),define("ghost-admin/routes/authenticated",["exports","ember-simple-auth/configuration","ghost-admin/utils/window-proxy"],function(e,t,i){var r,n,a
2711
2707
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2712
2708
  e.default=(r=Ember.inject.service,n=class extends Ember.Route{constructor(...e){var t,i,r,n
2713
2709
  super(...e),t=this,i="session",n=this,(r=a)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}async beforeModel(e){if(this.session.isAuthenticated)window.sessionStorage.removeItem("ghost-signin-redirect")
@@ -2842,22 +2838,33 @@ if(!Ember.isBlank(i))return`${t}:${e[t]}`}).compact().join("+")}},g=k(f.prototyp
2842
2838
  class r extends t.default{model(e){let{post_id:t}=e,i={id:t,include:["tags","authors","authors.roles","email","tiers","newsletter"].join(",")}
2843
2839
  return this.store.query("post",i).then(e=>e.get("firstObject"))}afterModel(e){super.afterModel(...arguments)
2844
2840
  const t=this.session.user,r=(0,i.pluralize)(e.constructor.modelName)
2845
- return t.isAuthorOrContributor&&!e.isAuthoredByUser(t)||t.isContributor&&!e.isDraft?this.replaceWith(r):void 0}serialize(e){return{post_id:e.id}}}e.default=r}),define("ghost-admin/routes/pro",["exports","ghost-admin/routes/authenticated","ghost-admin/decorators/inject"],function(e,t,i){var r,n,a,s,o,l,u
2846
- function c(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function d(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
2841
+ return t.isAuthorOrContributor&&!e.isAuthoredByUser(t)||t.isContributor&&!e.isDraft?this.replaceWith(r):void 0}serialize(e){return{post_id:e.id}}}e.default=r}),define("ghost-admin/routes/pro",["exports","ghost-admin/routes/authenticated"],function(e,t){var i,r,n,a
2842
+ function s(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
2847
2843
  var i=e[Symbol.toPrimitive]
2848
2844
  if(void 0!==i){var r=i.call(e,t||"default")
2849
2845
  if("object"!=typeof r)return r
2850
2846
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
2851
- return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function p(e,t,i,r,n){var a={}
2847
+ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function o(e,t,i,r,n){var a={}
2852
2848
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2853
- e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember._action,s=class extends t.default{constructor(...e){super(...e),c(this,"billing",o,this),c(this,"session",l,this),c(this,"config",u,this),d(this,"queryParams",{action:{refreshModel:!0}})}beforeModel(e){if(super.beforeModel(...arguments),!this.session.user.isOwnerOnly&&!this.config.hostSettings?.forceUpgrade)return this.transitionTo("index")
2849
+ e.default=(i=Ember.inject.service,r=Ember._action,n=class extends t.default{constructor(...e){var t,i,r,n
2850
+ super(...e),t=this,i="billing",n=this,(r=a)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),s(this,"queryParams",{action:{refreshModel:!0}})}beforeModel(e){if(super.beforeModel(...arguments),!this.billing.canAccessBilling)return this.transitionTo("index")
2854
2851
  this.billing.previousTransition=e}model(e){e.action&&(this.billing.action=e.action),this.billing.toggleProWindow(!0)}willTransition(e){let t=!1
2855
2852
  if(e){let i="string"==typeof e.to?e.to:e.intent?e.intent.url:""
2856
- i?.includes("/pro")&&(t=!0)}this.billing.toggleProWindow(t)}buildRouteInfoMetadata(){return{titleToken:"Ghost(Pro)"}}},o=p(s.prototype,"billing",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=p(s.prototype,"session",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=p(s.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p(s.prototype,"willTransition",[a],Object.getOwnPropertyDescriptor(s.prototype,"willTransition"),s.prototype),s)}),define("ghost-admin/routes/react-fallback",["exports","ghost-admin/routes/authenticated"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2853
+ i?.includes("/pro")&&(t=!0)}this.billing.toggleProWindow(t)}buildRouteInfoMetadata(){return{titleToken:"Ghost(Pro)"}}},a=o(n.prototype,"billing",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(n.prototype,"willTransition",[r],Object.getOwnPropertyDescriptor(n.prototype,"willTransition"),n.prototype),n)}),define("ghost-admin/routes/pro/index",["exports"],function(e){var t,i,r
2854
+ Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2855
+ e.default=(t=Ember.inject.service,i=class extends Ember.Route{constructor(...e){var t,i,n,a
2856
+ super(...e),t=this,i="billing",a=this,(n=r)&&Object.defineProperty(t,i,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(a):void 0})}beforeModel(e){e.to?.queryParams?.action||this.billing.navigateToSubRoute("/")}},n=i.prototype,a="billing",s=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},u={},Object.keys(o).forEach(function(e){u[e]=o[e]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=s.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},u),l&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(l):void 0,u.initializer=void 0),r=void 0===u.initializer?(Object.defineProperty(n,a,u),null):u,i)
2857
+ var n,a,s,o,l,u}),define("ghost-admin/routes/pro/pro-sub",["exports"],function(e){var t,i,r
2858
+ Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2859
+ e.default=(t=Ember.inject.service,i=class extends Ember.Route{constructor(...e){var t,i,n,a
2860
+ super(...e),t=this,i="billing",a=this,(n=r)&&Object.defineProperty(t,i,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(a):void 0})}beforeModel(e){const t=e.to?.params?.sub?.replace(/\/$/,"")
2861
+ t&&this.billing.navigateToSubRoute(`/${t}`)}},n=i.prototype,a="billing",s=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},u={},Object.keys(o).forEach(function(e){u[e]=o[e]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=s.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},u),l&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(l):void 0,u.initializer=void 0),r=void 0===u.initializer?(Object.defineProperty(n,a,u),null):u,i)
2862
+ var n,a,s,o,l,u}),define("ghost-admin/routes/react-fallback",["exports","ghost-admin/routes/authenticated"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2857
2863
  class i extends t.default{}e.default=i}),define("ghost-admin/routes/reset",["exports","ghost-admin/routes/unauthenticated"],function(e,t){var i,r,n,a,s
2858
2864
  function o(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function l(e,t,i,r,n){var a={}
2859
2865
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2860
- e.default=(i=Ember.inject.service,r=Ember.inject.service,n=class extends t.default{constructor(...e){super(...e),o(this,"notifications",a,this),o(this,"session",s,this)}beforeModel(){this.session.isAuthenticated&&this.notifications.showAlert("You can't reset your password while you're signed in.",{type:"warn",delayed:!0,key:"password.reset.signed-in"}),super.beforeModel(...arguments)}setupController(e,t){e.token=t.token}deactivate(){super.deactivate(...arguments),this.controller.clearData()}},a=l(n.prototype,"notifications",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=l(n.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n)}),define("ghost-admin/routes/restore-posts",["exports","ghost-admin/routes/authenticated"],function(e,t){var i,r,n
2866
+ e.default=(i=Ember.inject.service,r=Ember.inject.service,n=class extends t.default{constructor(...e){super(...e),o(this,"notifications",a,this),o(this,"session",s,this)}beforeModel(){this.session.isAuthenticated&&this.notifications.showAlert("You can't reset your password while you're signed in.",{type:"warn",delayed:!0,key:"password.reset.signed-in"}),super.beforeModel(...arguments)}setupController(e,t){e.token=t.token}deactivate(){super.deactivate(...arguments),this.controller.clearData()}},a=l(n.prototype,"notifications",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=l(n.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n)})
2867
+ define("ghost-admin/routes/restore-posts",["exports","ghost-admin/routes/authenticated"],function(e,t){var i,r,n
2861
2868
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2862
2869
  e.default=(i=Ember.inject.service,r=class extends t.default{constructor(...e){var t,i,r,a
2863
2870
  super(...e),t=this,i="localRevisions",a=this,(r=n)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}model(){return this.localRevisions.findAll()}},a=r.prototype,s="localRevisions",o=[i],l={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(l).forEach(function(e){c[e]=l[e]}),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=o.slice().reverse().reduce(function(e,t){return t(a,s,e)||e},c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),n=void 0===c.initializer?(Object.defineProperty(a,s,c),null):c,r)
@@ -2869,8 +2876,7 @@ let e=this.ghostPaths.url.api("authentication","setup")
2869
2876
  return this.ajax.request(e).then(e=>{let[t]=e.setup
2870
2877
  if(t.status)return this.transitionTo("signin")
2871
2878
  {let e=this.controllerFor("setup")
2872
- t.title&&e.set("blogTitle",t.title.replace(/&apos;/gim,"'")),t.name&&e.set("name",t.name.replace(/&apos;/gim,"'")),t.email&&e.set("email",t.email)}})}deactivate(){super.deactivate(...arguments),this.controllerFor("setup").set("password","")}buildRouteInfoMetadata(){return{titleToken:"Setup",bodyClasses:["unauthenticated-route"],mainClasses:["gh-main-white"]}}},s=d(a.prototype,"ghostPaths",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=d(a.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=d(a.prototype,"ajax",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=d(a.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a)})
2873
- define("ghost-admin/routes/setup/index",["exports"],function(e){var t,i,r
2879
+ t.title&&e.set("blogTitle",t.title.replace(/&apos;/gim,"'")),t.name&&e.set("name",t.name.replace(/&apos;/gim,"'")),t.email&&e.set("email",t.email)}})}deactivate(){super.deactivate(...arguments),this.controllerFor("setup").set("password","")}buildRouteInfoMetadata(){return{titleToken:"Setup",bodyClasses:["unauthenticated-route"],mainClasses:["gh-main-white"]}}},s=d(a.prototype,"ghostPaths",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=d(a.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=d(a.prototype,"ajax",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=d(a.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a)}),define("ghost-admin/routes/setup/index",["exports"],function(e){var t,i,r
2874
2880
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2875
2881
  e.default=(t=Ember.inject.service,i=class extends Ember.Route{constructor(...e){var t,i,n,a
2876
2882
  super(...e),t=this,i="router",a=this,(n=r)&&Object.defineProperty(t,i,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(a):void 0})}beforeModel(){super.beforeModel(...arguments),this.router.transitionTo("setup.one")}},n=i.prototype,a="router",s=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},u={},Object.keys(o).forEach(function(e){u[e]=o[e]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=s.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},u),l&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(l):void 0,u.initializer=void 0),r=void 0===u.initializer?(Object.defineProperty(n,a,u),null):u,i)
@@ -3022,7 +3028,8 @@ if(void 0!==i){var r=i.call(e,t||"default")
3022
3028
  if("object"!=typeof r)return r
3023
3029
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
3024
3030
  return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3025
- class r extends t.default{constructor(...e){super(...e),i(this,"attrs",{createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}}e.default=r}),define("ghost-admin/serializers/tag",["exports","ghost-admin/serializers/application","ember-inflector"],function(e,t,i){function r(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3031
+ class r extends t.default{constructor(...e){super(...e),i(this,"attrs",{createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}}e.default=r})
3032
+ define("ghost-admin/serializers/tag",["exports","ghost-admin/serializers/application","ember-inflector"],function(e,t,i){function r(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3026
3033
  var i=e[Symbol.toPrimitive]
3027
3034
  if(void 0!==i){var r=i.call(e,t||"default")
3028
3035
  if("object"!=typeof r)return r
@@ -3036,8 +3043,7 @@ if(void 0!==i){var r=i.call(e,t||"default")
3036
3043
  if("object"!=typeof r)return r
3037
3044
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
3038
3045
  return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3039
- class r extends t.default{constructor(...e){super(...e),i(this,"primaryKey","name"),i(this,"attrs",{gscanErrors:{key:"errors"}})}}e.default=r})
3040
- define("ghost-admin/serializers/tier",["exports","ghost-admin/serializers/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3046
+ class r extends t.default{constructor(...e){super(...e),i(this,"primaryKey","name"),i(this,"attrs",{gscanErrors:{key:"errors"}})}}e.default=r}),define("ghost-admin/serializers/tier",["exports","ghost-admin/serializers/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3041
3047
  class i extends t.default{serialize(){let e=super.serialize(...arguments)
3042
3048
  return e?.monthly_price&&(e.monthly_price=Math.round(e.monthly_price)),e?.yearly_price&&(e.yearly_price=Math.round(e.yearly_price)),e}}e.default=i}),define("ghost-admin/serializers/user",["exports","ghost-admin/serializers/application","@ember-data/serializer/rest","ember-inflector"],function(e,t,i,r){function n(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3043
3049
  var i=e[Symbol.toPrimitive]
@@ -3095,27 +3101,29 @@ let s=y.test(n.url),o=this.get("session.isAuthenticated"),l=this.isUnauthorizedE
3095
3101
  return s&&(this._responseServer=i.server),o&&s&&(l||u&&"Authorization failed"===r.errors?.[0].message)&&(this.skipSessionDeletion=!0,this.session.invalidate()),super.handleResponse(...arguments)}normalizeErrorResponse(e,t,i){if(i&&"object"==typeof i){let e=i.error||i.errors||i.message||void 0
3096
3102
  e&&(Ember.isArray(e)||(e=[e]),i.errors=e.map(function(e){return"string"==typeof e?{message:e}:e}))}return super.normalizeErrorResponse(e,t,i)}isTwoFactorTokenRequiredError(e,t,i){return B(e,i)}isVersionMismatchError(e,t,i){return P(e,i)}isServerUnreachableError(e){return j(e)}isRequestEntityTooLargeError(e){return z(e)}isUnsupportedMediaTypeError(e){return S(e)}isDataImportError(e){return k(e)}isMaintenanceError(e,t,i){return D(e)}isThemeValidationError(e,t,i){return I(e,i)}isHostLimitError(e,t,i){return R(e,i)}isEmailError(e,t,i){return U(e,i)}isAcceptedResponse(e){return V(e)}},p=v(d.prototype,"feature",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=v(d.prototype,"session",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=v(d.prototype,"upgradeStatus",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=v(d.prototype,"config",[s.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d)
3097
3103
  q.reopen({contentType:"application/json; charset=UTF-8"})
3098
- e.default=q}),define("ghost-admin/services/billing",["exports","@sentry/ember","ghost-admin/decorators/inject"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N
3099
- function U(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function F(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3104
+ e.default=q}),define("ghost-admin/services/billing",["exports","@sentry/ember","ghost-admin/decorators/inject"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U,F
3105
+ function B(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function H(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3100
3106
  var i=e[Symbol.toPrimitive]
3101
3107
  if(void 0!==i){var r=i.call(e,t||"default")
3102
3108
  if("object"!=typeof r)return r
3103
3109
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
3104
- return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function B(e,t,i,r,n){var a={}
3110
+ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function V(e,t,i,r,n){var a={}
3105
3111
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3106
- const H=[1e3],V="preload",q="user_open",$=Object.freeze(Object.assign(Object.create(null),{theme:"/settings/design/change-theme",analytics:"/settings/analytics",staff:"/settings/staff",stripe:"/settings/stripe-connect",integrations:"/settings/integrations"}))
3107
- e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember._tracked,l=Ember._tracked,u=Ember._tracked,c=Ember._tracked,d=Ember._tracked,p=Ember._tracked,m=Ember._tracked,h=Ember._tracked,b=Ember._tracked,f=Ember._tracked,g=Ember._tracked,v=Ember._tracked,y=Ember._tracked,w=class extends Ember.Service{constructor(...e){super(...e),U(this,"feature",E,this),U(this,"ghostPaths",P,this),U(this,"router",_,this),U(this,"store",k,this),U(this,"config",O,this),F(this,"billingRouteRoot","#/pro"),U(this,"billingWindowOpen",j,this),U(this,"subscription",T,this),U(this,"previousRoute",z,this),U(this,"action",x,this),U(this,"ownerUser",S,this),U(this,"billingAppLoaded",C,this),U(this,"billingAppLoadFailureReported",M,this),U(this,"billingAppPreReadyMessageCount",D,this),U(this,"billingAppPreReadyMessageTypes",A,this),U(this,"billingAppLastPreReadyMessageType",I,this),U(this,"billingAppReadyReceivedAt",L,this),U(this,"billingAppReadyPayload",R,this),U(this,"billingAppPreloadFailure",N,this),F(this,"billingAppLoadTimeout",null),F(this,"billingAppRetryTimeout",null),F(this,"billingAppLoadAttempts",0),F(this,"billingAppLoadTimeoutMs",1e4),F(this,"billingAppLoadRetryDelaysMs",H),F(this,"billingAppLoadAttemptId",null),F(this,"billingAppLoadAttemptSource",V),F(this,"billingAppIframeReloadReason",null),F(this,"billingAppLoadAttemptSequence",0),F(this,"billingAppIframeSrcSetAt",null)
3108
- F(this,"billingAppIframeLoadFired",!1),F(this,"_loadListenerAttachedTo",null)}willDestroy(){super.willDestroy(...arguments),this.clearBillingAppLoadMonitor()}handleRouteChangeInIframe(e){if(this.billingWindowOpen){let t=this.billingRouteRoot
3112
+ const q=[1e3],$="preload",Y="user_open",W=Object.freeze(Object.assign(Object.create(null),{theme:"/settings/design/change-theme",analytics:"/settings/analytics",staff:"/settings/staff",stripe:"/settings/stripe-connect",integrations:"/settings/integrations"}))
3113
+ e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember._tracked,u=Ember._tracked,c=Ember._tracked,d=Ember._tracked,p=Ember._tracked,m=Ember._tracked,h=Ember._tracked,b=Ember._tracked,f=Ember._tracked,g=Ember._tracked,v=Ember._tracked,y=Ember._tracked,w=Ember._tracked,E=class extends Ember.Service{constructor(...e){super(...e),B(this,"feature",P,this),B(this,"ghostPaths",_,this),B(this,"router",k,this),B(this,"session",O,this),B(this,"store",j,this),B(this,"config",T,this),H(this,"billingRouteRoot","#/pro"),B(this,"billingWindowOpen",z,this),B(this,"subscription",x,this),B(this,"previousRoute",S,this),B(this,"action",C,this),B(this,"ownerUser",M,this),B(this,"billingAppLoaded",D,this),B(this,"billingAppLoadFailureReported",A,this),B(this,"billingAppPreReadyMessageCount",I,this),B(this,"billingAppPreReadyMessageTypes",L,this),B(this,"billingAppLastPreReadyMessageType",R,this),B(this,"billingAppReadyReceivedAt",N,this),B(this,"billingAppReadyPayload",U,this),B(this,"billingAppPreloadFailure",F,this),H(this,"billingAppLoadTimeout",null),H(this,"billingAppRetryTimeout",null),H(this,"billingAppLoadAttempts",0),H(this,"billingAppLoadTimeoutMs",1e4),H(this,"billingAppLoadRetryDelaysMs",q),H(this,"billingAppLoadAttemptId",null),H(this,"billingAppLoadAttemptSource",$),H(this,"billingAppIframeReloadReason",null),H(this,"billingAppLoadAttemptSequence",0)
3114
+ H(this,"billingAppIframeSrcSetAt",null),H(this,"billingAppIframeLoadFired",!1),H(this,"billingAppIframeSrcSubRoute",null),H(this,"pendingSubRoute",null),H(this,"_loadListenerAttachedTo",null)}willDestroy(){super.willDestroy(...arguments),this.clearBillingAppLoadMonitor()}get canAccessBilling(){return!!this.config.hostSettings?.forceUpgrade||Boolean(this.config.hostSettings?.billing?.enabled)&&Boolean(this.session.user?.isOwnerOnly)}getAdminRouteForSubRoute(e){return this.billingRouteRoot.replace(/^#/,"")+("/"===e?"":e)}getBillingRouteFromHash(){const e=window.location.hash,t=this.billingRouteRoot
3115
+ return e===t||e.startsWith(`${t}/`)||e.startsWith(`${t}?`)?e.replace(/^#/,""):null}handleRouteChangeInIframe(e){if(this.billingWindowOpen){let t=this.billingRouteRoot
3109
3116
  "/"!==e&&(t+=e),window.location.hash!==t&&window.history.replaceState(window.history.state,"",t)}}navigateToAdminDestination(e){if("string"!=typeof e)return
3110
3117
  const t=this._resolveAdminDestinationRoute(e)
3111
- t&&this.router.transitionTo(t)}_resolveAdminDestinationRoute(e){return"newsletters"===e?this.feature.automations?"/settings/emails":"/settings/newsletters":$[e]??null}_isBillingIframeLoaded(){return null!==this.getBillingIframe()&&this.getBillingIframe().contentWindow}startBillingAppLoadMonitor(e={}){const{source:t=this.billingAppLoadAttemptSource}=e
3118
+ t&&this.router.transitionTo(t)}_resolveAdminDestinationRoute(e){return"newsletters"===e?this.feature.automations?"/settings/emails":"/settings/newsletters":W[e]??null}startBillingAppLoadMonitor(e={}){const{source:t=this.billingAppLoadAttemptSource}=e
3112
3119
  this.billingAppLoadTimeout||this.billingAppRetryTimeout?this.billingAppLoadAttemptSource=t:((this.billingAppLoaded||this.billingAppLoadFailureReported)&&(this.billingAppLoaded=!1,this.billingAppLoadAttempts=0,this.billingAppLoadFailureReported=!1,this.resetBillingAppLoadDiagnostics()),this.billingAppLoadAttemptSource=t,this.billingAppLoadAttempts+=1,this.billingAppLoadTimeout=setTimeout(()=>{this.billingAppLoadTimeout=null,this.handleBillingAppLoadTimeout()},this.billingAppLoadTimeoutMs))}handleBillingAppLoadTimeout(){const e=this.billingAppLoadRetryDelaysMs[this.billingAppLoadAttempts-1]
3113
3120
  void 0===e?this.reportBillingAppLoadFailure():this.billingAppRetryTimeout=setTimeout(()=>{this.billingAppRetryTimeout=null
3114
3121
  const e=this.billingWindowOpen?"retry":this.billingAppLoadAttemptSource
3115
3122
  this.reloadBillingIframe({source:e,reloadReason:"timeout_retry"}),this.startBillingAppLoadMonitor({source:e})},e)}setBillingIframeSrc(e={}){const t=this.getBillingIframe()
3116
3123
  if(!t)return
3117
- const{source:i=this.billingAppLoadAttemptSource||V,reloadReason:r="set_src"}=e
3118
- this._loadListenerAttachedTo!==t&&"function"==typeof t.addEventListener&&(t.addEventListener("load",()=>{this.billingAppIframeLoadFired=!0}),this._loadListenerAttachedTo=t),this.billingAppLoadAttemptSequence+=1,this.billingAppLoadAttemptId=`${Date.now()}-${this.billingAppLoadAttemptSequence}`,this.billingAppLoadAttemptSource=i,this.billingAppIframeReloadReason=r,this.billingAppIframeLoadFired=!1,this.billingAppIframeSrcSetAt=Date.now(),this.resetBillingAppLoadDiagnostics(),t.src=this.getIframeURL()}reloadBillingIframe(e={}){this.getBillingIframe()&&!this.billingAppLoaded&&this.setBillingIframeSrc(e)}markBillingAppLoaded(e=null){this.billingAppLoaded=!0,this.billingAppLoadFailureReported=!1,this.billingAppPreloadFailure=null,this.billingAppReadyReceivedAt=Date.now(),this.billingAppReadyPayload=e,this.clearBillingAppLoadMonitor()}resetBillingAppLoadDiagnostics(){this.billingAppPreReadyMessageCount=0,this.billingAppPreReadyMessageTypes=[],this.billingAppLastPreReadyMessageType=null,this.billingAppReadyReceivedAt=null,this.billingAppReadyPayload=null}recordBillingAppPreReadyMessage(e){if(this.billingAppLoaded||this.billingAppReadyReceivedAt||this.billingAppLoadFailureReported)return
3124
+ const{source:i=this.billingAppLoadAttemptSource||$,reloadReason:r="set_src"}=e
3125
+ this._loadListenerAttachedTo!==t&&"function"==typeof t.addEventListener&&(t.addEventListener("load",()=>{this.billingAppIframeLoadFired=!0}),this._loadListenerAttachedTo=t),this.billingAppLoadAttemptSequence+=1,this.billingAppLoadAttemptId=`${Date.now()}-${this.billingAppLoadAttemptSequence}`,this.billingAppLoadAttemptSource=i,this.billingAppIframeReloadReason=r,this.billingAppIframeLoadFired=!1,this.billingAppIframeSrcSetAt=Date.now(),this.resetBillingAppLoadDiagnostics(),t.src=this.getIframeURL(),this.billingAppIframeSrcSubRoute=this.getIframeDestinationRoute(),this.pendingSubRoute=null}reloadBillingIframe(e={}){this.getBillingIframe()&&!this.billingAppLoaded&&this.setBillingIframeSrc(e)}markBillingAppLoaded(e=null){if(this.billingAppLoaded=!0,this.billingAppLoadFailureReported=!1,this.billingAppPreloadFailure=null,this.billingAppReadyReceivedAt=Date.now(),this.billingAppReadyPayload=e,this.clearBillingAppLoadMonitor(),this.pendingSubRoute){const e=this.pendingSubRoute
3126
+ this.pendingSubRoute=null,this.navigateToSubRoute(e)}}resetBillingAppLoadDiagnostics(){this.billingAppPreReadyMessageCount=0,this.billingAppPreReadyMessageTypes=[],this.billingAppLastPreReadyMessageType=null,this.billingAppReadyReceivedAt=null,this.billingAppReadyPayload=null}recordBillingAppPreReadyMessage(e){if(this.billingAppLoaded||this.billingAppReadyReceivedAt||this.billingAppLoadFailureReported)return
3119
3127
  if(!this.billingAppLoadTimeout&&!this.billingAppRetryTimeout)return
3120
3128
  const t=this.getBillingAppMessageType(e)
3121
3129
  this.billingAppPreReadyMessageCount+=1,this.billingAppLastPreReadyMessageType=t,this.billingAppPreReadyMessageTypes.includes(t)||(this.billingAppPreReadyMessageTypes=[...this.billingAppPreReadyMessageTypes,t])}getBillingAppMessageType(e){return e?.request?e.request:e?.route?"route":e?.subscription?"subscription":e?.query?e.query:"unknown"}getBillingAppOrigin(){const e=this.getIframeURL({fetchOwner:!1})
@@ -3126,7 +3134,11 @@ if(!t||e.origin!==t)return!1
3126
3134
  const i=this.getBillingIframe()?.contentWindow
3127
3135
  return!!i&&e.source===i}clearBillingAppLoadMonitor(){this.billingAppLoadTimeout&&(clearTimeout(this.billingAppLoadTimeout),this.billingAppLoadTimeout=null),this.billingAppRetryTimeout&&(clearTimeout(this.billingAppRetryTimeout),this.billingAppRetryTimeout=null)}ensureBillingAppReadyForVisibleUse(){if(this.billingAppLoaded)return
3128
3136
  const e=!!this.billingAppPreloadFailure,t=this.billingAppLoadFailureReported
3129
- this.billingAppLoadFailureReported=!1,this.clearBillingAppLoadMonitor(),this.billingAppLoadAttempts=0,e||t?this.reloadBillingIframe({source:q,reloadReason:e?"visible_open_after_preload_failure":"visible_open_after_load_failure"}):this.billingAppLoadAttemptSource=q,this.startBillingAppLoadMonitor({source:q})}recordBillingAppPreloadFailure(){this.billingAppPreloadFailure={attemptId:this.billingAppLoadAttemptId,attempts:this.billingAppLoadAttempts,elapsedMs:this.billingAppIframeSrcSetAt?Date.now()-this.billingAppIframeSrcSetAt:null,nonReadyMessageCount:this.billingAppPreReadyMessageCount,nonReadyMessageTypes:[...this.billingAppPreReadyMessageTypes],lastNonReadyMessageType:this.billingAppLastPreReadyMessageType}}reportBillingAppLoadFailure(){if(this.billingAppLoadFailureReported)return
3137
+ this.billingAppLoadFailureReported=!1,this.clearBillingAppLoadMonitor(),this.billingAppLoadAttempts=0
3138
+ const i=e=>"/"===e?null:e,r=Boolean(this.pendingSubRoute)&&i(this.pendingSubRoute)!==i(this.billingAppIframeSrcSubRoute)
3139
+ if(e||t||r){let i="visible_open_with_destination_route"
3140
+ e?i="visible_open_after_preload_failure":t&&(i="visible_open_after_load_failure"),this.reloadBillingIframe({source:Y,reloadReason:i})}else this.billingAppLoadAttemptSource=Y
3141
+ this.startBillingAppLoadMonitor({source:Y})}recordBillingAppPreloadFailure(){this.billingAppPreloadFailure={attemptId:this.billingAppLoadAttemptId,attempts:this.billingAppLoadAttempts,elapsedMs:this.billingAppIframeSrcSetAt?Date.now()-this.billingAppIframeSrcSetAt:null,nonReadyMessageCount:this.billingAppPreReadyMessageCount,nonReadyMessageTypes:[...this.billingAppPreReadyMessageTypes],lastNonReadyMessageType:this.billingAppLastPreReadyMessageType}}reportBillingAppLoadFailure(){if(this.billingAppLoadFailureReported)return
3130
3142
  if(!this.billingWindowOpen)return void this.recordBillingAppPreloadFailure()
3131
3143
  if(this.billingAppLoadFailureReported=!0,!this.config.sentry_dsn)return
3132
3144
  const e=this.getBillingIframe(),i=document.visibilityState,r=e?.src||null,n=this.getBillingAppOrigin()
@@ -3136,17 +3148,20 @@ a=null!=t,s="function"==typeof t?.markReady}catch(p){o=!0}let l=null,u=null,c=nu
3136
3148
  if(e)try{const t=window.getComputedStyle(e)
3137
3149
  l=t.display,u=t.visibility
3138
3150
  const i=e.getBoundingClientRect()
3139
- c=i.width,d=i.height}catch(p){}t.captureException("Billing app failed to become ready",{level:"warning",fingerprint:["billing-app-load-failure",i,String(this.billingAppLoadAttempts)],contexts:{ghost:{billing_monitor:{attempts:this.billingAppLoadAttempts,attempt_id:this.billingAppLoadAttemptId,attempt_source:this.billingAppLoadAttemptSource,attempt_phase:"shell_ready",iframe_reload_reason:this.billingAppIframeReloadReason,has_billing_url:!!this.config.hostSettings?.billing?.url,is_force_upgrade:!!this.config.hostSettings?.forceUpgrade,location_hash:window.location.hash,retry_delays_ms:this.billingAppLoadRetryDelaysMs,iframe_src:r,configured_billing_origin:n,document_visibility_state:i,iframe_offset_parent_visible:e?null!==e.offsetParent:null,iframe_computed_display:l,iframe_computed_visibility:u,iframe_rect_width:c,iframe_rect_height:d,iframe_load_fired:this.billingAppIframeLoadFired,ms_since_src_set:this.billingAppIframeSrcSetAt?Date.now()-this.billingAppIframeSrcSetAt:null,non_ready_message_count:this.billingAppPreReadyMessageCount,non_ready_message_types:this.billingAppPreReadyMessageTypes.join(","),last_non_ready_message_type:this.billingAppLastPreReadyMessageType,has_preload_failure:!!this.billingAppPreloadFailure,preload_failure_elapsed_ms:this.billingAppPreloadFailure?.elapsedMs??null,preload_non_ready_message_count:this.billingAppPreloadFailure?.nonReadyMessageCount??null,preload_non_ready_message_types:this.billingAppPreloadFailure?.nonReadyMessageTypes?.join(",")??null,preload_last_non_ready_message_type:this.billingAppPreloadFailure?.lastNonReadyMessageType??null,ready_received:!1,navigator_online:navigator.onLine,connection_effective_type:navigator.connection?.effectiveType??null,bma_boot_accessible:a,bma_boot_has_mark_ready:s,bma_boot_threw:o,billing_window_open:this.billingWindowOpen}}},tags:{source:"billing-app-load-monitor",attempt_source:this.billingAppLoadAttemptSource,attempt_phase:"shell_ready",route:this.router.currentRouteName,path:window.location.hash}})}getIframeURL(e={}){const{fetchOwner:t=!0}=e
3151
+ c=i.width,d=i.height}catch(p){}t.captureException("Billing app failed to become ready",{level:"warning",fingerprint:["billing-app-load-failure",i,String(this.billingAppLoadAttempts)],contexts:{ghost:{billing_monitor:{attempts:this.billingAppLoadAttempts,attempt_id:this.billingAppLoadAttemptId,attempt_source:this.billingAppLoadAttemptSource,attempt_phase:"shell_ready",iframe_reload_reason:this.billingAppIframeReloadReason,has_billing_url:!!this.config.hostSettings?.billing?.url,is_force_upgrade:!!this.config.hostSettings?.forceUpgrade,location_hash:window.location.hash,retry_delays_ms:this.billingAppLoadRetryDelaysMs,iframe_src:r,configured_billing_origin:n,document_visibility_state:i,iframe_offset_parent_visible:e?null!==e.offsetParent:null,iframe_computed_display:l,iframe_computed_visibility:u,iframe_rect_width:c,iframe_rect_height:d,iframe_load_fired:this.billingAppIframeLoadFired,ms_since_src_set:this.billingAppIframeSrcSetAt?Date.now()-this.billingAppIframeSrcSetAt:null,non_ready_message_count:this.billingAppPreReadyMessageCount,non_ready_message_types:this.billingAppPreReadyMessageTypes.join(","),last_non_ready_message_type:this.billingAppLastPreReadyMessageType,has_preload_failure:!!this.billingAppPreloadFailure,preload_failure_elapsed_ms:this.billingAppPreloadFailure?.elapsedMs??null,preload_non_ready_message_count:this.billingAppPreloadFailure?.nonReadyMessageCount??null,preload_non_ready_message_types:this.billingAppPreloadFailure?.nonReadyMessageTypes?.join(",")??null,preload_last_non_ready_message_type:this.billingAppPreloadFailure?.lastNonReadyMessageType??null,ready_received:!1,navigator_online:navigator.onLine,connection_effective_type:navigator.connection?.effectiveType??null,bma_boot_accessible:a,bma_boot_has_mark_ready:s,bma_boot_threw:o,billing_window_open:this.billingWindowOpen}}},tags:{source:"billing-app-load-monitor",attempt_source:this.billingAppLoadAttemptSource,attempt_phase:"shell_ready",route:this.router.currentRouteName,path:window.location.hash}})}getIframeDestinationRoute(){let e=this.pendingSubRoute
3152
+ if(!e){const t=this.getBillingRouteFromHash()
3153
+ t&&(e=t.slice(this.billingRouteRoot.length-1))}return e||null}getIframeURL(e={}){const{fetchOwner:t=!0}=e
3140
3154
  t&&this.getOwnerUser()
3141
3155
  let i=this.config.hostSettings?.billing?.url
3142
- if(window.location.hash&&window.location.hash.includes(this.billingRouteRoot)){let e=window.location.hash.replace(this.billingRouteRoot,"")
3143
- e&&(i+=e)}return this.addBillingAppAttemptIdToURL(i)}addBillingAppAttemptIdToURL(e){if(!e||!this.billingAppLoadAttemptId)return e
3156
+ const r=this.getIframeDestinationRoute()
3157
+ return i&&r&&(i=i.replace(/\/$/,"")+r),this.addBillingAppAttemptIdToURL(i)}addBillingAppAttemptIdToURL(e){if(!e||!this.billingAppLoadAttemptId)return e
3144
3158
  try{const t=new URL(e)
3145
3159
  return t.searchParams.set("bmaAttemptId",this.billingAppLoadAttemptId),t.toString()}catch(t){return e}}async getOwnerUser(){if(!this.ownerUser){let e=this.store.peekAll("user").findBy("isOwnerOnly",!0)
3146
- e||(await this.store.findAll("user",{reload:!0}),e=this.store.peekAll("user").findBy("isOwnerOnly",!0)),this.ownerUser=e}return this.ownerUser}sendRouteUpdate(){const e=this.action
3147
- e&&("checkout"===e&&this._isBillingIframeLoaded()&&this.getBillingIframe().contentWindow.postMessage({query:"routeUpdate",response:this.checkoutRoute},"*"),this.action=null)}sendUpdateLimits(){this._isBillingIframeLoaded()&&this.getBillingIframe().contentWindow.postMessage({query:"limitUpdate"},"*")}toggleProWindow(e){if(this.billingWindowOpen&&e&&!this.action)return
3160
+ e||(await this.store.findAll("user",{reload:!0}),e=this.store.peekAll("user").findBy("isOwnerOnly",!0)),this.ownerUser=e}return this.ownerUser}postMessageToBillingApp(e){const t=this.getBillingIframe()?.contentWindow,i=this.getBillingAppOrigin()
3161
+ return!(!t||!i)&&(t.postMessage(e,i),!0)}navigateToSubRoute(e){e&&(this.billingAppLoaded&&this.postMessageToBillingApp({query:"routeUpdate",response:e})||(this.pendingSubRoute=e,this.billingWindowOpen&&!this.billingAppLoaded&&this.ensureBillingAppReadyForVisibleUse()))}sendRouteUpdate(){const e=this.action
3162
+ e&&("checkout"===e&&this.navigateToSubRoute(this.checkoutRoute),this.action=null)}sendUpdateLimits(){this.postMessageToBillingApp({query:"limitUpdate"})}toggleProWindow(e){if(this.billingWindowOpen&&e&&!this.action)return
3148
3163
  const t=e&&!this.billingWindowOpen
3149
- this.sendRouteUpdate(),this.billingWindowOpen=e,e&&this.ensureBillingAppReadyForVisibleUse(),t&&this.sendUpdateLimits()}openBillingWindow(e,t){this.getOwnerUser(),this.billingWindowOpen||(this.previousRoute=e,window.location.hash=t||"/pro",this.sendRouteUpdate(),this.router.transitionTo(t||"/pro"))}getBillingIframe(){return document.getElementById("billing-frame")}},E=B(w.prototype,"feature",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=B(w.prototype,"ghostPaths",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=B(w.prototype,"router",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=B(w.prototype,"store",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=B(w.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=B(w.prototype,"billingWindowOpen",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),T=B(w.prototype,"subscription",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),z=B(w.prototype,"previousRoute",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),x=B(w.prototype,"action",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),S=B(w.prototype,"ownerUser",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),C=B(w.prototype,"billingAppLoaded",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),M=B(w.prototype,"billingAppLoadFailureReported",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),D=B(w.prototype,"billingAppPreReadyMessageCount",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),A=B(w.prototype,"billingAppPreReadyMessageTypes",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),I=B(w.prototype,"billingAppLastPreReadyMessageType",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),L=B(w.prototype,"billingAppReadyReceivedAt",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),R=B(w.prototype,"billingAppReadyPayload",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),N=B(w.prototype,"billingAppPreloadFailure",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),w)}),define("ghost-admin/services/clock",["exports","ghost-admin/config/environment","moment-timezone"],function(e,t,i){function r(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3164
+ this.sendRouteUpdate(),this.billingWindowOpen=e,e?this.ensureBillingAppReadyForVisibleUse():this.pendingSubRoute=null,t&&this.sendUpdateLimits()}openBillingWindow(e,t){this.getOwnerUser(),this.billingWindowOpen||(this.previousRoute=e,window.location.hash=t||"/pro",this.sendRouteUpdate(),this.router.transitionTo(t||"/pro"))}getBillingIframe(){return document.getElementById("billing-frame")}},P=V(E.prototype,"feature",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=V(E.prototype,"ghostPaths",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=V(E.prototype,"router",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=V(E.prototype,"session",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=V(E.prototype,"store",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=V(E.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=V(E.prototype,"billingWindowOpen",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),x=V(E.prototype,"subscription",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),S=V(E.prototype,"previousRoute",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),C=V(E.prototype,"action",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),M=V(E.prototype,"ownerUser",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),D=V(E.prototype,"billingAppLoaded",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),A=V(E.prototype,"billingAppLoadFailureReported",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),I=V(E.prototype,"billingAppPreReadyMessageCount",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),L=V(E.prototype,"billingAppPreReadyMessageTypes",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),R=V(E.prototype,"billingAppLastPreReadyMessageType",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),N=V(E.prototype,"billingAppReadyReceivedAt",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),U=V(E.prototype,"billingAppReadyPayload",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),F=V(E.prototype,"billingAppPreloadFailure",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),E)}),define("ghost-admin/services/clock",["exports","ghost-admin/config/environment","moment-timezone"],function(e,t,i){function r(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3150
3165
  var i=e[Symbol.toPrimitive]
3151
3166
  if(void 0!==i){var r=i.call(e,t||"default")
3152
3167
  if("object"!=typeof r)return r
@@ -3232,29 +3247,29 @@ e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember.inject.service,
3232
3247
  return this.ghostPaths.url.join(e.host,t).replace(/\/$/,"")}get iframeURL(){let e=this.exploreUrl
3233
3248
  if(window.location.hash&&window.location.hash.includes(this.exploreRouteRoot)){let t=window.location.hash.replace(this.exploreRouteRoot,"")
3234
3249
  t&&!t.includes("connect")&&(e+=t.replace(/^\//,""))}return e}constructor(){super(...arguments),f(this,"router",u,this),f(this,"feature",c,this),f(this,"ghostPaths",d,this),f(this,"config",p,this),g(this,"exploreUrl","https://ghost.org/explore/"),g(this,"exploreRouteRoot","#/explore"),g(this,"submitRoute","submit"),f(this,"exploreWindowOpen",m,this),f(this,"siteData",h,this),f(this,"isIframeTransition",b,this),this.exploreUrl&&window.addEventListener("message",e=>{e&&e.data&&e.data.route&&this.handleRouteChangeInIframe(e.data.route)})}handleRouteChangeInIframe(e){if(this.exploreWindowOpen){let t=this.exploreRouteRoot
3235
- e.match(/^\/explore(\/.*)?/)&&(e=e.replace(/\/explore/,"")),"/"!==e&&(t+=e),window.location.hash!==t&&window.history.replaceState(window.history.state,"",t)}}sendRouteUpdate(e){this.getExploreIframe().contentWindow.postMessage({query:"routeUpdate",response:e},"*")}sendUIUpdate(e){this.getExploreIframe().contentWindow.postMessage({query:"uiUpdate",response:e},"*")}toggleExploreWindow(e){this.config.hostSettings?.forceUpgrade&&e||this.exploreWindowOpen&&e||(this.exploreWindowOpen=e)}openExploreWindow(){this.config.hostSettings?.forceUpgrade||this.exploreWindowOpen||(this.ensureIframeIsLoaded(),window.location.hash="/explore",this.router.transitionTo("/explore"),this.toggleExploreWindow(!0))}ensureIframeIsLoaded(){this.getExploreIframe()&&!this.getExploreIframe()?.src&&(this.getExploreIframe().src=this.iframeURL)}getExploreIframe(){return document.getElementById("explore-frame")}},u=v(l.prototype,"router",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=v(l.prototype,"feature",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=v(l.prototype,"ghostPaths",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=v(l.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=v(l.prototype,"exploreWindowOpen",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),h=v(l.prototype,"siteData",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),b=v(l.prototype,"isIframeTransition",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),l)}),define("ghost-admin/services/feature",["exports","jquery","ghost-admin/decorators/inject"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U,F,B,H,V,q,$,Y,W
3236
- function K(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function G(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3250
+ e.match(/^\/explore(\/.*)?/)&&(e=e.replace(/\/explore/,"")),"/"!==e&&(t+=e),window.location.hash!==t&&window.history.replaceState(window.history.state,"",t)}}sendRouteUpdate(e){this.getExploreIframe().contentWindow.postMessage({query:"routeUpdate",response:e},"*")}sendUIUpdate(e){this.getExploreIframe().contentWindow.postMessage({query:"uiUpdate",response:e},"*")}toggleExploreWindow(e){this.config.hostSettings?.forceUpgrade&&e||this.exploreWindowOpen&&e||(this.exploreWindowOpen=e)}openExploreWindow(){this.config.hostSettings?.forceUpgrade||this.exploreWindowOpen||(this.ensureIframeIsLoaded(),window.location.hash="/explore",this.router.transitionTo("/explore"),this.toggleExploreWindow(!0))}ensureIframeIsLoaded(){this.getExploreIframe()&&!this.getExploreIframe()?.src&&(this.getExploreIframe().src=this.iframeURL)}getExploreIframe(){return document.getElementById("explore-frame")}},u=v(l.prototype,"router",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=v(l.prototype,"feature",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=v(l.prototype,"ghostPaths",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=v(l.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=v(l.prototype,"exploreWindowOpen",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),h=v(l.prototype,"siteData",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),b=v(l.prototype,"isIframeTransition",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),l)}),define("ghost-admin/services/feature",["exports","jquery","ghost-admin/decorators/inject"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U,F,B,H,V,q,$
3251
+ function Y(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function W(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3237
3252
  var i=e[Symbol.toPrimitive]
3238
3253
  if(void 0!==i){var r=i.call(e,t||"default")
3239
3254
  if("object"!=typeof r)return r
3240
3255
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
3241
- return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function J(e,t,i,r,n){var a={}
3242
- return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}function X(e,t={}){let{user:i,onChange:r}=t,n=i?[`accessibility.${e}`]:[`config.${e}`,`labs.${e}`]
3256
+ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function K(e,t,i,r,n){var a={}
3257
+ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}function G(e,t={}){let{user:i,onChange:r}=t,n=i?[`accessibility.${e}`]:[`config.${e}`,`labs.${e}`]
3243
3258
  return Ember.computed.apply(Ember,n.concat({get(){let t=!1
3244
- return t=i?this.get(`accessibility.${e}`):"boolean"==typeof this.get(`config.${e}`)?this.get(`config.${e}`):this.get(`labs.${e}`)||!1,t},set(i,n){return this.update(e,n,t),r&&this.get(r).bind(this)(n),n}}))}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.feature=X
3245
- e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=X("emailAnalytics"),c=X("nightShift",{user:!0,onChange:"_setAdminTheme"}),d=Ember.computed("_nightShiftPref","_osPrefersDark"),p=X("referralInviteDismissed",{user:!0}),m=X("stripeAutomaticTax"),h=X("emailCustomization"),b=X("importMemberTier"),f=X("adminUIRefresh"),g=X("lexicalIndicators"),v=X("editorExcerpt"),y=X("memberDetailsReact"),w=X("previewByTier"),E=X("paywallImprovements"),P=X("automations"),_=X("csvContentImporter"),k=Ember.computed("settings.labs"),O=Ember.computed("_user.accessibility"),j=class extends Ember.Service{constructor(...e){super(...e),K(this,"ghostPaths",T,this),K(this,"lazyLoader",z,this),K(this,"notifications",x,this),K(this,"session",S,this),K(this,"settings",C,this),K(this,"store",M,this),K(this,"config",D,this),K(this,"emailAnalytics",A,this),K(this,"_nightShiftPref",I,this),G(this,"_osPrefersDark",!1),G(this,"_systemThemeMediaQuery",null),G(this,"_systemThemeListener",null),K(this,"referralInviteDismissed",L,this),K(this,"stripeAutomaticTax",R,this),K(this,"emailCustomization",N,this),K(this,"importMemberTier",U,this),K(this,"adminUIRefresh",F,this),K(this,"lexicalIndicators",B,this),K(this,"editorExcerpt",H,this),K(this,"memberDetailsReact",V,this),K(this,"previewByTier",q,this),K(this,"paywallImprovements",$,this),K(this,"automations",Y,this),K(this,"csvContentImporter",W,this),G(this,"_user",null)}get nightShift(){let e=this._nightShiftPref
3259
+ return t=i?this.get(`accessibility.${e}`):"boolean"==typeof this.get(`config.${e}`)?this.get(`config.${e}`):this.get(`labs.${e}`)||!1,t},set(i,n){return this.update(e,n,t),r&&this.get(r).bind(this)(n),n}}))}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.feature=G
3260
+ e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=G("emailAnalytics"),c=G("nightShift",{user:!0,onChange:"_setAdminTheme"}),d=Ember.computed("_nightShiftPref","_osPrefersDark"),p=G("referralInviteDismissed",{user:!0}),m=G("stripeAutomaticTax"),h=G("emailCustomization"),b=G("importMemberTier"),f=G("adminUIRefresh"),g=G("lexicalIndicators"),v=G("editorExcerpt"),y=G("memberDetailsReact"),w=G("paywallImprovements"),E=G("automations"),P=G("csvContentImporter"),_=Ember.computed("settings.labs"),k=Ember.computed("_user.accessibility"),O=class extends Ember.Service{constructor(...e){super(...e),Y(this,"ghostPaths",j,this),Y(this,"lazyLoader",T,this),Y(this,"notifications",z,this),Y(this,"session",x,this),Y(this,"settings",S,this),Y(this,"store",C,this),Y(this,"config",M,this),Y(this,"emailAnalytics",D,this),Y(this,"_nightShiftPref",A,this),W(this,"_osPrefersDark",!1),W(this,"_systemThemeMediaQuery",null),W(this,"_systemThemeListener",null),Y(this,"referralInviteDismissed",I,this),Y(this,"stripeAutomaticTax",L,this),Y(this,"emailCustomization",R,this),Y(this,"importMemberTier",N,this),Y(this,"adminUIRefresh",U,this),Y(this,"lexicalIndicators",F,this),Y(this,"editorExcerpt",B,this),Y(this,"memberDetailsReact",H,this),Y(this,"paywallImprovements",V,this),Y(this,"automations",q,this),Y(this,"csvContentImporter",$,this),W(this,"_user",null)}get nightShift(){let e=this._nightShiftPref
3246
3261
  return"system"===e?this._osPrefersDark:"dark"===e||!0===e}get labs(){let e=this.settings.labs
3247
3262
  try{return JSON.parse(e)||{}}catch(t){return{}}}get accessibility(){let e=this.get("_user.accessibility")
3248
3263
  try{return JSON.parse(e)||{}}catch(t){return{}}}fetch(){return this.settings.fetch().then(()=>(this.set("_user",this.session.user),this._setAdminTheme().then(()=>!0)))}update(e,t,i={}){let r=i.user?"accessibility":"labs",n=this.get(i.user?"_user":"settings"),a=this.get(r)
3249
3264
  return Ember.set(a,e,t),i.requires&&!0===t&&i.requires.forEach(e=>{Ember.set(a,e,!0)}),n.set(r,JSON.stringify(a)),n.save().then(()=>(this.notifyPropertyChange(r),this.get(`${r}.${e}`))).catch(t=>{if(n.rollbackAttributes(),this.notifyPropertyChange(r),!t)throw new Ember.Error(`Validation of the feature service ${i.user?"user":"settings"} model failed when updating ${r}.`)
3250
- return this.notifications.showAPIError(t),this.get(`${r}.${e}`)})}_loadAdminThemeStylesheet(){return this.lazyLoader.loadStyle("dark","assets/ghost-dark-db36d795d21c61426837df40af270966.css",!0)}_setAdminTheme(e){let i=e
3265
+ return this.notifications.showAPIError(t),this.get(`${r}.${e}`)})}_loadAdminThemeStylesheet(){return this.lazyLoader.loadStyle("dark","assets/ghost-dark-1bffd5099ba7a749303133efacf8480b.css",!0)}_setAdminTheme(e){let i=e
3251
3266
  void 0===i&&(i=this._nightShiftPref),this._removeSystemThemeListener(),!0===i?i="dark":(!1===i||"dark"!==i&&"light"!==i&&"system"!==i)&&(i="light")
3252
3267
  let r="dark"===i
3253
3268
  const n=document.documentElement,a=()=>{requestAnimationFrame(()=>requestAnimationFrame(()=>{n.classList.remove("theme-switching")}))}
3254
3269
  if("system"===i){let e=this._getSystemThemeMediaQuery()
3255
3270
  r=e?.matches??!1,Ember.set(this,"_osPrefersDark",r),e&&(this._systemThemeMediaQuery=e,this._systemThemeListener=e=>{n.classList.add("theme-switching"),n.classList.toggle("dark",e.matches),(0,t.default)("link[title=dark]").prop("disabled",!e.matches),Ember.set(this,"_osPrefersDark",e.matches),a()},this._addSystemThemeListener())}else Ember.set(this,"_osPrefersDark",!1)
3256
3271
  return n.classList.add("theme-switching"),n.classList.toggle("dark",r),(0,t.default)("link[title=dark]").prop("disabled",!r),this._loadAdminThemeStylesheet().then(()=>{const e="system"===i?this._osPrefersDark:r
3257
- n.classList.toggle("dark",e),(0,t.default)("link[title=dark]").prop("disabled",!e),a()}).catch(()=>{(0,t.default)("link[title=dark]").prop("disabled",!0),n.classList.remove("dark"),a()})}_getSystemThemeMediaQuery(){return"undefined"==typeof window||"function"!=typeof window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}_addSystemThemeListener(){"function"==typeof this._systemThemeMediaQuery?.addEventListener?this._systemThemeMediaQuery.addEventListener("change",this._systemThemeListener):"function"==typeof this._systemThemeMediaQuery?.addListener&&this._systemThemeMediaQuery.addListener(this._systemThemeListener)}_removeSystemThemeListener(){this._systemThemeListener&&("function"==typeof this._systemThemeMediaQuery?.removeEventListener?this._systemThemeMediaQuery.removeEventListener("change",this._systemThemeListener):"function"==typeof this._systemThemeMediaQuery?.removeListener&&this._systemThemeMediaQuery.removeListener(this._systemThemeListener),this._systemThemeMediaQuery=null,this._systemThemeListener=null)}willDestroy(){super.willDestroy(...arguments),this._removeSystemThemeListener()}},T=J(j.prototype,"ghostPaths",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=J(j.prototype,"lazyLoader",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=J(j.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=J(j.prototype,"session",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=J(j.prototype,"settings",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=J(j.prototype,"store",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=J(j.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=J(j.prototype,"emailAnalytics",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=J(j.prototype,"_nightShiftPref",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J(j.prototype,"nightShift",[d],Object.getOwnPropertyDescriptor(j.prototype,"nightShift"),j.prototype),L=J(j.prototype,"referralInviteDismissed",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=J(j.prototype,"stripeAutomaticTax",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=J(j.prototype,"emailCustomization",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=J(j.prototype,"importMemberTier",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=J(j.prototype,"adminUIRefresh",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=J(j.prototype,"lexicalIndicators",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=J(j.prototype,"editorExcerpt",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=J(j.prototype,"memberDetailsReact",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=J(j.prototype,"previewByTier",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=J(j.prototype,"paywallImprovements",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=J(j.prototype,"automations",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=J(j.prototype,"csvContentImporter",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J(j.prototype,"labs",[k],Object.getOwnPropertyDescriptor(j.prototype,"labs"),j.prototype),J(j.prototype,"accessibility",[O],Object.getOwnPropertyDescriptor(j.prototype,"accessibility"),j.prototype),j)}),define("ghost-admin/services/frontend",["exports","fetch","validator","ghost-admin/decorators/inject"],function(e,t,i,r){var n,a,s,o,l,u
3272
+ n.classList.toggle("dark",e),(0,t.default)("link[title=dark]").prop("disabled",!e),a()}).catch(()=>{(0,t.default)("link[title=dark]").prop("disabled",!0),n.classList.remove("dark"),a()})}_getSystemThemeMediaQuery(){return"undefined"==typeof window||"function"!=typeof window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}_addSystemThemeListener(){"function"==typeof this._systemThemeMediaQuery?.addEventListener?this._systemThemeMediaQuery.addEventListener("change",this._systemThemeListener):"function"==typeof this._systemThemeMediaQuery?.addListener&&this._systemThemeMediaQuery.addListener(this._systemThemeListener)}_removeSystemThemeListener(){this._systemThemeListener&&("function"==typeof this._systemThemeMediaQuery?.removeEventListener?this._systemThemeMediaQuery.removeEventListener("change",this._systemThemeListener):"function"==typeof this._systemThemeMediaQuery?.removeListener&&this._systemThemeMediaQuery.removeListener(this._systemThemeListener),this._systemThemeMediaQuery=null,this._systemThemeListener=null)}willDestroy(){super.willDestroy(...arguments),this._removeSystemThemeListener()}},j=K(O.prototype,"ghostPaths",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=K(O.prototype,"lazyLoader",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=K(O.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=K(O.prototype,"session",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=K(O.prototype,"settings",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=K(O.prototype,"store",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=K(O.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=K(O.prototype,"emailAnalytics",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=K(O.prototype,"_nightShiftPref",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K(O.prototype,"nightShift",[d],Object.getOwnPropertyDescriptor(O.prototype,"nightShift"),O.prototype),I=K(O.prototype,"referralInviteDismissed",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=K(O.prototype,"stripeAutomaticTax",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=K(O.prototype,"emailCustomization",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=K(O.prototype,"importMemberTier",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=K(O.prototype,"adminUIRefresh",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=K(O.prototype,"lexicalIndicators",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=K(O.prototype,"editorExcerpt",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=K(O.prototype,"memberDetailsReact",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=K(O.prototype,"paywallImprovements",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=K(O.prototype,"automations",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=K(O.prototype,"csvContentImporter",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K(O.prototype,"labs",[_],Object.getOwnPropertyDescriptor(O.prototype,"labs"),O.prototype),K(O.prototype,"accessibility",[k],Object.getOwnPropertyDescriptor(O.prototype,"accessibility"),O.prototype),O)}),define("ghost-admin/services/frontend",["exports","fetch","validator","ghost-admin/decorators/inject"],function(e,t,i,r){var n,a,s,o,l,u
3258
3273
  function c(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function d(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3259
3274
  var i=e[Symbol.toPrimitive]
3260
3275
  if(void 0!==i){var r=i.call(e,t||"default")
@@ -3274,7 +3289,7 @@ const i=this.fetch().then(i=>{t="success",e=i},i=>{t="error",e=i})
3274
3289
  return{read:()=>{switch(t){case"pending":throw i
3275
3290
  case"error":throw e
3276
3291
  default:return e}}}}async fetch(){return this._fetchTask.isRunning?await this._fetchTask.last:this._fetchTask.lastSuccessful?this._fetchTask.lastSuccessful.value:await this._fetchTask.perform()}*_fetchTask(){return yield(0,t.default)()}},n=r.prototype,a="_fetchTask",s=[i.task],o=Object.getOwnPropertyDescriptor(r.prototype,"_fetchTask"),l=r.prototype,u={},Object.keys(o).forEach(function(e){u[e]=o[e]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=s.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},u),l&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(l):void 0,u.initializer=void 0),void 0===u.initializer&&Object.defineProperty(n,a,u),r)
3277
- var n,a,s,o,l,u}),define("ghost-admin/services/labels-manager",["exports","tracked-built-ins","ghost-admin/utils/escape-nql-string","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p
3292
+ var n,a,s,o,l,u}),define("ghost-admin/services/labels-manager",["exports","tracked-built-ins","@tryghost/nql-string","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p
3278
3293
  function m(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function h(e,t,i,r,n){var a={}
3279
3294
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3280
3295
  e.default=(n=Ember.inject.service,a=Ember._tracked,s=Ember._tracked,o=(0,r.task)({drop:!0}),l=(0,r.task)({restartable:!0}),u=class extends Ember.Service{constructor(...e){super(...e),m(this,"store",c,this),m(this,"_labels",d,this),m(this,"_meta",p,this)}get labels(){return this.sortLabels(this._labels)}get hasLoaded(){return!!this._meta}get hasLoadedAll(){return this.hasLoaded&&parseInt(this._meta.pagination.pages,10)===parseInt(this._meta.pagination.page,10)}sortLabels(e=[]){return e.filter(e=>null!==e.get("id")).sort((e,t)=>(e.name||"").localeCompare(t.name||""))}findBySlug(e){return this._labels.find(t=>t.slug===e)||this.store.peekAll("label").find(t=>t.slug===e)}addLabel(e){this._labels.includes(e)||this._labels.push(e)}removeLabel(e){const t=this._labels.indexOf(e)
@@ -3312,7 +3327,8 @@ e.default=(i=Ember._action,r=class extends t.default{addDefaultDestination(){con
3312
3327
  t.set("extraClassesString","default-liquid-destination")
3313
3328
  const i=document.getElementById("ember-liquid-wormhole")
3314
3329
  return i?t.appendTo(i):e.rootElement?t.appendTo(e.rootElement):t.appendTo(document),this.defaultDestination=t,t}},n=r.prototype,a="addDefaultDestination",s=[i],o=Object.getOwnPropertyDescriptor(r.prototype,"addDefaultDestination"),l=r.prototype,u={},Object.keys(o).forEach(function(e){u[e]=o[e]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=s.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},u),l&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(l):void 0,u.initializer=void 0),void 0===u.initializer&&Object.defineProperty(n,a,u),r)
3315
- var n,a,s,o,l,u}),define("ghost-admin/services/local-revisions",["exports","@sentry/ember","ghost-admin/config/environment","ember-concurrency"],function(e,t,i,r){var n,a,s,o
3330
+ var n,a,s,o,l,u})
3331
+ define("ghost-admin/services/local-revisions",["exports","@sentry/ember","ghost-admin/config/environment","ember-concurrency"],function(e,t,i,r){var n,a,s,o
3316
3332
  function l(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3317
3333
  var i=e[Symbol.toPrimitive]
3318
3334
  if(void 0!==i){var r=i.call(e,t||"default")
@@ -3361,8 +3377,7 @@ this.hasMultipleNewsletters=e.length>1}const n=this.session.user,a=r&&this.hasMu
3361
3377
  if(n.isEditor&&void 0===t)return u?"all free "+s+o:c?"all paid "+s+o:d?"all "+s+o:"a custom members segment"
3362
3378
  const p=void 0!==t?t:await this.count(e)
3363
3379
  return u?(0,i.ghPluralize)(p,"free "+a)+o:c?(0,i.ghPluralize)(p,"paid "+a)+o:(0,i.ghPluralize)(p,a)+o}clear(){this.cache={}}*_countMembersTask(e){if(!e)return 0
3364
- try{return(yield this.store.query("member",{...e,order:"id",limit:1,page:1})).meta.pagination.total}catch(t){return console.error(t),0}}},c=h(u.prototype,"session",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=h(u.prototype,"store",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h(u.prototype,"count",[s],Object.getOwnPropertyDescriptor(u.prototype,"count"),u.prototype),h(u.prototype,"countString",[o],Object.getOwnPropertyDescriptor(u.prototype,"countString"),u.prototype),h(u.prototype,"clear",[l],Object.getOwnPropertyDescriptor(u.prototype,"clear"),u.prototype),h(u.prototype,"_countMembersTask",[r.task],Object.getOwnPropertyDescriptor(u.prototype,"_countMembersTask"),u.prototype),u)})
3365
- define("ghost-admin/services/members-stats",["exports","moment-timezone","ember-concurrency"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_
3380
+ try{return(yield this.store.query("member",{...e,order:"id",limit:1,page:1})).meta.pagination.total}catch(t){return console.error(t),0}}},c=h(u.prototype,"session",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=h(u.prototype,"store",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h(u.prototype,"count",[s],Object.getOwnPropertyDescriptor(u.prototype,"count"),u.prototype),h(u.prototype,"countString",[o],Object.getOwnPropertyDescriptor(u.prototype,"countString"),u.prototype),h(u.prototype,"clear",[l],Object.getOwnPropertyDescriptor(u.prototype,"clear"),u.prototype),h(u.prototype,"_countMembersTask",[r.task],Object.getOwnPropertyDescriptor(u.prototype,"_countMembersTask"),u.prototype),u)}),define("ghost-admin/services/members-stats",["exports","moment-timezone","ember-concurrency"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_
3366
3381
  function k(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function O(e,t,i,r,n){var a={}
3367
3382
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3368
3383
  const j=6e4
@@ -3485,47 +3500,49 @@ e.forEach(e=>{const t=a[e.id]
3485
3500
  t&&(s[e.uuid]={free:t.free_members||0,paid:t.paid_members||0})}),this.memberCounts={...this.memberCounts,...s}}catch(i){t===this._generation&&(e.forEach(e=>this._fetchedMemberIds.delete(e.id)),this.memberCounts=this.memberCounts||{})}}},u=g(l.prototype,"ajax",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=g(l.prototype,"ghostPaths",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=g(l.prototype,"feature",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=g(l.prototype,"settings",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=g(l.prototype,"visitorCounts",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{}}}),h=g(l.prototype,"memberCounts",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return{}}}),g(l.prototype,"_loadVisitorCounts",[t.task],Object.getOwnPropertyDescriptor(l.prototype,"_loadVisitorCounts"),l.prototype),g(l.prototype,"_loadMemberCounts",[t.task],Object.getOwnPropertyDescriptor(l.prototype,"_loadMemberCounts"),l.prototype),l)}),define("ghost-admin/services/power-calendar",["exports","ember-power-calendar/services/power-calendar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/services/resize-detector",["exports","element-resize-detector"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3486
3501
  class i extends Ember.Service{constructor(){super(...arguments),this.detector=(0,t.default)({strategy:"scroll"})}setup(e,t){const i="string"==typeof e?document.querySelector(e):e
3487
3502
  i||console.error(`service:resize-detector - could not find element matching ${e}`),this.detector.listenTo(i,t)}teardown(e,t){const i="string"==typeof e?document.querySelector(e):e
3488
- i&&this.detector.removeListener(i,t)}}e.default=i}),define("ghost-admin/services/search-provider-basic",["exports","ghost-admin/utils/search","ember-inflector","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l,u,c
3489
- function d(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function p(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3490
- var i=e[Symbol.toPrimitive]
3491
- if(void 0!==i){var r=i.call(e,t||"default")
3492
- if("object"!=typeof r)return r
3493
- throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
3494
- return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function m(e,t,i,r,n){var a={}
3495
- return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3496
- e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=class extends Ember.Service{constructor(...e){super(...e),d(this,"ajax",l,this),d(this,"notifications",u,this),d(this,"ghostPaths",c,this),p(this,"content",[])}*searchTask(e){const i=e.toString().toLowerCase(),r=[]
3497
- return t.SEARCHABLES.forEach(e=>{let n=this.content.filter(t=>{const r=t.title.toString().toLowerCase()
3498
- return t.groupName===e.name&&r.indexOf(i)>=0})
3499
- n=(0,t.sortSearchResultsByStatus)(n,e.model),Ember.isEmpty(n)||r.push({groupName:e.name,options:n})}),r}*refreshContentTask(){const e=[],i=t.SEARCHABLES.map(t=>this._loadSearchable(t,e))
3500
- try{yield Ember.RSVP.all(i),this.content=e}catch(r){console.error(r)}}async _loadSearchable(e,r){const n=this.ghostPaths.url.api(`search-index/${(0,i.pluralize)(e.model)}`),a={}
3501
- try{const s=(await this.ajax.request(n,{data:a}))[(0,i.pluralize)(e.model)].map(i=>(0,t.createSearchResult)(e,i))
3502
- r.push(...s)}catch(s){console.error(s),this.notifications.showAPIError(s,{key:`search.load${e.name}.error`})}}},l=m(o.prototype,"ajax",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=m(o.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=m(o.prototype,"ghostPaths",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m(o.prototype,"searchTask",[r.task],Object.getOwnPropertyDescriptor(o.prototype,"searchTask"),o.prototype),m(o.prototype,"refreshContentTask",[r.task],Object.getOwnPropertyDescriptor(o.prototype,"refreshContentTask"),o.prototype),o)}),define("ghost-admin/services/search-provider-flex",["exports","flexsearch","ghost-admin/utils/search","ember-inflector","ember-concurrency"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p
3503
- function m(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function h(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}function b(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3503
+ i&&this.detector.removeListener(i,t)}}e.default=i}),define("ghost-admin/services/search-provider-basic",["exports","ghost-admin/utils/search","ghost-admin/decorators/inject","ember-inflector","ember-concurrency"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p
3504
+ function m(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function h(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3504
3505
  var i=e[Symbol.toPrimitive]
3505
3506
  if(void 0!==i){var r=i.call(e,t||"default")
3506
3507
  if("object"!=typeof r)return r
3507
3508
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
3508
- return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function f(e,t,i,r,n){var a={}
3509
+ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function b(e,t,i,r,n){var a={}
3509
3510
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3510
- const{Document:g}=t.default
3511
- e.default=(a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,p=new WeakSet,l=class extends Ember.Service{constructor(...e){super(...e),h(this,p),m(this,"ajax",u,this),m(this,"notifications",c,this),m(this,"ghostPaths",d,this),b(this,"indexes",i.SEARCHABLES.reduce((e,t)=>(e[t.model]=new g({tokenize:"forward",document:{id:"id",index:t.index,store:!0}}),e),{}))}*searchTask(e){const t=[]
3512
- return i.SEARCHABLES.forEach(r=>{const n=this.indexes[r.model].search(e,{enrich:!0}),a=new Set
3511
+ e.default=(a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=class extends Ember.Service{constructor(){super(...arguments),m(this,"ajax",u,this),m(this,"notifications",c,this),m(this,"ghostPaths",d,this),m(this,"config",p,this),h(this,"content",[]),this.searchables=(0,t.getSearchables)(this.config.hostSettings)}*searchTask(e){const i=e.toString().toLowerCase(),r=[]
3512
+ return this.searchables.forEach(e=>{const n=Boolean(e.index?.includes("keywords"))
3513
+ let a=this.content.filter(t=>{if(t.groupName!==e.name)return!1
3514
+ const r=t.title.toString().toLowerCase(),a=n&&t.keywords?t.keywords.toString().toLowerCase():""
3515
+ return r.indexOf(i)>=0||a.indexOf(i)>=0})
3516
+ a=(0,t.sortSearchResultsByStatus)(a,e.model),Ember.isEmpty(a)||r.push({groupName:e.name,groupKey:e.key,options:a})}),r}*refreshContentTask(){const e=[],t=this.searchables.map(t=>this._loadSearchable(t,e))
3517
+ try{yield Ember.RSVP.all(t),this.content=e}catch(i){console.error(i)}}async _loadSearchable(e,i){if(e.staticItems){const r=e.staticItems.map(i=>(0,t.createSearchResult)(e,i))
3518
+ return void i.push(...r)}const n=this.ghostPaths.url.api(`search-index/${(0,r.pluralize)(e.model)}`),a={}
3519
+ try{const s=(await this.ajax.request(n,{data:a}))[(0,r.pluralize)(e.model)].map(i=>(0,t.createSearchResult)(e,i))
3520
+ i.push(...s)}catch(s){console.error(s),this.notifications.showAPIError(s,{key:`search.load${e.name}.error`})}}},u=b(l.prototype,"ajax",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=b(l.prototype,"notifications",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=b(l.prototype,"ghostPaths",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=b(l.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b(l.prototype,"searchTask",[n.task],Object.getOwnPropertyDescriptor(l.prototype,"searchTask"),l.prototype),b(l.prototype,"refreshContentTask",[n.task],Object.getOwnPropertyDescriptor(l.prototype,"refreshContentTask"),l.prototype),l)}),define("ghost-admin/services/search-provider-flex",["exports","flexsearch","ghost-admin/utils/search","ghost-admin/decorators/inject","ember-inflector","ember-concurrency"],function(e,t,i,r,n,a){var s,o,l,u,c,d,p,m,h
3521
+ function b(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function f(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}function g(e,t,i,r,n){var a={}
3522
+ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3523
+ const{Document:v}=t.default
3524
+ e.default=(s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,h=new WeakSet,u=class extends Ember.Service{constructor(){super(...arguments),f(this,h),b(this,"ajax",c,this),b(this,"notifications",d,this),b(this,"ghostPaths",p,this),b(this,"config",m,this),this.searchables=(0,i.getSearchables)(this.config.hostSettings),this.indexes=this.searchables.reduce((e,t)=>(e[t.model]=new v({tokenize:"forward",document:{id:"id",index:t.index,store:!0}}),e),{})}*searchTask(e){const t=[]
3525
+ return this.searchables.forEach(r=>{const n=this.indexes[r.model].search(e,{enrich:!0}),a=new Set
3513
3526
  let s=[]
3514
3527
  n.forEach(e=>{e.result.forEach(e=>{const{id:t,doc:n}=e
3515
- a.has(t)||(a.add(t),s.push((0,i.createSearchResult)(r,n)))})}),s=(0,i.sortSearchResultsByStatus)(s,r.model),Ember.isEmpty(s)||t.push({groupName:r.name,options:s})}),t}*refreshContentTask(){try{const e=i.SEARCHABLES.map(e=>function(e,t,i){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:i
3516
- throw new TypeError("Private element is not present on this object")}(p,this,v).call(this,e))
3517
- yield Ember.RSVP.all(e)}catch(e){console.error(e)}}},u=f(l.prototype,"ajax",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=f(l.prototype,"notifications",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=f(l.prototype,"ghostPaths",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f(l.prototype,"searchTask",[n.task],Object.getOwnPropertyDescriptor(l.prototype,"searchTask"),l.prototype),f(l.prototype,"refreshContentTask",[n.task],Object.getOwnPropertyDescriptor(l.prototype,"refreshContentTask"),l.prototype),l)
3518
- async function v(e){const t=this.ghostPaths.url.api(`search-index/${(0,r.pluralize)(e.model)}`),i={}
3519
- try{(await this.ajax.request(t,{data:i}))[(0,r.pluralize)(e.model)].forEach(t=>{this.indexes[e.model].add(t)})}catch(n){console.error(n),this.notifications.showAPIError(n,{key:`search.load${e.name}.error`})}}}),define("ghost-admin/services/search",["exports","ember-concurrency"],function(e,t){var i,r,n,a,s,o,l,u,c,d,p,m,h,b,f,g,v,y
3520
- function w(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function E(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3528
+ a.has(t)||(a.add(t),s.push((0,i.createSearchResult)(r,n)))})}),s=(0,i.sortSearchResultsByStatus)(s,r.model),Ember.isEmpty(s)||t.push({groupName:r.name,groupKey:r.key,options:s})}),t}*refreshContentTask(){try{const e=this.searchables.map(e=>function(e,t,i){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:i
3529
+ throw new TypeError("Private element is not present on this object")}(h,this,y).call(this,e))
3530
+ yield Ember.RSVP.all(e)}catch(e){console.error(e)}}},c=g(u.prototype,"ajax",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=g(u.prototype,"notifications",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=g(u.prototype,"ghostPaths",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=g(u.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g(u.prototype,"searchTask",[a.task],Object.getOwnPropertyDescriptor(u.prototype,"searchTask"),u.prototype),g(u.prototype,"refreshContentTask",[a.task],Object.getOwnPropertyDescriptor(u.prototype,"refreshContentTask"),u.prototype),u)
3531
+ async function y(e){if(e.staticItems)return void e.staticItems.forEach(t=>{this.indexes[e.model].add(t)})
3532
+ const t=this.ghostPaths.url.api(`search-index/${(0,n.pluralize)(e.model)}`),i={}
3533
+ try{(await this.ajax.request(t,{data:i}))[(0,n.pluralize)(e.model)].forEach(t=>{this.indexes[e.model].add(t)})}catch(r){console.error(r),this.notifications.showAPIError(r,{key:`search.load${e.name}.error`})}}}),define("ghost-admin/services/search",["exports","ghost-admin/utils/search","ember-concurrency"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P
3534
+ function _(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function k(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3521
3535
  var i=e[Symbol.toPrimitive]
3522
3536
  if(void 0!==i){var r=i.call(e,t||"default")
3523
3537
  if("object"!=typeof r)return r
3524
3538
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
3525
- return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function P(e,t,i,r,n){var a={}
3539
+ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function O(e,t,i,r,n){var a={}
3526
3540
  return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3527
- e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember._action,c=(0,t.task)({restartable:!0}),d=(0,t.task)({drop:!0}),p=class extends Ember.Service{constructor(...e){super(...e),w(this,"ajax",m,this),w(this,"feature",h,this),w(this,"notifications",b,this),w(this,"searchProviderBasic",f,this),w(this,"searchProviderFlex",g,this),w(this,"settings",v,this),w(this,"store",y,this),E(this,"isContentStale",!0)}get provider(){return this.settings.locale?.toLowerCase().startsWith("en")??!0?this.searchProviderFlex:this.searchProviderBasic}expireContent(){this.isContentStale=!0}*searchTask(e){return Ember.isBlank(e)?[]:(this.refreshContentTask.unlinked().perform(),yield(0,t.timeout)(200),this.refreshContentTask.isRunning&&(yield this.refreshContentTask.lastRunning),yield this.provider.searchTask.perform(e))}*refreshContentTask({forceRefresh:e=!1}={}){if(!e&&!this.isContentStale)return!0
3528
- this.isContentStale=!0,yield this.provider.refreshContentTask.perform(),this.isContentStale=!1}},m=P(p.prototype,"ajax",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=P(p.prototype,"feature",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=P(p.prototype,"notifications",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=P(p.prototype,"searchProviderBasic",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=P(p.prototype,"searchProviderFlex",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=P(p.prototype,"settings",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=P(p.prototype,"store",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P(p.prototype,"expireContent",[u],Object.getOwnPropertyDescriptor(p.prototype,"expireContent"),p.prototype),P(p.prototype,"searchTask",[c],Object.getOwnPropertyDescriptor(p.prototype,"searchTask"),p.prototype),P(p.prototype,"refreshContentTask",[d],Object.getOwnPropertyDescriptor(p.prototype,"refreshContentTask"),p.prototype),p)}),define("ghost-admin/services/session",["exports","@sentry/ember","ember-simple-auth/configuration","ember-simple-auth/services/session","ghost-admin/utils/window-proxy","ghost-admin/decorators/inject","ember-concurrency"],function(e,t,i,r,n,a,s){var o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R
3541
+ e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember._action,p=(0,i.task)({restartable:!0}),m=(0,i.task)({drop:!0}),h=class extends Ember.Service{constructor(...e){super(...e),_(this,"ajax",b,this),_(this,"billing",f,this),_(this,"feature",g,this),_(this,"notifications",v,this),_(this,"searchProviderBasic",y,this),_(this,"searchProviderFlex",w,this),_(this,"settings",E,this),_(this,"store",P,this),k(this,"isContentStale",!0)}get provider(){return this.settings.locale?.toLowerCase().startsWith("en")??!0?this.searchProviderFlex:this.searchProviderBasic}expireContent(){this.isContentStale=!0}*searchTask(e){if(Ember.isBlank(e))return[]
3542
+ this.refreshContentTask.unlinked().perform(),yield(0,i.timeout)(200),this.refreshContentTask.isRunning&&(yield this.refreshContentTask.lastRunning)
3543
+ const r=yield this.provider.searchTask.perform(e)
3544
+ return this.billing.canAccessBilling?r:r.filter(e=>e.groupKey!==t.BILLING_SEARCH_GROUP_KEY)}*refreshContentTask({forceRefresh:e=!1}={}){if(!e&&!this.isContentStale)return!0
3545
+ this.isContentStale=!0,yield this.provider.refreshContentTask.perform(),this.isContentStale=!1}},b=O(h.prototype,"ajax",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=O(h.prototype,"billing",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=O(h.prototype,"feature",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=O(h.prototype,"notifications",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=O(h.prototype,"searchProviderBasic",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=O(h.prototype,"searchProviderFlex",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=O(h.prototype,"settings",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=O(h.prototype,"store",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O(h.prototype,"expireContent",[d],Object.getOwnPropertyDescriptor(h.prototype,"expireContent"),h.prototype),O(h.prototype,"searchTask",[p],Object.getOwnPropertyDescriptor(h.prototype,"searchTask"),h.prototype),O(h.prototype,"refreshContentTask",[m],Object.getOwnPropertyDescriptor(h.prototype,"refreshContentTask"),h.prototype),h)}),define("ghost-admin/services/session",["exports","@sentry/ember","ember-simple-auth/configuration","ember-simple-auth/services/session","ghost-admin/utils/window-proxy","ghost-admin/decorators/inject","ember-concurrency"],function(e,t,i,r,n,a,s){var o,l,u,c,d,p,m,h,b,f,g,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R
3529
3546
  function N(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function U(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
3530
3547
  var i=e[Symbol.toPrimitive]
3531
3548
  if(void 0!==i){var r=i.call(e,t||"default")
@@ -3664,10 +3681,10 @@ e.default=(i=Ember.inject.service,r=class extends t.default{constructor(...e){va
3664
3681
  super(...e),t=this,i="session",a=this,(r=n)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}restore(){return this.session.populateUser().then(()=>{let e={authenticated:{authenticator:"authenticator:cookie"}}
3665
3682
  return this.persist(e),e}).catch(()=>Ember.RSVP.reject())}},a=r.prototype,s="session",o=[i],l={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(l).forEach(function(e){c[e]=l[e]}),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=o.slice().reverse().reduce(function(e,t){return t(a,s,e)||e},c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),n=void 0===c.initializer?(Object.defineProperty(a,s,c),null):c,r)
3666
3683
  var a,s,o,l,u,c}),define("ghost-admin/templates/application-error",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3667
- e.default=Ember.HTMLBars.template({id:"16FPhYap",block:'{"symbols":[],"statements":[[10,"div"],[14,0,"gh-view"],[12],[2,"\\n "],[10,"section"],[14,0,"error-content error-404 js-error-container"],[12],[2,"\\n "],[10,"section"],[14,0,"error-details"],[12],[2,"\\n "],[10,"section"],[14,0,"error-message"],[12],[2,"\\n "],[10,"h1"],[14,0,"error-code"],[12],[1,[30,[36,0],[[32,0,["model","status"]],[32,0,["model","code"]]],null]],[13],[2,"\\n"],[6,[37,1],[[30,[36,0],[[32,0,["model","status"]],[32,0,["model","code"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[2,"|"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"h2"],[14,0,"error-description"],[12],[2,"\\n "],[1,[30,[36,0],[[30,[36,2],[[32,0,["model","payload","errors"]],"0.message"],null],[32,0,["model","message"]]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n\\n"],[8,"ember-load-remover",[],[[],[]],null],[2,"\\n"]],"hasEval":false,"upvars":["or","if","get"]}',moduleName:"ghost-admin/templates/application-error.hbs"})}),define("ghost-admin/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3684
+ e.default=Ember.HTMLBars.template({id:"16FPhYap",block:'{"symbols":[],"statements":[[10,"div"],[14,0,"gh-view"],[12],[2,"\\n "],[10,"section"],[14,0,"error-content error-404 js-error-container"],[12],[2,"\\n "],[10,"section"],[14,0,"error-details"],[12],[2,"\\n "],[10,"section"],[14,0,"error-message"],[12],[2,"\\n "],[10,"h1"],[14,0,"error-code"],[12],[1,[30,[36,0],[[32,0,["model","status"]],[32,0,["model","code"]]],null]],[13],[2,"\\n"],[6,[37,1],[[30,[36,0],[[32,0,["model","status"]],[32,0,["model","code"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[2,"|"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"h2"],[14,0,"error-description"],[12],[2,"\\n "],[1,[30,[36,0],[[30,[36,2],[[32,0,["model","payload","errors"]],"0.message"],null],[32,0,["model","message"]]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n\\n"],[8,"ember-load-remover",[],[[],[]],null],[2,"\\n"]],"hasEval":false,"upvars":["or","if","get"]}',moduleName:"ghost-admin/templates/application-error.hbs"})})
3685
+ define("ghost-admin/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3668
3686
  e.default=Ember.HTMLBars.template({id:"LAxE9XaC",block:'{"symbols":[],"statements":[[8,"gh-app",[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,"gh-skip-link",[],[["@anchor"],[".gh-main"]],[["default"],[{"statements":[[2,"Skip to main content"]],"parameters":[]}]]],[2,"\\n\\n "],[8,"render-in-wormhole",[],[["@elementId"],["ember-alerts-wormhole"]],[["default"],[{"statements":[[2,"\\n"],[6,[37,1],[[30,[36,3],[[32,0,["session","user","isAdmin"]],[32,0,["showUpdateBanner"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"aside"],[14,0,"gh-update-banner"],[12],[2,"\\n"],[6,[37,1],[[32,0,["session","user","isOwnerOnly"]]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-alert-content"],[12],[2,"\\n A new major version of Ghost is available! \\n "],[13],[2,"\\n "],[11,"a"],[24,6,"#"],[4,[38,2],["click",[32,0,["openUpdateTab"]]],null],[12],[2,"Update to Ghost 6.0 →"],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"gh-alert-content"],[12],[2,"\\n Your Ghost install is ready for a major update!\\n"],[6,[37,1],[[32,0,["ownerUserNameOrEmail"]]],null,[["default","else"],[{"statements":[[2," "],[1,[32,0,["ownerUserNameOrEmail"]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," Your site owner\\n"]],"parameters":[]}]]],[2," will need to log in to do this.\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[8,"gh-alerts",[],[[],[]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[10,"div"],[14,0,"gh-viewport"],[12],[2,"\\n "],[10,"main"],[15,0,[31,["gh-main ",[32,0,["ui","mainClass"]]]]],[12],[2,"\\n "],[1,[30,[36,5],[[30,[36,4],null,null]],null]],[2,"\\n\\n"],[6,[37,1],[[32,0,["showBilling"]]],null,[["default"],[{"statements":[[2," "],[8,"gh-billing-modal",[],[["@billingWindowOpen"],[[32,0,["billing","billingWindowOpen"]]]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[8,"gh-explore-modal",[],[[],[]],null],[2,"\\n "],[13],[2,"\\n\\n "],[13],[2,"\\n\\n"],[6,[37,1],[[32,0,["showScriptExtension"]]],null,[["default"],[{"statements":[[2," "],[2,[32,0,["showScriptExtension","container"]]],[2,"\\n"],[2," "],[10,"script"],[15,"src",[31,[[32,0,["showScriptExtension","src"]]]]],[12],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,0,["settings","accentColor"]]],null,[["default"],[{"statements":[[2," "],[10,"style"],[12],[2,"\\n :root {\\n --accent-color: "],[1,[32,0,["settings","accentColor"]]],[2,";\\n --adjusted-accent-color: "],[1,[32,0,["ui","adjustedAccentColor"]]],[2,";\\n --kg-accent-color: "],[1,[32,0,["settings","accentColor"]]],[2,";\\n }\\n\\n .gh-btn-accent {\\n background-color: var(--adjusted-accent-color);\\n color: #fff;\\n }\\n\\n .gh-btn-accent:hover {\\n background-color: "],[1,[30,[36,0],[[32,0,["ui","adjustedAccentColor"]]],[["l"],[-15]]]],[2,";\\n color: #fff;\\n }\\n\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[8,"render-in-wormhole",[],[["@elementId"],["ember-notifications-wormhole"]],[["default"],[{"statements":[[2,"\\n "],[8,"gh-notifications",[],[[],[]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n\\n"],[10,"div"],[14,1,"unsplash-selector-wormhole"],[12],[13],[2,"\\n\\n"],[6,[37,6],[[32,0,["modalDestinationElement"]]],[["guid","insertBefore"],["%cursor:0%",null]],[["default"],[{"statements":[[2," "],[8,"epm-modal-container",[],[[],[]],null],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[8,"ember-load-remover",[],[[],[]],null],[2,"\\n"]],"hasEval":false,"upvars":["hex-adjust","if","on","and","-outlet","component","in-element"]}',moduleName:"ghost-admin/templates/application.hbs"})}),define("ghost-admin/templates/components/draggable-object-target",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3669
- e.default=Ember.HTMLBars.template({id:"ds+gecsL",block:'{"symbols":["&default"],"statements":[[6,[37,2],[[35,1]],null,[["default","else"],[{"statements":[[2," "],[11,"a"],[24,6,"#"],[4,[38,0],[[32,0],"acceptForDrop"],null],[12],[2,"\\n "],[18,1,null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[18,1,null],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["action","enableClicking","if"]}',moduleName:"ghost-admin/templates/components/draggable-object-target.hbs"})})
3670
- define("ghost-admin/templates/components/draggable-object",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3687
+ e.default=Ember.HTMLBars.template({id:"ds+gecsL",block:'{"symbols":["&default"],"statements":[[6,[37,2],[[35,1]],null,[["default","else"],[{"statements":[[2," "],[11,"a"],[24,6,"#"],[4,[38,0],[[32,0],"acceptForDrop"],null],[12],[2,"\\n "],[18,1,null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[18,1,null],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["action","enableClicking","if"]}',moduleName:"ghost-admin/templates/components/draggable-object-target.hbs"})}),define("ghost-admin/templates/components/draggable-object",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3671
3688
  e.default=Ember.HTMLBars.template({id:"dnghnOtX",block:'{"symbols":["&default"],"statements":[[6,[37,2],[[35,1]],null,[["default","else"],[{"statements":[[2," "],[11,"a"],[24,6,"#"],[4,[38,0],[[32,0],"selectForDrag"],null],[12],[2,"\\n "],[18,1,null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[18,1,null],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["action","enableClicking","if"]}',moduleName:"ghost-admin/templates/components/draggable-object.hbs"})}),define("ghost-admin/templates/components/object-bin",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3672
3689
  e.default=Ember.HTMLBars.template({id:"fMRICE3+",block:'{"symbols":["obj","&default"],"statements":[[6,[37,5],null,[["action"],["handleObjectDropped"]],[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"object-bin-title"],[12],[1,[34,1]],[13],[2,"\\n "],[10,"br"],[12],[13],[2,"\\n"],[6,[37,4],[[30,[36,3],[[30,[36,3],[[35,2]],null]],null]],null,[["default"],[{"statements":[[6,[37,0],null,[["action","content"],["handleObjectDragged",[32,1]]],[["default"],[{"statements":[[2," "],[18,2,[[32,1]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[1]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["draggable-object","name","model","-track-array","each","draggable-object-target"]}',moduleName:"ghost-admin/templates/components/object-bin.hbs"})}),define("ghost-admin/templates/components/sortable-objects",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3673
3690
  e.default=Ember.HTMLBars.template({id:"c7MHeoWa",block:'{"symbols":["&default"],"statements":[[18,1,null]],"hasEval":false,"upvars":[]}',moduleName:"ghost-admin/templates/components/sortable-objects.hbs"})}),define("ghost-admin/templates/error",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -3698,12 +3715,12 @@ class i extends t.default{deserialize(e){let t=""===e?null:e
3698
3715
  return JSON.parse(t)}serialize(e){return e?JSON.stringify(e):null}}e.default=i}),define("ghost-admin/transforms/member-subscription",["exports","ghost-admin/models/member-subscription","@ember-data/serializer/transform"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3699
3716
  class r extends i.default{deserialize(e){let i,r
3700
3717
  return r=e||[],i=r.map(e=>t.default.create(e)),Ember.A(i)}serialize(e){let t
3701
- return t=Ember.isArray(e)?e.map(e=>e).compact():[],t}}e.default=r}),define("ghost-admin/transforms/member-tier",["exports","ghost-admin/models/member-tier","@ember-data/serializer/transform"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3718
+ return t=Ember.isArray(e)?e.map(e=>e).compact():[],t}}e.default=r})
3719
+ define("ghost-admin/transforms/member-tier",["exports","ghost-admin/models/member-tier","@ember-data/serializer/transform"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3702
3720
  class r extends i.default{deserialize(e){let i,r
3703
3721
  return r=e||[],i=r.map(e=>t.default.create(e)),Ember.A(i)}serialize(e){let t
3704
3722
  return t=Ember.isArray(e)?e.map(e=>e).compact():[],t}}e.default=r}),define("ghost-admin/transforms/members-segment-string",["exports","@ember-data/serializer/transform"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3705
- class i extends t.default{deserialize(e){return"all"===e?"status:free,status:-free":"none"===e?null:e}serialize(e){return"status:free,status:-free"===e?"all":e||"none"}}e.default=i})
3706
- define("ghost-admin/transforms/moment-date",["exports","@ember-data/serializer/transform","moment-timezone"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3723
+ class i extends t.default{deserialize(e){return"all"===e?"status:free,status:-free":"none"===e?null:e}serialize(e){return"status:free,status:-free"===e?"all":e||"none"}}e.default=i}),define("ghost-admin/transforms/moment-date",["exports","@ember-data/serializer/transform","moment-timezone"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3707
3724
  class r extends t.default{deserialize(e){return e?(0,i.default)(e):e}serialize(e){return e?(0,i.default)(e).toDate():e}}e.default=r}),define("ghost-admin/transforms/moment-utc",["exports","@ember-data/serializer/transform","moment-timezone"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3708
3725
  class r extends t.default{deserialize(e){return e?i.default.utc(e):e}serialize(e){if(e)try{return e.toJSON()}catch(t){return e}return e}}e.default=r}),define("ghost-admin/transforms/navigation-settings",["exports","ghost-admin/models/navigation-item","@ember-data/serializer/transform"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3709
3726
  class r extends i.default{deserialize(e,i){let r,n
@@ -3728,10 +3745,10 @@ return i=r(document),i}()}${e}`},e.resolveAssetBase=r
3728
3745
  let i=null
3729
3746
  function r(e){const i=e.querySelector('script[src*="assets/ghost"]')
3730
3747
  if(i&&i.src)try{const e=new URL(i.src),t=e.pathname.indexOf("/assets/")
3731
- if(t>0)return`${e.origin}${e.pathname.substring(0,t)}/`}catch(r){}return`${window.location.origin}${(0,t.default)().adminRoot}`}}),define("ghost-admin/utils/bound-one-way",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){"function"!=typeof t&&(t=function(e){return e})
3748
+ if(t>0)return`${e.origin}${e.pathname.substring(0,t)}/`}catch(r){}return`${window.location.origin}${(0,t.default)().adminRoot}`}})
3749
+ define("ghost-admin/utils/bound-one-way",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){"function"!=typeof t&&(t=function(e){return e})
3732
3750
  return Ember.computed(e,{get(){return t(this.get(e))},set:(e,t)=>t})}}),define("ghost-admin/utils/caja-sanitizers",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3733
- e.default={url:function(e){if(e=e.toString().replace(/['"]+/g,""),/^https?:\/\//.test(e)||/^\//.test(e))return e},id:function(e){return e}}})
3734
- define("ghost-admin/utils/calculate-position",["exports","ember-basic-dropdown/utils/calculate-position"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/utils/copy-text-to-clipboard",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){navigator.clipboard.writeText(e)}}),define("ghost-admin/utils/ctrl-or-cmd",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3751
+ e.default={url:function(e){if(e=e.toString().replace(/['"]+/g,""),/^https?:\/\//.test(e)||/^\//.test(e))return e},id:function(e){return e}}}),define("ghost-admin/utils/calculate-position",["exports","ember-basic-dropdown/utils/calculate-position"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/utils/copy-text-to-clipboard",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){navigator.clipboard.writeText(e)}}),define("ghost-admin/utils/ctrl-or-cmd",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3735
3752
  e.default=-1!==navigator.userAgent.indexOf("Mac")?"command":"ctrl"}),define("ghost-admin/utils/currency",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.currencies=void 0,e.getCurrencyOptions=function(){const e=t.slice(0,5).map(e=>({value:e.isoCode.toLowerCase(),label:`${e.isoCode} - ${e.name}`,isoCode:e.isoCode})),i=t.slice(5,t.length).map(e=>({value:e.isoCode.toLowerCase(),label:`${e.isoCode} - ${e.name}`,isoCode:e.isoCode}))
3736
3753
  return[{groupName:"—",options:e},{groupName:"—",options:i}]},e.getNonDecimal=function(e){return e/100},e.getSymbol=function(e){if(!e)return""
3737
3754
  return Intl.NumberFormat("en",{currency:e,style:"currency"}).format(0).replace(/[\d\s.]/g,"")},e.minimumAmountForCurrency=function(e){const t=e?.toUpperCase()
@@ -3745,7 +3762,7 @@ case"JPY":return 100
3745
3762
  case"MXN":case"THB":return 20
3746
3763
  case"NOK":case"SEK":return 6
3747
3764
  default:return 1}}
3748
- const t=e.currencies=[{isoCode:"USD",name:"United States dollar"},{isoCode:"EUR",name:"Euro"},{isoCode:"GBP",name:"Pound sterling"},{isoCode:"AUD",name:"Australian dollar"},{isoCode:"CAD",name:"Canadian dollar"},{isoCode:"AED",name:"United Arab Emirates dirham"},{isoCode:"AFN",name:"Afghan afghani"},{isoCode:"ALL",name:"Albanian lek"},{isoCode:"AMD",name:"Armenian dram"},{isoCode:"ANG",name:"Netherlands Antillean guilder"},{isoCode:"AOA",name:"Angolan kwanza"},{isoCode:"ARS",name:"Argentine peso"},{isoCode:"AWG",name:"Aruban florin"},{isoCode:"AZN",name:"Azerbaijani manat"},{isoCode:"BAM",name:"Bosnia and Herzegovina convertible mark"},{isoCode:"BBD",name:"Barbados dollar"},{isoCode:"BDT",name:"Bangladeshi taka"},{isoCode:"BGN",name:"Bulgarian lev"},{isoCode:"BMD",name:"Bermudian dollar"},{isoCode:"BND",name:"Brunei dollar"},{isoCode:"BOB",name:"Boliviano"},{isoCode:"BRL",name:"Brazilian real"},{isoCode:"BSD",name:"Bahamian dollar"},{isoCode:"BWP",name:"Botswana pula"},{isoCode:"BZD",name:"Belize dollar"},{isoCode:"CDF",name:"Congolese franc"},{isoCode:"CHF",name:"Swiss franc"},{isoCode:"CNY",name:"Chinese yuan"},{isoCode:"COP",name:"Colombian peso"},{isoCode:"CRC",name:"Costa Rican colon"},{isoCode:"CVE",name:"Cape Verdean escudo"},{isoCode:"CZK",name:"Czech koruna"},{isoCode:"DKK",name:"Danish krone"},{isoCode:"DOP",name:"Dominican peso"},{isoCode:"DZD",name:"Algerian dinar"},{isoCode:"EGP",name:"Egyptian pound"},{isoCode:"ETB",name:"Ethiopian birr"},{isoCode:"FJD",name:"Fiji dollar"},{isoCode:"FKP",name:"Falkland Islands pound"},{isoCode:"GEL",name:"Georgian lari"},{isoCode:"GIP",name:"Gibraltar pound"},{isoCode:"GMD",name:"Gambian dalasi"},{isoCode:"GTQ",name:"Guatemalan queztal"},{isoCode:"GYD",name:"Guyanese dollar"},{isoCode:"HKD",name:"Hong Kong dollar"},{isoCode:"HNL",name:"Honduran lempira"},{isoCode:"HRK",name:"Croation kuna"},{isoCode:"HTG",name:"Haitian gourde"},{isoCode:"HUF",name:"Hungarian forint"},{isoCode:"IDR",name:"Indonesian rupiah"},{isoCode:"ILS",name:"Israeli new shekel"},{isoCode:"INR",name:"Indian rupee"},{isoCode:"ISK",name:"Icelandic króna"},{isoCode:"JMD",name:"Jamaican dollar"},{isoCode:"KES",name:"Kenyan shilling"},{isoCode:"KGS",name:"Kyrgyzstani som"},{isoCode:"KHR",name:"Cambodian riel"},{isoCode:"KYD",name:"Cayman Islands dollar"},{isoCode:"KZT",name:"Kazakhstani tenge"},{isoCode:"LAK",name:"Lao kip"},{isoCode:"LBP",name:"Lebanese pound"},{isoCode:"LKR",name:"Sri Lankan rupee"},{isoCode:"LRD",name:"Liberian dollar"},{isoCode:"LSL",name:"Lesotho loti"},{isoCode:"MAD",name:"Moroccan dirham"},{isoCode:"MDL",name:"Moldovan leu"},{isoCode:"MKD",name:"Macedonian denar"},{isoCode:"MMK",name:"Myanmar kyat"},{isoCode:"MNT",name:"Mongolian tögrög"},{isoCode:"MOP",name:"Macanese pataca"},{isoCode:"MRO",name:"Mauritanian ouguiya"},{isoCode:"MUR",name:"Mauritian rupee"},{isoCode:"MVR",name:"Maldivian rufiyaa"},{isoCode:"MWK",name:"Malawian kwacha"},{isoCode:"MXN",name:"Mexican peso"},{isoCode:"MYR",name:"Malaysian ringgit"},{isoCode:"MZN",name:"Mozambican metical"},{isoCode:"NAD",name:"Namibian dollar"},{isoCode:"NGN",name:"Nigerian naira"},{isoCode:"NIO",name:"Nicaraguan córdoba"},{isoCode:"NOK",name:"Norwegian krone"},{isoCode:"NPR",name:"Nepalese rupee"},{isoCode:"NZD",name:"New Zealand dollar"},{isoCode:"PAB",name:"Panamanian balboa"},{isoCode:"PEN",name:"Peruvian sol"},{isoCode:"PGK",name:"Papua New Guinean kina"},{isoCode:"PHP",name:"Philippine peso"},{isoCode:"PKR",name:"Pakistani rupee"},{isoCode:"PLN",name:"Polish złoty"},{isoCode:"QAR",name:"Qatari riyal"},{isoCode:"RON",name:"Romanian leu"},{isoCode:"RSD",name:"Serbian dinar"},{isoCode:"RUB",name:"Russian ruble"},{isoCode:"SAR",name:"Saudi riyal"},{isoCode:"SBD",name:"Solomon Islands dollar"},{isoCode:"SCR",name:"Seychelles rupee"},{isoCode:"SEK",name:"Swedish krona"},{isoCode:"SGD",name:"Singapore dollar"},{isoCode:"SHP",name:"Saint Helena pound"},{isoCode:"SLL",name:"Sierra Leonean leone"},{isoCode:"SOS",name:"Somali shilling"},{isoCode:"SRD",name:"Surinamese dollar"},{isoCode:"STD",name:"São Tomé and Príncipe dobra"},{isoCode:"SZL",name:"Salvadoran colón"},{isoCode:"THB",name:"Thai baht"},{isoCode:"TJS",name:"Tajikistani somoni"},{isoCode:"TOP",name:"Tongan paʻanga"},{isoCode:"TRY",name:"Turkish lira"},{isoCode:"TTD",name:"Trinidad and Tobago dollar"},{isoCode:"TWD",name:"New Taiwan dollar"},{isoCode:"TZS",name:"Tanzanian shilling"},{isoCode:"UAH",name:"Ukrainian hryvnia"},{isoCode:"UYU",name:"Uruguayan peso"},{isoCode:"UZS",name:"Uzbekistan som"},{isoCode:"WST",name:"Samoan tala"},{isoCode:"XCD",name:"East Caribbean dollar"},{isoCode:"YER",name:"Yemeni rial"},{isoCode:"ZAR",name:"South African rand"},{isoCode:"ZMW",name:"Zambian kwacha"}]}),define("ghost-admin/utils/escape-nql-string",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.escapeNqlString=function(e){return"'"+String(e).split("'").join("\\'")+"'"}}),define("ghost-admin/utils/fetch-koenig-lexical",["exports","ghost-admin/config/environment","ghost-admin/utils/asset-base"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=async function(){if(window["@tryghost/koenig-lexical"])return window["@tryghost/koenig-lexical"]
3765
+ const t=e.currencies=[{isoCode:"USD",name:"United States dollar"},{isoCode:"EUR",name:"Euro"},{isoCode:"GBP",name:"Pound sterling"},{isoCode:"AUD",name:"Australian dollar"},{isoCode:"CAD",name:"Canadian dollar"},{isoCode:"AED",name:"United Arab Emirates dirham"},{isoCode:"AFN",name:"Afghan afghani"},{isoCode:"ALL",name:"Albanian lek"},{isoCode:"AMD",name:"Armenian dram"},{isoCode:"ANG",name:"Netherlands Antillean guilder"},{isoCode:"AOA",name:"Angolan kwanza"},{isoCode:"ARS",name:"Argentine peso"},{isoCode:"AWG",name:"Aruban florin"},{isoCode:"AZN",name:"Azerbaijani manat"},{isoCode:"BAM",name:"Bosnia and Herzegovina convertible mark"},{isoCode:"BBD",name:"Barbados dollar"},{isoCode:"BDT",name:"Bangladeshi taka"},{isoCode:"BGN",name:"Bulgarian lev"},{isoCode:"BMD",name:"Bermudian dollar"},{isoCode:"BND",name:"Brunei dollar"},{isoCode:"BOB",name:"Boliviano"},{isoCode:"BRL",name:"Brazilian real"},{isoCode:"BSD",name:"Bahamian dollar"},{isoCode:"BWP",name:"Botswana pula"},{isoCode:"BZD",name:"Belize dollar"},{isoCode:"CDF",name:"Congolese franc"},{isoCode:"CHF",name:"Swiss franc"},{isoCode:"CNY",name:"Chinese yuan"},{isoCode:"COP",name:"Colombian peso"},{isoCode:"CRC",name:"Costa Rican colon"},{isoCode:"CVE",name:"Cape Verdean escudo"},{isoCode:"CZK",name:"Czech koruna"},{isoCode:"DKK",name:"Danish krone"},{isoCode:"DOP",name:"Dominican peso"},{isoCode:"DZD",name:"Algerian dinar"},{isoCode:"EGP",name:"Egyptian pound"},{isoCode:"ETB",name:"Ethiopian birr"},{isoCode:"FJD",name:"Fiji dollar"},{isoCode:"FKP",name:"Falkland Islands pound"},{isoCode:"GEL",name:"Georgian lari"},{isoCode:"GIP",name:"Gibraltar pound"},{isoCode:"GMD",name:"Gambian dalasi"},{isoCode:"GTQ",name:"Guatemalan queztal"},{isoCode:"GYD",name:"Guyanese dollar"},{isoCode:"HKD",name:"Hong Kong dollar"},{isoCode:"HNL",name:"Honduran lempira"},{isoCode:"HRK",name:"Croation kuna"},{isoCode:"HTG",name:"Haitian gourde"},{isoCode:"HUF",name:"Hungarian forint"},{isoCode:"IDR",name:"Indonesian rupiah"},{isoCode:"ILS",name:"Israeli new shekel"},{isoCode:"INR",name:"Indian rupee"},{isoCode:"ISK",name:"Icelandic króna"},{isoCode:"JMD",name:"Jamaican dollar"},{isoCode:"KES",name:"Kenyan shilling"},{isoCode:"KGS",name:"Kyrgyzstani som"},{isoCode:"KHR",name:"Cambodian riel"},{isoCode:"KYD",name:"Cayman Islands dollar"},{isoCode:"KZT",name:"Kazakhstani tenge"},{isoCode:"LAK",name:"Lao kip"},{isoCode:"LBP",name:"Lebanese pound"},{isoCode:"LKR",name:"Sri Lankan rupee"},{isoCode:"LRD",name:"Liberian dollar"},{isoCode:"LSL",name:"Lesotho loti"},{isoCode:"MAD",name:"Moroccan dirham"},{isoCode:"MDL",name:"Moldovan leu"},{isoCode:"MKD",name:"Macedonian denar"},{isoCode:"MMK",name:"Myanmar kyat"},{isoCode:"MNT",name:"Mongolian tögrög"},{isoCode:"MOP",name:"Macanese pataca"},{isoCode:"MRO",name:"Mauritanian ouguiya"},{isoCode:"MUR",name:"Mauritian rupee"},{isoCode:"MVR",name:"Maldivian rufiyaa"},{isoCode:"MWK",name:"Malawian kwacha"},{isoCode:"MXN",name:"Mexican peso"},{isoCode:"MYR",name:"Malaysian ringgit"},{isoCode:"MZN",name:"Mozambican metical"},{isoCode:"NAD",name:"Namibian dollar"},{isoCode:"NGN",name:"Nigerian naira"},{isoCode:"NIO",name:"Nicaraguan córdoba"},{isoCode:"NOK",name:"Norwegian krone"},{isoCode:"NPR",name:"Nepalese rupee"},{isoCode:"NZD",name:"New Zealand dollar"},{isoCode:"PAB",name:"Panamanian balboa"},{isoCode:"PEN",name:"Peruvian sol"},{isoCode:"PGK",name:"Papua New Guinean kina"},{isoCode:"PHP",name:"Philippine peso"},{isoCode:"PKR",name:"Pakistani rupee"},{isoCode:"PLN",name:"Polish złoty"},{isoCode:"QAR",name:"Qatari riyal"},{isoCode:"RON",name:"Romanian leu"},{isoCode:"RSD",name:"Serbian dinar"},{isoCode:"RUB",name:"Russian ruble"},{isoCode:"SAR",name:"Saudi riyal"},{isoCode:"SBD",name:"Solomon Islands dollar"},{isoCode:"SCR",name:"Seychelles rupee"},{isoCode:"SEK",name:"Swedish krona"},{isoCode:"SGD",name:"Singapore dollar"},{isoCode:"SHP",name:"Saint Helena pound"},{isoCode:"SLL",name:"Sierra Leonean leone"},{isoCode:"SOS",name:"Somali shilling"},{isoCode:"SRD",name:"Surinamese dollar"},{isoCode:"STD",name:"São Tomé and Príncipe dobra"},{isoCode:"SZL",name:"Salvadoran colón"},{isoCode:"THB",name:"Thai baht"},{isoCode:"TJS",name:"Tajikistani somoni"},{isoCode:"TOP",name:"Tongan paʻanga"},{isoCode:"TRY",name:"Turkish lira"},{isoCode:"TTD",name:"Trinidad and Tobago dollar"},{isoCode:"TWD",name:"New Taiwan dollar"},{isoCode:"TZS",name:"Tanzanian shilling"},{isoCode:"UAH",name:"Ukrainian hryvnia"},{isoCode:"UYU",name:"Uruguayan peso"},{isoCode:"UZS",name:"Uzbekistan som"},{isoCode:"WST",name:"Samoan tala"},{isoCode:"XCD",name:"East Caribbean dollar"},{isoCode:"YER",name:"Yemeni rial"},{isoCode:"ZAR",name:"South African rand"},{isoCode:"ZMW",name:"Zambian kwacha"}]}),define("ghost-admin/utils/fetch-koenig-lexical",["exports","ghost-admin/config/environment","ghost-admin/utils/asset-base"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=async function(){if(window["@tryghost/koenig-lexical"])return window["@tryghost/koenig-lexical"]
3749
3766
  const e=t.default.editorUrl||(0,i.prefixAssetUrl)("assets/koenig-lexical/"),r=new URL(`${e}${t.default.editorFilename}?v=${t.default.editorHash}`)
3750
3767
  "http:"===r.protocol?await import(`http://${r.host}${r.pathname}${r.search}`):await import(`https://${r.host}${r.pathname}${r.search}`)
3751
3768
  return window["@tryghost/koenig-lexical"]}}),define("ghost-admin/utils/flatten-grouped-options",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){const t=[]
@@ -3813,11 +3830,14 @@ try{return yield this.post.save({adapterOptions:t})}catch(i){throw this._revertM
3813
3830
  try{return this.post.isScheduled&&(this.post.publishedAtUTC=null),this.post.status="draft",this.post.emailOnly=!1,yield this.post.save()}catch(i){throw this.post.status=e,this.post.publishedAtUTC=t,i}}_applyModelChanges(){const e=this.willEmail
3814
3831
  if(this._originalModelValues={},!this.post.isDraft)return;["status","publishedAtUTC","emailOnly"].forEach(e=>{this._originalModelValues[e]=this.post[e]}),this.post.status=this.isScheduled?"scheduled":"published",this.isScheduled&&(this.post.publishedAtUTC=this.scheduledAtUTC),e&&(this.post.emailOnly="send"===this.publishType)}_revertModelChanges(){Object.keys(this._originalModelValues).forEach(e=>{this.post[e]=this._originalModelValues[e]})}async _checkSendingLimit(){await this.settings.reload()
3815
3832
  try{this.limit.limiter&&this.limit.limiter.isLimited("emails")?await this.limit.limiter.errorIfWouldGoOverLimit("emails"):this.settings.emailVerificationRequired&&(this.emailDisabledError=this.config.hostSettings?.emailVerification?.emailSendingDisabledMessage||"Email sending is temporarily disabled because your account is currently in review. You should have an email about this from us already, but you can also reach us any time at support@ghost.org.")}catch(e){this.emailDisabledError=e.message}}async _checkPublishingLimit(){if(this.user.isAdmin)try{this.limit.limiter?.isLimited("members")&&await this.limit.limiter.errorIfIsOverLimit("members")}catch(e){const t=Ember.String.htmlSafe(e.message.replace(/please upgrade/i,'<a href="#/pro">$&</a>'))
3816
- this.publishDisabledError=t}}}).prototype,"publishDisabledError",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),P=C(w.prototype,"totalMemberCount",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),_=C(w.prototype,"isScheduled",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),k=C(w.prototype,"scheduledAtUTC",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return this.minScheduledAt}}),C(w.prototype,"toggleScheduled",[l],Object.getOwnPropertyDescriptor(w.prototype,"toggleScheduled"),w.prototype),C(w.prototype,"setScheduledAt",[u],Object.getOwnPropertyDescriptor(w.prototype,"setScheduledAt"),w.prototype),C(w.prototype,"resetPastScheduledAt",[c],Object.getOwnPropertyDescriptor(w.prototype,"resetPastScheduledAt"),w.prototype),O=C(w.prototype,"publishType",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"publish+send"}}),j=C(w.prototype,"emailDisabledError",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C(w.prototype,"setPublishType",[m],Object.getOwnPropertyDescriptor(w.prototype,"setPublishType"),w.prototype),T=C(w.prototype,"newsletter",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),z=C(w.prototype,"selectedRecipientFilter",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){}}),C(w.prototype,"setNewsletter",[f],Object.getOwnPropertyDescriptor(w.prototype,"setNewsletter"),w.prototype),C(w.prototype,"setRecipientFilter",[g],Object.getOwnPropertyDescriptor(w.prototype,"setRecipientFilter"),w.prototype),C(w.prototype,"setupTask",[r.task],Object.getOwnPropertyDescriptor(w.prototype,"setupTask"),w.prototype),C(w.prototype,"fetchRequiredDataTask",[r.task],Object.getOwnPropertyDescriptor(w.prototype,"fetchRequiredDataTask"),w.prototype),C(w.prototype,"saveTask",[v],Object.getOwnPropertyDescriptor(w.prototype,"saveTask"),w.prototype),C(w.prototype,"revertToDraftTask",[y],Object.getOwnPropertyDescriptor(w.prototype,"revertToDraftTask"),w.prototype),w)}),define("ghost-admin/utils/route",["ghost-admin/decorators/inject"],function(e){Ember.Route.reopen({billing:Ember.inject.service(),router:Ember.inject.service(),config:(0,e.inject)(),actions:{willTransition(e){return this.get("upgradeStatus.isRequired")?(e.abort(),this.upgradeStatus.requireUpgrade(),!1):!this.config.hostSettings?.forceUpgrade||(!("pro.index"!==e.to?.name&&"signout"!==e.to?.name&&!e.to?.params?.path?.startsWith("settings"))||(e.abort(),this.billing.openBillingWindow(this.router.currentURL,"/pro"),!1))}}})}),define("ghost-admin/utils/search",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SEARCHABLES=void 0,e.createSearchResult=function(e,t){const i=e.idField||e.pathField
3817
- return{id:`${e.model}.${t[i]}`,url:t.url,title:t[e.titleField],groupName:e.name,status:t.status,visibility:t.visibility,publishedAt:t.published_at}},e.sortSearchResultsByStatus=function(e,i){"post"!==i&&"page"!==i||e.sort((e,i)=>(t[e.status]||5)-(t[i.status]||5))
3833
+ this.publishDisabledError=t}}}).prototype,"publishDisabledError",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),P=C(w.prototype,"totalMemberCount",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),_=C(w.prototype,"isScheduled",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),k=C(w.prototype,"scheduledAtUTC",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return this.minScheduledAt}}),C(w.prototype,"toggleScheduled",[l],Object.getOwnPropertyDescriptor(w.prototype,"toggleScheduled"),w.prototype),C(w.prototype,"setScheduledAt",[u],Object.getOwnPropertyDescriptor(w.prototype,"setScheduledAt"),w.prototype),C(w.prototype,"resetPastScheduledAt",[c],Object.getOwnPropertyDescriptor(w.prototype,"resetPastScheduledAt"),w.prototype),O=C(w.prototype,"publishType",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"publish+send"}}),j=C(w.prototype,"emailDisabledError",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C(w.prototype,"setPublishType",[m],Object.getOwnPropertyDescriptor(w.prototype,"setPublishType"),w.prototype),T=C(w.prototype,"newsletter",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),z=C(w.prototype,"selectedRecipientFilter",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){}}),C(w.prototype,"setNewsletter",[f],Object.getOwnPropertyDescriptor(w.prototype,"setNewsletter"),w.prototype),C(w.prototype,"setRecipientFilter",[g],Object.getOwnPropertyDescriptor(w.prototype,"setRecipientFilter"),w.prototype),C(w.prototype,"setupTask",[r.task],Object.getOwnPropertyDescriptor(w.prototype,"setupTask"),w.prototype),C(w.prototype,"fetchRequiredDataTask",[r.task],Object.getOwnPropertyDescriptor(w.prototype,"fetchRequiredDataTask"),w.prototype),C(w.prototype,"saveTask",[v],Object.getOwnPropertyDescriptor(w.prototype,"saveTask"),w.prototype),C(w.prototype,"revertToDraftTask",[y],Object.getOwnPropertyDescriptor(w.prototype,"revertToDraftTask"),w.prototype),w)}),define("ghost-admin/utils/route",["ghost-admin/decorators/inject"],function(e){Ember.Route.reopen({billing:Ember.inject.service(),router:Ember.inject.service(),config:(0,e.inject)(),actions:{willTransition(e){return this.get("upgradeStatus.isRequired")?(e.abort(),this.upgradeStatus.requireUpgrade(),!1):!this.config.hostSettings?.forceUpgrade||(!(!e.to?.name?.startsWith("pro.")&&"signout"!==e.to?.name&&!e.to?.params?.path?.startsWith("settings"))||(e.abort(),this.billing.openBillingWindow(this.router.currentURL,"/pro"),!1))}}})}),define("ghost-admin/utils/search",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.SEARCHABLES=e.BILLING_SEARCH_GROUP_KEY=void 0,e.createSearchResult=function(e,t){const i=e.idField||e.pathField
3834
+ return{id:`${e.model}.${t[i]}`,url:t.url,path:t.path,title:t[e.titleField],keywords:t.keywords,groupName:e.name,groupKey:e.key,status:t.status,visibility:t.visibility,publishedAt:t.published_at}},e.getSearchables=function(e){return i.map(t=>t.configure?t.configure(e):t).filter(Boolean)},e.sortSearchResultsByStatus=function(e,t){"post"!==t&&"page"!==t||e.sort((e,t)=>(r[e.status]||5)-(r[t.status]||5))
3818
3835
  return e}
3819
- e.SEARCHABLES=[{name:"Staff",model:"user",pathField:"slug",idField:"slug",titleField:"name",index:["name"]},{name:"Tags",model:"tag",pathField:"slug",idField:"slug",titleField:"name",index:["name"]},{name:"Posts",model:"post",pathField:"id",idField:"id",titleField:"title",index:["title"]},{name:"Pages",model:"page",pathField:"id",idField:"id",titleField:"title",index:["title"]}]
3820
- const t={scheduled:1,draft:2,published:3,sent:4}}),define("ghost-admin/utils/sentry",["exports","@sentry/integrations","@sentry/replay","ember-ajax/errors"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.beforeSend=s,e.getSentryConfig=a,e.getSentryTestConfig=function(e){return a("https://abcdef0123456789abcdef0123456789@o12345.ingest.sentry.io/1234567","testing","5.0.0",e)}
3836
+ const t=e.BILLING_SEARCH_GROUP_KEY="billing",i=e.SEARCHABLES=[{name:"Staff",model:"user",pathField:"slug",idField:"slug",titleField:"name",index:["name"]},{name:"Tags",model:"tag",pathField:"slug",idField:"slug",titleField:"name",index:["name"]},{key:t,model:"pro-page",idField:"id",titleField:"title",index:["title","keywords"],configure(e){const t=e?.billing?.search,r="string"==typeof t?.groupName?t.groupName.trim():"",n=Array.isArray(t?.items)?t.items.filter(e=>"string"==typeof e?.id&&e.id&&"string"==typeof e.title&&e.title&&"string"==typeof e.path&&/^\/[^?#\s]*$/.test(e.path)&&("/"===e.path||!e.path.endsWith("/"))).map(e=>({id:e.id,title:e.title,path:e.path,keywords:"string"==typeof e.keywords?e.keywords:""})):[],a=i.some(e=>e.name===r)
3837
+ if(!r||a||0===n.length)return null
3838
+ const s={...this,name:r,staticItems:n}
3839
+ return delete s.configure,s}},{name:"Posts",model:"post",pathField:"id",idField:"id",titleField:"title",index:["title"]},{name:"Pages",model:"page",pathField:"id",idField:"id",titleField:"title",index:["title"]}]
3840
+ const r={scheduled:1,draft:2,published:3,sent:4}}),define("ghost-admin/utils/sentry",["exports","@sentry/integrations","@sentry/replay","ember-ajax/errors"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.beforeSend=s,e.getSentryConfig=a,e.getSentryTestConfig=function(e){return a("https://abcdef0123456789abcdef0123456789@o12345.ingest.sentry.io/1234567","testing","5.0.0",e)}
3821
3841
  const n=/\/e\.ghost\.org|plausible\.io/
3822
3842
  function a(e,r,a,o){const l=[],u={dsn:e,transport:o,environment:r,release:`ghost@${a}`,beforeSend:s,ignoreErrors:[/The play\(\) request was interrupted.*/,/The request is not allowed by the user agent or the platform in the current context/,/Server was unreachable/,/NetworkError when attempting to fetch resource./,/Failed to fetch/,/Load failed/,/The operation was aborted./,/^TransitionAborted$/,/^ResizeObserver loop completed with undelivered notifications/,/^ResizeObserver loop limit exceeded/,"TaskCancelation"],integrations:function(e){return[...e.filter(e=>"testing"!==r||"Dedupe"!==e.name),...l]},beforeBreadcrumb:e=>"http"===e.category&&e.data?.url?.match(n)?null:e}
3823
3843
  if("testing"!==r)try{u.replaysOnErrorSampleRate=.5,l.push(new i.Replay({mask:[".koenig-lexical",".gh-dashboard"],unmask:['[role="menu"]','[data-testid="settings-panel"]',".gh-nav"],maskAllText:!1,maskAllInputs:!0,blockAllMedia:!0}))}catch(c){console.error("Error enabling Sentry Replay:",c)}return"development"===r&&l.push(new t.Debug),u}function s(e,t){try{const i=t?.originalException
@@ -3853,11 +3873,11 @@ return n},e.giftExpiry=c,e.isActive=n,e.isCanceled=o,e.isComplimentary=a,e.isGif
3853
3873
  e.default={changeLocation(e){window.location=e},replaceLocation(e){window.location.replace(e)},replaceState(e,t,i){window.history.replaceState(e,t,i)},reload(){window.location.reload()}}}),define("ghost-admin/validators/base",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3854
3874
  e.default=Ember.Object.extend({passed:!1,init(){this._super(...arguments),this.properties=this.properties||[]},check(e,t){return this.set("passed",!0),t&&this[t]?this[t](e):this.properties.forEach(t=>{this[t]&&this[t](e)}),this.passed},invalidate(){this.set("passed",!1)}})}),define("ghost-admin/validators/custom-view",["exports","ghost-admin/validators/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3855
3875
  e.default=t.default.create({properties:["name"],name(e){Ember.isBlank(e.name)&&(e.errors.add("name","Please enter a name"),e.hasValidated.pushObject("name"),this.invalidate())}})}),define("ghost-admin/validators/integration",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3856
- e.default=t.default.create({properties:["name"],name(e){Ember.isBlank(e.name)?(e.errors.add("name","Please enter a name"),e.hasValidated.pushObject("name"),this.invalidate()):i.default.isLength(e.name,{max:191})||(e.errors.add("name","Name is too long, max 191 chars"),e.hasValidated.pushObject("name"),this.invalidate())}})}),define("ghost-admin/validators/invite-user",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3876
+ e.default=t.default.create({properties:["name"],name(e){Ember.isBlank(e.name)?(e.errors.add("name","Please enter a name"),e.hasValidated.pushObject("name"),this.invalidate()):i.default.isLength(e.name,{max:191})||(e.errors.add("name","Name is too long, max 191 chars"),e.hasValidated.pushObject("name"),this.invalidate())}})})
3877
+ define("ghost-admin/validators/invite-user",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3857
3878
  e.default=t.default.create({properties:["email","role"],email(e){let t=e.email
3858
3879
  Ember.isBlank(t)?(e.errors.add("email","Please enter an email."),this.invalidate()):i.default.isEmail(t)||(e.errors.add("email","Invalid Email."),this.invalidate())},role(e){let t=e.role
3859
- Ember.isBlank(t)&&(e.errors.add("role","Please select a role."),e.hasValidated.pushObject("role"),this.invalidate())}})})
3860
- define("ghost-admin/validators/label",["exports","ghost-admin/validators/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3880
+ Ember.isBlank(t)&&(e.errors.add("role","Please select a role."),e.hasValidated.pushObject("role"),this.invalidate())}})}),define("ghost-admin/validators/label",["exports","ghost-admin/validators/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3861
3881
  e.default=t.default.create({properties:["name"],name(e){Ember.isBlank(e.name)&&(e.errors.add("name","Please enter a name"),e.hasValidated.pushObject("name"),this.invalidate())}})}),define("ghost-admin/validators/member",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3862
3882
  e.default=t.default.create({properties:["name","email","note"],name(e){i.default.isLength(e.name||"",{max:191})||(e.errors.add("name","Name cannot be longer than 191 characters."),this.invalidate())},email(e){let t=e.email
3863
3883
  Ember.isBlank(t)?(e.errors.add("email","Please enter an email."),this.invalidate()):i.default.isEmail(t)||(e.errors.add("email","Invalid Email."),this.invalidate()),i.default.isLength(e.email||"",{max:191})||(e.errors.add("email","Email cannot be longer than 191 characters."),this.invalidate()),e.hasValidated.addObject("email")},note(e){let t=e.note
@@ -3927,6 +3947,6 @@ this.passwordChange(e),e.hasValidated.addObject("password"),Ember.isBlank(t)&&(e
3927
3947
  e.default=n.create()}),define("ghost-admin/validators/webhook",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3928
3948
  e.default=t.default.create({properties:["name","event","targetUrl","secret"],name(e){Ember.isBlank(e.name)?(e.errors.add("name","Please enter a name"),e.hasValidated.pushObject("name"),this.invalidate()):i.default.isLength(e.name,{max:191})||(e.errors.add("name","Name is too long, max 191 chars"),e.hasValidated.pushObject("name"),this.invalidate())},event(e){Ember.isBlank(e.event)&&(e.errors.add("event","Please select an event"),e.hasValidated.pushObject("event"),this.invalidate())},targetUrl(e){Ember.isBlank(e.targetUrl)?e.errors.add("targetUrl","Please enter a target URL"):i.default.isURL(e.targetUrl||"",{require_protocol:!1})?i.default.isLength(e.targetUrl,{max:2e3})||e.errors.add("targetUrl","Target URL is too long, max 2000 chars"):e.errors.add("targetUrl","Please enter a valid URL"),e.hasValidated.pushObject("targetUrl"),e.errors.has("targetUrl")&&this.invalidate()},secret(e){Ember.isBlank(e.secret)||i.default.isLength(e.secret,{max:191})||(e.errors.add("secret","Secret is too long, max 191 chars"),e.hasValidated.pushObject("secret"),this.invalidate())}})}),define("ghost-admin/views/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
3929
3949
  e.default=Ember.Component.extend({})}),define("ghost-admin/config/environment",[],function(){try{var e="ghost-admin/config/environment",t=document.querySelector('meta[name="'+e+'"]').getAttribute("content"),i={default:JSON.parse(decodeURIComponent(t))}
3930
- return Object.defineProperty(i,"__esModule",{value:!0}),i}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("ghost-admin/app").default.create({version:"6.55",name:"ghost-admin"})
3950
+ return Object.defineProperty(i,"__esModule",{value:!0}),i}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("ghost-admin/app").default.create({version:"6.56",name:"ghost-admin"})
3931
3951
 
3932
- //# sourceMappingURL=ghost-785e72b337d145250918fb724dca527a.map
3952
+ //# sourceMappingURL=ghost-1d6ddafb5bb8717df53e3135e844baf1.map