ghost 5.78.0 → 5.79.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (178) hide show
  1. package/components/tryghost-adapter-cache-memory-ttl-5.79.1.tgz +0 -0
  2. package/components/tryghost-adapter-cache-redis-5.79.1.tgz +0 -0
  3. package/components/tryghost-adapter-manager-5.79.1.tgz +0 -0
  4. package/components/tryghost-announcement-bar-settings-5.79.1.tgz +0 -0
  5. package/components/tryghost-api-framework-5.79.1.tgz +0 -0
  6. package/components/tryghost-api-version-compatibility-service-5.79.1.tgz +0 -0
  7. package/components/tryghost-audience-feedback-5.79.1.tgz +0 -0
  8. package/components/tryghost-bookshelf-repository-5.79.1.tgz +0 -0
  9. package/components/tryghost-bootstrap-socket-5.79.1.tgz +0 -0
  10. package/components/tryghost-collections-5.79.1.tgz +0 -0
  11. package/components/tryghost-constants-5.79.1.tgz +0 -0
  12. package/components/tryghost-custom-theme-settings-service-5.79.1.tgz +0 -0
  13. package/components/tryghost-data-generator-5.79.1.tgz +0 -0
  14. package/components/tryghost-domain-events-5.79.1.tgz +0 -0
  15. package/components/tryghost-donations-5.79.1.tgz +0 -0
  16. package/components/tryghost-dynamic-routing-events-5.79.1.tgz +0 -0
  17. package/components/{tryghost-email-addresses-5.78.0.tgz → tryghost-email-addresses-5.79.1.tgz} +0 -0
  18. package/components/tryghost-email-analytics-provider-mailgun-5.79.1.tgz +0 -0
  19. package/components/tryghost-email-analytics-service-5.79.1.tgz +0 -0
  20. package/components/tryghost-email-content-generator-5.79.1.tgz +0 -0
  21. package/components/tryghost-email-events-5.79.1.tgz +0 -0
  22. package/components/tryghost-email-service-5.79.1.tgz +0 -0
  23. package/components/tryghost-email-suppression-list-5.79.1.tgz +0 -0
  24. package/components/tryghost-express-dynamic-redirects-5.79.1.tgz +0 -0
  25. package/components/tryghost-external-media-inliner-5.79.1.tgz +0 -0
  26. package/components/tryghost-extract-api-key-5.79.1.tgz +0 -0
  27. package/components/tryghost-html-to-plaintext-5.79.1.tgz +0 -0
  28. package/components/tryghost-i18n-5.79.1.tgz +0 -0
  29. package/components/tryghost-importer-handler-content-files-5.79.1.tgz +0 -0
  30. package/components/{tryghost-importer-revue-5.78.0.tgz → tryghost-importer-revue-5.79.1.tgz} +0 -0
  31. package/components/tryghost-in-memory-repository-5.79.1.tgz +0 -0
  32. package/components/tryghost-job-manager-5.79.1.tgz +0 -0
  33. package/components/tryghost-link-redirects-5.79.1.tgz +0 -0
  34. package/components/tryghost-link-replacer-5.79.1.tgz +0 -0
  35. package/components/tryghost-link-tracking-5.79.1.tgz +0 -0
  36. package/components/tryghost-magic-link-5.79.1.tgz +0 -0
  37. package/components/tryghost-mail-events-5.79.1.tgz +0 -0
  38. package/components/tryghost-mailgun-client-5.79.1.tgz +0 -0
  39. package/components/tryghost-member-attribution-5.79.1.tgz +0 -0
  40. package/components/tryghost-member-events-5.79.1.tgz +0 -0
  41. package/components/tryghost-members-api-5.79.1.tgz +0 -0
  42. package/components/tryghost-members-csv-5.79.1.tgz +0 -0
  43. package/components/tryghost-members-events-service-5.79.1.tgz +0 -0
  44. package/components/tryghost-members-importer-5.79.1.tgz +0 -0
  45. package/components/tryghost-members-offers-5.79.1.tgz +0 -0
  46. package/components/tryghost-members-payments-5.79.1.tgz +0 -0
  47. package/components/tryghost-members-ssr-5.79.1.tgz +0 -0
  48. package/components/{tryghost-members-stripe-service-5.78.0.tgz → tryghost-members-stripe-service-5.79.1.tgz} +0 -0
  49. package/components/tryghost-mentions-email-report-5.79.1.tgz +0 -0
  50. package/components/tryghost-milestones-5.79.1.tgz +0 -0
  51. package/components/{tryghost-minifier-5.78.0.tgz → tryghost-minifier-5.79.1.tgz} +0 -0
  52. package/components/tryghost-model-to-domain-event-interceptor-5.79.1.tgz +0 -0
  53. package/components/tryghost-mw-api-version-mismatch-5.79.1.tgz +0 -0
  54. package/components/tryghost-mw-cache-control-5.79.1.tgz +0 -0
  55. package/components/tryghost-mw-error-handler-5.79.1.tgz +0 -0
  56. package/components/tryghost-mw-session-from-token-5.79.1.tgz +0 -0
  57. package/components/tryghost-mw-update-user-last-seen-5.79.1.tgz +0 -0
  58. package/components/tryghost-mw-version-match-5.79.1.tgz +0 -0
  59. package/components/tryghost-mw-vhost-5.79.1.tgz +0 -0
  60. package/components/tryghost-nql-filter-expansions-5.79.1.tgz +0 -0
  61. package/components/tryghost-oembed-service-5.79.1.tgz +0 -0
  62. package/components/tryghost-package-json-5.79.1.tgz +0 -0
  63. package/components/tryghost-post-events-5.79.1.tgz +0 -0
  64. package/components/tryghost-post-revisions-5.79.1.tgz +0 -0
  65. package/components/tryghost-posts-service-5.79.1.tgz +0 -0
  66. package/components/tryghost-recommendations-5.79.1.tgz +0 -0
  67. package/components/tryghost-referrers-5.79.1.tgz +0 -0
  68. package/components/tryghost-security-5.79.1.tgz +0 -0
  69. package/components/tryghost-session-service-5.79.1.tgz +0 -0
  70. package/components/tryghost-settings-path-manager-5.79.1.tgz +0 -0
  71. package/components/tryghost-slack-notifications-5.79.1.tgz +0 -0
  72. package/components/tryghost-staff-service-5.79.1.tgz +0 -0
  73. package/components/tryghost-stats-service-5.79.1.tgz +0 -0
  74. package/components/{tryghost-tiers-5.78.0.tgz → tryghost-tiers-5.79.1.tgz} +0 -0
  75. package/components/tryghost-update-check-service-5.79.1.tgz +0 -0
  76. package/components/{tryghost-verification-trigger-5.78.0.tgz → tryghost-verification-trigger-5.79.1.tgz} +0 -0
  77. package/components/tryghost-version-notifications-data-service-5.79.1.tgz +0 -0
  78. package/components/tryghost-webmentions-5.79.1.tgz +0 -0
  79. package/core/boot.js +1 -9
  80. package/core/built/admin/assets/admin-x-demo/admin-x-demo.js +2 -2
  81. package/core/built/admin/assets/admin-x-demo/{index-eee22c84.mjs → index-0722d3aa.mjs} +3 -3
  82. package/core/built/admin/assets/admin-x-demo/{modals-e4b12fba.mjs → modals-969dbbd3.mjs} +2 -2
  83. package/core/built/admin/assets/admin-x-settings/{CodeEditorView-c3b34635.mjs → CodeEditorView-58de7ff7.mjs} +2 -2
  84. package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +2 -2
  85. package/core/built/admin/assets/admin-x-settings/{index-8808e054.mjs → index-3a0fb1e6.mjs} +2 -2
  86. package/core/built/admin/assets/admin-x-settings/{index-99bd65a2.mjs → index-c7501e76.mjs} +2341 -2310
  87. package/core/built/admin/assets/admin-x-settings/{modals-f491bd44.mjs → modals-6250d8f3.mjs} +167 -161
  88. package/core/built/admin/assets/{chunk.664.99d0951b803d7ec00d8b.js → chunk.160.f064da019dcb493ba212.js} +2737 -2737
  89. package/core/built/admin/assets/chunk.524.29a900ba64d558092614.js +35 -0
  90. package/core/built/admin/assets/{chunk.178.75b9357c8d68006957a4.js → chunk.92.5a33247c65824ad1e810.js} +4 -4
  91. package/core/built/admin/assets/{ghost-0704a125141af505d40c5f71e84f33ab.css → ghost-3198d6ce98e41a0b780dcaa4c7536da4.css} +1 -1
  92. package/core/built/admin/assets/{ghost-e4af0146175c424ff8b5bfbee8f04258.js → ghost-74787e16c2e5229de6164ddfe7426882.js} +19 -18
  93. package/core/built/admin/assets/{ghost-dark-6ad8cac49f53901201e9210bc1999eeb.css → ghost-dark-f73086e64db3744d9177c7305c49dc92.css} +1 -1
  94. package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +16641 -16732
  95. package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +135 -135
  96. package/core/built/admin/index.html +5 -5
  97. package/core/server/data/db/backup.js +7 -1
  98. package/core/server/data/migrations/versions/5.79/2024-01-30-19-36-44-fix-discrepancy-in-free-tier-visibility.js +43 -0
  99. package/core/server/services/Users.js +6 -2
  100. package/core/shared/config/defaults.json +2 -1
  101. package/package.json +150 -151
  102. package/yarn.lock +437 -438
  103. package/components/tryghost-adapter-cache-memory-ttl-5.78.0.tgz +0 -0
  104. package/components/tryghost-adapter-cache-redis-5.78.0.tgz +0 -0
  105. package/components/tryghost-adapter-manager-5.78.0.tgz +0 -0
  106. package/components/tryghost-announcement-bar-settings-5.78.0.tgz +0 -0
  107. package/components/tryghost-api-framework-5.78.0.tgz +0 -0
  108. package/components/tryghost-api-version-compatibility-service-5.78.0.tgz +0 -0
  109. package/components/tryghost-audience-feedback-5.78.0.tgz +0 -0
  110. package/components/tryghost-bookshelf-repository-5.78.0.tgz +0 -0
  111. package/components/tryghost-bootstrap-socket-5.78.0.tgz +0 -0
  112. package/components/tryghost-collections-5.78.0.tgz +0 -0
  113. package/components/tryghost-constants-5.78.0.tgz +0 -0
  114. package/components/tryghost-custom-theme-settings-service-5.78.0.tgz +0 -0
  115. package/components/tryghost-data-generator-5.78.0.tgz +0 -0
  116. package/components/tryghost-domain-events-5.78.0.tgz +0 -0
  117. package/components/tryghost-donations-5.78.0.tgz +0 -0
  118. package/components/tryghost-dynamic-routing-events-5.78.0.tgz +0 -0
  119. package/components/tryghost-email-analytics-provider-mailgun-5.78.0.tgz +0 -0
  120. package/components/tryghost-email-analytics-service-5.78.0.tgz +0 -0
  121. package/components/tryghost-email-content-generator-5.78.0.tgz +0 -0
  122. package/components/tryghost-email-events-5.78.0.tgz +0 -0
  123. package/components/tryghost-email-service-5.78.0.tgz +0 -0
  124. package/components/tryghost-email-suppression-list-5.78.0.tgz +0 -0
  125. package/components/tryghost-express-dynamic-redirects-5.78.0.tgz +0 -0
  126. package/components/tryghost-external-media-inliner-5.78.0.tgz +0 -0
  127. package/components/tryghost-extract-api-key-5.78.0.tgz +0 -0
  128. package/components/tryghost-html-to-plaintext-5.78.0.tgz +0 -0
  129. package/components/tryghost-i18n-5.78.0.tgz +0 -0
  130. package/components/tryghost-importer-handler-content-files-5.78.0.tgz +0 -0
  131. package/components/tryghost-in-memory-repository-5.78.0.tgz +0 -0
  132. package/components/tryghost-job-manager-5.78.0.tgz +0 -0
  133. package/components/tryghost-link-redirects-5.78.0.tgz +0 -0
  134. package/components/tryghost-link-replacer-5.78.0.tgz +0 -0
  135. package/components/tryghost-link-tracking-5.78.0.tgz +0 -0
  136. package/components/tryghost-magic-link-5.78.0.tgz +0 -0
  137. package/components/tryghost-mail-events-5.78.0.tgz +0 -0
  138. package/components/tryghost-mailgun-client-5.78.0.tgz +0 -0
  139. package/components/tryghost-member-attribution-5.78.0.tgz +0 -0
  140. package/components/tryghost-member-events-5.78.0.tgz +0 -0
  141. package/components/tryghost-members-api-5.78.0.tgz +0 -0
  142. package/components/tryghost-members-csv-5.78.0.tgz +0 -0
  143. package/components/tryghost-members-events-service-5.78.0.tgz +0 -0
  144. package/components/tryghost-members-importer-5.78.0.tgz +0 -0
  145. package/components/tryghost-members-offers-5.78.0.tgz +0 -0
  146. package/components/tryghost-members-payments-5.78.0.tgz +0 -0
  147. package/components/tryghost-members-ssr-5.78.0.tgz +0 -0
  148. package/components/tryghost-mentions-email-report-5.78.0.tgz +0 -0
  149. package/components/tryghost-milestones-5.78.0.tgz +0 -0
  150. package/components/tryghost-model-to-domain-event-interceptor-5.78.0.tgz +0 -0
  151. package/components/tryghost-mw-api-version-mismatch-5.78.0.tgz +0 -0
  152. package/components/tryghost-mw-cache-control-5.78.0.tgz +0 -0
  153. package/components/tryghost-mw-error-handler-5.78.0.tgz +0 -0
  154. package/components/tryghost-mw-session-from-token-5.78.0.tgz +0 -0
  155. package/components/tryghost-mw-update-user-last-seen-5.78.0.tgz +0 -0
  156. package/components/tryghost-mw-version-match-5.78.0.tgz +0 -0
  157. package/components/tryghost-mw-vhost-5.78.0.tgz +0 -0
  158. package/components/tryghost-nql-filter-expansions-5.78.0.tgz +0 -0
  159. package/components/tryghost-oembed-service-5.78.0.tgz +0 -0
  160. package/components/tryghost-package-json-5.78.0.tgz +0 -0
  161. package/components/tryghost-post-events-5.78.0.tgz +0 -0
  162. package/components/tryghost-post-revisions-5.78.0.tgz +0 -0
  163. package/components/tryghost-posts-service-5.78.0.tgz +0 -0
  164. package/components/tryghost-recommendations-5.78.0.tgz +0 -0
  165. package/components/tryghost-referrers-5.78.0.tgz +0 -0
  166. package/components/tryghost-security-5.78.0.tgz +0 -0
  167. package/components/tryghost-session-service-5.78.0.tgz +0 -0
  168. package/components/tryghost-settings-path-manager-5.78.0.tgz +0 -0
  169. package/components/tryghost-slack-notifications-5.78.0.tgz +0 -0
  170. package/components/tryghost-staff-service-5.78.0.tgz +0 -0
  171. package/components/tryghost-stats-service-5.78.0.tgz +0 -0
  172. package/components/tryghost-update-check-service-5.78.0.tgz +0 -0
  173. package/components/tryghost-version-notifications-data-service-5.78.0.tgz +0 -0
  174. package/components/tryghost-webmentions-5.78.0.tgz +0 -0
  175. package/core/built/admin/assets/chunk.143.6e73a50be0209a7256b6.js +0 -35
  176. package/core/server/services/segment/DomainEventsAnalytics.js +0 -109
  177. package/core/server/services/segment/index.js +0 -25
  178. /package/core/built/admin/assets/{chunk.664.99d0951b803d7ec00d8b.js.LICENSE.txt → chunk.160.f064da019dcb493ba212.js.LICENSE.txt} +0 -0
@@ -1022,13 +1022,13 @@ const t=this.memberImportValidator.check(this.args.data)
1022
1022
  this.data=this.args.data,this.mapping=new f(t),Ember.run.schedule("afterRender",(()=>this.args.setMapping(this.mapping)))}get currentlyDisplayedData(){let e=[]
1023
1023
  if(this.data&&this.data.length&&this.mapping){let t=this.data[this.dataPreviewIndex]
1024
1024
  for(const[i,r]of Object.entries(t))e.push({key:i,value:r,mapTo:this.mapping.get(i)})}return e}get hasNextRecord(){return this.data&&!!this.data[this.dataPreviewIndex+1]}get hasPrevRecord(){return this.data&&!!this.data[this.dataPreviewIndex-1]}get currentRecord(){return this.dataPreviewIndex+1}get allRecords(){return this.data?this.data:0}updateMapping(e,t){this.mapping.updateMapping(e,t),this.args.setMapping(this.mapping)}next(){this.hasNextRecord&&(this.dataPreviewIndex+=1)}prev(){this.hasPrevRecord&&(this.dataPreviewIndex-=1)}},c=h(d.prototype,"dataPreviewIndex",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),p=h(d.prototype,"memberImportValidator",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h(d.prototype,"updateMapping",[o],Object.getOwnPropertyDescriptor(d.prototype,"updateMapping"),d.prototype),h(d.prototype,"next",[l],Object.getOwnPropertyDescriptor(d.prototype,"next"),d.prototype),h(d.prototype,"prev",[u],Object.getOwnPropertyDescriptor(d.prototype,"prev"),d.prototype),d)
1025
- Ember._setComponentTemplate(b,g)})),define("ghost-admin/components/gh-members-no-members",["exports","@glimmer/component","ember-concurrency"],(function(e,t,i){var r,n,a,s,o,l,u,d,c,p,m
1026
- function h(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,r,n){var a={}
1025
+ Ember._setComponentTemplate(b,g)})),define("ghost-admin/components/gh-members-no-members",["exports","@glimmer/component","ember-concurrency"],(function(e,t,i){var r,n,a,s,o,l,u,d,c,p,m,h,b
1026
+ 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 g(e,t,i,r,n){var a={}
1027
1027
  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),a=null),a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
1028
- const f=Ember.HTMLBars.template({id:"E05L0tzJ",block:'{"symbols":[],"statements":[[10,"div"],[14,0,"gh-members-empty"],[12],[2,"\\n "],[1,[30,[36,1],["members-placeholder"],[["class"],["gh-members-placeholder"]]]],[2,"\\n "],[10,"h4"],[12],[2,"Start building your audience"],[13],[2,"\\n"],[6,[37,3],[[30,[36,2],[[32,0,["settings","membersSignupAccess"]],"none"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[12],[2,"Use memberships to allow your readers to sign up and subscribe to your content."],[13],[2,"\\n "],[11,"button"],[24,0,"gh-btn gh-btn-green"],[24,"data-test-button","add-yourself"],[24,4,"button"],[4,[38,0],["click",[32,0,["addYourself"]]],null],[12],[2,"\\n "],[10,"span"],[12],[2,"Add yourself as a member to test"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[14,0,"gh-members-empty-secondary-cta"],[12],[2,"Have members already? "],[8,"link-to",[],[["@route"],["member.new"]],[["default"],[{"statements":[[2,"Add them manually"]],"parameters":[]}]]],[2," or "],[8,"link-to",[],[["@route"],["members.import"]],[["default"],[{"statements":[[2,"import from CSV"]],"parameters":[]}]]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"p"],[12],[2,"Memberships have been disabled. Adjust your Subscription Access settings to start adding members."],[13],[2,"\\n "],[8,"link-to",[[24,0,"gh-btn gh-btn-green"]],[["@route","@model"],["settings-x.settings-x","access"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"Membership settings"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[13]],"hasEval":false,"upvars":["on","svg-jar","not-eq","if"]}',moduleName:"ghost-admin/components/gh-members-no-members.hbs"})
1029
- let g=e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember._action,l=(0,i.task)({drop:!0}),u=class extends t.default{constructor(...e){super(...e),h(this,"session",d,this),h(this,"store",c,this),h(this,"notifications",p,this),h(this,"settings",m,this)}addYourself(){return this.addTask.perform()}*addTask(){const e=yield this.session.user,t=yield this.store.query("newsletter",{filter:"status:active+subscribe_on_signup:true+visibility:members"}),i=this.store.createRecord("member",{email:e.get("email"),name:e.get("name"),newsletters:t})
1030
- try{return yield i.save(),this.args.afterCreate&&this.args.afterCreate(),this.notifications.showNotification("Member added",{description:"You've successfully added yourself as a member."}),i}catch(r){r&&this.notifications.showAPIError(r,{key:"member.save"})}}},d=b(u.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=b(u.prototype,"store",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=b(u.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=b(u.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b(u.prototype,"addYourself",[o],Object.getOwnPropertyDescriptor(u.prototype,"addYourself"),u.prototype),b(u.prototype,"addTask",[l],Object.getOwnPropertyDescriptor(u.prototype,"addTask"),u.prototype),u)
1031
- Ember._setComponentTemplate(f,g)})),define("ghost-admin/components/gh-members-recipient-select",["exports","@glimmer/component","ghost-admin/utils/flatten-grouped-options","ember-concurrency"],(function(e,t,i,r){var n,a,s,o,l,u,d,c,p,m,h,b
1028
+ const v=Ember.HTMLBars.template({id:"E05L0tzJ",block:'{"symbols":[],"statements":[[10,"div"],[14,0,"gh-members-empty"],[12],[2,"\\n "],[1,[30,[36,1],["members-placeholder"],[["class"],["gh-members-placeholder"]]]],[2,"\\n "],[10,"h4"],[12],[2,"Start building your audience"],[13],[2,"\\n"],[6,[37,3],[[30,[36,2],[[32,0,["settings","membersSignupAccess"]],"none"],null]],null,[["default","else"],[{"statements":[[2," "],[10,"p"],[12],[2,"Use memberships to allow your readers to sign up and subscribe to your content."],[13],[2,"\\n "],[11,"button"],[24,0,"gh-btn gh-btn-green"],[24,"data-test-button","add-yourself"],[24,4,"button"],[4,[38,0],["click",[32,0,["addYourself"]]],null],[12],[2,"\\n "],[10,"span"],[12],[2,"Add yourself as a member to test"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"p"],[14,0,"gh-members-empty-secondary-cta"],[12],[2,"Have members already? "],[8,"link-to",[],[["@route"],["member.new"]],[["default"],[{"statements":[[2,"Add them manually"]],"parameters":[]}]]],[2," or "],[8,"link-to",[],[["@route"],["members.import"]],[["default"],[{"statements":[[2,"import from CSV"]],"parameters":[]}]]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"p"],[12],[2,"Memberships have been disabled. Adjust your Subscription Access settings to start adding members."],[13],[2,"\\n "],[8,"link-to",[[24,0,"gh-btn gh-btn-green"]],[["@route","@model"],["settings-x.settings-x","access"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"Membership settings"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[13]],"hasEval":false,"upvars":["on","svg-jar","not-eq","if"]}',moduleName:"ghost-admin/components/gh-members-no-members.hbs"})
1029
+ let y=e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember._action,u=(0,i.task)({drop:!0}),d=class extends t.default{constructor(...e){super(...e),f(this,"session",c,this),f(this,"store",p,this),f(this,"notifications",m,this),f(this,"settings",h,this),f(this,"membersCountCache",b,this)}addYourself(){return this.addTask.perform()}*addTask(){const e=yield this.session.user,t=yield this.store.query("newsletter",{filter:"status:active+subscribe_on_signup:true+visibility:members"}),i=this.store.createRecord("member",{email:e.get("email"),name:e.get("name"),newsletters:t})
1030
+ try{return yield i.save(),this.args.afterCreate&&this.args.afterCreate(),this.notifications.showNotification("Member added",{description:"You've successfully added yourself as a member."}),yield this.membersCountCache.count({}),i}catch(r){r&&this.notifications.showAPIError(r,{key:"member.save"})}}},c=g(d.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=g(d.prototype,"store",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=g(d.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=g(d.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=g(d.prototype,"membersCountCache",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g(d.prototype,"addYourself",[l],Object.getOwnPropertyDescriptor(d.prototype,"addYourself"),d.prototype),g(d.prototype,"addTask",[u],Object.getOwnPropertyDescriptor(d.prototype,"addTask"),d.prototype),d)
1031
+ Ember._setComponentTemplate(v,y)})),define("ghost-admin/components/gh-members-recipient-select",["exports","@glimmer/component","ghost-admin/utils/flatten-grouped-options","ember-concurrency"],(function(e,t,i,r){var n,a,s,o,l,u,d,c,p,m,h,b
1032
1032
  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 g(e,t,i,r,n){var a={}
1033
1033
  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),a=null),a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
1034
1034
  const v=Ember.HTMLBars.template({id:"T/CUJ7MQ",block:'{"symbols":["option","countFetcher","countFetcher","@dropdownClass","@disabled","@newsletter"],"statements":[[10,"div"],[15,0,[31,["gh-publish-send-to ",[30,[36,1],[[32,0,["isSpecificChecked"]],"mb4"],null]]]],[12],[2,"\\n "],[10,"div"],[14,0,"gh-publish-send-to-option"],[12],[2,"\\n "],[10,"div"],[15,0,[31,["for-checkbox ",[30,[36,1],[[32,5],"disabled"],null]]]],[12],[2,"\\n "],[10,"label"],[14,0,"checkbox"],[14,"for","send-email-to-free"],[12],[2,"\\n "],[11,"input"],[24,1,"send-email-to-free"],[24,0,"gh-input post-settings-featured"],[16,"checked",[32,0,["isFreeChecked"]]],[16,"disabled",[32,5]],[24,"aria-label","Free members toggle"],[24,"data-test-checkbox","free-members"],[24,4,"checkbox"],[4,[38,2],["change",[30,[36,6],[[32,0,["toggleFilter"]],"status:free"],null]],null],[12],[13],[2,"\\n "],[10,"div"],[14,0,"flex"],[12],[2,"\\n "],[10,"span"],[14,0,"input-toggle-component"],[12],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n Free\\n"],[6,[37,10],[[30,[36,9],null,[["query"],[[30,[36,8],null,[["filter"],[[30,[36,7],[[32,6,["recipientFilter"]],"+status:free"],null]]]]]]]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,5],[[30,[36,4],[[32,3,["count"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-publish-emailcount"],[14,"data-test-email-count","free-members"],[12],[2,"("],[1,[30,[36,3],[[32,3,["count"]]],null]],[2,")"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[3]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,1],[[32,0,["isPaidAvailable"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-publish-send-to-option"],[12],[2,"\\n "],[10,"div"],[15,0,[31,["for-checkbox ",[30,[36,1],[[32,5],"disabled"],null]]]],[12],[2,"\\n "],[10,"label"],[14,0,"checkbox"],[14,"for","send-email-to-paid"],[12],[2,"\\n "],[11,"input"],[24,1,"send-email-to-paid"],[24,0,"gh-input post-settings-featured"],[16,"checked",[32,0,["isPaidChecked"]]],[16,"disabled",[32,5]],[24,"aria-label","Paid members toggle"],[24,"data-test-checkbox","paid-members"],[24,4,"checkbox"],[4,[38,2],["change",[30,[36,6],[[32,0,["toggleFilter"]],"status:-free"],null]],null],[12],[13],[2,"\\n "],[10,"div"],[14,0,"flex"],[12],[2,"\\n "],[10,"span"],[14,0,"input-toggle-component"],[12],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n Paid\\n"],[6,[37,10],[[30,[36,9],null,[["query"],[[30,[36,8],null,[["filter"],[[30,[36,7],[[32,6,["recipientFilter"]],"+status:-free"],null]]]]]]]],null,[["default"],[{"statements":[[6,[37,1],[[30,[36,5],[[30,[36,4],[[32,2,["count"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-publish-emailcount"],[14,"data-test-email-count","paid-members"],[12],[2,"("],[1,[30,[36,3],[[32,2,["count"]]],null]],[2,")"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[2]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,1],[[32,0,["specificOptions"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-publish-send-to-option"],[12],[2,"\\n "],[10,"div"],[15,0,[31,["for-checkbox ",[30,[36,1],[[32,5],"disabled"],null]]]],[12],[2,"\\n "],[10,"label"],[14,0,"checkbox"],[14,"for","send-email-to-specific"],[12],[2,"\\n "],[11,"input"],[24,1,"send-email-to-specific"],[24,0,"gh-input post-settings-featured"],[16,"checked",[32,0,["isSpecificChecked"]]],[16,"disabled",[32,5]],[24,"aria-label","Specific people toggle"],[24,"data-test-checkbox","specific-members"],[24,4,"checkbox"],[4,[38,2],["change",[32,0,["toggleSpecificFilter"]]],null],[12],[13],[2,"\\n "],[10,"div"],[14,0,"flex"],[12],[2,"\\n "],[10,"span"],[14,0,"input-toggle-component"],[12],[13],[2,"\\n "],[10,"p"],[12],[2,"Specific people"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n"],[6,[37,1],[[32,0,["isSpecificChecked"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,"data-test-select","specific-members"],[12],[2,"\\n "],[10,"label"],[14,0,"gh-main-section-header small bn"],[12],[2,"Selection"],[13],[2,"\\n "],[8,"gh-token-input",[],[["@class","@dropdownClass","@options","@selected","@disabled","@searchMessage","@optionsComponent","@allowCreation","@renderInPlace","@onChange"],["select-members select-members-recipient",[32,4],[32,0,["specificOptions"]],[32,0,["selectedSpecificOptions"]],[32,5],"All labels selected",[30,[36,0],["power-select/options"],null],false,[32,0,["renderInPlace"]],[32,0,["selectSpecificOptions"]]]],[["default"],[{"statements":[[2,"\\n "],[1,[32,1,["name"]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["component","if","on","format-number","is-empty","not","fn","concat","hash","members-count-fetcher","let"]}',moduleName:"ghost-admin/components/gh-members-recipient-select.hbs"}),y=["status:free","status:-free"]
@@ -2571,23 +2571,24 @@ a+=`: ${n}`,a=Ember.String.htmlSafe(a),s.showAlert(a,{type:"error",delayed:r,key
2571
2571
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2572
2572
  e.default=(t=Ember.inject.service,i=class extends Ember.Controller{constructor(...e){var t,i,n,a
2573
2573
  super(...e),t=this,i="ui",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})}},n=i.prototype,a="ui",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),void 0===u.initializer&&(Object.defineProperty(n,a,u),u=null),r=u,i)
2574
- var n,a,s,o,l,u})),define("ghost-admin/controllers/member",["exports","ghost-admin/components/members/modals/delete-member","ghost-admin/components/members/modals/logout-member","ghost-admin/utils/bound-one-way","moment-timezone","ember-concurrency"],(function(e,t,i,r,n,a){var s,o,l,u,d,c,p,m,h,b,f,g,v,y,w,E,k,P,O,_,j,T,z,x,S,C,M,D,A,L,I,R,N,F,U,B,H,V,q
2575
- 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 Y(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e
2574
+ var n,a,s,o,l,u})),define("ghost-admin/controllers/member",["exports","ghost-admin/components/members/modals/delete-member","ghost-admin/components/members/modals/logout-member","ghost-admin/utils/bound-one-way","moment-timezone","ember-concurrency"],(function(e,t,i,r,n,a){var s,o,l,u,d,c,p,m,h,b,f,g,v,y,w,E,k,P,O,_,j,T,z,x,S,C,M,D,A,L,I,R,N,F,U,B,H,V,q,$,Y
2575
+ 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 G(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e
2576
2576
  var i=e[Symbol.toPrimitive]
2577
2577
  if(void 0!==i){var r=i.call(e,t||"default")
2578
2578
  if("object"!=typeof r)return r
2579
2579
  throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
2580
- return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function W(e,t,i,r,n){var a={}
2580
+ return"symbol"==typeof t?t:String(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={}
2581
2581
  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),a=null),a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
2582
- const G=["name","email","note"]
2583
- e.default=(s=Ember.inject.controller,o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,d=Ember.inject.service,c=Ember.inject.service,p=Ember.inject.service,m=Ember.inject.service,h=Ember._tracked,b=Ember._tracked,f=Ember._tracked,g=Ember._tracked,v=Ember._tracked,y=Ember._tracked,w=Ember._action,E=Ember._action,k=Ember._action,P=Ember._action,O=Ember._action,_=Ember._action,j=Ember._action,T=Ember._action,z=Ember._action,x=(0,a.task)({drop:!0}),S=class extends Ember.Controller{get fromAnalytics(){return this.postAnalytics?[this.postAnalytics]:null}constructor(){super(...arguments),$(this,"members",C,this),$(this,"session",M,this),$(this,"dropdown",D,this),$(this,"membersStats",A,this),$(this,"modals",L,this),$(this,"notifications",I,this),$(this,"router",R,this),$(this,"store",N,this),Y(this,"queryParams",[{postAnalytics:"post"}]),$(this,"isLoading",F,this),$(this,"showImpersonateMemberModal",U,this),$(this,"modalLabel",B,this),$(this,"showLabelModal",H,this),Y(this,"_previousLabels",null),Y(this,"_previousNewsletters",null),$(this,"directlyFromAnalytics",V,this),$(this,"postAnalytics",q,this),this._availableLabels=this.store.peekAll("label")}get member(){return this.model}set member(e){this.model=e}get dirtyAttributes(){return this._hasDirtyAttributes()}get _labels(){return this.member.get("labels").map((e=>e.name))}get _newsletters(){return this.member.get("newsletters").map((e=>e.id))}get labelModalData(){return{label:this.modalLabel,labels:this.availableLabels}}get availableLabels(){let e=this._availableLabels.filter((e=>!e.isNew)).filter((e=>null!==e.id)).sort(((e,t)=>e.name.localeCompare(t.name,void 0,{ignorePunctuation:!0}))).toArray()
2582
+ const J=["name","email","note"]
2583
+ e.default=(s=Ember.inject.controller,o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,d=Ember.inject.service,c=Ember.inject.service,p=Ember.inject.service,m=Ember.inject.service,h=Ember.inject.service,b=Ember._tracked,f=Ember._tracked,g=Ember._tracked,v=Ember._tracked,y=Ember._tracked,w=Ember._tracked,E=Ember._action,k=Ember._action,P=Ember._action,O=Ember._action,_=Ember._action,j=Ember._action,T=Ember._action,z=Ember._action,x=Ember._action,S=(0,a.task)({drop:!0}),C=class extends Ember.Controller{get fromAnalytics(){return this.postAnalytics?[this.postAnalytics]:null}constructor(){super(...arguments),W(this,"members",M,this),W(this,"session",D,this),W(this,"dropdown",A,this),W(this,"membersStats",L,this),W(this,"membersCountCache",I,this),W(this,"modals",R,this),W(this,"notifications",N,this),W(this,"router",F,this),W(this,"store",U,this),G(this,"queryParams",[{postAnalytics:"post"}]),W(this,"isLoading",B,this),W(this,"showImpersonateMemberModal",H,this),W(this,"modalLabel",V,this),W(this,"showLabelModal",q,this),G(this,"_previousLabels",null),G(this,"_previousNewsletters",null),W(this,"directlyFromAnalytics",$,this),W(this,"postAnalytics",Y,this),this._availableLabels=this.store.peekAll("label")}get member(){return this.model}set member(e){this.model=e}get dirtyAttributes(){return this._hasDirtyAttributes()}get _labels(){return this.member.get("labels").map((e=>e.name))}get _newsletters(){return this.member.get("newsletters").map((e=>e.id))}get labelModalData(){return{label:this.modalLabel,labels:this.availableLabels}}get availableLabels(){let e=this._availableLabels.filter((e=>!e.isNew)).filter((e=>null!==e.id)).sort(((e,t)=>e.name.localeCompare(t.name,void 0,{ignorePunctuation:!0}))).toArray()
2584
2584
  return e.unshiftObject({name:"All labels",slug:null}),e}get scratchMember(){let e=Ember.Object.create({member:this.member})
2585
- return G.forEach((t=>Ember.defineProperty(e,t,(0,r.default)(`member.${t}`)))),e}get subscribedAt(){let e=(0,n.default)(this.member.createdAtUTC).from((0,n.default)())
2585
+ return J.forEach((t=>Ember.defineProperty(e,t,(0,r.default)(`member.${t}`)))),e}get subscribedAt(){let e=(0,n.default)(this.member.createdAtUTC).from((0,n.default)())
2586
2586
  return`${(0,n.default)(this.member.createdAtUTC).format("D MMM YYYY")} (${e})`}setInitialRelationshipValues(){this._previousLabels=this._labels,this._previousNewsletters=this._newsletters}toggleLabelModal(){this.showLabelModal=!this.showLabelModal}editLabel(e,t){t&&(t.preventDefault(),t.stopPropagation())
2587
2587
  let i=this.availableLabels.findBy("slug",e)
2588
- this.modalLabel=i,this.showLabelModal=!this.showLabelModal}setProperty(e,t){this._saveMemberProperty(e,t)}confirmDeleteMember(){this.modals.open(t.default,{member:this.member,afterDelete:()=>{this.membersStats.invalidate(),this.members.refreshData(),this.transitionToRoute("members")}})}confirmLogoutMember(){this.modals.open(i.default,{member:this.member,afterLogout:()=>{this.members.refreshData()}})}toggleImpersonateMemberModal(){this.showImpersonateMemberModal=!this.showImpersonateMemberModal}closeImpersonateMemberModal(){this.showImpersonateMemberModal=!1}save(){return this.saveTask.perform()}*saveTask(){let{member:e,scratchMember:t}=this,i=t.getProperties(G)
2588
+ this.modalLabel=i,this.showLabelModal=!this.showLabelModal}setProperty(e,t){this._saveMemberProperty(e,t)}confirmDeleteMember(){this.modals.open(t.default,{member:this.member,afterDelete:()=>{this.membersStats.invalidate(),this.members.refreshData(),this.membersCountCache.clear(),this.transitionToRoute("members")}})}confirmLogoutMember(){this.modals.open(i.default,{member:this.member,afterLogout:()=>{this.members.refreshData()}})}toggleImpersonateMemberModal(){this.showImpersonateMemberModal=!this.showImpersonateMemberModal}closeImpersonateMemberModal(){this.showImpersonateMemberModal=!1}save(){return this.saveTask.perform()}*saveTask(){let{member:e,scratchMember:t}=this,i=t.getProperties(J)
2589
2589
  Object.assign(e,i)
2590
- try{return yield e.save(),e.updateLabels(),this.members.refreshData(),this.setInitialRelationshipValues(),this.replaceRoute("member",e),e}catch(r){if(void 0===r)return
2590
+ try{const t=e.isNew
2591
+ return yield e.save(),e.updateLabels(),this.members.refreshData(),this.setInitialRelationshipValues(),t&&this.membersCountCache.clear(),this.replaceRoute("member",e),e}catch(r){if(void 0===r)return
2591
2592
  if(r.payload&&r.payload.errors)for(const t of r.payload.errors)"ValidationError"===t.type&&t.property&&(t.context||t.message)&&(e.errors.add(t.property,t.context||t.message),e.hasValidated.pushObject(t.property))
2592
2593
  throw r}}*fetchMemberTask(e){this.isLoading=!0,this.member=yield this.store.queryRecord("member",{id:e,include:"tiers"}),this.setInitialRelationshipValues(),this.isLoading=!1}_saveMemberProperty(e,t){let i=this.member[e]
2593
2594
  t&&"string"==typeof t&&(t=t.trim()),(!1===t||t||i)&&(this.member[e]=t)}_hasDirtyAttributes(){let e=this.member
@@ -2595,7 +2596,7 @@ if(!e||e.isDeleted||e.isDeleting)return!1
2595
2596
  if((this._labels.sort()||[]).join(", ")!==(this._previousLabels.sort()||[]).join(", "))return!0
2596
2597
  if((this._newsletters.sort()||[]).join(", ")!==(this._previousNewsletters.sort()||[]).join(", "))return!0
2597
2598
  let{hasDirtyAttributes:t}=e
2598
- return t}},C=W(S.prototype,"members",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=W(S.prototype,"session",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=W(S.prototype,"dropdown",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=W(S.prototype,"membersStats",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=W(S.prototype,"modals",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=W(S.prototype,"notifications",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=W(S.prototype,"router",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=W(S.prototype,"store",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=W(S.prototype,"isLoading",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),U=W(S.prototype,"showImpersonateMemberModal",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),B=W(S.prototype,"modalLabel",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),H=W(S.prototype,"showLabelModal",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),V=W(S.prototype,"directlyFromAnalytics",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),q=W(S.prototype,"postAnalytics",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),W(S.prototype,"setInitialRelationshipValues",[w],Object.getOwnPropertyDescriptor(S.prototype,"setInitialRelationshipValues"),S.prototype),W(S.prototype,"toggleLabelModal",[E],Object.getOwnPropertyDescriptor(S.prototype,"toggleLabelModal"),S.prototype),W(S.prototype,"editLabel",[k],Object.getOwnPropertyDescriptor(S.prototype,"editLabel"),S.prototype),W(S.prototype,"setProperty",[P],Object.getOwnPropertyDescriptor(S.prototype,"setProperty"),S.prototype),W(S.prototype,"confirmDeleteMember",[O],Object.getOwnPropertyDescriptor(S.prototype,"confirmDeleteMember"),S.prototype),W(S.prototype,"confirmLogoutMember",[_],Object.getOwnPropertyDescriptor(S.prototype,"confirmLogoutMember"),S.prototype),W(S.prototype,"toggleImpersonateMemberModal",[j],Object.getOwnPropertyDescriptor(S.prototype,"toggleImpersonateMemberModal"),S.prototype),W(S.prototype,"closeImpersonateMemberModal",[T],Object.getOwnPropertyDescriptor(S.prototype,"closeImpersonateMemberModal"),S.prototype),W(S.prototype,"save",[z],Object.getOwnPropertyDescriptor(S.prototype,"save"),S.prototype),W(S.prototype,"saveTask",[x],Object.getOwnPropertyDescriptor(S.prototype,"saveTask"),S.prototype),W(S.prototype,"fetchMemberTask",[a.task],Object.getOwnPropertyDescriptor(S.prototype,"fetchMemberTask"),S.prototype),S)})),define("ghost-admin/controllers/members-activity",["exports","ghost-admin/helpers/member-fetcher","ghost-admin/helpers/members-event-filter","ember-could-get-used-to-this"],(function(e,t,i,r){var n,a,s,o,l,u,d,c,p,m,h,b,f,g,v,y
2599
+ return t}},M=K(C.prototype,"members",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=K(C.prototype,"session",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=K(C.prototype,"dropdown",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=K(C.prototype,"membersStats",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=K(C.prototype,"membersCountCache",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=K(C.prototype,"modals",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=K(C.prototype,"notifications",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=K(C.prototype,"router",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=K(C.prototype,"store",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=K(C.prototype,"isLoading",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),H=K(C.prototype,"showImpersonateMemberModal",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),V=K(C.prototype,"modalLabel",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),q=K(C.prototype,"showLabelModal",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),$=K(C.prototype,"directlyFromAnalytics",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Y=K(C.prototype,"postAnalytics",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),K(C.prototype,"setInitialRelationshipValues",[E],Object.getOwnPropertyDescriptor(C.prototype,"setInitialRelationshipValues"),C.prototype),K(C.prototype,"toggleLabelModal",[k],Object.getOwnPropertyDescriptor(C.prototype,"toggleLabelModal"),C.prototype),K(C.prototype,"editLabel",[P],Object.getOwnPropertyDescriptor(C.prototype,"editLabel"),C.prototype),K(C.prototype,"setProperty",[O],Object.getOwnPropertyDescriptor(C.prototype,"setProperty"),C.prototype),K(C.prototype,"confirmDeleteMember",[_],Object.getOwnPropertyDescriptor(C.prototype,"confirmDeleteMember"),C.prototype),K(C.prototype,"confirmLogoutMember",[j],Object.getOwnPropertyDescriptor(C.prototype,"confirmLogoutMember"),C.prototype),K(C.prototype,"toggleImpersonateMemberModal",[T],Object.getOwnPropertyDescriptor(C.prototype,"toggleImpersonateMemberModal"),C.prototype),K(C.prototype,"closeImpersonateMemberModal",[z],Object.getOwnPropertyDescriptor(C.prototype,"closeImpersonateMemberModal"),C.prototype),K(C.prototype,"save",[x],Object.getOwnPropertyDescriptor(C.prototype,"save"),C.prototype),K(C.prototype,"saveTask",[S],Object.getOwnPropertyDescriptor(C.prototype,"saveTask"),C.prototype),K(C.prototype,"fetchMemberTask",[a.task],Object.getOwnPropertyDescriptor(C.prototype,"fetchMemberTask"),C.prototype),C)})),define("ghost-admin/controllers/members-activity",["exports","ghost-admin/helpers/member-fetcher","ghost-admin/helpers/members-event-filter","ember-could-get-used-to-this"],(function(e,t,i,r){var n,a,s,o,l,u,d,c,p,m,h,b,f,g,v,y
2599
2600
  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||null===e)return e
2600
2601
  var i=e[Symbol.toPrimitive]
2601
2602
  if(void 0!==i){var r=i.call(e,t||"default")
@@ -4002,7 +4003,7 @@ try{return JSON.parse(e)||{}}catch(t){return{}}}get accessibility(){let e=this.g
4002
4003
  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)
4003
4004
  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}.`)
4004
4005
  return this.notifications.showAPIError(t),this.get(`${r}.${e}`)}))}_setAdminTheme(e){let i=e
4005
- return void 0===i&&(i=e||this.nightShift),this.lazyLoader.loadStyle("dark","assets/ghost-dark-6ad8cac49f53901201e9210bc1999eeb.css",!0).then((()=>{(0,t.default)("link[title=dark]").prop("disabled",!i)})).catch((()=>{(0,t.default)("link[title=dark]").prop("disabled",!0)}))}},L=me(A.prototype,"lazyLoader",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=me(A.prototype,"notifications",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=me(A.prototype,"session",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=me(A.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=me(A.prototype,"store",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=me(A.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=me(A.prototype,"emailAnalytics",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=me(A.prototype,"nightShift",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=me(A.prototype,"referralInviteDismissed",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=me(A.prototype,"urlCache",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=me(A.prototype,"lexicalMultiplayer",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=me(A.prototype,"audienceFeedback",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=me(A.prototype,"webmentions",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=me(A.prototype,"websockets",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=me(A.prototype,"stripeAutomaticTax",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J=me(A.prototype,"emailCustomization",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),X=me(A.prototype,"i18n",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z=me(A.prototype,"announcementBar",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Q=me(A.prototype,"signupCard",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ee=me(A.prototype,"signupForm",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),te=me(A.prototype,"collections",[k],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ie=me(A.prototype,"mailEvents",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),re=me(A.prototype,"collectionsCard",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ne=me(A.prototype,"importMemberTier",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ae=me(A.prototype,"tipsAndDonations",[j],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),se=me(A.prototype,"recommendations",[T],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),oe=me(A.prototype,"lexicalIndicators",[z],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),le=me(A.prototype,"filterEmailDisabled",[x],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ue=me(A.prototype,"adminXDemo",[S],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),de=me(A.prototype,"portalImprovements",[C],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),me(A.prototype,"labs",[M],Object.getOwnPropertyDescriptor(A.prototype,"labs"),A.prototype),me(A.prototype,"accessibility",[D],Object.getOwnPropertyDescriptor(A.prototype,"accessibility"),A.prototype),A)})),define("ghost-admin/services/frontend",["exports","fetch","validator","ghost-admin/decorators/inject"],(function(e,t,i,r){var n,a,s,o,l,u
4006
+ return void 0===i&&(i=e||this.nightShift),this.lazyLoader.loadStyle("dark","assets/ghost-dark-f73086e64db3744d9177c7305c49dc92.css",!0).then((()=>{(0,t.default)("link[title=dark]").prop("disabled",!i)})).catch((()=>{(0,t.default)("link[title=dark]").prop("disabled",!0)}))}},L=me(A.prototype,"lazyLoader",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=me(A.prototype,"notifications",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=me(A.prototype,"session",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=me(A.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=me(A.prototype,"store",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=me(A.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=me(A.prototype,"emailAnalytics",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=me(A.prototype,"nightShift",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=me(A.prototype,"referralInviteDismissed",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=me(A.prototype,"urlCache",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=me(A.prototype,"lexicalMultiplayer",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=me(A.prototype,"audienceFeedback",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=me(A.prototype,"webmentions",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=me(A.prototype,"websockets",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=me(A.prototype,"stripeAutomaticTax",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J=me(A.prototype,"emailCustomization",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),X=me(A.prototype,"i18n",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z=me(A.prototype,"announcementBar",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Q=me(A.prototype,"signupCard",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ee=me(A.prototype,"signupForm",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),te=me(A.prototype,"collections",[k],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ie=me(A.prototype,"mailEvents",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),re=me(A.prototype,"collectionsCard",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ne=me(A.prototype,"importMemberTier",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ae=me(A.prototype,"tipsAndDonations",[j],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),se=me(A.prototype,"recommendations",[T],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),oe=me(A.prototype,"lexicalIndicators",[z],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),le=me(A.prototype,"filterEmailDisabled",[x],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ue=me(A.prototype,"adminXDemo",[S],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),de=me(A.prototype,"portalImprovements",[C],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),me(A.prototype,"labs",[M],Object.getOwnPropertyDescriptor(A.prototype,"labs"),A.prototype),me(A.prototype,"accessibility",[D],Object.getOwnPropertyDescriptor(A.prototype,"accessibility"),A.prototype),A)})),define("ghost-admin/services/frontend",["exports","fetch","validator","ghost-admin/decorators/inject"],(function(e,t,i,r){var n,a,s,o,l,u
4006
4007
  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 c(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e
4007
4008
  var i=e[Symbol.toPrimitive]
4008
4009
  if(void 0!==i){var r=i.call(e,t||"default")
@@ -4584,6 +4585,6 @@ this.passwordChange(e),e.hasValidated.addObject("password"),Ember.isBlank(t)&&(e
4584
4585
  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
4585
4586
  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,0,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,0,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,0,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
4586
4587
  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))}
4587
- 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:"5.78",name:"ghost-admin"})
4588
+ 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:"5.79",name:"ghost-admin"})
4588
4589
 
4589
- //# sourceMappingURL=ghost-3a249fa2c674bdc0feb776f1fd208bc4.map
4590
+ //# sourceMappingURL=ghost-74caa81dc683a05074688e016c534b84.map