ghost 5.70.2 → 5.71.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/components/tryghost-adapter-cache-memory-ttl-5.71.0.tgz +0 -0
- package/components/{tryghost-adapter-cache-redis-5.70.2.tgz → tryghost-adapter-cache-redis-5.71.0.tgz} +0 -0
- package/components/{tryghost-adapter-manager-5.70.2.tgz → tryghost-adapter-manager-5.71.0.tgz} +0 -0
- package/components/tryghost-announcement-bar-settings-5.71.0.tgz +0 -0
- package/components/tryghost-api-framework-5.71.0.tgz +0 -0
- package/components/{tryghost-api-version-compatibility-service-5.70.2.tgz → tryghost-api-version-compatibility-service-5.71.0.tgz} +0 -0
- package/components/{tryghost-audience-feedback-5.70.2.tgz → tryghost-audience-feedback-5.71.0.tgz} +0 -0
- package/components/{tryghost-bookshelf-repository-5.70.2.tgz → tryghost-bookshelf-repository-5.71.0.tgz} +0 -0
- package/components/tryghost-bootstrap-socket-5.71.0.tgz +0 -0
- package/components/tryghost-collections-5.71.0.tgz +0 -0
- package/components/tryghost-constants-5.71.0.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.71.0.tgz +0 -0
- package/components/{tryghost-data-generator-5.70.2.tgz → tryghost-data-generator-5.71.0.tgz} +0 -0
- package/components/{tryghost-domain-events-5.70.2.tgz → tryghost-domain-events-5.71.0.tgz} +0 -0
- package/components/tryghost-donations-5.71.0.tgz +0 -0
- package/components/tryghost-dynamic-routing-events-5.71.0.tgz +0 -0
- package/components/{tryghost-email-analytics-provider-mailgun-5.70.2.tgz → tryghost-email-analytics-provider-mailgun-5.71.0.tgz} +0 -0
- package/components/{tryghost-email-analytics-service-5.70.2.tgz → tryghost-email-analytics-service-5.71.0.tgz} +0 -0
- package/components/tryghost-email-content-generator-5.71.0.tgz +0 -0
- package/components/{tryghost-email-events-5.70.2.tgz → tryghost-email-events-5.71.0.tgz} +0 -0
- package/components/tryghost-email-service-5.71.0.tgz +0 -0
- package/components/tryghost-email-suppression-list-5.71.0.tgz +0 -0
- package/components/tryghost-event-aware-cache-wrapper-5.71.0.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.71.0.tgz +0 -0
- package/components/{tryghost-external-media-inliner-5.70.2.tgz → tryghost-external-media-inliner-5.71.0.tgz} +0 -0
- package/components/tryghost-extract-api-key-5.71.0.tgz +0 -0
- package/components/{tryghost-html-to-plaintext-5.70.2.tgz → tryghost-html-to-plaintext-5.71.0.tgz} +0 -0
- package/components/tryghost-i18n-5.71.0.tgz +0 -0
- package/components/{tryghost-importer-handler-content-files-5.70.2.tgz → tryghost-importer-handler-content-files-5.71.0.tgz} +0 -0
- package/components/tryghost-importer-revue-5.71.0.tgz +0 -0
- package/components/{tryghost-in-memory-repository-5.70.2.tgz → tryghost-in-memory-repository-5.71.0.tgz} +0 -0
- package/components/{tryghost-job-manager-5.70.2.tgz → tryghost-job-manager-5.71.0.tgz} +0 -0
- package/components/{tryghost-link-redirects-5.70.2.tgz → tryghost-link-redirects-5.71.0.tgz} +0 -0
- package/components/tryghost-link-replacer-5.71.0.tgz +0 -0
- package/components/{tryghost-link-tracking-5.70.2.tgz → tryghost-link-tracking-5.71.0.tgz} +0 -0
- package/components/{tryghost-magic-link-5.70.2.tgz → tryghost-magic-link-5.71.0.tgz} +0 -0
- package/components/tryghost-mail-events-5.71.0.tgz +0 -0
- package/components/tryghost-mailgun-client-5.71.0.tgz +0 -0
- package/components/tryghost-member-attribution-5.71.0.tgz +0 -0
- package/components/{tryghost-member-events-5.70.2.tgz → tryghost-member-events-5.71.0.tgz} +0 -0
- package/components/{tryghost-members-api-5.70.2.tgz → tryghost-members-api-5.71.0.tgz} +0 -0
- package/components/{tryghost-members-csv-5.70.2.tgz → tryghost-members-csv-5.71.0.tgz} +0 -0
- package/components/{tryghost-members-events-service-5.70.2.tgz → tryghost-members-events-service-5.71.0.tgz} +0 -0
- package/components/{tryghost-members-importer-5.70.2.tgz → tryghost-members-importer-5.71.0.tgz} +0 -0
- package/components/{tryghost-members-offers-5.70.2.tgz → tryghost-members-offers-5.71.0.tgz} +0 -0
- package/components/{tryghost-members-payments-5.70.2.tgz → tryghost-members-payments-5.71.0.tgz} +0 -0
- package/components/tryghost-members-ssr-5.71.0.tgz +0 -0
- package/components/{tryghost-members-stripe-service-5.70.2.tgz → tryghost-members-stripe-service-5.71.0.tgz} +0 -0
- package/components/{tryghost-mentions-email-report-5.70.2.tgz → tryghost-mentions-email-report-5.71.0.tgz} +0 -0
- package/components/{tryghost-milestones-5.70.2.tgz → tryghost-milestones-5.71.0.tgz} +0 -0
- package/components/{tryghost-minifier-5.70.2.tgz → tryghost-minifier-5.71.0.tgz} +0 -0
- package/components/tryghost-model-to-domain-event-interceptor-5.71.0.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.71.0.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.71.0.tgz +0 -0
- package/components/tryghost-mw-error-handler-5.71.0.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.71.0.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.71.0.tgz +0 -0
- package/components/tryghost-mw-version-match-5.71.0.tgz +0 -0
- package/components/tryghost-mw-vhost-5.71.0.tgz +0 -0
- package/components/{tryghost-nql-filter-expansions-5.70.2.tgz → tryghost-nql-filter-expansions-5.71.0.tgz} +0 -0
- package/components/{tryghost-oembed-service-5.70.2.tgz → tryghost-oembed-service-5.71.0.tgz} +0 -0
- package/components/{tryghost-package-json-5.70.2.tgz → tryghost-package-json-5.71.0.tgz} +0 -0
- package/components/tryghost-post-events-5.71.0.tgz +0 -0
- package/components/tryghost-post-revisions-5.71.0.tgz +0 -0
- package/components/{tryghost-posts-service-5.70.2.tgz → tryghost-posts-service-5.71.0.tgz} +0 -0
- package/components/tryghost-recommendations-5.71.0.tgz +0 -0
- package/components/tryghost-referrers-5.71.0.tgz +0 -0
- package/components/{tryghost-security-5.70.2.tgz → tryghost-security-5.71.0.tgz} +0 -0
- package/components/{tryghost-session-service-5.70.2.tgz → tryghost-session-service-5.71.0.tgz} +0 -0
- package/components/tryghost-settings-path-manager-5.71.0.tgz +0 -0
- package/components/tryghost-slack-notifications-5.71.0.tgz +0 -0
- package/components/{tryghost-staff-service-5.70.2.tgz → tryghost-staff-service-5.71.0.tgz} +0 -0
- package/components/tryghost-stats-service-5.71.0.tgz +0 -0
- package/components/{tryghost-tiers-5.70.2.tgz → tryghost-tiers-5.71.0.tgz} +0 -0
- package/components/{tryghost-update-check-service-5.70.2.tgz → tryghost-update-check-service-5.71.0.tgz} +0 -0
- package/components/{tryghost-verification-trigger-5.70.2.tgz → tryghost-verification-trigger-5.71.0.tgz} +0 -0
- package/components/{tryghost-version-notifications-data-service-5.70.2.tgz → tryghost-version-notifications-data-service-5.71.0.tgz} +0 -0
- package/components/tryghost-webmentions-5.71.0.tgz +0 -0
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/built/screen.css.map +1 -1
- package/content/themes/source/assets/css/screen.css +105 -2
- package/content/themes/source/package.json +1 -1
- package/content/themes/source/partials/components/post-list.hbs +28 -19
- package/core/built/admin/assets/admin-x-settings/{CodeEditorView-631aaa10.mjs → CodeEditorView-cf9b94da.mjs} +2 -2
- package/core/built/admin/assets/admin-x-settings/admin-x-settings.js +2 -2
- package/core/built/admin/assets/admin-x-settings/{index-cd9d0460.mjs → index-2cbdc6fc.mjs} +5764 -5641
- package/core/built/admin/assets/admin-x-settings/{limit-service-dad09b0e.mjs → limit-service-c2ca5332.mjs} +4862 -5021
- package/core/built/admin/assets/admin-x-settings/{modals-64706b26.mjs → modals-3c8a0931.mjs} +2282 -2283
- package/core/built/admin/assets/{chunk.143.fdd6a7bdd3230f22bf24.js → chunk.143.dd35d008afe4417cb7b6.js} +11 -11
- package/core/built/admin/assets/{chunk.178.6aba419f407d82a06217.js → chunk.178.5c10121aa029f6b9fab7.js} +4 -4
- package/core/built/admin/assets/{chunk.334.3498cc12ebd02c179e3a.js → chunk.338.a23271afc734a6de1d3b.js} +7154 -6587
- package/core/built/admin/assets/{chunk.334.3498cc12ebd02c179e3a.js.LICENSE.txt → chunk.338.a23271afc734a6de1d3b.js.LICENSE.txt} +7 -0
- package/core/built/admin/assets/{ghost-71766888f233d8996c2171e03257c940.js → ghost-a43c6dbe8d871a5929a0c4ccb54d391e.js} +22 -21
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +15657 -15678
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +128 -128
- package/core/built/admin/index.html +4 -4
- package/core/frontend/helpers/ghost_head.js +1 -1
- package/core/frontend/helpers/tpl/recommendations.hbs +5 -1
- package/core/frontend/services/routing/controllers/unsubscribe.js +41 -1
- package/core/server/api/endpoints/utils/serializers/input/pages.js +2 -5
- package/core/server/api/endpoints/utils/serializers/input/posts.js +2 -5
- package/core/server/lib/lexical.js +22 -0
- package/core/server/models/post.js +7 -2
- package/core/shared/labs.js +4 -3
- package/package.json +157 -157
- package/yarn.lock +387 -248
- package/components/tryghost-adapter-cache-memory-ttl-5.70.2.tgz +0 -0
- package/components/tryghost-announcement-bar-settings-5.70.2.tgz +0 -0
- package/components/tryghost-api-framework-5.70.2.tgz +0 -0
- package/components/tryghost-bootstrap-socket-5.70.2.tgz +0 -0
- package/components/tryghost-collections-5.70.2.tgz +0 -0
- package/components/tryghost-constants-5.70.2.tgz +0 -0
- package/components/tryghost-custom-theme-settings-service-5.70.2.tgz +0 -0
- package/components/tryghost-donations-5.70.2.tgz +0 -0
- package/components/tryghost-dynamic-routing-events-5.70.2.tgz +0 -0
- package/components/tryghost-email-content-generator-5.70.2.tgz +0 -0
- package/components/tryghost-email-service-5.70.2.tgz +0 -0
- package/components/tryghost-email-suppression-list-5.70.2.tgz +0 -0
- package/components/tryghost-event-aware-cache-wrapper-5.70.2.tgz +0 -0
- package/components/tryghost-express-dynamic-redirects-5.70.2.tgz +0 -0
- package/components/tryghost-extract-api-key-5.70.2.tgz +0 -0
- package/components/tryghost-i18n-5.70.2.tgz +0 -0
- package/components/tryghost-importer-revue-5.70.2.tgz +0 -0
- package/components/tryghost-link-replacer-5.70.2.tgz +0 -0
- package/components/tryghost-mail-events-5.70.2.tgz +0 -0
- package/components/tryghost-mailgun-client-5.70.2.tgz +0 -0
- package/components/tryghost-member-attribution-5.70.2.tgz +0 -0
- package/components/tryghost-members-ssr-5.70.2.tgz +0 -0
- package/components/tryghost-model-to-domain-event-interceptor-5.70.2.tgz +0 -0
- package/components/tryghost-mw-api-version-mismatch-5.70.2.tgz +0 -0
- package/components/tryghost-mw-cache-control-5.70.2.tgz +0 -0
- package/components/tryghost-mw-error-handler-5.70.2.tgz +0 -0
- package/components/tryghost-mw-session-from-token-5.70.2.tgz +0 -0
- package/components/tryghost-mw-update-user-last-seen-5.70.2.tgz +0 -0
- package/components/tryghost-mw-version-match-5.70.2.tgz +0 -0
- package/components/tryghost-mw-vhost-5.70.2.tgz +0 -0
- package/components/tryghost-post-events-5.70.2.tgz +0 -0
- package/components/tryghost-post-revisions-5.70.2.tgz +0 -0
- package/components/tryghost-recommendations-5.70.2.tgz +0 -0
- package/components/tryghost-referrers-5.70.2.tgz +0 -0
- package/components/tryghost-settings-path-manager-5.70.2.tgz +0 -0
- package/components/tryghost-slack-notifications-5.70.2.tgz +0 -0
- package/components/tryghost-stats-service-5.70.2.tgz +0 -0
- package/components/tryghost-webmentions-5.70.2.tgz +0 -0
|
@@ -5,6 +5,13 @@ https://github.com/mholt/PapaParse
|
|
|
5
5
|
License: MIT
|
|
6
6
|
*/
|
|
7
7
|
|
|
8
|
+
/*!
|
|
9
|
+
localForage -- Offline Storage, Improved
|
|
10
|
+
Version 1.10.0
|
|
11
|
+
https://localforage.github.io/localForage
|
|
12
|
+
(c) 2013-2017 Mozilla, Apache License 2.0
|
|
13
|
+
*/
|
|
14
|
+
|
|
8
15
|
/*!
|
|
9
16
|
* The buffer module from node.js, for the browser.
|
|
10
17
|
*
|
|
@@ -1830,7 +1830,7 @@ class k extends n.default.Component{constructor(...e){super(...e),y(this,"state"
|
|
|
1830
1830
|
return n.default.createElement(i,v({nodes:r},t))},P=({editorResource:e,...t})=>{const{KoenigComposableEditor:i,MINIMAL_TRANSFORMERS:r}=e.read()
|
|
1831
1831
|
return n.default.createElement(i,v({markdownTransformers:r},t))},O=({editorResource:e,...t})=>{const{HtmlOutputPlugin:i}=e.read()
|
|
1832
1832
|
return n.default.createElement(i,t)}
|
|
1833
|
-
let j=(a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember._action,c=class extends i.default{constructor(...e){super(...e),g(this,"ajax",d,this),g(this,"feature",p,this),g(this,"koenig",m,this),g(this,"session",h,this),g(this,"config",b,this),y(this,"editorResource",this.koenig.resource),y(this,"ReactComponent",(e=>n.default.createElement("div",{className:["koenig-react-editor",this.args.className].filter(Boolean).join(" ")},n.default.createElement(k,null,n.default.createElement(n.Suspense,{fallback:n.default.createElement("p",{className:"koenig-react-editor-loading"},"Loading editor...")},n.default.createElement(E,{editorResource:this.editorResource,initialEditorState:this.args.lexical,onError:this.onError},n.default.createElement(P,{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",placeholderText:e.placeholderText,placeholderClassName:"koenig-lexical-editor-input-placeholder"},n.default.createElement(O,{editorResource:this.editorResource,html:e.html,setHtml:e.onChangeHtml}))))))))}onError(e){console.error(e),this.config.sentry_dsn&&t.captureException(e,{tags:{lexical:!0}})}},d=f(c.prototype,"ajax",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=f(c.prototype,"feature",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=f(c.prototype,"koenig",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=f(c.prototype,"session",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=f(c.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f(c.prototype,"onError",[u],Object.getOwnPropertyDescriptor(c.prototype,"onError"),c.prototype),c)
|
|
1833
|
+
let j=(a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember._action,c=class extends i.default{constructor(...e){super(...e),g(this,"ajax",d,this),g(this,"feature",p,this),g(this,"koenig",m,this),g(this,"session",h,this),g(this,"config",b,this),y(this,"editorResource",this.koenig.resource),y(this,"ReactComponent",(e=>n.default.createElement("div",{className:["koenig-react-editor",this.args.className].filter(Boolean).join(" ")},n.default.createElement(k,null,n.default.createElement(n.Suspense,{fallback:n.default.createElement("p",{className:"koenig-react-editor-loading"},"Loading editor...")},n.default.createElement(E,{editorResource:this.editorResource,initialEditorState:this.args.lexical,onError:this.onError},n.default.createElement(P,{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"},n.default.createElement(O,{editorResource:this.editorResource,html:e.html,setHtml:e.onChangeHtml}))))))))}onError(e){console.error(e),this.config.sentry_dsn&&t.captureException(e,{tags:{lexical:!0}})}},d=f(c.prototype,"ajax",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=f(c.prototype,"feature",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=f(c.prototype,"koenig",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=f(c.prototype,"session",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=f(c.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f(c.prototype,"onError",[u],Object.getOwnPropertyDescriptor(c.prototype,"onError"),c.prototype),c)
|
|
1834
1834
|
e.default=j,Ember._setComponentTemplate(w,j)}))
|
|
1835
1835
|
define("ghost-admin/components/koenig-lexical-editor",["exports","@sentry/ember","@glimmer/component","react","fetch","ghost-admin/utils/ghost-paths","ghost-admin/decorators/inject","ember-concurrency"],(function(e,t,i,n,r,a,s,o){var l,u,c,d,p,m,h,b,g,f,v,y,w,k,E,P,O,j,_,T,z
|
|
1836
1836
|
function x(e,t,i,n){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(n):void 0})}function S(e,t,i,n,r){var a={}
|
|
@@ -1853,7 +1853,7 @@ t.searchParams.append("key",this.contentKey),t.searchParams.append("collection",
|
|
|
1853
1853
|
const i=await(0,r.default)(t.toString()),{posts:n}=await i.json()
|
|
1854
1854
|
return n},fetchAutocompleteLinks:async()=>{const e=await this.fetchOffersTask.perform(),t=[{label:"Homepage",value:window.location.origin+"/"},{label:"Free signup",value:"#/portal/signup/free"}],i=e.toArray().map((e=>({label:`Offer - ${e.name}`,value:this.config.getSiteUrl(e.code)})))
|
|
1855
1855
|
return[...t,...(()=>{let e=[]
|
|
1856
|
-
return this.membersUtils.paidMembersEnabled&&(e=[{label:"Paid signup",value:"#/portal/signup"},{label:"Upgrade or change plan",value:"#/portal/account/plans"}]),e})(),...(()=>this.feature.tipsAndDonations&&this.settings.donationsEnabled?[{label:"Tip or donation",value:"#/portal/support"}]:[])(),...(()=>this.settings.recommendationsEnabled?[{label:"Recommendations",value:"#/portal/recommendations"}]:[])(),...i]},fetchLabels:async()=>(await this.fetchLabelsTask.perform()).map((e=>e.name)),feature:{collectionsCard:this.feature.get("collectionsCard"),collections:this.feature.get("collections")},depreciated:{headerV1:!0},membersEnabled:"all"===this.settings.get("membersSignupAccess"),siteTitle:this.settings.title,siteDescription:this.settings.description},s=Object.assign({},i,e.cardConfig,{pinturaConfig:this.pinturaConfig}),o=this.feature.lexicalMultiplayer&&!s.post.isNew,l=("https:"===window.location.protocol?"wss:":"ws:")+window.location.host+this.ghostPaths.url.api("posts","multiplayer"),u=s.post.id,c=this.session.user.name
|
|
1856
|
+
return this.membersUtils.paidMembersEnabled&&(e=[{label:"Paid signup",value:"#/portal/signup"},{label:"Upgrade or change plan",value:"#/portal/account/plans"}]),e})(),...(()=>this.feature.tipsAndDonations&&this.settings.donationsEnabled?[{label:"Tip or donation",value:"#/portal/support"}]:[])(),...(()=>this.settings.recommendationsEnabled?[{label:"Recommendations",value:"#/portal/recommendations"}]:[])(),...i]},fetchLabels:async()=>(await this.fetchLabelsTask.perform()).map((e=>e.name)),feature:{collectionsCard:this.feature.get("collectionsCard"),collections:this.feature.get("collections"),emojiPicker:this.feature.get("editorEmojiPicker")},depreciated:{headerV1:!0},membersEnabled:"all"===this.settings.get("membersSignupAccess"),siteTitle:this.settings.title,siteDescription:this.settings.description},s=Object.assign({},i,e.cardConfig,{pinturaConfig:this.pinturaConfig}),o=this.feature.lexicalMultiplayer&&!s.post.isNew,l=("https:"===window.location.protocol?"wss:":"ws:")+window.location.host+this.ghostPaths.url.api("posts","multiplayer"),u=s.post.id,c=this.session.user.name
|
|
1857
1857
|
return n.default.createElement("div",{className:["koenig-react-editor","koenig-lexical",this.args.className].filter(Boolean).join(" ")},n.default.createElement(A,null,n.default.createElement(n.Suspense,{fallback:n.default.createElement("p",{className:"koenig-react-editor-loading"},"Loading editor...")},n.default.createElement(I,{editorResource:this.editorResource,cardConfig:s,enableMultiplayer:o,fileUploader:{useFileUpload:(e="image")=>{const[t,i]=n.default.useState(0),[r,s]=n.default.useState(!1),[o,l]=n.default.useState([]),[u,c]=n.default.useState(0),d=n.default.useRef(new Map)
|
|
1858
1858
|
function p(){if(0===d.current.size)return void i(0)
|
|
1859
1859
|
let e=0
|
|
@@ -4642,16 +4642,17 @@ Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
|
4642
4642
|
let a=(i=Ember.inject.service,n=class extends t.default{constructor(...e){var t,i,n,a
|
|
4643
4643
|
super(...e),t=this,i="session",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(){if(super.beforeModel(...arguments),!this.session.user.isAdmin)return this.transitionTo("home")}},s=n.prototype,o="session",l=[i],u={configurable:!0,enumerable:!0,writable:!0,initializer:null},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),d=null),r=d,n)
|
|
4644
4644
|
var s,o,l,u,c,d
|
|
4645
|
-
e.default=a})),define("ghost-admin/routes/application",["exports","ember-simple-auth/configuration","react","react-dom","ghost-admin/mixins/shortcuts-route","ghost-admin/utils/ctrl-or-cmd","ghost-admin/utils/window-proxy","@sentry/
|
|
4646
|
-
let
|
|
4647
|
-
|
|
4648
|
-
var
|
|
4649
|
-
if((0,
|
|
4645
|
+
e.default=a})),define("ghost-admin/routes/application",["exports","@sentry/ember","ember-simple-auth/configuration","react","react-dom","ghost-admin/mixins/shortcuts-route","ghost-admin/utils/ctrl-or-cmd","ghost-admin/utils/window-proxy","@sentry/integrations","ghost-admin/components/admin-x/settings","ghost-admin/decorators/inject","ember-ajax/errors","ghost-admin/services/ajax"],(function(e,t,i,n,r,a,s,o,l,u,c,d,p){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
4646
|
+
let m={esc:{action:"closeMenus",scope:"default"}}
|
|
4647
|
+
m[`${s.default}+s`]={action:"save",scope:"all"},window.React=n.default,window.ReactDOM=r.default
|
|
4648
|
+
var h=Ember.Route.extend(a.default,{ajax:Ember.inject.service(),configManager:Ember.inject.service(),feature:Ember.inject.service(),ghostPaths:Ember.inject.service(),notifications:Ember.inject.service(),router:Ember.inject.service(),session:Ember.inject.service(),settings:Ember.inject.service(),ui:Ember.inject.service(),whatsNew:Ember.inject.service(),billing:Ember.inject.service(),shortcuts:m,routeAfterAuthentication:"home",init(){this._super(...arguments),this.router.on("routeDidChange",(()=>{this.notifications.displayDelayed()})),this.ui.initBodyDragHandlers()},config:(0,c.inject)(),async beforeModel(){return await this.session.setup(),this.prepareApp()},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),t.setTag("path",this.router.currentURL)}),2)},authorizationFailed(){o.default.replaceLocation(i.default.rootURL)},save:function(){return this},error(e,t){if((0,d.isUnauthorizedError)(e))return!1
|
|
4649
|
+
if((0,d.isNotFoundError)(e)){t&&t.abort()
|
|
4650
4650
|
let e=t.to,i=this.router,n=[]
|
|
4651
4651
|
for(let t of Object.keys(e.params))n.push(e.params[t])
|
|
4652
4652
|
let r=i.urlFor(e.name,...n).replace(/^#\//,"").replace(/^\//,"").replace(/^ghost\//,"")
|
|
4653
|
-
return this.replaceWith("error404",r)}return(!(0,
|
|
4654
|
-
e.
|
|
4653
|
+
return this.replaceWith("error404",r)}return(!(0,p.isVersionMismatchError)(e)||(t&&t.abort(),this.upgradeStatus.requireUpgrade(),!this._appLoaded))&&((!(0,p.isMaintenanceError)(e)||(t&&t.abort(),this.upgradeStatus.maintenanceAlert(),!this._appLoaded))&&!(((0,d.isAjaxError)(e)||e&&e.payload&&Ember.isArray(e.payload.errors))&&(this.notifications.showAPIError(e),!t)))}},willDestroy(){this.ui.cleanupBodyDragHandlers()},async prepareApp(){if(await this.configManager.fetchUnauthenticated(),this.config.sentry_dsn){const e={dsn:this.config.sentry_dsn,environment:this.config.sentry_env,release:`ghost@${this.config.version}`,beforeSend:e=>(e.tags=e.tags||{},e.tags.shown_to_user=e.tags.shown_to_user||!1,e.tags.grammarly=!!document.querySelector("[data-gr-ext-installed]"),e),ignoreErrors:[/^TransitionAborted$/]}
|
|
4654
|
+
"development"===this.config.sentry_env&&(e.integrations=[new l.Debug]),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"),setTimeout(u.importSettings,1e3)}})
|
|
4655
|
+
e.default=h})),define("ghost-admin/routes/authenticated",["exports"],(function(e){var t,i,n
|
|
4655
4656
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
4656
4657
|
let r=(t=Ember.inject.service,i=class extends Ember.Route{constructor(...e){var t,i,r,a
|
|
4657
4658
|
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})}async beforeModel(e){this.session.requireAuthentication(e,"signin")}},a=i.prototype,s="session",o=[t],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),void 0===c.initializer&&(Object.defineProperty(a,s,c),c=null),n=c,i)
|
|
@@ -5601,23 +5602,23 @@ return this.ghostPaths.url.join(e.host,t).replace(/\/$/,"")}get iframeURL(){let
|
|
|
5601
5602
|
if(window.location.hash&&window.location.hash.includes(this.exploreRouteRoot)){let t=window.location.hash.replace(this.exploreRouteRoot,"")
|
|
5602
5603
|
t&&!t.includes("connect")&&(e+=t.replace(/^\//,""))}return e}constructor(){super(...arguments),g(this,"router",u,this),g(this,"feature",c,this),g(this,"ghostPaths",d,this),g(this,"config",p,this),f(this,"exploreUrl","https://ghost.org/explore/"),f(this,"exploreRouteRoot","#/explore"),f(this,"submitRoute","submit"),g(this,"exploreWindowOpen",m,this),g(this,"siteData",h,this),g(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
|
|
5603
5604
|
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",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=v(l.prototype,"ghostPaths",[r],{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)
|
|
5604
|
-
e.default=y})),define("ghost-admin/services/feature",["exports","jquery","ghost-admin/decorators/inject"],(function(e,t,i){var n,r,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,k,E,P,O,j,_,T,z,x,S,C,M,D,A,I,L,N,R,U,F,B,V,H,q,$,Y,W,G,K,J,X,Z,Q,ee,te,ie,ne,re
|
|
5605
|
-
function
|
|
5605
|
+
e.default=y})),define("ghost-admin/services/feature",["exports","jquery","ghost-admin/decorators/inject"],(function(e,t,i){var n,r,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,k,E,P,O,j,_,T,z,x,S,C,M,D,A,I,L,N,R,U,F,B,V,H,q,$,Y,W,G,K,J,X,Z,Q,ee,te,ie,ne,re,ae,se
|
|
5606
|
+
function oe(e,t,i,n){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(n):void 0})}function le(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e
|
|
5606
5607
|
var i=e[Symbol.toPrimitive]
|
|
5607
5608
|
if(void 0!==i){var n=i.call(e,t||"default")
|
|
5608
5609
|
if("object"!=typeof n)return n
|
|
5609
5610
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
5610
|
-
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
|
|
5611
|
-
return Object.keys(n).forEach((function(e){a[e]=n[e]})),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce((function(i,n){return n(e,t,i)||i}),a),r&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(r):void 0,a.initializer=void 0),void 0===a.initializer&&(Object.defineProperty(e,t,a),a=null),a}function
|
|
5611
|
+
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 ue(e,t,i,n,r){var a={}
|
|
5612
|
+
return Object.keys(n).forEach((function(e){a[e]=n[e]})),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce((function(i,n){return n(e,t,i)||i}),a),r&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(r):void 0,a.initializer=void 0),void 0===a.initializer&&(Object.defineProperty(e,t,a),a=null),a}function ce(e,t={}){let{user:i,onChange:n}=t,r=i?[`accessibility.${e}`]:[`config.${e}`,`labs.${e}`]
|
|
5612
5613
|
return Ember.computed.apply(Ember,r.concat({get(){let t=!1
|
|
5613
|
-
return t=i?this.get(`accessibility.${e}`):"boolean"==typeof this.get(`config.${e}`)?this.get(`config.${e}`):this.get(`labs.${e}`)||!1,t},set(e,i){return this.update(e,i,t),n&&this.get(n).bind(this)(i),i}}))}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.feature=
|
|
5614
|
-
let
|
|
5614
|
+
return t=i?this.get(`accessibility.${e}`):"boolean"==typeof this.get(`config.${e}`)?this.get(`config.${e}`):this.get(`labs.${e}`)||!1,t},set(e,i){return this.update(e,i,t),n&&this.get(n).bind(this)(i),i}}))}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.feature=ce
|
|
5615
|
+
let de=(n=Ember.inject.service,r=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=ce("emailAnalytics"),u=ce("nightShift",{user:!0,onChange:"_setAdminTheme"}),c=ce("referralInviteDismissed",{user:!0}),d=ce("urlCache"),p=ce("lexicalMultiplayer"),m=ce("audienceFeedback"),h=ce("webmentions"),b=ce("websockets"),g=ce("stripeAutomaticTax"),f=ce("emailCustomization"),v=ce("i18n"),y=ce("announcementBar"),w=ce("signupCard"),k=ce("signupForm"),E=ce("collections"),P=ce("mailEvents"),O=ce("collectionsCard"),j=ce("importMemberTier"),_=ce("tipsAndDonations"),T=ce("recommendations"),z=ce("lexicalIndicators"),x=ce("editorEmojiPicker"),S=Ember.computed("settings.labs"),C=Ember.computed("_user.accessibility"),M=class extends Ember.Service{constructor(...e){super(...e),oe(this,"lazyLoader",D,this),oe(this,"notifications",A,this),oe(this,"session",I,this),oe(this,"settings",L,this),oe(this,"store",N,this),oe(this,"config",R,this),oe(this,"emailAnalytics",U,this),oe(this,"nightShift",F,this),oe(this,"referralInviteDismissed",B,this),oe(this,"urlCache",V,this),oe(this,"lexicalMultiplayer",H,this),oe(this,"audienceFeedback",q,this),oe(this,"webmentions",$,this),oe(this,"websockets",Y,this),oe(this,"stripeAutomaticTax",W,this),oe(this,"emailCustomization",G,this),oe(this,"i18n",K,this),oe(this,"announcementBar",J,this),oe(this,"signupCard",X,this),oe(this,"signupForm",Z,this),oe(this,"collections",Q,this),oe(this,"mailEvents",ee,this),oe(this,"collectionsCard",te,this),oe(this,"importMemberTier",ie,this),oe(this,"tipsAndDonations",ne,this),oe(this,"recommendations",re,this),oe(this,"lexicalIndicators",ae,this),oe(this,"editorEmojiPicker",se,this),le(this,"_user",null)}get labs(){let e=this.settings.labs
|
|
5615
5616
|
try{return JSON.parse(e)||{}}catch(t){return{}}}get accessibility(){let e=this.get("_user.accessibility")
|
|
5616
5617
|
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 n=i.user?"accessibility":"labs",r=this.get(i.user?"_user":"settings"),a=this.get(n)
|
|
5617
5618
|
return Ember.set(a,e,t),i.requires&&!0===t&&i.requires.forEach((e=>{Ember.set(a,e,!0)})),r.set(n,JSON.stringify(a)),r.save().then((()=>(this.notifyPropertyChange(n),this.get(`${n}.${e}`)))).catch((t=>{if(r.rollbackAttributes(),this.notifyPropertyChange(n),!t)throw new Ember.Error(`Validation of the feature service ${i.user?"user":"settings"} model failed when updating ${n}.`)
|
|
5618
5619
|
return this.notifications.showAPIError(t),this.get(`${n}.${e}`)}))}_setAdminTheme(e){let i=e
|
|
5619
|
-
return void 0===i&&(i=e||this.nightShift),this.lazyLoader.loadStyle("dark","assets/ghost-dark-114b1812a92f63449e10acf799cd2664.css",!0).then((()=>{(0,t.default)("link[title=dark]").prop("disabled",!i)})).catch((()=>{(0,t.default)("link[title=dark]").prop("disabled",!0)}))}},
|
|
5620
|
-
e.default=
|
|
5620
|
+
return void 0===i&&(i=e||this.nightShift),this.lazyLoader.loadStyle("dark","assets/ghost-dark-114b1812a92f63449e10acf799cd2664.css",!0).then((()=>{(0,t.default)("link[title=dark]").prop("disabled",!i)})).catch((()=>{(0,t.default)("link[title=dark]").prop("disabled",!0)}))}},D=ue(M.prototype,"lazyLoader",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=ue(M.prototype,"notifications",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=ue(M.prototype,"session",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=ue(M.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=ue(M.prototype,"store",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=ue(M.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=ue(M.prototype,"emailAnalytics",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=ue(M.prototype,"nightShift",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=ue(M.prototype,"referralInviteDismissed",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=ue(M.prototype,"urlCache",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=ue(M.prototype,"lexicalMultiplayer",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=ue(M.prototype,"audienceFeedback",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=ue(M.prototype,"webmentions",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=ue(M.prototype,"websockets",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=ue(M.prototype,"stripeAutomaticTax",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=ue(M.prototype,"emailCustomization",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=ue(M.prototype,"i18n",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J=ue(M.prototype,"announcementBar",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),X=ue(M.prototype,"signupCard",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z=ue(M.prototype,"signupForm",[k],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Q=ue(M.prototype,"collections",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ee=ue(M.prototype,"mailEvents",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),te=ue(M.prototype,"collectionsCard",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ie=ue(M.prototype,"importMemberTier",[j],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ne=ue(M.prototype,"tipsAndDonations",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),re=ue(M.prototype,"recommendations",[T],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ae=ue(M.prototype,"lexicalIndicators",[z],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),se=ue(M.prototype,"editorEmojiPicker",[x],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ue(M.prototype,"labs",[S],Object.getOwnPropertyDescriptor(M.prototype,"labs"),M.prototype),ue(M.prototype,"accessibility",[C],Object.getOwnPropertyDescriptor(M.prototype,"accessibility"),M.prototype),M)
|
|
5621
|
+
e.default=de})),define("ghost-admin/services/frontend",["exports","fetch","validator","ghost-admin/decorators/inject"],(function(e,t,i,n){var r,a,s,o,l,u
|
|
5621
5622
|
function c(e,t,i,n){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(n):void 0})}function d(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e
|
|
5622
5623
|
var i=e[Symbol.toPrimitive]
|
|
5623
5624
|
if(void 0!==i){var n=i.call(e,t||"default")
|
|
@@ -5839,7 +5840,7 @@ return"symbol"==typeof t?t:String(t)}(t))in e?Object.defineProperty(e,t,{value:i
|
|
|
5839
5840
|
return Object.keys(n).forEach((function(e){a[e]=n[e]})),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce((function(i,n){return n(e,t,i)||i}),a),r&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(r):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
|
|
5840
5841
|
let U=(a=Ember.inject.service,s=Ember.inject.service("store"),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.inject.service,h=Ember.inject.service,b=Ember.inject.service,g=Ember.inject.service,f=Ember.inject.service,v=Ember._tracked,y=(0,r.task)({drop:!0}),w=class extends t.default{constructor(...e){super(...e),L(this,"configManager",k,this),L(this,"dataStore",E,this),L(this,"feature",P,this),L(this,"koenig",O,this),L(this,"notifications",j,this),L(this,"router",_,this),L(this,"frontend",T,this),L(this,"settings",z,this),L(this,"ui",x,this),L(this,"upgradeStatus",S,this),L(this,"whatsNew",C,this),L(this,"membersUtils",M,this),L(this,"themeManagement",D,this),L(this,"config",A,this),L(this,"user",I,this),N(this,"skipAuthSuccessHandler",!1)}async populateUser(e={}){if(this.user)return
|
|
5841
5842
|
const t=e.id||"me",i=await this.dataStore.queryRecord("user",{id:t})
|
|
5842
|
-
this.user=i}async postAuthPreparation(){await Ember.RSVP.all([this.configManager.fetchAuthenticated(),this.feature.fetch(),this.settings.fetch(),this.membersUtils.fetch()]),this.themeManagement.fetch().catch(console.error),await this.frontend.loginIfNeeded(),this.config.sentry_dsn&&(0,i.configureScope)((e=>{e.addEventProcessor((e=>new Promise((t=>{t({...e,release:`ghost@${this.config.version}`,
|
|
5843
|
+
this.user=i}async postAuthPreparation(){await Ember.RSVP.all([this.configManager.fetchAuthenticated(),this.feature.fetch(),this.settings.fetch(),this.membersUtils.fetch()]),this.themeManagement.fetch().catch(console.error),await this.frontend.loginIfNeeded(),this.config.sentry_dsn&&(0,i.configureScope)((e=>{e.addEventProcessor((e=>new Promise((t=>{t({...e,release:`ghost@${this.config.version}`,user:{role:this.user.role.name}})}))))})),this.loadServerNotifications(),this.whatsNew.fetchLatest.perform(),this.koenig.fetch()}async handleAuthentication(){return this.handleAuthenticationTask.isRunning?this.handleAuthenticationTask.last:this.handleAuthenticationTask.perform((()=>{this.skipAuthSuccessHandler?this.skipAuthSuccessHandler=!1:super.handleAuthentication("home")}))}async requireAuthentication(e,t){this.isAuthenticated||(e.abort(),this.user&&(await this.setup(),this.notifications.clearAll(),e.retry())),super.requireAuthentication(e,t)}handleInvalidation(){let e=this.appLoadTransition
|
|
5843
5844
|
e?e.send("authorizationFailed"):Ember.run.scheduleOnce("routerTransitions",this,"triggerAuthorizationFailed")}triggerAuthorizationFailed(){Ember.getOwner(this).lookup(`route:${this.router.currentRouteName}`)?.send("authorizationFailed")}loadServerNotifications(){this.isAuthenticated&&(this.user.isAuthorOrContributor||this.dataStore.findAll("notification",{reload:!0}).then((e=>{e.forEach((e=>{e.top||e.custom?this.notifications.handleNotification(e):this.upgradeStatus.handleUpgradeNotification(e)}))})))}*handleAuthenticationTask(e){if(!this.user){try{yield this.populateUser()}catch(t){yield this.invalidate()}yield this.postAuthPreparation()}e()}},k=R(w.prototype,"configManager",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=R(w.prototype,"dataStore",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=R(w.prototype,"feature",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=R(w.prototype,"koenig",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=R(w.prototype,"notifications",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=R(w.prototype,"router",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=R(w.prototype,"frontend",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=R(w.prototype,"settings",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=R(w.prototype,"ui",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=R(w.prototype,"upgradeStatus",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=R(w.prototype,"whatsNew",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=R(w.prototype,"membersUtils",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=R(w.prototype,"themeManagement",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=R(w.prototype,"config",[n.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=R(w.prototype,"user",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),R(w.prototype,"handleAuthenticationTask",[y],Object.getOwnPropertyDescriptor(w.prototype,"handleAuthenticationTask"),w.prototype),w)
|
|
5844
5845
|
e.default=U})),define("ghost-admin/services/settings",["exports","ghost-admin/models/setting","ghost-admin/mixins/validation-engine"],(function(e,t,i){var n,r,a,s,o,l,u
|
|
5845
5846
|
function c(e,t,i,n){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(n):void 0})}function d(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||null===e)return e
|
|
@@ -6081,7 +6082,7 @@ var t=Ember.HTMLBars.template({id:"x5mP0xv7",block:'{"symbols":[],"statements":[
|
|
|
6081
6082
|
e.default=t})),define("ghost-admin/templates/settings/labs-loading",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
6082
6083
|
var t=Ember.HTMLBars.template({id:"k/w92WvT",block:'{"symbols":[],"statements":[[10,"section"],[14,0,"gh-canvas"],[12],[2,"\\n "],[8,"gh-canvas-header",[[24,0,"gh-canvas-header"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"flex flex-column"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-canvas-breadcrumb"],[12],[2,"\\n "],[8,"link-to",[],[["@route"],["settings"]],[["default"],[{"statements":[[2,"\\n Settings\\n "]],"parameters":[]}]]],[2,"\\n "],[1,[30,[36,0],["arrow-right-small"],null]],[2," Labs\\n "],[13],[2,"\\n "],[10,"h2"],[14,0,"gh-canvas-title"],[14,"data-test-screen-title",""],[12],[2,"\\n Labs\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[10,"div"],[14,0,"gh-content"],[12],[2,"\\n "],[8,"gh-loading-spinner",[],[[],[]],null],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["svg-jar"]}',moduleName:"ghost-admin/templates/settings/labs-loading.hbs"})
|
|
6083
6084
|
e.default=t})),define("ghost-admin/templates/settings/labs",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
6084
|
-
var t=Ember.HTMLBars.template({id:"9peCt/go",block:'{"symbols":["uploader","error","uploader","error"],"statements":[[10,"section"],[14,0,"gh-canvas"],[12],[2,"\\n "],[8,"gh-canvas-header",[[24,0,"gh-canvas-header"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"flex flex-column"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-canvas-breadcrumb"],[12],[2,"\\n "],[8,"link-to",[],[["@route"],["settings"]],[["default"],[{"statements":[[2,"\\n Settings\\n "]],"parameters":[]}]]],[2,"\\n "],[1,[30,[36,1],["arrow-right-small"],null]],[2," Labs\\n "],[13],[2,"\\n "],[10,"h2"],[14,0,"gh-canvas-title"],[14,"data-test-screen-title",""],[12],[2,"\\n Labs\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[10,"section"],[14,0,"view-container settings-debug"],[12],[2,"\\n "],[10,"p"],[14,0,"gh-box gh-box-tip"],[12],[1,[30,[36,1],["idea"],null]],[2,"This is a testing ground for new or experimental features. They may change, break or inexplicably disappear at any time."],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-main-section"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-main-section-header small bn"],[12],[2,"Migration options"],[13],[2,"\\n "],[10,"div"],[15,0,[31,["gh-expandable ",[30,[36,2],[[32,0,["importErrors"]],"overflow-hidden"],null]]]],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Import content"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Import posts from a JSON or zip file"],[13],[2,"\\n "],[13],[2,"\\n "],[8,"link-to",[[24,0,"gh-btn"],[24,"data-test-link","import-content"]],[["@route"],["settings.labs.import"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"Open Importer"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Export your content"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Download all of your posts and settings in a single, glorious JSON file"],[13],[2,"\\n "],[13],[2,"\\n "],[11,"button"],[24,0,"gh-btn"],[24,4,"button"],[4,[38,3],[[32,0],"downloadFile","db"],null],[12],[10,"span"],[12],[2,"Export"],[13],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Delete all content"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Permanently delete all posts and tags from the database, a hard reset"],[13],[2,"\\n "],[13],[2,"\\n "],[11,"button"],[24,0,"gh-btn gh-btn-red"],[24,"data-test-button","delete-all"],[24,4,"button"],[4,[38,4],["click",[32,0,["confirmDeleteAll"]]],null],[12],[10,"span"],[12],[2,"Delete"],[13],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-main-section"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-main-section-header small bn"],[12],[2,"Beta features"],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable"],[12],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Substack migrator"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"A "],[10,"a"],[14,6,"https://ghost.org/help/importing-from-substack/"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"step-by-step tool"],[13],[2," to easily import all your content, members and paid subscriptions"],[13],[2,"\\n "],[13],[2,"\\n "],[8,"link-to",[[24,0,"gh-btn"],[24,"data-test-link","migrate"]],[["@route"],["migrate"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"Open"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Portal translation"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Translate your membership flows into your publication language ("],[10,"a"],[14,6,"https://github.com/TryGhost/Ghost/tree/main/ghost/i18n/locales"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"supported languages"],[13],[2,"). Don’t see yours? "],[10,"a"],[14,6,"https://forum.ghost.org/t/help-translate-ghost-beta/37461"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"Get involved"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["i18n"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[8,"gh-uploader",[],[["@extensions","@uploadUrl","@paramName","@onUploadSuccess","@onUploadFailure"],[[32,0,["redirectsFileExtensions"]],"/redirects/upload/","redirects",[30,[36,5],[[32,0,["redirectUploadResult"]],true],null],[30,[36,5],[[32,0,["redirectUploadResult"]],false],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Redirects"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Configure redirects for old or moved content, more info in "],[10,"a"],[14,6,"https://ghost.org/tutorials/implementing-redirects/"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"the docs"],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-setting-action flex flex-column items-end"],[12],[2,"\\n"],[6,[37,2],[[32,3,["isUploading"]]],null,[["default","else"],[{"statements":[[2," "],[1,[32,3,["progressBar"]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"button"],[15,0,[31,["gh-btn gh-btn-icon ",[30,[36,2],[[32,0,["redirectSuccess"]],"gh-btn-green"],null]," ",[30,[36,2],[[32,0,["redirectFailure"]],"gh-btn-red"],null]]]],[15,"onclick",[30,[36,3],[[32,0],"triggerFileDialog"],null]],[14,"data-test-button","upload-redirects"],[14,4,"button"],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,2],[[32,0,["redirectSuccess"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],["check-circle"],null]],[2," Uploaded\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,0,["redirectFailure"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],["retry"],null]],[2," Upload Failed\\n"]],"parameters":[]},{"statements":[[2," Upload redirects YAML/JSON\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[11,"a"],[24,6,"#"],[24,"data-test-link","download-redirects"],[4,[38,3],[[32,0],"downloadFile","redirects/download"],null],[12],[2,"Download current redirects"],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,7],[[30,[36,6],[[30,[36,6],[[32,3,["errors"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-setting-error"],[14,"data-test-error","redirects"],[12],[1,[30,[36,0],[[32,4,["context"]],[32,4,["message"]]],null]],[13],[2,"\\n"]],"parameters":[4]}]]],[2,"\\n "],[10,"div"],[14,5,"display:none"],[12],[2,"\\n "],[8,"gh-file-input",[[24,"data-test-file-input","redirects"]],[["@multiple","@action","@accept"],[false,[32,3,["setFiles"]],[32,0,["redirectsFileMimeTypes"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[8,"gh-uploader",[],[["@extensions","@uploadUrl","@paramName","@onUploadSuccess","@onUploadFailure"],[[32,0,["yamlExtension"]],"/settings/routes/yaml/","routes",[30,[36,5],[[32,0,["routesUploadResult"]],true],null],[30,[36,5],[[32,0,["routesUploadResult"]],false],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Routes"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Configure dynamic routing by modifying the routes.yaml file"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-setting-action flex flex-column items-end"],[12],[2,"\\n"],[6,[37,2],[[32,1,["isUploading"]]],null,[["default","else"],[{"statements":[[2," "],[1,[32,1,["progressBar"]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"button"],[15,0,[31,["gh-btn gh-btn-icon ",[30,[36,2],[[32,0,["routesSuccess"]],"gh-btn-green"],null]," ",[30,[36,2],[[32,0,["routesFailure"]],"gh-btn-red"],null]]]],[15,"onclick",[30,[36,3],[[32,0],"triggerFileDialog"],null]],[14,"data-test-button","upload-routes"],[14,4,"button"],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,2],[[32,0,["routesSuccess"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],["check-circle"],null]],[2," Uploaded\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,0,["routesFailure"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],["retry"],null]],[2," Upload Failed\\n"]],"parameters":[]},{"statements":[[2," Upload routes YAML\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[11,"a"],[24,6,"#"],[24,"data-test-link","download-routes"],[4,[38,3],[[32,0],"downloadFile","settings/routes/yaml"],null],[12],[2,"Download current routes.yaml"],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,7],[[30,[36,6],[[30,[36,6],[[32,1,["errors"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-setting-error"],[14,"data-test-error","routes"],[12],[1,[30,[36,0],[[32,2,["context"]],[32,2,["message"]]],null]],[13],[2,"\\n"]],"parameters":[2]}]]],[2,"\\n "],[10,"div"],[14,5,"display:none"],[12],[2,"\\n "],[8,"gh-file-input",[[24,"data-test-file-input","routes"]],[["@multiple","@action","@accept"],[false,[32,1,["setFiles"]],[32,0,["yamlAccept"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n\\n"],[6,[37,2],[[30,[36,8],null,null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-main-section"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-main-section-header small bn"],[12],[2,"Alpha Features"],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"URL cache"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enable URL Caching\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["urlCache"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Lexical multiplayer"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables multiplayer editing in the lexical editor.\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["lexicalMultiplayer"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Webmentions"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Allows viewing received mentions on the dashboard.\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["webmentions"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Websockets"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Test out Websockets functionality at "],[10,"code"],[12],[2,"/ghost/#/websockets"],[13],[2,".\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["websockets"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Stripe Automatic Tax"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Use Stripe Automatic Tax at Stripe Checkout. Needs to be enabled in Stripe\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["stripeAutomaticTax"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Email customization"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Adding more control over the newsletter template\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["emailCustomization"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Collections"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables Collections 2.0\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["collections"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Collections Card"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables the Collections Card for pages - requires Collections and the beta Editor to be enabled\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["collectionsCard"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Mail Events"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables processing of mail events\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["mailEvents"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Lexical indicators"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Show L/M indicator on posts list for easier debugging\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["lexicalIndicators"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Import Member Tier"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables tier to be specified when importing members\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["importMemberTier"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Tips & donations"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables publishers to collect one-time payments\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["tipsAndDonations"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Recommendations"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables publishers to recommend sites to their audience\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["recommendations"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["or","svg-jar","if","action","on","perform","-track-array","each","enable-developer-experiments"]}',moduleName:"ghost-admin/templates/settings/labs.hbs"})
|
|
6085
|
+
var t=Ember.HTMLBars.template({id:"379GCCOc",block:'{"symbols":["uploader","error","uploader","error"],"statements":[[10,"section"],[14,0,"gh-canvas"],[12],[2,"\\n "],[8,"gh-canvas-header",[[24,0,"gh-canvas-header"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"flex flex-column"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-canvas-breadcrumb"],[12],[2,"\\n "],[8,"link-to",[],[["@route"],["settings"]],[["default"],[{"statements":[[2,"\\n Settings\\n "]],"parameters":[]}]]],[2,"\\n "],[1,[30,[36,1],["arrow-right-small"],null]],[2," Labs\\n "],[13],[2,"\\n "],[10,"h2"],[14,0,"gh-canvas-title"],[14,"data-test-screen-title",""],[12],[2,"\\n Labs\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[10,"section"],[14,0,"view-container settings-debug"],[12],[2,"\\n "],[10,"p"],[14,0,"gh-box gh-box-tip"],[12],[1,[30,[36,1],["idea"],null]],[2,"This is a testing ground for new or experimental features. They may change, break or inexplicably disappear at any time."],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-main-section"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-main-section-header small bn"],[12],[2,"Migration options"],[13],[2,"\\n "],[10,"div"],[15,0,[31,["gh-expandable ",[30,[36,2],[[32,0,["importErrors"]],"overflow-hidden"],null]]]],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Import content"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Import posts from a JSON or zip file"],[13],[2,"\\n "],[13],[2,"\\n "],[8,"link-to",[[24,0,"gh-btn"],[24,"data-test-link","import-content"]],[["@route"],["settings.labs.import"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"Open Importer"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Export your content"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Download all of your posts and settings in a single, glorious JSON file"],[13],[2,"\\n "],[13],[2,"\\n "],[11,"button"],[24,0,"gh-btn"],[24,4,"button"],[4,[38,3],[[32,0],"downloadFile","db"],null],[12],[10,"span"],[12],[2,"Export"],[13],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Delete all content"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Permanently delete all posts and tags from the database, a hard reset"],[13],[2,"\\n "],[13],[2,"\\n "],[11,"button"],[24,0,"gh-btn gh-btn-red"],[24,"data-test-button","delete-all"],[24,4,"button"],[4,[38,4],["click",[32,0,["confirmDeleteAll"]]],null],[12],[10,"span"],[12],[2,"Delete"],[13],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-main-section"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-main-section-header small bn"],[12],[2,"Beta features"],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable"],[12],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Substack migrator"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"A "],[10,"a"],[14,6,"https://ghost.org/help/importing-from-substack/"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"step-by-step tool"],[13],[2," to easily import all your content, members and paid subscriptions"],[13],[2,"\\n "],[13],[2,"\\n "],[8,"link-to",[[24,0,"gh-btn"],[24,"data-test-link","migrate"]],[["@route"],["migrate"]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"Open"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Portal translation"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Translate your membership flows into your publication language ("],[10,"a"],[14,6,"https://github.com/TryGhost/Ghost/tree/main/ghost/i18n/locales"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"supported languages"],[13],[2,"). Don’t see yours? "],[10,"a"],[14,6,"https://forum.ghost.org/t/help-translate-ghost-beta/37461"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"Get involved"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["i18n"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[8,"gh-uploader",[],[["@extensions","@uploadUrl","@paramName","@onUploadSuccess","@onUploadFailure"],[[32,0,["redirectsFileExtensions"]],"/redirects/upload/","redirects",[30,[36,5],[[32,0,["redirectUploadResult"]],true],null],[30,[36,5],[[32,0,["redirectUploadResult"]],false],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Redirects"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Configure redirects for old or moved content, more info in "],[10,"a"],[14,6,"https://ghost.org/tutorials/implementing-redirects/"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"the docs"],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-setting-action flex flex-column items-end"],[12],[2,"\\n"],[6,[37,2],[[32,3,["isUploading"]]],null,[["default","else"],[{"statements":[[2," "],[1,[32,3,["progressBar"]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"button"],[15,0,[31,["gh-btn gh-btn-icon ",[30,[36,2],[[32,0,["redirectSuccess"]],"gh-btn-green"],null]," ",[30,[36,2],[[32,0,["redirectFailure"]],"gh-btn-red"],null]]]],[15,"onclick",[30,[36,3],[[32,0],"triggerFileDialog"],null]],[14,"data-test-button","upload-redirects"],[14,4,"button"],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,2],[[32,0,["redirectSuccess"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],["check-circle"],null]],[2," Uploaded\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,0,["redirectFailure"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],["retry"],null]],[2," Upload Failed\\n"]],"parameters":[]},{"statements":[[2," Upload redirects YAML/JSON\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[11,"a"],[24,6,"#"],[24,"data-test-link","download-redirects"],[4,[38,3],[[32,0],"downloadFile","redirects/download"],null],[12],[2,"Download current redirects"],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,7],[[30,[36,6],[[30,[36,6],[[32,3,["errors"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-setting-error"],[14,"data-test-error","redirects"],[12],[1,[30,[36,0],[[32,4,["context"]],[32,4,["message"]]],null]],[13],[2,"\\n"]],"parameters":[4]}]]],[2,"\\n "],[10,"div"],[14,5,"display:none"],[12],[2,"\\n "],[8,"gh-file-input",[[24,"data-test-file-input","redirects"]],[["@multiple","@action","@accept"],[false,[32,3,["setFiles"]],[32,0,["redirectsFileMimeTypes"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[8,"gh-uploader",[],[["@extensions","@uploadUrl","@paramName","@onUploadSuccess","@onUploadFailure"],[[32,0,["yamlExtension"]],"/settings/routes/yaml/","routes",[30,[36,5],[[32,0,["routesUploadResult"]],true],null],[30,[36,5],[[32,0,["routesUploadResult"]],false],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Routes"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"Configure dynamic routing by modifying the routes.yaml file"],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-setting-action flex flex-column items-end"],[12],[2,"\\n"],[6,[37,2],[[32,1,["isUploading"]]],null,[["default","else"],[{"statements":[[2," "],[1,[32,1,["progressBar"]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"button"],[15,0,[31,["gh-btn gh-btn-icon ",[30,[36,2],[[32,0,["routesSuccess"]],"gh-btn-green"],null]," ",[30,[36,2],[[32,0,["routesFailure"]],"gh-btn-red"],null]]]],[15,"onclick",[30,[36,3],[[32,0],"triggerFileDialog"],null]],[14,"data-test-button","upload-routes"],[14,4,"button"],[12],[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,2],[[32,0,["routesSuccess"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],["check-circle"],null]],[2," Uploaded\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[32,0,["routesFailure"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],["retry"],null]],[2," Upload Failed\\n"]],"parameters":[]},{"statements":[[2," Upload routes YAML\\n "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[11,"a"],[24,6,"#"],[24,"data-test-link","download-routes"],[4,[38,3],[[32,0],"downloadFile","settings/routes/yaml"],null],[12],[2,"Download current routes.yaml"],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,7],[[30,[36,6],[[30,[36,6],[[32,1,["errors"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-setting-error"],[14,"data-test-error","routes"],[12],[1,[30,[36,0],[[32,2,["context"]],[32,2,["message"]]],null]],[13],[2,"\\n"]],"parameters":[2]}]]],[2,"\\n "],[10,"div"],[14,5,"display:none"],[12],[2,"\\n "],[8,"gh-file-input",[[24,"data-test-file-input","routes"]],[["@multiple","@action","@accept"],[false,[32,1,["setFiles"]],[32,0,["yamlAccept"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n\\n"],[6,[37,2],[[30,[36,8],null,null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-main-section"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-main-section-header small bn"],[12],[2,"Alpha Features"],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"URL cache"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enable URL Caching\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["urlCache"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Lexical multiplayer"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables multiplayer editing in the lexical editor.\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["lexicalMultiplayer"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Webmentions"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Allows viewing received mentions on the dashboard.\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["webmentions"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Websockets"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Test out Websockets functionality at "],[10,"code"],[12],[2,"/ghost/#/websockets"],[13],[2,".\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["websockets"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Stripe Automatic Tax"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Use Stripe Automatic Tax at Stripe Checkout. Needs to be enabled in Stripe\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["stripeAutomaticTax"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Email customization"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Adding more control over the newsletter template\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["emailCustomization"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Collections"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables Collections 2.0\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["collections"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Collections Card"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables the Collections Card for pages - requires Collections and the beta Editor to be enabled\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["collectionsCard"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Mail Events"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables processing of mail events\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["mailEvents"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Lexical indicators"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Show L/M indicator on posts list for easier debugging\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["lexicalIndicators"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Import Member Tier"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables tier to be specified when importing members\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["importMemberTier"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"gh-expandable-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-expandable-header"],[12],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h4"],[14,0,"gh-expandable-title"],[12],[2,"Tips & donations"],[13],[2,"\\n "],[10,"p"],[14,0,"gh-expandable-description"],[12],[2,"\\n Enables publishers to collect one-time payments\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"for-switch"],[12],[2,"\\n "],[8,"gh-feature-flag",[],[["@flag"],["tipsAndDonations"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["or","svg-jar","if","action","on","perform","-track-array","each","enable-developer-experiments"]}',moduleName:"ghost-admin/templates/settings/labs.hbs"})
|
|
6085
6086
|
e.default=t})),define("ghost-admin/templates/settings/labs/import",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
6086
6087
|
var t=Ember.HTMLBars.template({id:"EMFXufEV",block:'{"symbols":[],"statements":[[8,"gh-fullscreen-modal",[],[["@modal","@confirm","@close","@modifier"],["import-content",[32,0,["close"]],[32,0,["close"]],"action import-content"]],null],[2,"\\n"]],"hasEval":false,"upvars":[]}',moduleName:"ghost-admin/templates/settings/labs/import.hbs"})
|
|
6087
6088
|
e.default=t})),define("ghost-admin/templates/settings/membership",["exports"],(function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -6351,6 +6352,6 @@ e.default=n})),define("ghost-admin/views/application",["exports"],(function(e){O
|
|
|
6351
6352
|
var t=Ember.Component.extend({})
|
|
6352
6353
|
e.default=t}))
|
|
6353
6354
|
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))}
|
|
6354
|
-
return Object.defineProperty(i,"__esModule",{value:!0}),i}catch(n){throw new Error('Could not read config from meta tag with name "'+e+'".')}})),runningTests||require("ghost-admin/app").default.create({version:"5.
|
|
6355
|
+
return Object.defineProperty(i,"__esModule",{value:!0}),i}catch(n){throw new Error('Could not read config from meta tag with name "'+e+'".')}})),runningTests||require("ghost-admin/app").default.create({version:"5.71",name:"ghost-admin"})
|
|
6355
6356
|
|
|
6356
|
-
//# sourceMappingURL=ghost-
|
|
6357
|
+
//# sourceMappingURL=ghost-a43c6dbe8d871a5929a0c4ccb54d391e.map
|