ghost 6.63.0 → 6.65.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/create-migration.js +15 -0
- package/bin/lib/duplicate-deps.js +204 -0
- package/bin/validate-adapters.js +50 -6
- package/components/tryghost-adapter-base-scheduling-0.2.4.tgz +0 -0
- package/components/tryghost-adapter-base-sso-0.1.3.tgz +0 -0
- package/components/tryghost-admin-api-schema-0.0.0.tgz +0 -0
- package/components/tryghost-api-framework-0.0.0.tgz +0 -0
- package/components/tryghost-i18n-0.0.0.tgz +0 -0
- package/components/{tryghost-kg-default-cards-10.3.5.tgz → tryghost-kg-default-cards-10.3.6.tgz} +0 -0
- package/components/tryghost-kg-default-nodes-2.2.1.tgz +0 -0
- package/components/tryghost-kg-html-to-lexical-1.4.0.tgz +0 -0
- package/components/{tryghost-kg-lexical-html-renderer-1.5.0.tgz → tryghost-kg-lexical-html-renderer-1.5.1.tgz} +0 -0
- package/components/tryghost-limit-service-0.0.0.tgz +0 -0
- package/components/tryghost-metafield-types-0.0.0.tgz +0 -0
- package/content/themes/casper/assets/built/casper.js +1 -1
- package/content/themes/casper/assets/built/screen.css +1 -1
- package/content/themes/casper/assets/css/screen.css +15 -2
- package/content/themes/casper/assets/js/init.js +37 -9
- package/content/themes/casper/package.json +8 -8
- package/content/themes/source/assets/built/screen.css +1 -1
- package/content/themes/source/assets/built/source.js +1 -1
- package/content/themes/source/assets/css/screen.css +15 -2
- package/content/themes/source/assets/js/main.js +24 -4
- package/content/themes/source/package.json +8 -8
- package/core/boot.js +27 -15
- package/core/bridge.js +1 -1
- package/core/built/admin/assets/Combination-DQ6f9A5P.js +41 -0
- package/core/built/admin/assets/{PolarAngleAxis-pkMyqz8g.js → PolarAngleAxis-BBaU7PRV.js} +2 -2
- package/core/built/admin/assets/RadialBarChart-Bp20JPnA.js +1 -0
- package/core/built/admin/assets/about-Dp43j18M.js +1 -0
- package/core/built/admin/assets/accordion-h62UzFhj.js +1 -0
- package/core/built/admin/assets/account-migration-CBTbtX6Q.js +1 -0
- package/core/built/admin/assets/action-list-DC9QpX-l.js +1 -0
- package/core/built/admin/assets/activitypub/{account-migration-KA6Jjf9L.js → account-migration-B1DUZS4Q.js} +8 -8
- package/core/built/admin/assets/activitypub/activitypub.js +24 -11
- package/core/built/admin/assets/activitypub/avatar-CRGud8yf.js +153 -0
- package/core/built/admin/assets/activitypub/{avatar-flipboard-csQaNeYK.js → avatar-flipboard-BZNFAXfm.js} +3 -3
- package/core/built/admin/assets/activitypub/{bluesky-sharing-C7nTDMvw.js → bluesky-sharing-Cg_v-LwS.js} +30 -31
- package/core/built/admin/assets/activitypub/{chunk-KS7C4IRE-Ck3O4oo2.js → chunk-KS7C4IRE-CTUL98Lc.js} +2498 -1885
- package/core/built/admin/assets/activitypub/{content-formatters-CLcjaBwV.js → content-formatters-D7GWP7nH.js} +23 -24
- package/core/built/admin/assets/activitypub/{copy-DcOh8kXw.js → copy-CgzTvoeR.js} +2 -2
- package/core/built/admin/assets/activitypub/{domain-fZ-X8i4-.js → domain-C3G_nkHU.js} +46 -46
- package/core/built/admin/assets/activitypub/{edit-profile-BqMLQV88.js → edit-profile-C8cCY-AK.js} +927 -928
- package/core/built/admin/assets/activitypub/{explore-B4yPoP8E.js → explore-NlDT4inq.js} +11 -11
- package/core/built/admin/assets/activitypub/{feed-BRC_mvAe.js → feed-DF22jCTV.js} +10 -10
- package/core/built/admin/assets/activitypub/{field-COacNgOt.js → field-95-iuTte.js} +4 -4
- package/core/built/admin/assets/activitypub/{hash-C7u-irQQ.js → hash-R7LMLnhY.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-CbTTdDQ3.js → inbox-DUJUiV6x.js} +2 -2
- package/core/built/admin/assets/activitypub/{inbox-BW-yvUoN.js → inbox-DerExBzA.js} +416 -414
- package/core/built/admin/assets/activitypub/{label-kPMmYI7l.js → label-EwCn1QYc.js} +4 -4
- package/core/built/admin/assets/activitypub/layout-Dy6NnW1G.js +1 -0
- package/core/built/admin/assets/activitypub/{moderation-CuidJzc0.js → moderation-BSkfiVYo.js} +73 -75
- package/core/built/admin/assets/activitypub/{note-CAMRRSqD.js → note-DOnAJTXK.js} +9 -9
- package/core/built/admin/assets/activitypub/{notifications-BmNlXGgp.js → notifications-DZc6XTjG.js} +27 -27
- package/core/built/admin/assets/activitypub/{onboarding-Dmun9jr_.js → onboarding-8vEIwYTH.js} +3 -3
- package/core/built/admin/assets/activitypub/{onboarding-Bqg7fh_L.js → onboarding-DYVqbNmp.js} +2 -2
- package/core/built/admin/assets/activitypub/{preferences--oH19wf9.js → preferences-DDok6F2N.js} +1418 -1390
- package/core/built/admin/assets/activitypub/{profile-DH_tQx2D.js → profile-DjVa2hUk.js} +254 -255
- package/core/built/admin/assets/activitypub/{reply-Cap9PxSH.js → reply-DtXBpHxu.js} +2 -2
- package/core/built/admin/assets/activitypub/routes-Cw302e1c.js +4946 -0
- package/core/built/admin/assets/activitypub/{separator-CAxxu8VV.js → separator-FpRpVDd3.js} +8 -9
- package/core/built/admin/assets/activitypub/settings-yK-puALn.js +314 -0
- package/core/built/admin/assets/activitypub/{site-BYps63oh.js → site-CHw0R2PA.js} +2 -2
- package/core/built/admin/assets/activitypub/{step-1-CKjR2KAm.js → step-1-737bnvxk.js} +7 -7
- package/core/built/admin/assets/activitypub/{step-2-B6PKfOUQ.js → step-2-DBaIsAsM.js} +7 -7
- package/core/built/admin/assets/activitypub/{step-3-C-qBbcUo.js → step-3-BBmy9m9V.js} +23 -23
- package/core/built/admin/assets/activitypub/tabs-LQ2xirdm.js +1101 -0
- package/core/built/admin/assets/activitypub/{topic-filter-DsUOuu0k.js → topic-filter-75Nu0CKj.js} +4 -4
- package/core/built/admin/assets/activitypub/{use-activity-pub-queries-CX9snsLs.js → use-activity-pub-queries-CYI2QJMs.js} +58 -58
- package/core/built/admin/assets/activitypub/{use-navigate-with-base-path-DsJTGDSS.js → use-navigate-with-base-path-B4jZ8hyg.js} +3924 -1403
- package/core/built/admin/assets/activitypub/{use-reply-chain-data-AJi9zkzm.js → use-reply-chain-data-BHmFxc3U.js} +6 -6
- package/core/built/admin/assets/activitypub/users-CSjOwpT9.js +886 -0
- package/core/built/admin/assets/activitypub/{x-DR8AT3-4.js → x-B9ptWCds.js} +2 -2
- package/core/built/admin/assets/add-integration-modal-BwePhq95.js +1 -0
- package/core/built/admin/assets/add-newsletter-modal-Zv0I7Msm.js +1 -0
- package/core/built/admin/assets/add-recommendation-modal-cdLv0wHy.js +1 -0
- package/core/built/admin/assets/analytics-DY8_SaP7.js +1 -0
- package/core/built/admin/assets/announcement-bar-modal-C-2yWwag.js +1 -0
- package/core/built/admin/assets/api-keys-BHKATUqQ.js +1 -0
- package/core/built/admin/assets/{api-keys-BGPzLHzA.js → api-keys-omLA6iYn.js} +1 -1
- package/core/built/admin/assets/{audience-ceV3XVHq.js → audience-wRcSN0jV.js} +1 -1
- package/core/built/admin/assets/automated-emails-CzUa3v4d.js +1 -0
- package/core/built/admin/assets/automations-DupSsSOr.js +1 -0
- package/core/built/admin/assets/automations-hDVcRPjh.js +1 -0
- package/core/built/admin/assets/avatar-flipboard-DiAGgshK.js +1 -0
- package/core/built/admin/assets/badge-CI1Z0xyG.js +1 -0
- package/core/built/admin/assets/bluesky-sharing-B8PC1SBj.js +1 -0
- package/core/built/admin/assets/box-LUuYRT-1.js +1 -0
- package/core/built/admin/assets/brand-icon-CrmbX86T.js +1 -0
- package/core/built/admin/assets/breadcrumb-DDDpzLyo.js +1 -0
- package/core/built/admin/assets/button-D414TI3B.js +1 -0
- package/core/built/admin/assets/calendar-Cp_opo3i.js +1 -0
- package/core/built/admin/assets/card-C2dfd5u0.js +1 -0
- package/core/built/admin/assets/chart-B_UNLXse.js +63 -0
- package/core/built/admin/assets/chart-helpers-Czu_9QpJ.js +1 -0
- package/core/built/admin/assets/checkbox-CFFqf0Nh.js +1 -0
- package/core/built/admin/assets/{chunk-KS7C4IRE-DCsL4i4D.js → chunk-KS7C4IRE-DhOcHQOU.js} +1 -1
- package/core/built/admin/assets/{chunk.254.035b85ec456ebbd7336b.js → chunk.201.6961b57ed7a281ac193e.js} +165 -122
- package/core/built/admin/assets/chunk.524.0b850e72ec49a0fa3882.js +25 -0
- package/core/built/admin/assets/chunk.582.db2ae9e968256e8d58ac.js +27 -0
- package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js → chunk.972.4b8c97f93d66db15e751.js} +10625 -10088
- package/core/built/admin/assets/clean-tracked-url-dkN05vOf.js +1 -0
- package/core/built/admin/assets/code-editor-view-Bd_nnHKk.js +1 -0
- package/core/built/admin/assets/code-editor-view-BeU3Yf9M.js +1 -0
- package/core/built/admin/assets/color-picker-Bzm1V7qg.js +3 -0
- package/core/built/admin/assets/color-picker-field-DP0moHz9.js +1 -0
- package/core/built/admin/assets/combobox-6_ruuTuj.js +1 -0
- package/core/built/admin/assets/command-B5wfm6pd.js +1 -0
- package/core/built/admin/assets/comments-BB26dUSl.js +1 -0
- package/core/built/admin/assets/components-CwL6a6As-CCRaoCeP.js +1 -0
- package/core/built/admin/assets/{config-kSHvwdTG.js → config-BPljH6wF.js} +1 -1
- package/core/built/admin/assets/confirmation-context-znVJD4pX.js +1 -0
- package/core/built/admin/assets/container-CHHif8km.js +1 -0
- package/core/built/admin/assets/content-api-modal-DOHwl0yZ.js +1 -0
- package/core/built/admin/assets/context-menu-BpY46Dlb.js +1 -0
- package/core/built/admin/assets/copy-field-DRBx6Ady.js +1 -0
- package/core/built/admin/assets/create-ghost-browse-value-source-eIXo5Qws.js +1 -0
- package/core/built/admin/assets/{custom-field-type-option-BAuW0F-E.js → custom-field-type-option-DrSlETOI.js} +1 -1
- package/core/built/admin/assets/custom-integration-modal-Dgo425Ec.js +1 -0
- package/core/built/admin/assets/data-list-DM8yqpXi.js +1 -0
- package/core/built/admin/assets/date-range-select-DdC23c13.js +1 -0
- package/core/built/admin/assets/design-and-theme-modal-CbSu9IT4.js +2 -0
- package/core/built/admin/assets/detail-page-CN4NdhpV.js +1 -0
- package/core/built/admin/assets/dirty-confirm-dialog-BT_Vq9TD.js +1 -0
- package/core/built/admin/assets/disabled-sources-indicator-C5xtW0Q2.js +1 -0
- package/core/built/admin/assets/dist-B40T-RCQ.js +1 -0
- package/core/built/admin/assets/dist-BRQkNYN1.js +11 -0
- package/core/built/admin/assets/dist-Bm-PB47a.js +6 -0
- package/core/built/admin/assets/{dist-B6bJuxL3.js → dist-C2lYC76d.js} +1 -1
- package/core/built/admin/assets/dist-Cm2qbZKL.js +1 -0
- package/core/built/admin/assets/dist-CrlaEoaK.js +1 -0
- package/core/built/admin/assets/{dist-BtaTA7Ii.js → dist-D7yMk931.js} +1 -1
- package/core/built/admin/assets/{dist-zwwGt8Yf.js → dist-DNAdeRyr.js} +1 -1
- package/core/built/admin/assets/dist-DS6zpxid.js +1 -0
- package/core/built/admin/assets/dist-DVVKsyPh.js +23 -0
- package/core/built/admin/assets/dist-DxfQlAmn.js +1 -0
- package/core/built/admin/assets/dist-DziNzWI2.js +1 -0
- package/core/built/admin/assets/dist-nmRzULcD.js +1 -0
- package/core/built/admin/assets/domain-BPReCZa8.js +1 -0
- package/core/built/admin/assets/dropzone-B2auMkf2.js +5 -0
- package/core/built/admin/assets/edit-profile-B7XTBzKe.js +1 -0
- package/core/built/admin/assets/editor-BcaC9dqm.js +8 -0
- package/core/built/admin/assets/editor-screen-FuMpItC8.js +27 -0
- package/core/built/admin/assets/email-previews-Bs-JDhIw.js +1 -0
- package/core/built/admin/assets/email-sending-status-context-C76KYL1V.js +1 -0
- package/core/built/admin/assets/email-sending-status-provider-9d81o1C2.js +1 -0
- package/core/built/admin/assets/{emails-vFMk4yYl.js → emails-CgvIIz3q.js} +1 -1
- package/core/built/admin/assets/embed-signup-form-modal-CbVbMsxl.js +8 -0
- package/core/built/admin/assets/empty-indicator-CSQts7GV.js +1 -0
- package/core/built/admin/assets/esm--rhhUGIG.js +2 -0
- package/core/built/admin/assets/explore-DbSXFTJN.js +1 -0
- package/core/built/admin/assets/feature-flag-overrides-context-CrcQKm9Z.js +1 -0
- package/core/built/admin/assets/feature-image-placeholder-DFXA4vfJ.js +1 -0
- package/core/built/admin/assets/feed-W7RlF-Gp.js +1 -0
- package/core/built/admin/assets/feedback-BTPBQLT5.js +1 -0
- package/core/built/admin/assets/field-BXEh3ptU.js +1 -0
- package/core/built/admin/assets/filter-sources-DHK2IoCk.js +1 -0
- package/core/built/admin/assets/filters-0SYNTqyQ.js +1 -0
- package/core/built/admin/assets/filters-DTtZKQyq.js +1 -0
- package/core/built/admin/assets/first-promoter-modal-DcoN_OXu.js +1 -0
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-CkFA8EkI.js +1 -0
- package/core/built/admin/assets/framework-provider-DB-svAju.js +4 -0
- package/core/built/admin/assets/{ghost-b4e8a403baba61905cd7560e30b9732d.js → ghost-25495154132af7305cb7b646fd83f48f.js} +580 -523
- package/core/built/admin/assets/gift-link-modal-BX-Q1TOk.js +1 -0
- package/core/built/admin/assets/{gift-links-CfLSnst2.js → gift-links-D8gl_yJS.js} +1 -1
- package/core/built/admin/assets/global-data-context-3MItMry2.js +1 -0
- package/core/built/admin/assets/grid-BEUIDQX7.js +1 -0
- package/core/built/admin/assets/growth-G6PLO4aF.js +1 -0
- package/core/built/admin/assets/growth-tkD-fBOY.js +3 -0
- package/core/built/admin/assets/heading-ih-fOVqF.js +1 -0
- package/core/built/admin/assets/history-modal-Ca-gStoq.js +1 -0
- package/core/built/admin/assets/hooks-DYfTEQLk.js +2 -0
- package/core/built/admin/assets/html-field-B3CrKV9Y.js +1 -0
- package/core/built/admin/assets/iframe-buffering-Bq1el-gw.js +1 -0
- package/core/built/admin/assets/images-H-BIm8OQ.js +1 -0
- package/core/built/admin/assets/{inbox-gJHG7_xd.js → inbox-DBbDVMPz.js} +35 -35
- package/core/built/admin/assets/index-DOF2jDq0.js +4 -0
- package/core/built/admin/assets/index-JrrNchW1.css +2 -0
- package/core/built/admin/assets/index.es-Ct5XQNSj.js +1 -0
- package/core/built/admin/assets/input-group-CvH-3d3F.js +1 -0
- package/core/built/admin/assets/input-surface-CL23Mlh8.js +1 -0
- package/core/built/admin/assets/integration-header-C7GXGis_.js +1 -0
- package/core/built/admin/assets/{integrations-B4kuRBFY.js → integrations-DnJrZnHv.js} +1 -1
- package/core/built/admin/assets/invite-user-modal-EJ2_6RpV.js +1 -0
- package/core/built/admin/assets/isPlainObject-BzzgUf1E.js +1 -0
- package/core/built/admin/assets/jsx-runtime-BlNNh7jY.js +1 -0
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.js +3 -3
- package/core/built/admin/assets/koenig-lexical/koenig-lexical.umd.js +1 -1
- package/core/built/admin/assets/{koenig-lexical-CGXb0F8o.js → koenig-lexical-Dkwee5FG.js} +1 -1
- package/core/built/admin/assets/koenig-loader-BzXCXHoA.js +2 -0
- package/core/built/admin/assets/kpi-card-iCDUTgOR.js +1 -0
- package/core/built/admin/assets/kpi-card-jTnpLKGr.js +1 -0
- package/core/built/admin/assets/kpi-helpers-Criu0YAf.js +1 -0
- package/core/built/admin/assets/kpi-tabs-DbOmmyOo.js +1 -0
- package/core/built/admin/assets/label-Du0yqMqL.js +1 -0
- package/core/built/admin/assets/label-picker-Bq1XXr1D.js +1 -0
- package/core/built/admin/assets/labels-0x2NfLtC.js +1 -0
- package/core/built/admin/assets/layout-Ckwzsnsu.js +1 -0
- package/core/built/admin/assets/lib-CCz2mjm8.js +2 -0
- package/core/built/admin/assets/link-helpers-o9GgBTni.js +1 -0
- package/core/built/admin/assets/links-Ctujreuh.js +1 -0
- package/core/built/admin/assets/list-page-CH_wnDC3.js +1 -0
- package/core/built/admin/assets/luxon-BXCsmep3.js +1 -0
- package/core/built/admin/assets/member-activity-CsAh6MxK.js +1 -0
- package/core/built/admin/assets/member-activity-feed-0ytsQbtY.js +1 -0
- package/core/built/admin/assets/member-custom-fields-CTFGnnYv.js +1 -0
- package/core/built/admin/assets/member-detail-QU3vB1ML.js +1 -0
- package/core/built/admin/assets/members-CtMVO_AB.js +4 -0
- package/core/built/admin/assets/modal-page-8Ipfl51B.js +1 -0
- package/core/built/admin/assets/moderation-B8VtA-W0.js +1 -0
- package/core/built/admin/assets/multi-select-combobox-_9wEYmGv.js +1 -0
- package/core/built/admin/assets/navigation-modal-CGcjJvkc.js +1 -0
- package/core/built/admin/assets/newsletter-BpHjjqmq.js +1 -0
- package/core/built/admin/assets/newsletter-detail-modal-DzTbGOyo.js +1 -0
- package/core/built/admin/assets/newsletter-emails-BMKH4Osp.js +1 -0
- package/core/built/admin/assets/newsletters-BxC84_cL.js +1 -0
- package/core/built/admin/assets/{newsletters-Rq1M3GD-.js → newsletters-Dz77m__5.js} +1 -1
- package/core/built/admin/assets/note-BPtEzzZS.js +1 -0
- package/core/built/admin/assets/notifications-ng3ulEdp.js +1 -0
- package/core/built/admin/assets/{nql-BLpCn7qX.js → nql-DnDc7UuU.js} +1 -1
- package/core/built/admin/assets/nql-lang-CeTB_Bhv.js +19 -0
- package/core/built/admin/assets/{offers--e2nGvkW.js → offers-ByWSK0rR.js} +1 -1
- package/core/built/admin/assets/offers-container-modal-CwqnRa3T.js +1 -0
- package/core/built/admin/assets/onboarding-B4hfBi9a.js +1 -0
- package/core/built/admin/assets/onboarding-DV_XbHts.js +1 -0
- package/core/built/admin/assets/onboarding-route-CplZzd7F.js +1 -0
- package/core/built/admin/assets/overview-B0yD9OoX.js +1 -0
- package/core/built/admin/assets/overview-C4eJzQqi.js +1 -0
- package/core/built/admin/assets/page-header-CdCpekG9.js +1 -0
- package/core/built/admin/assets/pagemenu-CKQD9hoP.js +1 -0
- package/core/built/admin/assets/{pages-CjDY2CBI.js → pages-DZ_YGB1D.js} +1 -1
- package/core/built/admin/assets/pages-route-CKsnxIvw.js +1 -0
- package/core/built/admin/assets/papaparse.min-BlhnCUXn.js +10 -0
- package/core/built/admin/assets/pintura-modal-C5jzeyGk.js +1 -0
- package/core/built/admin/assets/portal-frame-DYo0bh0E.js +1 -0
- package/core/built/admin/assets/portal-modal-C0d8xjKa.js +1 -0
- package/core/built/admin/assets/post-analytics-C5C7IyAm.js +1 -0
- package/core/built/admin/assets/post-analytics-context-bt2YTBAC.js +1 -0
- package/core/built/admin/assets/post-analytics-header-DKWHwoK2.js +1 -0
- package/core/built/admin/assets/post-analytics-provider-BqCPPxmW.js +1 -0
- package/core/built/admin/assets/post-share-modal-wxmqbAv_.js +1 -0
- package/core/built/admin/assets/posts-list-screen-B978ZO0R.js +2 -0
- package/core/built/admin/assets/posts-route-CDqxKazl.js +1 -0
- package/core/built/admin/assets/{posts-pCPrhQeR.js → posts-tcoO3iRG.js} +1 -1
- package/core/built/admin/assets/preferences-CnejTRc4.js +5 -0
- package/core/built/admin/assets/preview-chrome-C7yZWVLZ.js +1 -0
- package/core/built/admin/assets/preview-modal-CFUxUGHp.js +1 -0
- package/core/built/admin/assets/profile-ClRGiOqA.js +1 -0
- package/core/built/admin/assets/prop-types-6lTeqvom.js +1 -0
- package/core/built/admin/assets/radio-group-CTmLo0h9.js +1 -0
- package/core/built/admin/assets/react-BXwhMTuc.js +1 -0
- package/core/built/admin/assets/{jsx-runtime-DX3WBWVO.js → react-dom-CMOtJ5MH.js} +2 -2
- package/core/built/admin/assets/{referrers-D8oHPmDB.js → referrers-1R8bPpoV.js} +1 -1
- package/core/built/admin/assets/router-provider-DDZvgS3V.js +1 -0
- package/core/built/admin/assets/select-D_4xWFYv.js +1 -0
- package/core/built/admin/assets/settings-BRl7-7a9.js +1 -0
- package/core/built/admin/assets/settings-BoQcPa-y.js +4 -0
- package/core/built/admin/assets/settings-breadcrumbs-C9Yxl81q.js +1 -0
- package/core/built/admin/assets/{dist-B3keLvjj.js → shade-scope-Cccj-c7I-D0XwkdKQ.js} +5 -3
- package/core/built/admin/assets/share-modal-DBqZobuR.js +1 -0
- package/core/built/admin/assets/simple-pagination-D5t_ox6x.js +1 -0
- package/core/built/admin/assets/skeleton-CPcTiTSX.js +1 -0
- package/core/built/admin/assets/slack-modal-BF9ex8cd.js +1 -0
- package/core/built/admin/assets/sort-button-C0EXGjnS.js +1 -0
- package/core/built/admin/assets/source-icon-BzzftCQ2.js +1 -0
- package/core/built/admin/assets/{stats-D9PDLS3x.js → stats-Cvp8Ep5m.js} +1 -1
- package/core/built/admin/assets/stats-view-CzpGoHzF.js +1 -0
- package/core/built/admin/assets/step-1-CBUYUPPF.js +1 -0
- package/core/built/admin/assets/step-2-CEIXUwQa.js +1 -0
- package/core/built/admin/assets/step-3-C1HA5i1N.js +2 -0
- package/core/built/admin/assets/stripe-button-DMFsLs80.js +1 -0
- package/core/built/admin/assets/stripe-connect-modal-CEvxCUTv.js +1 -0
- package/core/built/admin/assets/switch-DoOJF2yg.js +1 -0
- package/core/built/admin/assets/table-BDYbUHJz.js +1 -0
- package/core/built/admin/assets/tabs-BZyz4ZCH.js +1 -0
- package/core/built/admin/assets/tag-detail-CFzaz_9E.js +2 -0
- package/core/built/admin/assets/tag-picker-BKUCZuRc.js +1 -0
- package/core/built/admin/assets/tags-Bs1FiD7m.js +1 -0
- package/core/built/admin/assets/{tags-ChfdwJyS.js → tags-NwZ7BPK6.js} +1 -1
- package/core/built/admin/assets/testimonials-modal-CVm0_7E-.js +1 -0
- package/core/built/admin/assets/text-BLI0C8Mc.js +1 -0
- package/core/built/admin/assets/textarea-C5qolByg.js +1 -0
- package/core/built/admin/assets/themes-DtcEFQWm.js +1 -0
- package/core/built/admin/assets/tier-detail-modal-Cmwzi-e7.js +1 -0
- package/core/built/admin/assets/{tiers-BCpIOGQr.js → tiers-6mPzCXlM.js} +1 -1
- package/core/built/admin/assets/toggle-group-BTL1QsWY.js +1 -0
- package/core/built/admin/assets/topic-filter-BMjhquv7.js +1 -0
- package/core/built/admin/assets/transistor-modal-hMv53jF8.js +1 -0
- package/core/built/admin/assets/trend-badge-1w_HEzkG.js +1 -0
- package/core/built/admin/assets/unsplash-modal-jzC8lEB2.js +1 -0
- package/core/built/admin/assets/use-analytics-data-B3lGOxsC.js +1 -0
- package/core/built/admin/assets/use-availability-DnKqOyqd.js +1 -0
- package/core/built/admin/assets/{use-check-theme-limit-error-DRUjK4YM.js → use-check-theme-limit-error-C1tc2P4N.js} +2 -2
- package/core/built/admin/assets/use-email-sending-status-DNMtL5B9.js +1 -0
- package/core/built/admin/assets/use-filter-params-DU-aiaTb.js +1 -0
- package/core/built/admin/assets/use-filterable-api-CxCrnPxG.js +1 -0
- package/core/built/admin/assets/use-form-DJKZJhQh.js +1 -0
- package/core/built/admin/assets/use-growth-stats-E13rMQUE.js +1 -0
- package/core/built/admin/assets/use-host-limits-mpTkZIq8.js +1 -0
- package/core/built/admin/assets/use-limiter-DlL7au90.js +19 -0
- package/core/built/admin/assets/use-navigate-with-base-path-BzgNwMAx.js +1 -0
- package/core/built/admin/assets/use-pintura-config-CtEV1JQY.js +1 -0
- package/core/built/admin/assets/use-pintura-editor-CaxE64kD.js +1 -0
- package/core/built/admin/assets/use-post-referrers-DyPjyBSN.js +1 -0
- package/core/built/admin/assets/use-query-params-DlOHCo-R.js +1 -0
- package/core/built/admin/assets/use-reply-chain-data-BST2OgCM.js +1 -0
- package/core/built/admin/assets/use-router-history-entry-CKx9LhqD.js +1 -0
- package/core/built/admin/assets/use-sending-eta-DR9ueMH8.js +1 -0
- package/core/built/admin/assets/use-setting-group-ldtX1Vsk.js +1 -0
- package/core/built/admin/assets/use-settings-navigation-CzGU4sus.js +1 -0
- package/core/built/admin/assets/use-staff-users-DoeXaPsb.js +1 -0
- package/core/built/admin/assets/use-tinybird-query-BaBNCaj0.js +1 -0
- package/core/built/admin/assets/use-tinybird-token-CnZ19NDf.js +1 -0
- package/core/built/admin/assets/use-unsaved-changes-guard-CKVPWz_F.js +1 -0
- package/core/built/admin/assets/use-upgrade-route-CVjDlNSs.js +1 -0
- package/core/built/admin/assets/{use-url-input-fvp-TpPx.js → use-url-input-C5KHJw79.js} +1 -1
- package/core/built/admin/assets/user-detail-modal-Dm0KfPeR.js +1 -0
- package/core/built/admin/assets/{users-DVNWrqg9.js → users-C60_hpn6.js} +1 -1
- package/core/built/admin/assets/{validator-Cr0sMKuW.js → validator-DlFQP70j.js} +1 -1
- package/core/built/admin/assets/{vendor-2dd263291938d407802568d3357ec69e.js → vendor-97e91ff8dd1457c668f9ef103ee1a77b.js} +2748 -2977
- package/core/built/admin/assets/virtual-list-tAuPUICw.js +1 -0
- package/core/built/admin/assets/web-BQlKcW2x.js +2 -0
- package/core/built/admin/assets/web-NTT5DkEz.js +1 -0
- package/core/built/admin/assets/zapier-modal-DsHG9Oev.js +1 -0
- package/core/built/admin/index.html +35 -34
- package/core/cli/command.js +17 -2
- package/core/frontend/apps/private-blogging/index.js +2 -2
- package/core/frontend/apps/private-blogging/lib/middleware.js +1 -1
- package/core/frontend/apps/private-blogging/lib/router.js +1 -1
- package/core/frontend/helpers/cancel_link.js +3 -3
- package/core/frontend/helpers/content.js +2 -2
- package/core/frontend/helpers/content_api_url.js +1 -1
- package/core/frontend/helpers/date.js +1 -1
- package/core/frontend/helpers/foreach.js +5 -5
- package/core/frontend/helpers/get.js +7 -4
- package/core/frontend/helpers/ghost_head.js +2 -2
- package/core/frontend/helpers/has.js +1 -3
- package/core/frontend/helpers/link.js +7 -7
- package/core/frontend/helpers/link_class.js +2 -2
- package/core/frontend/helpers/navigation.js +1 -2
- package/core/frontend/helpers/recommendations.js +5 -6
- package/core/frontend/helpers/tiers.js +1 -1
- package/core/frontend/helpers/total_members.js +1 -1
- package/core/frontend/helpers/total_paid_members.js +1 -1
- package/core/frontend/meta/asset-url.js +1 -16
- package/core/frontend/meta/author-url.js +1 -1
- package/core/frontend/meta/modified-date.js +1 -1
- package/core/frontend/meta/published-date.js +1 -1
- package/core/frontend/meta/schema.js +3 -8
- package/core/frontend/meta/structured-data.js +1 -2
- package/core/frontend/services/asset-hash/index.js +32 -2
- package/core/frontend/services/assets-minification/minifier.js +1 -1
- package/core/frontend/services/data/entry-lookup.js +1 -1
- package/core/frontend/services/data/fetch-data.js +2 -2
- package/core/frontend/services/rendering/format-response.js +1 -1
- package/core/frontend/services/rendering/renderer.js +3 -0
- package/core/frontend/services/rendering/templates.js +1 -1
- package/core/frontend/services/routing/controllers/static.js +1 -1
- package/core/frontend/services/routing/controllers/unsubscribe.js +2 -1
- package/core/frontend/services/routing/parent-router.js +1 -1
- package/core/frontend/services/routing/registry.js +1 -1
- package/core/frontend/services/rss/generate-feed.js +1 -1
- package/core/frontend/services/sitemap/base-site-map-generator.js +68 -97
- package/core/frontend/services/sitemap/site-map-index-generator.js +16 -21
- package/core/frontend/services/sitemap/site-map-manager.js +82 -43
- package/core/frontend/services/sitemap/sitemap-xml.js +72 -0
- package/core/frontend/services/theme-engine/active.js +2 -4
- package/core/frontend/services/theme-engine/handlebars/utils.js +8 -8
- package/core/frontend/services/theme-engine/i18n/i18n.js +15 -6
- package/core/frontend/services/theme-engine/i18next/theme-i18n.js +1 -1
- package/core/frontend/services/theme-engine/middleware/update-global-template-options.js +1 -1
- package/core/frontend/services/theme-engine/preview.js +1 -1
- package/core/frontend/utils/member-count.js +2 -2
- package/core/frontend/web/middleware/llms-discovery.js +34 -43
- package/core/frontend/web/routers/serve-public-file.js +1 -1
- package/core/server/adapters/route-settings/S3RouteSettingsStore.js +1 -1
- package/core/server/adapters/scheduling/README.md +4 -0
- package/core/server/adapters/scheduling/get-scheduler-idempotency-key.js +21 -0
- package/core/server/adapters/storage/LocalFilesStorage.js +12 -2
- package/core/server/adapters/storage/LocalStorageBase.js +15 -1
- package/core/server/api/endpoints/actions.js +2 -1
- package/core/server/api/endpoints/automated-emails.js +11 -4
- package/core/server/api/endpoints/automations.js +77 -49
- package/core/server/api/endpoints/db.js +1 -1
- package/core/server/api/endpoints/emails.js +11 -6
- package/core/server/api/endpoints/index.js +1 -1
- package/core/server/api/endpoints/invites.js +2 -1
- package/core/server/api/endpoints/labels.js +6 -2
- package/core/server/api/endpoints/mail.js +1 -1
- package/core/server/api/endpoints/member-metafields.js +2 -2
- package/core/server/api/endpoints/member-signin-urls.js +1 -1
- package/core/server/api/endpoints/members.js +23 -7
- package/core/server/api/endpoints/oembed.js +1 -1
- package/core/server/api/endpoints/pages.js +2 -6
- package/core/server/api/endpoints/posts.js +4 -12
- package/core/server/api/endpoints/settings.js +2 -2
- package/core/server/api/endpoints/snippets.js +2 -1
- package/core/server/api/endpoints/tags.js +6 -2
- package/core/server/api/endpoints/themes.js +5 -5
- package/core/server/api/endpoints/users.js +2 -6
- package/core/server/api/endpoints/utils/api-filter-utils.js +62 -3
- package/core/server/api/endpoints/utils/serializers/input/pages.js +2 -2
- package/core/server/api/endpoints/utils/serializers/input/posts.js +2 -2
- package/core/server/api/endpoints/utils/serializers/input/tags.js +1 -1
- package/core/server/api/endpoints/utils/serializers/input/utils/slug-filter-order.js +4 -4
- package/core/server/api/endpoints/utils/serializers/output/mappers/comments.js +8 -5
- package/core/server/api/endpoints/utils/serializers/output/mappers/posts.js +1 -1
- package/core/server/api/endpoints/utils/serializers/output/pages.js +4 -4
- package/core/server/api/endpoints/utils/serializers/output/posts.js +4 -4
- package/core/server/api/endpoints/utils/serializers/output/search-index.js +11 -11
- package/core/server/api/endpoints/utils/serializers/output/settings.js +1 -1
- package/core/server/api/endpoints/utils/serializers/output/utils/clean.js +2 -0
- package/core/server/api/endpoints/utils/serializers/output/utils/extra-attrs.js +6 -3
- package/core/server/api/endpoints/utils/validators/input/automated_emails.js +23 -33
- package/core/server/api/endpoints/utils/validators/input/settings.js +18 -4
- package/core/server/data/exporter/exporter.js +3 -3
- package/core/server/data/exporter/table-lists.js +4 -5
- package/core/server/data/importer/handlers/image.js +1 -2
- package/core/server/data/importer/handlers/json.js +1 -3
- package/core/server/data/importer/handlers/markdown.js +4 -8
- package/core/server/data/importer/import-manager.js +1 -1
- package/core/server/data/importer/importers/content-file-importer.js +4 -8
- package/core/server/data/importer/importers/data/base.js +10 -10
- package/core/server/data/importer/importers/data/custom-theme-settings-importer.js +1 -1
- package/core/server/data/importer/importers/data/data-importer.js +3 -4
- package/core/server/data/importer/importers/data/posts-importer.js +10 -10
- package/core/server/data/importer/importers/data/products-importer.js +3 -3
- package/core/server/data/importer/importers/data/settings-importer.js +10 -4
- package/core/server/data/importer/importers/data/stripe-prices-importer.js +1 -1
- package/core/server/data/importer/importers/data/stripe-products-importer.js +1 -1
- package/core/server/data/importer/importers/data/tags-importer.js +1 -1
- package/core/server/data/importer/importers/data/users-importer.js +2 -2
- package/core/server/data/importer/importers/json-to-html.js +12 -9
- package/core/server/data/migrations/versions/5.0/2022-05-11-13-12-rename-settings.js +1 -1
- package/core/server/data/migrations/versions/6.64/2026-09-03-15-40-25-add-member-access-to-members-metafields.js +12 -0
- package/core/server/data/migrations/versions/6.64/2026-09-08-11-01-12-add-posts-auto-excerpt-and-reading-time-columns.js +17 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-automation-run-updated-at-indexes.js +6 -0
- package/core/server/data/migrations/versions/6.64/2026-09-09-13-56-18-add-tinybird-syncs-table.js +10 -0
- package/core/server/data/migrations/versions/6.65/2026-09-16-15-35-26-add-members-metafield-change-events.js +17 -0
- package/core/server/data/schema/fixtures/fixture-manager.js +3 -3
- package/core/server/data/schema/index.js +1 -1
- package/core/server/data/schema/schema.js +54 -2
- package/core/server/data/schema/validator.js +96 -123
- package/core/server/data/seeders/importers/automations-importer.js +0 -1
- package/core/server/data/seeders/importers/comments-importer.js +1 -1
- package/core/server/data/seeders/importers/email-recipients-importer.js +3 -3
- package/core/server/data/seeders/importers/emails-importer.js +1 -1
- package/core/server/data/seeders/importers/members-importer.js +1 -1
- package/core/server/data/seeders/importers/members-login-events-importer.js +2 -2
- package/core/server/data/seeders/importers/members-newsletters-importer.js +1 -1
- package/core/server/data/seeders/importers/members-paid-subscription-events-importer.js +1 -1
- package/core/server/data/seeders/importers/members-status-events-importer.js +1 -1
- package/core/server/data/seeders/importers/members-stripe-customers-importer.js +1 -1
- package/core/server/data/seeders/importers/members-stripe-customers-subscriptions-importer.js +2 -2
- package/core/server/data/seeders/importers/members-subscribe-events-importer.js +2 -2
- package/core/server/data/seeders/importers/members-subscription-created-events-importer.js +1 -1
- package/core/server/data/seeders/utils/blog-info.js +4 -3
- package/core/server/data/seeders/utils/event-generator.js +72 -46
- package/core/server/data/tinybird/datasources/_mv_automation_run_steps.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/_mv_pending_automation_runs.datasource +10 -0
- package/core/server/data/tinybird/datasources/automation_run_events.datasource +12 -0
- package/core/server/data/tinybird/datasources/automation_run_step_events.datasource +12 -0
- package/core/server/data/tinybird/endpoints/api_automation_browse_stats.pipe +43 -0
- package/core/server/data/tinybird/fixtures/automation_run_events.ndjson +7 -0
- package/core/server/data/tinybird/fixtures/automation_run_step_events.ndjson +8 -0
- package/core/server/data/tinybird/pipes/mv_automation_run_steps.pipe +13 -0
- package/core/server/data/tinybird/pipes/mv_automation_runs.pipe +15 -0
- package/core/server/data/tinybird/pipes/mv_hits.pipe +25 -20
- package/core/server/data/tinybird/pipes/mv_pending_automation_runs.pipe +7 -0
- package/core/server/data/tinybird/scripts/docker-analytics-manager.js +2 -2
- package/core/server/data/tinybird/tests/api_automation_browse_stats.yaml +18 -0
- package/core/server/ghost-server.js +4 -22
- package/core/server/lib/generate-password.js +54 -0
- package/core/server/lib/image/image-size.js +1 -3
- package/core/server/lib/public-jwk.js +77 -0
- package/core/server/lib/request-external.js +53 -117
- package/core/server/models/base/plugins/actions.js +2 -3
- package/core/server/models/base/plugins/crud.js +1 -2
- package/core/server/models/base/plugins/events.js +4 -4
- package/core/server/models/base/plugins/raw-knex.js +3 -3
- package/core/server/models/base/plugins/sanitize.js +1 -1
- package/core/server/models/benefit.js +1 -1
- package/core/server/models/collection.js +1 -1
- package/core/server/models/comment.js +3 -3
- package/core/server/models/invite.js +2 -5
- package/core/server/models/label.js +3 -6
- package/core/server/models/member.js +7 -10
- package/core/server/models/newsletter.js +1 -1
- package/core/server/models/permission.js +3 -6
- package/core/server/models/post.js +20 -23
- package/core/server/models/product.js +4 -1
- package/core/server/models/relations/authors.js +9 -12
- package/core/server/models/role.js +2 -5
- package/core/server/models/settings.js +3 -3
- package/core/server/models/tag.js +2 -5
- package/core/server/models/user.js +19 -19
- package/core/server/models/webhook.js +2 -4
- package/core/server/notify.js +2 -2
- package/core/server/services/adapter-manager/base-classes.js +21 -3
- package/core/server/services/adapter-manager/utils.js +6 -1
- package/core/server/services/api-version-compatibility/legacy-api-path-match.js +2 -2
- package/core/server/services/auth/api-key/admin.js +2 -2
- package/core/server/services/auth/api-key/content.js +1 -1
- package/core/server/services/auth/passwordreset.js +1 -1
- package/core/server/services/auth/setup.js +1 -3
- package/core/server/services/automations/README.md +19 -0
- package/core/server/services/automations/automations-api.js +46 -1
- package/core/server/services/automations/poll.js +3 -1
- package/core/server/services/automations/service.js +2 -2
- package/core/server/services/automations/tinybird-automation-stats.js +56 -0
- package/core/server/services/automations/welcome-email-automation-poll.js +199 -293
- package/core/server/services/comments/comments-controller.js +9 -30
- package/core/server/services/comments/comments-service-email-renderer.js +1 -1
- package/core/server/services/comments/comments-service-emails.js +1 -1
- package/core/server/services/comments/comments-service.js +27 -58
- package/core/server/services/comments/comments-stats-service.js +1 -1
- package/core/server/services/content-import/import/media.js +1 -1
- package/core/server/services/content-import/import/staged-file.js +9 -9
- package/core/server/services/content-import/index.js +1 -1
- package/core/server/services/custom-redirects/validation.js +1 -1
- package/core/server/services/email-analytics/email-analytics-service-wrapper.js +38 -84
- package/core/server/services/email-analytics/email-analytics-service.js +19 -3
- package/core/server/services/email-analytics/index.js +44 -23
- package/core/server/services/email-analytics/jobs/email-analytics-job-scheduler.js +31 -60
- package/core/server/services/email-rendering/finalize.js +7 -2
- package/core/server/services/email-service/README.md +38 -0
- package/core/server/services/email-service/batch-sending-service.js +13 -14
- package/core/server/services/email-service/email-renderer.js +57 -16
- package/core/server/services/email-service/email-service-wrapper.js +4 -3
- package/core/server/services/email-service/email-service.js +76 -42
- package/core/server/services/email-service/email-templates/partials/feedback-button.hbs +2 -1
- package/core/server/services/email-service/email-templates/partials/styles.hbs +0 -6
- package/core/server/services/email-service/email-templates/template.hbs +1 -1
- package/core/server/services/email-service/jobs/send-email-job.js +12 -0
- package/core/server/services/email-service/mailgun-email-provider.js +7 -2
- package/core/server/services/email-service/sending-service.js +1 -1
- package/core/server/services/email-service/sending-status.js +10 -4
- package/core/server/services/gifts/gift-email-service.js +10 -3
- package/core/server/services/gifts/gift-service.js +12 -3
- package/core/server/services/gifts/index.js +1 -2
- package/core/server/services/gifts/jobs/index.js +12 -24
- package/core/server/services/gifts/jobs/send-gift-reminders-job.js +6 -46
- package/core/server/services/i18n.js +1 -1
- package/core/server/services/identity-tokens/identity-token-service-wrapper.js +3 -4
- package/core/server/services/invitations/accept.js +2 -2
- package/core/server/services/jobs/job-service.js +0 -28
- package/core/server/services/jobs-service/jobs-service.js +5 -0
- package/core/server/services/jobs-service/register-job-handlers.js +17 -1
- package/core/server/services/lib/mailgun-client.js +16 -1
- package/core/server/services/lib/mailgun-recipient-message-id.js +49 -0
- package/core/server/services/limits.js +18 -2
- package/core/server/services/mail/ghost-mailer.js +1 -1
- package/core/server/services/member-attribution/member-attribution-service.js +1 -1
- package/core/server/services/member-attribution/referrer-translator.js +1 -1
- package/core/server/services/member-welcome-emails/service.js +1 -1
- package/core/server/services/members/account-service.js +3 -3
- package/core/server/services/members/api.js +1 -1
- package/core/server/services/members/import-export/import/importer.js +25 -16
- package/core/server/services/members/import-export/import/spool.js +11 -15
- package/core/server/services/members/import-export/index.js +11 -8
- package/core/server/services/members/jobs/index.js +1 -1
- package/core/server/services/members/jobs/members-import-job.js +18 -0
- package/core/server/services/members/member-avatar.js +18 -0
- package/core/server/services/members/members-api/controllers/member-controller.js +2 -2
- package/core/server/services/members/members-api/controllers/router-controller.js +7 -2
- package/core/server/services/members/members-api/controllers/well-known-controller.js +2 -1
- package/core/server/services/members/members-api/members-api.js +4 -4
- package/core/server/services/members/members-api/repositories/event-repository.js +40 -1
- package/core/server/services/members/members-api/repositories/member-repository.js +55 -17
- package/core/server/services/members/members-api/repositories/product-repository.js +1 -1
- package/core/server/services/members/members-api/services/member-bread-service.js +19 -19
- package/core/server/services/members/members-api/services/token-service.js +11 -12
- package/core/server/services/members/middleware.js +9 -2
- package/core/server/services/members/request-integrity-token-provider.js +2 -1
- package/core/server/services/members/service.js +7 -2
- package/core/server/services/members/stats/members-stats.js +2 -2
- package/core/server/services/members-events/event-storage.js +2 -2
- package/core/server/services/members-metafields/access.js +31 -20
- package/core/server/services/members-metafields/actions.js +24 -2
- package/core/server/services/members-metafields/bindings-service.js +5 -5
- package/core/server/services/members-metafields/codec.js +9 -2
- package/core/server/services/members-metafields/definitions-service.js +57 -52
- package/core/server/services/members-metafields/index.js +3 -2
- package/core/server/services/members-metafields/models.js +2 -0
- package/core/server/services/members-metafields/queries.js +45 -11
- package/core/server/services/members-metafields/schema.js +51 -1
- package/core/server/services/members-metafields/serializers.js +1 -0
- package/core/server/services/members-metafields/values-service.js +132 -21
- package/core/server/services/mentions/mention-discovery-service.js +1 -1
- package/core/server/services/mentions/mention-sending-service.js +3 -3
- package/core/server/services/mentions/mention.js +4 -5
- package/core/server/services/mentions/mentions-api.js +4 -1
- package/core/server/services/mentions-jobs/job-service.js +0 -28
- package/core/server/services/milestones/milestones-service.js +1 -1
- package/core/server/services/newsletters/newsletters-service.js +1 -1
- package/core/server/services/notifications/notifications.js +3 -3
- package/core/server/services/oembed/oembed-service.js +115 -14
- package/core/server/services/permissions/can-this.js +1 -2
- package/core/server/services/post-scheduling/post-scheduling.js +8 -1
- package/core/server/services/posts/post-scheduling.js +27 -0
- package/core/server/services/settings/settings-bread-service.js +3 -3
- package/core/server/services/settings/settings-utils.js +1 -1
- package/core/server/services/settings-helpers/settings-helpers.js +1 -1
- package/core/server/services/staff/staff-service-emails.js +14 -10
- package/core/server/services/stats/posts-stats-service.js +10 -10
- package/core/server/services/stats/referrers-stats-service.js +1 -1
- package/core/server/services/stats/stats-service.js +12 -3
- package/core/server/services/stats/subscription-stats-service.js +3 -3
- package/core/server/services/stats/utils/tinybird.js +8 -1
- package/core/server/services/stripe/stripe-api.js +3 -3
- package/core/server/services/stripe/stripe-migrations.js +6 -6
- package/core/server/services/themes/storage.js +21 -26
- package/core/server/services/themes/theme-storage.js +2 -2
- package/core/server/services/tier-checkout-config/service.js +17 -1
- package/core/server/services/tiers/tier.js +15 -15
- package/core/server/services/tinybird/tinybird-service.js +1 -0
- package/core/server/services/tinybird-sync/get-ingest-config.js +39 -0
- package/core/server/services/tinybird-sync/index.js +31 -0
- package/core/server/services/tinybird-sync/sync-table-to-tinybird.js +149 -0
- package/core/server/services/tinybird-sync/tinybird-sync-service.js +67 -0
- package/core/server/services/update-check/update-check-service.js +3 -3
- package/core/server/services/webhooks/serialize.js +1 -1
- package/core/server/web/api/app.js +0 -5
- package/core/server/web/api/endpoints/admin/routes.js +33 -34
- package/core/server/web/api/middleware/upload.js +29 -2
- package/core/server/web/parent/middleware/index.js +1 -1
- package/core/server/web/parent/middleware/log-request.js +5 -0
- package/core/server/web/parent/middleware/queue-request.js +104 -59
- package/core/server/web/shared/middleware/api/spam-prevention.js +2 -2
- package/core/server/web/well-known.js +12 -16
- package/core/shared/config/defaults.json +7 -3
- package/core/shared/custom-theme-settings-cache/custom-theme-settings-service.js +1 -1
- package/core/shared/{flush-logs.js → flush.js} +7 -3
- package/core/shared/labs.js +5 -2
- package/core/shared/settings-cache/cache-manager.js +1 -1
- package/core/shared/timing-safe-string-equal.js +26 -0
- package/nodemon.json +1 -1
- package/package.json +47 -48
- package/patches/@elastic__elasticsearch@8.19.2.patch +67 -0
- package/patches/juice@11.1.1.patch +46 -0
- package/pnpm-lock.yaml +571 -2107
- package/pnpm-workspace.yaml +38 -28
- package/scripts/prune.mts +70 -3
- package/tsconfig.json +1 -1
- package/components/tryghost-adapter-base-scheduling-0.2.3.tgz +0 -0
- package/core/built/admin/assets/Combination-B0l4MKVh.js +0 -41
- package/core/built/admin/assets/RadialBarChart-JAKoS4KT.js +0 -1
- package/core/built/admin/assets/_baseAssignValue-C_vooEQc.js +0 -1
- package/core/built/admin/assets/about-C1C3s5-g.js +0 -1
- package/core/built/admin/assets/accordion-CxGsDKwa.js +0 -1
- package/core/built/admin/assets/account-migration-CbUhW6gk.js +0 -1
- package/core/built/admin/assets/action-list-C4v0-du8.js +0 -1
- package/core/built/admin/assets/activitypub/avatar-DVJF5bxP.js +0 -261
- package/core/built/admin/assets/activitypub/layout-BL4_jtuV.js +0 -1
- package/core/built/admin/assets/activitypub/routes-DdyY9uFF.js +0 -7181
- package/core/built/admin/assets/activitypub/settings-B6EEcVkW.js +0 -315
- package/core/built/admin/assets/activitypub/tabs-DLhZtVde.js +0 -1083
- package/core/built/admin/assets/activitypub/users-inweyKL5.js +0 -1499
- package/core/built/admin/assets/add-integration-modal-BT_onDJy.js +0 -1
- package/core/built/admin/assets/add-newsletter-modal-Cx1kQpiY.js +0 -1
- package/core/built/admin/assets/add-recommendation-modal-B5nvAhvr.js +0 -1
- package/core/built/admin/assets/analytics-DjoJWPI7.js +0 -1
- package/core/built/admin/assets/announcement-bar-modal-Dwd0EGFP.js +0 -1
- package/core/built/admin/assets/api-keys-BoeacM-s.js +0 -1
- package/core/built/admin/assets/automated-emails-BLesE41L.js +0 -1
- package/core/built/admin/assets/automations-BN4u3GR8.js +0 -1
- package/core/built/admin/assets/automations-C-ZTUwW3.js +0 -1
- package/core/built/admin/assets/avatar-flipboard-C6Kj3Awu.js +0 -1
- package/core/built/admin/assets/bluesky-sharing-vzh-oPXL.js +0 -1
- package/core/built/admin/assets/box-CdfQAP_F.js +0 -1
- package/core/built/admin/assets/brand-icon-CrIGOA3Z.js +0 -1
- package/core/built/admin/assets/breadcrumb-CaLk2b7D.js +0 -1
- package/core/built/admin/assets/build-CsiH26uS.js +0 -1
- package/core/built/admin/assets/button-Dvcv1QSR.js +0 -1
- package/core/built/admin/assets/calendar-Bl9RLcZX.js +0 -1
- package/core/built/admin/assets/card--VNbfgo3.js +0 -1
- package/core/built/admin/assets/chart-BrhA41Zi.js +0 -63
- package/core/built/admin/assets/chart-helpers-FHywU0pj.js +0 -1
- package/core/built/admin/assets/checkbox-BtayFtjg.js +0 -1
- package/core/built/admin/assets/chunk.524.e6975095fccdf22d90f8.js +0 -32
- package/core/built/admin/assets/chunk.582.98b485f9b2802f540897.js +0 -34
- package/core/built/admin/assets/code-editor-view-C3ZfoF1X.js +0 -1
- package/core/built/admin/assets/code-editor-view-CAyRWy1s.js +0 -1
- package/core/built/admin/assets/color-picker-G4kGR7rp.js +0 -3
- package/core/built/admin/assets/color-picker-field-DQFVTNnT.js +0 -1
- package/core/built/admin/assets/combobox-BnYzgEB4.js +0 -1
- package/core/built/admin/assets/command-C_vyTikI.js +0 -1
- package/core/built/admin/assets/comments-aBrxfnZf.js +0 -1
- package/core/built/admin/assets/components-CwL6a6As-B0E0-NBJ.js +0 -1
- package/core/built/admin/assets/confirmation-context-DwXX_Y5h.js +0 -1
- package/core/built/admin/assets/container-BuQG1wuP.js +0 -1
- package/core/built/admin/assets/content-api-modal-D2G0nJP6.js +0 -1
- package/core/built/admin/assets/context-menu-DOVB6yaz.js +0 -1
- package/core/built/admin/assets/copy-field-DCJwh9qf.js +0 -1
- package/core/built/admin/assets/create-ghost-browse-value-source-5C53jJaX.js +0 -1
- package/core/built/admin/assets/custom-integration-modal-AbJGVyKc.js +0 -1
- package/core/built/admin/assets/data-list-CA2jYGPq.js +0 -1
- package/core/built/admin/assets/date-range-select-BY3K-ukj.js +0 -1
- package/core/built/admin/assets/design-and-theme-modal-BvEy4_pC.js +0 -2
- package/core/built/admin/assets/detail-page-Dnv-CdR1.js +0 -1
- package/core/built/admin/assets/dirty-confirm-dialog-DVPuGz3U.js +0 -1
- package/core/built/admin/assets/disabled-sources-indicator-Cy7Zp4c8.js +0 -1
- package/core/built/admin/assets/dist-4m6pHdc0.js +0 -23
- package/core/built/admin/assets/dist-8YJUlf3B.js +0 -1
- package/core/built/admin/assets/dist-CZgIBXQN.js +0 -1
- package/core/built/admin/assets/dist-CiHx7vA5.js +0 -6
- package/core/built/admin/assets/dist-DIC8yz5C.js +0 -1
- package/core/built/admin/assets/dist-Dcsslyo72.js +0 -1
- package/core/built/admin/assets/dist-Dgt2cr6a.js +0 -1
- package/core/built/admin/assets/dist-ECAUrdGc.js +0 -1
- package/core/built/admin/assets/dist-JLOy8o0Q.js +0 -1
- package/core/built/admin/assets/dist-Ndy-PuGN.js +0 -1
- package/core/built/admin/assets/dist-Z97pCNqS.js +0 -11
- package/core/built/admin/assets/domain-Dl61QGuk.js +0 -1
- package/core/built/admin/assets/dropzone-Dtz5Rmjt.js +0 -5
- package/core/built/admin/assets/edit-profile-DNJSMDwm.js +0 -1
- package/core/built/admin/assets/editor-DbAen9zf.js +0 -8
- package/core/built/admin/assets/editor-screen-BFWThIai.js +0 -26
- package/core/built/admin/assets/email-sending-status-context-CWDOD1FN.js +0 -1
- package/core/built/admin/assets/email-sending-status-provider-DCPkDICt.js +0 -1
- package/core/built/admin/assets/embed-signup-form-modal-DGqsORxS.js +0 -8
- package/core/built/admin/assets/empty-indicator-D9QdpuNX.js +0 -1
- package/core/built/admin/assets/en-B1jX3WMs.js +0 -1
- package/core/built/admin/assets/esm-CXo5SEPy.js +0 -2
- package/core/built/admin/assets/explore-nnRr1Fja.js +0 -1
- package/core/built/admin/assets/feature-flag-overrides-context-DQjdJFAk.js +0 -1
- package/core/built/admin/assets/feature-image-placeholder-BrIHmPs8.js +0 -1
- package/core/built/admin/assets/feed-BNUcNu-W.js +0 -1
- package/core/built/admin/assets/feedback-DJ4Zb9rZ.js +0 -1
- package/core/built/admin/assets/field-C93_Mg6j.js +0 -1
- package/core/built/admin/assets/filter-bar-Da1qxybu.js +0 -1
- package/core/built/admin/assets/filter-sources-CGJb4C5r.js +0 -1
- package/core/built/admin/assets/filters--kKP-EC8.js +0 -1
- package/core/built/admin/assets/filters-DxA_a4FP.js +0 -1
- package/core/built/admin/assets/first-promoter-modal-BYDtrz2S.js +0 -1
- package/core/built/admin/assets/focus-koenig-editor-on-bottom-click-BbSnGOtK.js +0 -1
- package/core/built/admin/assets/framework-provider-DqI25epG.js +0 -4
- package/core/built/admin/assets/gift-link-modal-B7u5bD4e.js +0 -1
- package/core/built/admin/assets/global-data-context-gAMDH9u1.js +0 -1
- package/core/built/admin/assets/grid-Dj29PY05.js +0 -1
- package/core/built/admin/assets/growth-Cd1uO9d2.js +0 -1
- package/core/built/admin/assets/growth-aG32xfdE.js +0 -3
- package/core/built/admin/assets/heading-Dh5SFVjL.js +0 -1
- package/core/built/admin/assets/history-modal-Df8lW8h-.js +0 -1
- package/core/built/admin/assets/hooks-Cy_-oZ4o.js +0 -2
- package/core/built/admin/assets/html-field-DA4eU7eq.js +0 -1
- package/core/built/admin/assets/iframe-buffering-B2OKJzbz.js +0 -1
- package/core/built/admin/assets/images-KXmyO3Ss.js +0 -1
- package/core/built/admin/assets/index-BHHXtR5C.css +0 -2
- package/core/built/admin/assets/index-CgMCwsxN.js +0 -4
- package/core/built/admin/assets/index.es-CY6-yuw9.js +0 -1
- package/core/built/admin/assets/inline-BWSs_VzR.js +0 -1
- package/core/built/admin/assets/input-group-BE8rM2y1.js +0 -1
- package/core/built/admin/assets/input-surface-BsrIZeSF.js +0 -1
- package/core/built/admin/assets/integration-header-Bm6IDb1A.js +0 -1
- package/core/built/admin/assets/invite-user-modal-B4CuNcx4.js +0 -1
- package/core/built/admin/assets/koenig-loader-BeM5rFPX.js +0 -2
- package/core/built/admin/assets/kpi-card-B21aToe8.js +0 -1
- package/core/built/admin/assets/kpi-card-pz6Wv4Ae.js +0 -1
- package/core/built/admin/assets/kpi-helpers-Dq5jelmP.js +0 -1
- package/core/built/admin/assets/kpi-tabs-DEZHpKUt.js +0 -1
- package/core/built/admin/assets/label-OLCzze8N.js +0 -1
- package/core/built/admin/assets/label-picker-BigOvMPV.js +0 -1
- package/core/built/admin/assets/labels-Dr0SgUQD.js +0 -1
- package/core/built/admin/assets/layout-DUTL8SH5.js +0 -1
- package/core/built/admin/assets/lib-7QPTI0FS.js +0 -1
- package/core/built/admin/assets/limit-service-BhiEvqcP.js +0 -20
- package/core/built/admin/assets/link-helpers-BRAg9SCj.js +0 -1
- package/core/built/admin/assets/links-BDHPTlyj.js +0 -1
- package/core/built/admin/assets/list-page-BucXJ0hi.js +0 -1
- package/core/built/admin/assets/luxon-D1RVjjpq.js +0 -1
- package/core/built/admin/assets/member-custom-fields-TRTHCAz9.js +0 -1
- package/core/built/admin/assets/member-detail-b6dRwc3C.js +0 -1
- package/core/built/admin/assets/members-Czt5lJSc.js +0 -4
- package/core/built/admin/assets/modal-page-xCivTMvI.js +0 -1
- package/core/built/admin/assets/moderation-ZWefD9uH.js +0 -1
- package/core/built/admin/assets/multi-select-combobox-CT13MTo-.js +0 -1
- package/core/built/admin/assets/navigation-modal-C8FEhBK5.js +0 -1
- package/core/built/admin/assets/newsletter-5VYW4RyJ.js +0 -1
- package/core/built/admin/assets/newsletter-detail-modal-ChjC0ZqH.js +0 -1
- package/core/built/admin/assets/newsletter-emails-DZH6I-PY.js +0 -1
- package/core/built/admin/assets/newsletters-DOC9KBcX.js +0 -1
- package/core/built/admin/assets/note-DIV-Pojr.js +0 -1
- package/core/built/admin/assets/notifications-s20-H49V.js +0 -1
- package/core/built/admin/assets/nql-lang-CaWrLesS.js +0 -19
- package/core/built/admin/assets/offers-container-modal-BmG5M5Tv.js +0 -1
- package/core/built/admin/assets/onboarding-CUuy9unR.js +0 -1
- package/core/built/admin/assets/onboarding-pXyct0Jm.js +0 -1
- package/core/built/admin/assets/onboarding-route-CK4pcXoR.js +0 -1
- package/core/built/admin/assets/overview-CaPsciMs.js +0 -1
- package/core/built/admin/assets/overview-a8GfcsKX.js +0 -1
- package/core/built/admin/assets/page-header-DM_KyoFI.js +0 -1
- package/core/built/admin/assets/pagemenu-vgZVUVKR.js +0 -1
- package/core/built/admin/assets/pages-route-BzKZYdV5.js +0 -1
- package/core/built/admin/assets/papaparse.min-cQwnxGCG.js +0 -10
- package/core/built/admin/assets/pintura-modal-DExCF1ii.js +0 -1
- package/core/built/admin/assets/portal-frame-Cqanidq4.js +0 -1
- package/core/built/admin/assets/portal-modal-oinBgA27.js +0 -1
- package/core/built/admin/assets/post-analytics-C5oJ1dWV.js +0 -1
- package/core/built/admin/assets/post-analytics-context-D0Mw-Pmv.js +0 -1
- package/core/built/admin/assets/post-analytics-header-OATo3X_r.js +0 -1
- package/core/built/admin/assets/post-analytics-provider-tOpIVGT5.js +0 -1
- package/core/built/admin/assets/post-share-modal-DvhC1XgV.js +0 -1
- package/core/built/admin/assets/posts-list-screen-o4ZjbgS3.js +0 -2
- package/core/built/admin/assets/posts-route-9F--xdIb.js +0 -1
- package/core/built/admin/assets/preferences--vNubsqD.js +0 -5
- package/core/built/admin/assets/preview-chrome-BljUBlOk.js +0 -1
- package/core/built/admin/assets/preview-modal-YYbzlYdO.js +0 -1
- package/core/built/admin/assets/profile-BllKV3dR.js +0 -1
- package/core/built/admin/assets/prop-types-DeUPn3oD.js +0 -1
- package/core/built/admin/assets/radio-group-DL8GI8rt.js +0 -1
- package/core/built/admin/assets/react-Bb3IsNbi.js +0 -1
- package/core/built/admin/assets/rolldown-runtime-DAXXjFlN.js +0 -1
- package/core/built/admin/assets/router-provider-BSvTXgZY.js +0 -1
- package/core/built/admin/assets/select-v5YbA3Mw.js +0 -1
- package/core/built/admin/assets/settings-PEsZupw1.js +0 -4
- package/core/built/admin/assets/settings-breadcrumbs-NwPnCTC7.js +0 -1
- package/core/built/admin/assets/settings-u_s1CRkr.js +0 -1
- package/core/built/admin/assets/shade-app-CcS3f8MZ-vwURazk8.js +0 -3
- package/core/built/admin/assets/share-modal-SskCmVGL.js +0 -1
- package/core/built/admin/assets/skeleton-Ce9GgUpf.js +0 -1
- package/core/built/admin/assets/slack-modal-XxSJiYgo.js +0 -1
- package/core/built/admin/assets/sort-button-Cx1KtINE.js +0 -1
- package/core/built/admin/assets/source-icon-Bdp9Im_5.js +0 -1
- package/core/built/admin/assets/stack-B2eszIiq.js +0 -1
- package/core/built/admin/assets/stats-view-W2g6Jsd-.js +0 -1
- package/core/built/admin/assets/step-1-BQYzvBzr.js +0 -1
- package/core/built/admin/assets/step-2-xES32xJV.js +0 -1
- package/core/built/admin/assets/step-3-DA_XK5kW.js +0 -2
- package/core/built/admin/assets/stripe-button-CVsLHelt.js +0 -1
- package/core/built/admin/assets/stripe-connect-modal-ClmLOMGS.js +0 -1
- package/core/built/admin/assets/switch-CI4gLWqb.js +0 -1
- package/core/built/admin/assets/table-BenqVupI.js +0 -1
- package/core/built/admin/assets/tabs-eBBlxPp8.js +0 -1
- package/core/built/admin/assets/tag-detail-Ce8Se2qd.js +0 -2
- package/core/built/admin/assets/tag-picker-C3UR-uJ-.js +0 -1
- package/core/built/admin/assets/tags-B-kJxCs7.js +0 -1
- package/core/built/admin/assets/testimonials-modal-9Q6fT06V.js +0 -1
- package/core/built/admin/assets/text-BQDSDsKs.js +0 -1
- package/core/built/admin/assets/textarea-DJ1Q5V39.js +0 -1
- package/core/built/admin/assets/tier-detail-modal-CDyYdqK7.js +0 -1
- package/core/built/admin/assets/toggle-group-CviIkyok.js +0 -1
- package/core/built/admin/assets/topic-filter-I2jCBGxm.js +0 -1
- package/core/built/admin/assets/transistor-modal-p53u3W8y.js +0 -1
- package/core/built/admin/assets/trend-badge-CideVzQd.js +0 -1
- package/core/built/admin/assets/types-uYQ1HgqL.js +0 -1
- package/core/built/admin/assets/unsplash-modal-DY8UcKcE.js +0 -1
- package/core/built/admin/assets/use-analytics-data-DAIGcr2f.js +0 -1
- package/core/built/admin/assets/use-filter-params-JkZhIS8L.js +0 -1
- package/core/built/admin/assets/use-filterable-api-BVEVMrhZ.js +0 -1
- package/core/built/admin/assets/use-form-vRjI0Kwk.js +0 -1
- package/core/built/admin/assets/use-growth-stats-937CUj6j.js +0 -1
- package/core/built/admin/assets/use-host-limits-D0Dv3tKA.js +0 -1
- package/core/built/admin/assets/use-limiter-CohWfzvK.js +0 -2
- package/core/built/admin/assets/use-navigate-with-base-path-BkxcPj5l.js +0 -1
- package/core/built/admin/assets/use-pintura-config-xgytjU35.js +0 -1
- package/core/built/admin/assets/use-pintura-editor-CaV1mbfO.js +0 -1
- package/core/built/admin/assets/use-post-referrers-BCQI7fDg.js +0 -1
- package/core/built/admin/assets/use-query-params-BfzuqbcD.js +0 -1
- package/core/built/admin/assets/use-reply-chain-data-CYRhoaxY.js +0 -1
- package/core/built/admin/assets/use-router-history-entry-NOKcd--l.js +0 -1
- package/core/built/admin/assets/use-setting-group-bLKMwoBT.js +0 -1
- package/core/built/admin/assets/use-settings-navigation-B-qrriKD.js +0 -1
- package/core/built/admin/assets/use-simple-pagination-CNPd6Rf6.js +0 -1
- package/core/built/admin/assets/use-staff-users-pRIMIyiW.js +0 -1
- package/core/built/admin/assets/use-tinybird-query-CmdbCS9X.js +0 -1
- package/core/built/admin/assets/use-tinybird-token-KLne235s.js +0 -1
- package/core/built/admin/assets/use-unsaved-changes-guard-7-ug0JdH.js +0 -1
- package/core/built/admin/assets/use-upgrade-route-Dm_qqKr0.js +0 -1
- package/core/built/admin/assets/user-detail-modal-D3KlGYv-.js +0 -1
- package/core/built/admin/assets/virtual-list-CZ3RK2Yf.js +0 -1
- package/core/built/admin/assets/web-ClEJsCAj.js +0 -2
- package/core/built/admin/assets/web-X9rdnrtq.js +0 -1
- package/core/built/admin/assets/zapier-modal-DfVhV17j.js +0 -1
- package/core/frontend/services/sitemap/utils.js +0 -17
- package/core/server/services/automations/get-scheduler-idempotency-key.js +0 -13
- package/core/server/web/api/testmode/index.js +0 -1
- package/core/server/web/api/testmode/jobs/cpu-hog.js +0 -15
- package/core/server/web/api/testmode/jobs/graceful-job.js +0 -50
- package/core/server/web/api/testmode/jobs/say-hello.js +0 -17
- package/core/server/web/api/testmode/routes.js +0 -120
- /package/core/built/admin/assets/{chunk.901.4ccc639821020230bcca.js.LICENSE.txt → chunk.972.4b8c97f93d66db15e751.js.LICENSE.txt} +0 -0
|
@@ -1,19 +1,21 @@
|
|
|
1
1
|
"use strict"
|
|
2
2
|
define("ghost-admin/adapters/-json-api",["exports","@ember-data/adapter/json-api"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/adapters/api-key",["exports","ghost-admin/adapters/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3
3
|
class i extends t.default{queryRecord(e,t,i){if(!i||"me"!==i.id)return super.queryRecord(...arguments)
|
|
4
|
-
|
|
4
|
+
const r=`${this.buildURL("users","me")}token/`
|
|
5
5
|
return this.ajax(r,"GET",{data:{}}).then(e=>e)}}e.default=i}),define("ghost-admin/adapters/application",["exports","ghost-admin/adapters/embedded-relation-adapter"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
6
6
|
class i extends t.default{shouldBackgroundReloadRecord(){return!1}}e.default=i}),define("ghost-admin/adapters/base",["exports","ember-ajax/mixins/ajax-support","@ember-data/adapter/rest","ghost-admin/utils/ghost-paths"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
7
7
|
e.default=i.default.extend(t.default,{host:window.location.origin,namespace:(0,r.default)().apiRoot.slice(1),session:Ember.inject.service(),stateBridge:Ember.inject.service(),shouldBackgroundReloadRecord:()=>!1,query(e,t,i){let r
|
|
8
8
|
return i.id&&(r=i.id,delete i.id),this.ajax(this.buildURL(t.modelName,r),"GET",{data:i})},pathForType(){const e=this._super(...arguments)
|
|
9
|
-
return Ember.String.underscore(e)},buildURL(){
|
|
9
|
+
return Ember.String.underscore(e)},buildURL(){const e=this._super(...arguments),t=new URL(e)
|
|
10
10
|
return t.pathname.endsWith("/")||(t.pathname+="/"),t.toString()}})}),define("ghost-admin/adapters/collection",["exports","ghost-admin/adapters/application","ghost-admin/utils/slug-url"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
11
|
-
class r extends t.default{buildURL(e,t,r,n,a){
|
|
11
|
+
class r extends t.default{buildURL(e,t,r,n,a){const s=super.buildURL(...arguments)
|
|
12
12
|
return(0,i.default)(s,a)}}e.default=r}),define("ghost-admin/adapters/email",["exports","ghost-admin/adapters/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
13
|
-
class i extends t.default{retry(e){
|
|
13
|
+
class i extends t.default{retry(e){const t=`${this.buildURL("email",e.get("id"))}retry/`
|
|
14
14
|
return this.ajax(t,"PUT",{data:{}}).then(t=>(this.store.pushPayload(t),e))}}e.default=i}),define("ghost-admin/adapters/embedded-relation-adapter",["exports","ghost-admin/adapters/base","ember-inflector"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
15
|
-
class r extends t.default{find(e,t,i,r){return this.ajax(this.buildIncludeURL(e,t.modelName,i,r,"find"),"GET")}findRecord(e,t,i,r){return this.ajax(this.buildIncludeURL(e,t.modelName,i,r,"findRecord"),"GET")}findAll(e,t,i){let r
|
|
16
|
-
|
|
15
|
+
class r extends t.default{find(e,t,i,r){return this.ajax(this.buildIncludeURL(e,t.modelName,i,r,"find"),"GET")}findRecord(e,t,i,r){return this.ajax(this.buildIncludeURL(e,t.modelName,i,r,"findRecord"),"GET")}findAll(e,t,i){let r
|
|
16
|
+
i&&(r={since:i})
|
|
17
|
+
const n=this.buildIncludeURL(e,t.modelName,null,null,"findAll")
|
|
18
|
+
return this.ajax(n,"GET",{data:r})}async query(e,t,r){if("all"!==r.limit)return super.query(e,t,this.buildQuery(e,t.modelName,r))
|
|
17
19
|
let n=[],a=1,s=null
|
|
18
20
|
const o=Ember.String.decamelize(t.modelName),l=(0,i.pluralize)(o)
|
|
19
21
|
let u=!0,c=!1
|
|
@@ -21,19 +23,20 @@ for(;u;){const i={...r,limit:100,page:a},o=await super.query(e,t,this.buildQuery
|
|
|
21
23
|
if(d.length>0&&(n=n.concat(d)),s=o.meta,!c&&(c=!0,!o.meta)){u=!1
|
|
22
24
|
break}if(d.length<100&&(u=!1),u&&s?.pagination){const{page:e,pages:t}=s.pagination
|
|
23
25
|
e&&t&&e>=t&&(u=!1)}a+=1}const d={pagination:{page:1,limit:n.length,pages:1,total:n.length,next:null,prev:null}}
|
|
24
|
-
return{[l]:n,meta:d}}queryRecord(e,t,i){return super.queryRecord(e,t,this.buildQuery(e,t.modelName,i))}createRecord(e,t,i){return this.saveRecord(e,t,i,{method:"POST"},"createRecord").then(e=>(this.stateBridge.triggerEmberDataChange("create",t.modelName,i.id,e),e))}updateRecord(e,t,i){
|
|
25
|
-
return this.saveRecord(e,t,i,r,"updateRecord").then(e=>(this.stateBridge.triggerEmberDataChange("update",t.modelName,i.id,e),e))}saveRecord(e,t,i,r,n){
|
|
26
|
-
return this.ajax(s,a.method,o)}deleteRecord(e,t,i){return super.deleteRecord(...arguments).then(e=>(this.stateBridge.triggerEmberDataChange("delete",t.modelName,i.id,null),e))}preparePayload(e,t,i){
|
|
27
|
-
return e.serializerFor(t.modelName).serializeIntoHash(r,t,i),{data:r}}buildIncludeURL(e,t,i,r,n,a){
|
|
28
|
-
return s.length&&l.searchParams.append("include",s.map(Ember.String.underscore).join(",")),l.toString()}buildQuery(e,t,i){
|
|
29
|
-
|
|
26
|
+
return{[l]:n,meta:d}}queryRecord(e,t,i){return super.queryRecord(e,t,this.buildQuery(e,t.modelName,i))}createRecord(e,t,i){return this.saveRecord(e,t,i,{method:"POST"},"createRecord").then(e=>(this.stateBridge.triggerEmberDataChange("create",t.modelName,i.id,e),e))}updateRecord(e,t,i){const r={method:"PUT",id:Ember.get(i,"id")}
|
|
27
|
+
return this.saveRecord(e,t,i,r,"updateRecord").then(e=>(this.stateBridge.triggerEmberDataChange("update",t.modelName,i.id,e),e))}saveRecord(e,t,i,r,n){const a=r||{},s=this.buildIncludeURL(e,t.modelName,a.id,i,n),o=this.preparePayload(e,t,i)
|
|
28
|
+
return this.ajax(s,a.method,o)}deleteRecord(e,t,i){return super.deleteRecord(...arguments).then(e=>(this.stateBridge.triggerEmberDataChange("delete",t.modelName,i.id,null),e))}preparePayload(e,t,i){const r={}
|
|
29
|
+
return e.serializerFor(t.modelName).serializeIntoHash(r,t,i),{data:r}}buildIncludeURL(e,t,i,r,n,a){const s=this.getEmbeddedRelations(e,t),o=this.buildURL(t,i,r,n,a),l=new URL(o)
|
|
30
|
+
return s.length&&l.searchParams.append("include",s.map(Ember.String.underscore).join(",")),l.toString()}buildQuery(e,t,i){const r={}
|
|
31
|
+
let n=this.getEmbeddedRelations(e,t),a=i||{}
|
|
32
|
+
return n.length&&("string"==typeof i||"number"==typeof i?(a={},a.id=i,a.include=n.map(Ember.String.underscore).join(",")):("object"==typeof i||Ember.isNone(i))&&(a=a||{},n=n.concat(a.include?a.include.split(","):[]),n.forEach(e=>{r[e]=!0}),a.include=Object.keys(r).map(Ember.String.underscore).join(","))),a}getEmbeddedRelations(e,t){const i=e.modelFor(t),r=[],n=[]
|
|
30
33
|
return i.eachRelationship((e,t)=>{"hasMany"===t.kind&&Object.prototype.hasOwnProperty.call(t.options,"embedded")&&"always"===t.options.embedded&&(r.push(e),n.push([e,t.type]))}),n.forEach(([t,i])=>{this.getEmbeddedRelations(e,i).forEach(e=>{r.push(`${t}.${e}`)})}),r}}e.default=r}),define("ghost-admin/adapters/label",["exports","ghost-admin/adapters/application","ghost-admin/utils/slug-url"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
31
|
-
class r extends t.default{buildURL(e,t,r,n,a){
|
|
34
|
+
class r extends t.default{buildURL(e,t,r,n,a){const s=super.buildURL(...arguments)
|
|
32
35
|
return(0,i.default)(s,a)}}e.default=r}),define("ghost-admin/adapters/member",["exports","ghost-admin/adapters/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
33
|
-
class i extends t.default{queryRecord(e,t,i){if(i&&i.id){
|
|
36
|
+
class i extends t.default{queryRecord(e,t,i){if(i&&i.id){const{id:e}=i
|
|
34
37
|
delete i.id
|
|
35
|
-
|
|
36
|
-
return this.ajax(r,"GET",{data:i})}return super.queryRecord(...arguments)}urlForDeleteRecord(e,t,i){
|
|
38
|
+
const r=this.buildURL(t.modelName,e,i,"findRecord")
|
|
39
|
+
return this.ajax(r,"GET",{data:i})}return super.queryRecord(...arguments)}urlForDeleteRecord(e,t,i){const r=super.urlForDeleteRecord(...arguments),n=new URL(r)
|
|
37
40
|
return i&&i.adapterOptions&&i.adapterOptions.cancel&&n.searchParams.set("cancel","true"),n.toString()}}e.default=i}),define("ghost-admin/adapters/newsletter",["exports","ghost-admin/adapters/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
38
41
|
class i extends t.default{buildIncludeURL(e,t,i,r,n,a){const s=this.buildURL(t,i,r,n,a),o=new URL(s)
|
|
39
42
|
return r?.adapterOptions?.optInExisting&&o.searchParams.append("opt_in_existing","true"),r?.adapterOptions?.include&&o.searchParams.append("include",r?.adapterOptions?.include),o.toString()}}e.default=i}),define("ghost-admin/adapters/page",["exports","ghost-admin/adapters/application","ghost-admin/adapters/post"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -53,24 +56,25 @@ l.searchParams.append("save_revision",e)}if(n?.adapterOptions?.convertToLexical)
|
|
|
53
56
|
l.searchParams.append("convert_to_lexical",e)}return"createRecord"!==a&&"updateRecord"!==a||l.searchParams.append("include",i),l.toString()}buildURL(){const e=super.buildURL(...arguments)
|
|
54
57
|
try{const t=new URL(e)
|
|
55
58
|
if(!t.searchParams.get("formats"))return t.searchParams.set("formats","mobiledoc,lexical"),t.href}catch(t){console.error("Couldn't parse URL",t)}return e}buildQuery(e,t,i){return i}}e.default=r}),define("ghost-admin/adapters/setting",["exports","ghost-admin/adapters/application","ember-inflector"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
56
|
-
class r extends t.default{updateRecord(e,t,r){
|
|
57
|
-
|
|
59
|
+
class r extends t.default{updateRecord(e,t,r){const n={},a=e.serializerFor(t.modelName)
|
|
60
|
+
delete r.id,a.serializeIntoHash(n,t,r)
|
|
61
|
+
return 0===n[(0,i.pluralize)(t.modelName)].length?Promise.resolve():this.ajax(this.buildURL(t.modelName),"PUT",{data:n}).then(e=>(this.stateBridge.triggerEmberDataChange("update",t.modelName,r.id,e),e))}}e.default=r}),define("ghost-admin/adapters/snippet",["exports","ghost-admin/adapters/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
58
62
|
class i extends t.default{buildURL(){const e=super.buildURL(...arguments)
|
|
59
63
|
try{const t=new URL(e)
|
|
60
64
|
if(!t.searchParams.get("formats"))return t.searchParams.set("formats","mobiledoc,lexical"),t.href}catch(t){console.error("Couldn't parse URL",t)}return e}}e.default=i}),define("ghost-admin/adapters/tag",["exports","ghost-admin/adapters/application","ghost-admin/utils/slug-url"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
61
|
-
class r extends t.default{buildURL(e,t,r,n,a){
|
|
65
|
+
class r extends t.default{buildURL(e,t,r,n,a){const s=super.buildURL(...arguments)
|
|
62
66
|
return(0,i.default)(s,a)}}e.default=r}),define("ghost-admin/adapters/theme",["exports","ghost-admin/adapters/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
63
|
-
class i extends t.default{activate(e){
|
|
64
|
-
return this.ajax(t,"PUT",{data:{}}).then(t=>(this.store.pushPayload(t),e))}active(){
|
|
67
|
+
class i extends t.default{activate(e){const t=`${this.buildURL("theme",e.get("id"))}activate/`
|
|
68
|
+
return this.ajax(t,"PUT",{data:{}}).then(t=>(this.store.pushPayload(t),e))}active(){const e=`${this.buildURL("theme","active")}`
|
|
65
69
|
return this.ajax(e,"GET",{data:{}}).then(e=>(this.store.pushPayload("theme",e),this.store.peekAll("theme").filterBy("name",e.themes[0].name).firstObject))}}e.default=i}),define("ghost-admin/adapters/tier",["exports","ghost-admin/adapters/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
66
|
-
class i extends t.default{queryRecord(e,t,i){if(i&&i.id){
|
|
70
|
+
class i extends t.default{queryRecord(e,t,i){if(i&&i.id){const{id:e}=i
|
|
67
71
|
delete i.id
|
|
68
|
-
|
|
69
|
-
return this.ajax(r,"GET",{data:i})}return super.queryRecord(...arguments)}urlForDeleteRecord(){
|
|
72
|
+
const r=this.buildURL(t.modelName,e,i,"findRecord")
|
|
73
|
+
return this.ajax(r,"GET",{data:i})}return super.queryRecord(...arguments)}urlForDeleteRecord(){const e=super.urlForDeleteRecord(...arguments)
|
|
70
74
|
return new URL(e).toString()}}e.default=i}),define("ghost-admin/adapters/user",["exports","ghost-admin/adapters/application","ghost-admin/utils/slug-url"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
71
|
-
class r extends t.default{buildURL(e,t,r,n,a){
|
|
75
|
+
class r extends t.default{buildURL(e,t,r,n,a){const s=super.buildURL(...arguments)
|
|
72
76
|
return(0,i.default)(s,a)}queryRecord(e,t,i){if(!i||"me"!==i.id)return super.queryRecord(...arguments)
|
|
73
|
-
|
|
77
|
+
const r=this.buildURL(t.modelName,"me",null,"findRecord")
|
|
74
78
|
return this.ajax(r,"GET",{data:{include:"roles"}})}}e.default=r}),define("ghost-admin/app",["exports","ghost-admin/utils/link-component","ghost-admin/utils/route","ember-resolver","ghost-admin/config/environment","ember-load-initializers","moment-timezone"],function(e,t,i,r,n,a,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,s.default.updateLocale("en",{relativeTime:{m:"1 minute"}})
|
|
75
79
|
const o=document.getElementById("ember-app"),l=Ember.Application.extend({Resolver:r.default,modulePrefix:n.default.modulePrefix,podModulePrefix:n.default.podModulePrefix,customEvents:{touchstart:null,touchmove:null,touchend:null,touchcancel:null},...o?{rootElement:"#ember-app"}:{}})
|
|
76
80
|
Ember.Debug.registerWarnHandler((e,t,i)=>{["ds.errors.add","ds.errors.remove","ds.errors.clear"].includes(t.id)||i(e,t)}),(0,a.default)(l,n.default.modulePrefix)
|
|
@@ -141,16 +145,16 @@ if(!this.mailgunIsEnabled)return this.sendPreviewEmailError="Please verify your
|
|
|
141
145
|
this.sendPreviewEmailError=""
|
|
142
146
|
const r=this.ghostPaths.url.api("/email_previews/posts",e),n={data:{emails:[t],newsletter:this.newsletter.slug,...this._audienceParams},dataType:"json"}
|
|
143
147
|
return yield this.ajax.post(r,n),!0}catch(e){if(e){let t="Email could not be sent, verify mail settings"
|
|
144
|
-
throw e.payload&&e.payload.errors&&e.payload.errors[0]&&e.payload.errors[0].message&&(t=Ember.String.htmlSafe(e.payload.errors[0].message)),this.sendPreviewEmailError=t,e}}}async _fetchEmailData(){let{html:e,subject:t,newsletter:i}=this
|
|
145
|
-
const{memberStatus:n,memberTier:a}=this.args
|
|
148
|
+
throw e.payload&&e.payload.errors&&e.payload.errors[0]&&e.payload.errors[0].message&&(t=Ember.String.htmlSafe(e.payload.errors[0].message)),this.sendPreviewEmailError=t,e}}}async _fetchEmailData(){let{html:e,subject:t,newsletter:i}=this
|
|
149
|
+
const{post:r}=this.args,{memberStatus:n,memberTier:a}=this.args
|
|
146
150
|
if(e&&t&&n===this._lastMemberStatus&&a===this._lastMemberTier&&i.slug===this._lastNewsletterSlug)return{html:e,subject:t}
|
|
147
151
|
if(this._lastMemberStatus=n,this._lastMemberTier=a,this._lastNewsletterSlug=i.slug,r.html&&r.subject)e=r.html,t=r.subject
|
|
148
152
|
else if(r.email)e=r.email.html,t=r.email.subject
|
|
149
|
-
else{
|
|
153
|
+
else{const i=new URL(this.ghostPaths.url.api("/email_previews/posts",r.id),window.location.href)
|
|
150
154
|
for(const[e,t]of Object.entries(this._audienceParams))i.searchParams.set(e,t)
|
|
151
155
|
i.searchParams.set("newsletter",this.newsletter.slug)
|
|
152
|
-
|
|
153
|
-
e=a.html,t=a.subject}
|
|
156
|
+
const n=await this.ajax.request(i.href),[a]=n.email_previews
|
|
157
|
+
e=a.html,t=a.subject}const s=(new DOMParser).parseFromString(e,"text/html"),o=s.querySelector("style"),l=o.innerHTML
|
|
154
158
|
o.innerHTML=`${l}\n\n\nhtml {\n scrollbar-width: thin;\n scrollbar-color: rgba(0, 0, 0, 0.2) transparent;\n}\nhtml::-webkit-scrollbar {\n width: 8px;\n background: transparent;\n}\nhtml::-webkit-scrollbar-thumb {\n border-radius: 4px;\n background-color: rgba(0, 0, 0, 0.2);\n}\nhtml::-webkit-scrollbar-thumb:hover {\n background-color: rgba(0, 0, 0, 0.3);\n}\n`
|
|
155
159
|
e=(new XMLSerializer).serializeToString(s.doctype)+s.documentElement.outerHTML,this.html=e,this.subject=t}*loadNewslettersTask(){const e=yield this.store.query("newsletter",{filter:"status:active"})
|
|
156
160
|
this.newslettersList=e}setNewsletter(e){this.newsletter=e,this._previewIframe&&this.renderEmailPreview(this._previewIframe)}},E=A(w.prototype,"ajax",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=A(w.prototype,"ghostPaths",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=A(w.prototype,"session",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=A(w.prototype,"settings",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=A(w.prototype,"store",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=A(w.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=A(w.prototype,"html",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),z=A(w.prototype,"subject",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),x=A(w.prototype,"previewEmailAddress",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return this.session.user.email}}),S=A(w.prototype,"sendPreviewEmailError",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),C=A(w.prototype,"newsletter",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return this.args.post.newsletter||this.args.newsletter}}),M=A(w.prototype,"newslettersList",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A(w.prototype,"renderEmailPreview",[g],Object.getOwnPropertyDescriptor(w.prototype,"renderEmailPreview"),w.prototype),A(w.prototype,"focusPreviewFrame",[f],Object.getOwnPropertyDescriptor(w.prototype,"focusPreviewFrame"),w.prototype),A(w.prototype,"sendPreviewEmailTask",[v],Object.getOwnPropertyDescriptor(w.prototype,"sendPreviewEmailTask"),w.prototype),A(w.prototype,"loadNewslettersTask",[n.task],Object.getOwnPropertyDescriptor(w.prototype,"loadNewslettersTask"),w.prototype),A(w.prototype,"setNewsletter",[y],Object.getOwnPropertyDescriptor(w.prototype,"setNewsletter"),w.prototype),w)
|
|
@@ -161,7 +165,7 @@ const l=Ember.HTMLBars.template({id:"//BbnTsv",block:'{"symbols":["@post","@mobi
|
|
|
161
165
|
let u=e.default=(i=Ember._tracked,r=Ember._action,n=Ember._action,a=class extends t.default{constructor(...e){var t,i,r,n
|
|
162
166
|
super(...e),t=this,i="isEditing",n=this,(r=s)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}get subject(){const{post:e}=this.args
|
|
163
167
|
return e.emailSubject||e.title}setSubject(e){this.isEditing&&(this.isEditing=!1)
|
|
164
|
-
|
|
168
|
+
const t=e.target.value,i=this.args.post
|
|
165
169
|
if(i.get("emailSubject")!==t)return i.set("emailSubject",t),i.validate({property:"emailSubject"}).then(()=>{if(!i.get("isNew"))return this.args.savePostTask.perform()})}editSubject(){this.isEditing=!0}},s=o(a.prototype,"isEditing",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),o(a.prototype,"setSubject",[r],Object.getOwnPropertyDescriptor(a.prototype,"setSubject"),a.prototype),o(a.prototype,"editSubject",[n],Object.getOwnPropertyDescriptor(a.prototype,"editSubject"),a.prototype),a)
|
|
166
170
|
Ember._setComponentTemplate(l,u)}),define("ghost-admin/components/editor/modals/preview/selected-newsletter-label",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
167
171
|
const t=Ember.HTMLBars.template({id:"4ca+8xPF",block:'{"symbols":["@select","@extra"],"statements":[[1,[32,1,["selected","name"]]],[2," "],[1,[32,2]],[2,"\\n"]],"hasEval":false,"upvars":[]}',moduleName:"ghost-admin/components/editor/modals/preview/selected-newsletter-label.hbs"})
|
|
@@ -250,7 +254,7 @@ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerabl
|
|
|
250
254
|
const O=Ember.HTMLBars.template({id:"VYG8qdte",block:'{"symbols":[],"statements":[[10,"div"],[14,0,"modal-content"],[14,"data-test-modal","re-authenticate"],[12],[2,"\\n "],[11,"form"],[24,1,"login"],[24,0,"gh-signin"],[24,"method","post"],[24,"novalidate","novalidate"],[4,[38,1],["submit",[30,[36,0],[[32,0,["reauthenticateTask"]]],null]],null],[12],[2,"\\n "],[10,"header"],[12],[2,"\\n "],[10,"h1"],[12],[2,"Are you still here?"],[13],[2,"\\n "],[10,"p"],[12],[2,"Your authenticated session expired. Enter your password to continue where you left off."],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[15,0,[31,["form-group ",[30,[36,2],[[32,0,["authenticationError"]],"error"],null]]]],[12],[2,"\\n "],[10,"label"],[14,"for","password"],[12],[2,"Password"],[13],[2,"\\n "],[11,"span"],[24,0,"gh-input-icon gh-icon-lock forgotten-wrap"],[4,[38,3],null,[["errors","property","hasValidated"],[[32,0,["signup","errors"]],"password",[32,0,["signup","hasValidated"]]]]],[12],[2,"\\n "],[11,"input"],[24,0,"gh-input password"],[24,"placeholder","•••••••••••••••"],[24,3,"password"],[16,2,[32,0,["signup","password"]]],[24,"aria-label","Your password"],[24,4,"password"],[4,[38,1],["input",[32,0,["setPassword"]]],null],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[8,"gh-task-button",[],[["@type","@buttonText","@runningText","@showSuccess","@task","@class","@useAccentColor"],["submit","Sign in →","Authenticating",false,[32,0,["reauthenticateTask"]],"login gh-btn gh-btn-login gh-btn-block gh-btn-icon",true]],null],[2,"\\n\\n"],[6,[37,2],[[32,0,["authenticationError"]]],null,[["default"],[{"statements":[[2," "],[10,"p"],[14,0,"response"],[12],[1,[32,0,["authenticationError"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["perform","on","if","validation-status"]}',moduleName:"ghost-admin/components/editor/modals/re-authenticate.hbs"})
|
|
251
255
|
let j=(a=Ember._tracked,s=Ember._tracked,o=class extends(Ember.Object.extend(i.default)){constructor(...e){super(...e),P(this,"identification",l,this),P(this,"password",u,this),_(this,"validationType","signin")}},l=k(o.prototype,"identification",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),u=k(o.prototype,"password",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),o),T=e.default=(c=Ember.inject.service,d=Ember.inject.service,p=Ember.inject.service,m=Ember._tracked,h=Ember._action,b=(0,n.task)({drop:!0}),E=class extends t.default{constructor(){super(...arguments),P(this,"notifications",f,this),P(this,"session",v,this),P(this,"modals",y,this),P(this,"authenticationError",w,this),this.signin=j.create(),this.signin.identification=this.session.user.email}setPassword(e){this.signin.password=e.target.value}*reauthenticateTask(){document.querySelectorAll("#login input").forEach(e=>e.dispatchEvent(new Event("change"))),this.authenticationError=null
|
|
252
256
|
try{yield this.signin.validate({property:"signin"})}catch(e){return this.signin.hasValidated.pushObject("password"),!1}try{return yield this._authenticate(),this.notifications.closeAlerts(),this.args.close(),!0}catch(e){if(!e)return
|
|
253
|
-
if((0,r.isTwoFactorTokenRequiredError)(e)){
|
|
257
|
+
if((0,r.isTwoFactorTokenRequiredError)(e)){const t=e.payload?.errors[0]?.code
|
|
254
258
|
return this.session.set("errorCode",t),yield this.modals.open("editor/modals/re-verify"),this.args.close(),!0}e?.payload?.errors&&(e.payload.errors.forEach(t=>{if((0,r.isVersionMismatchError)(t))return this.notifications.showAPIError(e)
|
|
255
259
|
t.message=Ember.String.htmlSafe(t.context||t.message)}),this.signin.errors.add("password","Incorrect password"),this.signin.hasValidated.pushObject("password"),this.authenticationError=e.payload.errors[0].message),this.notifications.showAPIError(e)}}async _authenticate(){const{identification:e,password:t}=this.signin
|
|
256
260
|
this.session.skipAuthSuccessHandler=!0
|
|
@@ -377,11 +381,11 @@ const a=Ember.HTMLBars.template({id:"HoiavaQO",block:'{"symbols":["api","&defaul
|
|
|
377
381
|
let s=(i=Ember.inject.service,r=class extends t.default{constructor(){var e,t,i,r
|
|
378
382
|
super(...arguments),e=this,t="dropdown",r=this,(i=n)&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0}),this.dropdown.on("close",this,this.close)}willDestroy(){this.dropdown.off("close",this,this.close)}},o=r.prototype,l="dropdown",u=[i],c={configurable:!0,enumerable:!0,writable:!0,initializer:null},p={},Object.keys(c).forEach(function(e){p[e]=c[e]}),p.enumerable=!!p.enumerable,p.configurable=!!p.configurable,("value"in p||p.initializer)&&(p.writable=!0),p=u.slice().reverse().reduce(function(e,t){return t(o,l,e)||e},p),d&&void 0!==p.initializer&&(p.value=p.initializer?p.initializer.call(d):void 0,p.initializer=void 0),n=void 0===p.initializer?(Object.defineProperty(o,l,p),null):p,r)
|
|
379
383
|
var o,l,u,c,d,p
|
|
380
|
-
e.default=Ember._setComponentTemplate(a,s)}),define("ghost-admin/components/gh-billing-iframe",["exports","@glimmer/component","ghost-admin/decorators/inject"],function(e,t,i){var
|
|
381
|
-
function
|
|
384
|
+
e.default=Ember._setComponentTemplate(a,s)}),define("ghost-admin/components/gh-billing-iframe",["exports","@glimmer/component","ghost-admin/decorators/inject","@tryghost/admin-x-framework/api/dunning"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T
|
|
385
|
+
function z(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 x(e,t,i,r,n){var a={}
|
|
382
386
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
383
|
-
const
|
|
384
|
-
let
|
|
387
|
+
const S=Ember.HTMLBars.template({id:"ErYely0X",block:'{"symbols":["&attrs"],"statements":[[11,"iframe"],[24,1,"billing-frame"],[24,0,"billing-frame"],[24,"frameborder","0"],[24,"title","Billing"],[24,"allow","clipboard-write"],[17,1],[4,[38,0],[[32,0,["setup"]]],null],[12],[13]],"hasEval":false,"upvars":["did-insert"]}',moduleName:"ghost-admin/components/gh-billing-iframe.hbs"})
|
|
388
|
+
let C=e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember.inject.service,p=Ember.inject.service,m=Ember._tracked,h=Ember._action,b=Ember._action,g=class extends t.default{constructor(...e){super(...e),z(this,"ajax",f,this),z(this,"billing",v,this),z(this,"configManager",y,this),z(this,"feature",w,this),z(this,"ghostPaths",E,this),z(this,"limit",P,this),z(this,"notifications",_,this),z(this,"session",k,this),z(this,"stateBridge",O,this),z(this,"config",j,this),z(this,"isOwner",T,this)}willDestroy(){super.willDestroy(...arguments),window.removeEventListener("message",this.handleIframeMessage)}setup(){this.billing.setBillingIframeSrc(),this.billing.startBillingAppLoadMonitor(),window.addEventListener("message",this.handleIframeMessage)}async handleIframeMessage(e){if(this.isDestroyed||this.isDestroying)return
|
|
385
389
|
if(!this.billing.isValidBillingIframeMessage(e))return
|
|
386
390
|
const t=e.data
|
|
387
391
|
if("billingAppReady"===t?.request)return this.billing.markBillingAppLoaded(t),void(t?.route&&this.billing.handleRouteChangeInIframe(t.route))
|
|
@@ -392,9 +396,11 @@ this.ajax.request(t).then(e=>{const t=e?.identities?.[0]?.token
|
|
|
392
396
|
this._postMessageToBillingIframe({request:"token",response:t}),this.isOwner=!0}).catch(t=>{if("NoPermissionError"!==t.payload?.errors?.[0]?.type)throw t
|
|
393
397
|
e()})}_handleForceUpgradeRequest(){let e=null
|
|
394
398
|
const t=this.billing.ownerUser
|
|
395
|
-
t&&(e={name:t?.name,email:t?.email}),this._postMessageToBillingIframe({request:"forceUpgradeInfo",response:{forceUpgrade:this.config.hostSettings?.forceUpgrade,isOwner:this.isOwner,ownerUser:e}})}async _handleSubscriptionUpdate(e){try{await this.configManager.fetch()}catch(
|
|
396
|
-
|
|
397
|
-
|
|
399
|
+
t&&(e={name:t?.name,email:t?.email}),this._postMessageToBillingIframe({request:"forceUpgradeInfo",response:{forceUpgrade:this.config.hostSettings?.forceUpgrade,isOwner:this.isOwner,ownerUser:e,dunningReturnEnabled:!0===this.feature.dunningWarnings}})}async _handleSubscriptionUpdate(e){try{await this.configManager.fetch()}catch(i){}this.limit.reload(),this.stateBridge.triggerSubscriptionChange(e),window?.adminXQueryClient?.refetchQueries&&"function"==typeof window.adminXQueryClient.refetchQueries&&(window.adminXQueryClient.refetchQueries({queryKey:["ConfigResponseType"]}).catch(()=>{}),window.adminXQueryClient.refetchQueries({queryKey:["SettingsResponseType"]}).catch(()=>{})),this.billing.subscription=e.subscription,this.billing.checkoutRoute=e?.checkoutRoute??"/plans","active"===e.subscription.status&&this.config.hostSettings?.forceUpgrade&&(this.config.hostSettings.forceUpgrade=!1)
|
|
400
|
+
const t=this.feature.dunningWarnings&&null!==(0,r.parseDunningConfig)(this.config.hostSettings?.billing?.dunning)
|
|
401
|
+
if("past_due"!==e.subscription.status&&"unpaid"!==e.subscription.status||t?this.notifications.closeAlerts("billing.overdue"):this.notifications.showAlert(Ember.String.htmlSafe(`Your billing details need updating. The site owner must <a href="${this.billing.billingRouteRoot}/update-card">update payment information</a> to avoid suspension.`),{type:"error",key:"billing.overdue"}),e?.exceededLimits&&e?.exceededLimits.length&&e?.exceededLimits.indexOf("members")>=0&&e?.checkoutRoute){const e=this.billing.billingRouteRoot+"?action=checkout"
|
|
402
|
+
this.notifications.showAlert(Ember.String.htmlSafe(`Your audience has grown! To continue publishing, the site owner must <a href="${e}">confirm pricing for this number of members</a>.`),{type:"warn",key:"billing.exceeded"})}else this.notifications.closeAlerts("billing.exceeded")}},f=x(g.prototype,"ajax",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=x(g.prototype,"billing",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=x(g.prototype,"configManager",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=x(g.prototype,"feature",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=x(g.prototype,"ghostPaths",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=x(g.prototype,"limit",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=x(g.prototype,"notifications",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=x(g.prototype,"session",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=x(g.prototype,"stateBridge",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=x(g.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=x(g.prototype,"isOwner",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),x(g.prototype,"setup",[h],Object.getOwnPropertyDescriptor(g.prototype,"setup"),g.prototype),x(g.prototype,"handleIframeMessage",[b],Object.getOwnPropertyDescriptor(g.prototype,"handleIframeMessage"),g.prototype),g)
|
|
403
|
+
Ember._setComponentTemplate(S,C)}),define("ghost-admin/components/gh-billing-modal",["exports","@glimmer/component"],function(e,t){var i,r,n
|
|
398
404
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
399
405
|
const a=Ember.HTMLBars.template({id:"3HNyVqrU",block:'{"symbols":[],"statements":[[10,"div"],[15,0,[31,[[32,0,["visibilityClass"]]]]],[12],[2,"\\n "],[10,"div"],[14,0,"gh-billing-container"],[12],[2,"\\n "],[8,"gh-billing-iframe",[],[[],[]],[["default"],[{"statements":[],"parameters":[]}]]],[2,"\\n\\n"],[6,[37,1],[[32,0,["showLoadingState"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-billing-status gh-billing-status-loading"],[14,"data-test-billing-loading",""],[12],[2,"\\n "],[10,"div"],[14,0,"gh-loading-spinner"],[12],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,0,["showErrorState"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-billing-status gh-billing-status-error"],[14,"role","alert"],[14,"data-test-billing-load-error",""],[12],[2,"\\n "],[10,"div"],[14,0,"gh-billing-empty-indicator"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-billing-empty-badge"],[14,"aria-hidden","true"],[12],[2,"\\n "],[1,[30,[36,0],["cloud-off"],null]],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-billing-empty-copy"],[12],[2,"\\n "],[10,"h3"],[14,"data-test-billing-load-error-title",""],[12],[2,"We couldn\'t load your Ghost(Pro) settings"],[13],[2,"\\n "],[10,"p"],[14,"data-test-billing-load-error-description",""],[12],[2,"Refresh the page and try again. If the issue continues, contact "],[10,"a"],[14,6,"mailto:support@ghost.org"],[12],[2,"support@ghost.org"],[13],[2,"."],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["svg-jar","if"]}',moduleName:"ghost-admin/components/gh-billing-modal.hbs"})
|
|
400
406
|
let s=e.default=(i=Ember.inject.service,r=class extends t.default{constructor(...e){var t,i,r,a
|
|
@@ -426,12 +432,12 @@ throw new TypeError("@@toPrimitive must return a primitive value.")}return("stri
|
|
|
426
432
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function g(e,t,i,r,n){var a={}
|
|
427
433
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
428
434
|
const f=Ember.HTMLBars.template({id:"RBJCUHDq",block:'{"symbols":[],"statements":[[8,"gh-textarea",[],[["@class","@value","@input"],[[30,[36,0],["gh-cm-editor-textarea ",[32,0,["textareaClass"]]],null],[30,[36,1],[[32,0,["_value"]]],null],[30,[36,2],[[32,0],"updateFromTextarea"],[["value"],["target.value"]]]]],null],[2,"\\n"]],"hasEval":false,"upvars":["concat","readonly","action"]}',moduleName:"ghost-admin/components/gh-cm-editor.hbs"})
|
|
429
|
-
let v=(n=(0,t.classNameBindings)("isFocused:focus"),a=Ember.inject.service,s=(0,i.default)("value"),o=Ember._action,l=(0,r.task)(function*(){
|
|
430
|
-
yield e.loadScript("codemirror","assets/codemirror/codemirror-bcc43040205b158dea6c38fddde4cfe3.js"),Ember.run.scheduleOnce("afterRender",this,this._initCodeMirror)}),n((c=class extends Ember.Component{constructor(...e){super(...e),h(this,"lazyLoader",d,this),b(this,"textareaClass",""),b(this,"isFocused",!1),b(this,"autofocus",!1),b(this,"indentUnit",4),b(this,"lineNumbers",!0),b(this,"lineWrapping",!1),b(this,"mode","htmlmixed"),b(this,"theme","xq-light"),b(this,"_editor",null),b(this,"focus-in",()=>{}),b(this,"focus-out",()=>{}),b(this,"update",()=>{}),h(this,"_value",p,this),h(this,"initCodeMirror",m,this)}didReceiveAttrs(){super.didReceiveAttrs(...arguments),null===this._value&&this.set("_value",""),this.mode!==this._lastMode&&this._editor&&this._editor.setOption("mode",this.mode),this._lastMode=this.mode}didInsertElement(){super.didInsertElement(...arguments),this.initCodeMirror.perform()}willDestroyElement(){if(super.willDestroyElement(...arguments),this._editor){
|
|
431
|
-
e.parentNode.removeChild(e),this._editor=null}}updateFromTextarea(e){this.update(e)}_initCodeMirror(){
|
|
435
|
+
let v=(n=(0,t.classNameBindings)("isFocused:focus"),a=Ember.inject.service,s=(0,i.default)("value"),o=Ember._action,l=(0,r.task)(function*(){const e=this.lazyLoader
|
|
436
|
+
yield e.loadScript("codemirror","assets/codemirror/codemirror-bcc43040205b158dea6c38fddde4cfe3.js"),Ember.run.scheduleOnce("afterRender",this,this._initCodeMirror)}),n((c=class extends Ember.Component{constructor(...e){super(...e),h(this,"lazyLoader",d,this),b(this,"textareaClass",""),b(this,"isFocused",!1),b(this,"autofocus",!1),b(this,"indentUnit",4),b(this,"lineNumbers",!0),b(this,"lineWrapping",!1),b(this,"mode","htmlmixed"),b(this,"theme","xq-light"),b(this,"_editor",null),b(this,"focus-in",()=>{}),b(this,"focus-out",()=>{}),b(this,"update",()=>{}),h(this,"_value",p,this),h(this,"initCodeMirror",m,this)}didReceiveAttrs(){super.didReceiveAttrs(...arguments),null===this._value&&this.set("_value",""),this.mode!==this._lastMode&&this._editor&&this._editor.setOption("mode",this.mode),this._lastMode=this.mode}didInsertElement(){super.didInsertElement(...arguments),this.initCodeMirror.perform()}willDestroyElement(){if(super.willDestroyElement(...arguments),this._editor){const e=this._editor.getWrapperElement()
|
|
437
|
+
e.parentNode.removeChild(e),this._editor=null}}updateFromTextarea(e){this.update(e)}_initCodeMirror(){const e=this.getProperties("lineNumbers","lineWrapping","indentUnit","mode","theme","autofocus")
|
|
432
438
|
Ember.assign(e,{value:this._value})
|
|
433
|
-
|
|
434
|
-
t&&t===document.activeElement&&(e.autofocus=!0),this._editor=new CodeMirror.fromTextArea(t,e),e.autofocus&&this._editor.setCursor(this._editor.lineCount(),0),this._setupCodeMirrorEventHandler("focus",this,this._focus),this._setupCodeMirrorEventHandler("blur",this,this._blur),this._setupCodeMirrorEventHandler("change",this,this._update)}_setupCodeMirrorEventHandler(e,t,i){
|
|
439
|
+
const t=this.element.querySelector("textarea")
|
|
440
|
+
t&&t===document.activeElement&&(e.autofocus=!0),this._editor=new CodeMirror.fromTextArea(t,e),e.autofocus&&this._editor.setCursor(this._editor.lineCount(),0),this._setupCodeMirrorEventHandler("focus",this,this._focus),this._setupCodeMirrorEventHandler("blur",this,this._blur),this._setupCodeMirrorEventHandler("change",this,this._update)}_setupCodeMirrorEventHandler(e,t,i){const r=Ember.run.bind(t,i)
|
|
435
441
|
this._editor.on(e,r),this.one("willDestroyElement",this,function(){this._editor.off(e,r)})}_update(e,t){Ember.run.once(this,this.update,e.getValue(),e,t)}_focus(e,t){this.set("isFocused",!0),Ember.run.once(this,this["focus-in"],e.getValue(),e,t)}_blur(){this.set("isFocused",!1),this["focus-out"]?.()}},d=g(c.prototype,"lazyLoader",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=g(c.prototype,"_value",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g(c.prototype,"updateFromTextarea",[o],Object.getOwnPropertyDescriptor(c.prototype,"updateFromTextarea"),c.prototype),m=g(c.prototype,"initCodeMirror",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=c))||u)
|
|
436
442
|
e.default=Ember._setComponentTemplate(f,v)}),define("ghost-admin/components/gh-context-menu",["exports","@glimmer/component","ghost-admin/components/posts-list/selection-list","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x,S,C
|
|
437
443
|
function M(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function D(e,t,i){A(e,t),t.set(e,i)}function A(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")}function I(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
@@ -459,7 +465,7 @@ e.off("close",this,this.close),e.off("toggle",this,this.toggle)}open(){this.setS
|
|
|
459
465
|
this.name===t?(void 0!==e.left&&(this.left=e.left,this.top=e.top),e.selectionList&&(this.selectionList=e.selectionList),this.calculatePlacement(),this.open(),this.isOpen&&(this.openCount+=1)):this.close()}get listElement(){return this.element?.firstElementChild?.firstElementChild}calculatePlacement(){if(!this.element||!this.listElement)return
|
|
460
466
|
const e=window.innerHeight,t=window.innerWidth,i=this.listElement.offsetHeight,r=this.listElement.offsetWidth
|
|
461
467
|
this.top+i+10<e?this.yPlacement="bottom":this.yPlacement="top",this.left+r+10<t?this.xPlacement="right":this.xPlacement="left"}stopClicks(e){e.stopPropagation()}*confirmWrapperTask(...e){this.setState("loading")
|
|
462
|
-
|
|
468
|
+
const t=yield R(x,this).perform(...e)
|
|
463
469
|
return L(x,this,null),this.setState("default"),t}openModal(e,t){L(x,this,t.confirm),t.confirm=this.confirmWrapperTask,this.setState("modal"),L(S,this,this.modals.open(e,t)),R(S,this).then(()=>{setTimeout(()=>{this.setState("default")},10)})}async performTask(e){this.setState("loading"),await e.perform(),this.setState("default")}},w=U(y.prototype,"dropdown",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=U(y.prototype,"modals",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=U(y.prototype,"isOpen",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),_=U(y.prototype,"openCount",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),k=U(y.prototype,"left",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),O=U(y.prototype,"top",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),j=U(y.prototype,"yPlacement",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"bottom"}}),T=U(y.prototype,"xPlacement",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"right"}}),z=U(y.prototype,"selectionList",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new i.default}}),U(y.prototype,"setup",[m],Object.getOwnPropertyDescriptor(y.prototype,"setup"),y.prototype),U(y.prototype,"open",[h],Object.getOwnPropertyDescriptor(y.prototype,"open"),y.prototype),U(y.prototype,"close",[b],Object.getOwnPropertyDescriptor(y.prototype,"close"),y.prototype),U(y.prototype,"onContextMenuOutside",[g],Object.getOwnPropertyDescriptor(y.prototype,"onContextMenuOutside"),y.prototype),U(y.prototype,"toggle",[f],Object.getOwnPropertyDescriptor(y.prototype,"toggle"),y.prototype),U(y.prototype,"stopClicks",[v],Object.getOwnPropertyDescriptor(y.prototype,"stopClicks"),y.prototype),U(y.prototype,"confirmWrapperTask",[r.task],Object.getOwnPropertyDescriptor(y.prototype,"confirmWrapperTask"),y.prototype),y)
|
|
464
470
|
function H(){R(S,this)?.close(),L(S,this,null)}Ember._setComponentTemplate(F,B)}),define("ghost-admin/components/gh-custom-view-title",["exports","@glimmer/component"],function(e,t){var i,r,n,a,s
|
|
465
471
|
function o(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function l(e,t,i,r,n){var a={}
|
|
@@ -486,15 +492,15 @@ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enum
|
|
|
486
492
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
487
493
|
const z=Ember.HTMLBars.template({id:"NiBLlZJz",block:'{"symbols":["dp","@datePickerTriggerClass","@datePickerClass","@timeInputClass"],"statements":[[10,"div"],[14,0,"gh-date-time-picker"],[14,"data-test-component","gh-date-time-picker"],[12],[2,"\\n "],[8,"power-datepicker",[],[["@selected","@center","@onSelect","@renderInPlace","@disabled"],[[30,[36,0],[[32,0,["localDateValue"]]],null],[30,[36,0],[[32,0,["localDateValue"]]],null],[30,[36,1],[[32,0],"setLocalDate"],[["value"],["date"]]],[32,0,["renderInPlaceWithFallback"]],[32,0,["disabled"]]]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["Trigger"]],[[16,0,[32,2]],[24,"data-test-date-time-picker-datepicker",""]],[["@tabindex"],["-1"]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[15,0,[31,["gh-date-time-picker-date ",[30,[36,2],[[32,0,["dateError"]],"error"],null]]]],[12],[2,"\\n "],[11,"input"],[16,"placeholder",[32,0,["dateFormat"]]],[16,2,[30,[36,0],[[32,0,["dateValue"]]],null]],[16,"disabled",[32,0,["disabled"]]],[24,"aria-label","Date Picker"],[24,"data-test-date-time-picker-date-input",""],[24,4,"text"],[4,[38,4],["input",[30,[36,3],[[32,0,["onDateInput"]],[32,1]],null]],null],[4,[38,4],["blur",[32,0,["onDateBlur"]]],null],[4,[38,4],["keydown",[30,[36,3],[[32,0,["onDateKeydown"]],[32,1]],null]],null],[12],[13],[2,"\\n "],[1,[30,[36,5],["calendar"],null]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[8,[32,1,["Content"]],[[16,0,[31,["dropdown-menu ",[32,3]]]]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["Nav"]],[],[[],[]],null],[2,"\\n "],[8,[32,1,["Days"]],[],[["@minDate","@maxDate","@weekdayFormat"],[[32,0,["_minDate"]],[32,0,["_maxDate"]],"min"]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n\\n "],[10,"div"],[15,0,[31,["gh-date-time-picker-time ",[30,[36,2],[[32,0,["hasError"]],"error"],null]," ",[32,4]]]],[12],[2,"\\n "],[11,"input"],[16,2,[32,0,["_time"]]],[16,"disabled",[32,0,["disabled"]]],[24,"aria-label","Time Picker"],[24,"data-test-date-time-picker-time-input",""],[24,4,"text"],[4,[38,4],["change",[32,0,["updateTimeValue"]]],null],[4,[38,4],["blur",[30,[36,3],[[32,0,["setTimeInternal"]],[32,0,["_time"]]],null]],null],[4,[38,6],[[32,0,["registerTimeInput"]]],null],[12],[13],[2,"\\n "],[10,"small"],[14,0,"gh-date-time-picker-timezone"],[14,"data-test-date-time-picker-timezone",""],[12],[1,[32,0,["timezone"]]],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"],[6,[37,2],[[32,0,["hasError"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-date-time-picker-error"],[14,"data-test-date-time-picker-error",""],[12],[1,[32,0,["dateError"]]],[1,[32,0,["timeError"]]],[13],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["readonly","action","if","fn","on","svg-jar","did-insert"]}',moduleName:"ghost-admin/components/gh-date-time-picker.hbs"}),x="YYYY-MM-DD"
|
|
488
494
|
let S=e.default=(r=(0,i.tagName)(""),n=Ember.inject.service,a=Ember.computed.reads("settings.timezone"),s=Ember.computed.or("dateError","timeError"),o=Ember.computed("_date","_scratchDate"),l=Ember.computed("_date"),u=Ember.computed("blogTimezone"),c=Ember.computed("errors.[]","dateErrorProperty","_scratchDateError"),d=Ember.computed("errors.[]","timeErrorProperty"),p=Ember._action,m=Ember._action,h=Ember._action,b=Ember._action,g=Ember._action,f=Ember._action,v=Ember._action,y=Ember._action,r((E=class extends Ember.Component{constructor(...e){super(...e),O(this,"settings",P,this),j(this,"date",""),j(this,"dateFormat",x),j(this,"time",""),j(this,"errors",null),j(this,"dateErrorProperty",null),j(this,"timeErrorProperty",null),j(this,"isActive",!0),j(this,"_time",""),j(this,"_previousTime",""),j(this,"_minDate",null),j(this,"_maxDate",null),j(this,"_scratchDate",null),j(this,"_scratchDateError",null),O(this,"blogTimezone",_,this),O(this,"hasError",k,this)}setTypedDateError(){}get renderInPlaceWithFallback(){return void 0===this.renderInPlace||this.renderInPlace}get dateValue(){return null!==this._scratchDate?this._scratchDate:this._date?.format(x)}get localDateValue(){const[e,t,i]=this._date.format(x).split("-").map(Number)
|
|
489
|
-
return new Date(e,t-1,i)}get timezone(){
|
|
495
|
+
return new Date(e,t-1,i)}get timezone(){const e=this.blogTimezone
|
|
490
496
|
return t.default.utc().tz(e).format("z")}get dateError(){if(this._scratchDateError)return this._scratchDateError
|
|
491
|
-
|
|
492
|
-
return e&&!Ember.isEmpty(e.errorsFor(t))?e.errorsFor(t).get("firstObject").message:""}get timeError(){
|
|
497
|
+
const e=this.errors,t=this.dateErrorProperty
|
|
498
|
+
return e&&!Ember.isEmpty(e.errorsFor(t))?e.errorsFor(t).get("firstObject").message:""}get timeError(){const e=this.errors,t=this.timeErrorProperty
|
|
493
499
|
return e&&!Ember.isEmpty(e.errorsFor(t))?e.errorsFor(t).get("firstObject").message:""}didReceiveAttrs(){super.didReceiveAttrs(...arguments)
|
|
494
|
-
|
|
500
|
+
const e=this.date,i=this.time,r=this.minDate,n=this.maxDate,a=this.blogTimezone
|
|
495
501
|
Ember.isBlank(e)?this.set("_date",(0,t.default)().tz(a)):this.set("_date",t.default.tz(e,a)),!this.isActive&&this._lastIsActive&&this._resetScratchDate(),this._lastIsActive=this.isActive,(e&&e.valueOf())!==(this._lastDate&&this._lastDate.valueOf())&&this._resetScratchDate(),this._lastDate=this.date,Ember.isBlank(i)?this.set("_time",this._date.format("HH:mm")):this.set("_time",this.time),this.set("_previousTime",this._time),"now"===r?this.set("_minDate",(0,t.default)((0,t.default)().tz(a).format(x)).toDate()):Ember.isBlank(r)?this.set("_minDate",null):this.set("_minDate",(0,t.default)(t.default.tz(r,a).format(x)).toDate()),"now"===n?this.set("_maxDate",(0,t.default)((0,t.default)().tz(a).format(x)).toDate()):Ember.isBlank(n)?this.set("_maxDate",null):this.set("_maxDate",(0,t.default)(t.default.tz(n,a).format(x)).toDate())}willDestroyElement(){super.willDestroyElement(...arguments),this.setTypedDateError(null)}setDateInternal(e){e!==this._date&&(this.setDate(e),Ember.isBlank(this.time)&&this.setTime(this._time))}setLocalDate(e){const i=(0,t.default)(e).format(x)
|
|
496
502
|
this._setDate(i)}setTimeInternal(e,t){e.match(/^\d:\d\d$/)&&(e=`0${e}`),e!==this._previousTime&&(this.setTime(e,t),this.set("_previousTime",e),Ember.isBlank(this.date)&&this.setDate(this._date.toDate()))}updateTimeValue(e){this.set("_time",e.target.value)}registerTimeInput(e){this._timeInputElem=e}onDateInput(e,t){e.actions.close(t,!0),this.set("_scratchDate",t.target.value)}onDateBlur(e){e.target.value!==this._date.format("YYYY-MM-DD")&&e.target.value?this._setDate(e.target.value):this._resetScratchDate()}onDateKeydown(e,t){if("Escape"===t.key&&this._resetScratchDate(),"Enter"===t.key&&(this._setDate(t.target.value),t.preventDefault(),t.stopImmediatePropagation(),e.actions.close()),"Tab"===t.key&&e.isOpen&&(e.actions.close(),!t.shiftKey&&this._timeInputElem&&(t.preventDefault(),this._timeInputElem.focus(),this._timeInputElem.select())),"s"===t.key&&(t.ctrlKey||t.metaKey)){this._setDate(t.target.value)||(t.stopImmediatePropagation(),t.preventDefault())}}_resetScratchDate(){this.set("_scratchDate",null),this._setScratchDateError(null)}_setDate(e){if(!e.match(/^\d\d\d\d-\d\d-\d\d$/))return this._setScratchDateError("Invalid date format, must be YYYY-MM-DD"),!1
|
|
497
|
-
|
|
503
|
+
const i=t.default.tz(e,x,this.blogTimezone)
|
|
498
504
|
return i.isValid()?(this.setDateInternal(i.toDate()),this._resetScratchDate(),!0):(this._setScratchDateError("Invalid date"),!1)}_setScratchDateError(e){this.set("_scratchDateError",e),this.setTypedDateError(e)}},P=T(E.prototype,"settings",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=T(E.prototype,"blogTimezone",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=T(E.prototype,"hasError",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T(E.prototype,"dateValue",[o],Object.getOwnPropertyDescriptor(E.prototype,"dateValue"),E.prototype),T(E.prototype,"localDateValue",[l],Object.getOwnPropertyDescriptor(E.prototype,"localDateValue"),E.prototype),T(E.prototype,"timezone",[u],Object.getOwnPropertyDescriptor(E.prototype,"timezone"),E.prototype),T(E.prototype,"dateError",[c],Object.getOwnPropertyDescriptor(E.prototype,"dateError"),E.prototype),T(E.prototype,"timeError",[d],Object.getOwnPropertyDescriptor(E.prototype,"timeError"),E.prototype),T(E.prototype,"setDateInternal",[p],Object.getOwnPropertyDescriptor(E.prototype,"setDateInternal"),E.prototype),T(E.prototype,"setLocalDate",[m],Object.getOwnPropertyDescriptor(E.prototype,"setLocalDate"),E.prototype),T(E.prototype,"setTimeInternal",[h],Object.getOwnPropertyDescriptor(E.prototype,"setTimeInternal"),E.prototype),T(E.prototype,"updateTimeValue",[b],Object.getOwnPropertyDescriptor(E.prototype,"updateTimeValue"),E.prototype),T(E.prototype,"registerTimeInput",[g],Object.getOwnPropertyDescriptor(E.prototype,"registerTimeInput"),E.prototype),T(E.prototype,"onDateInput",[f],Object.getOwnPropertyDescriptor(E.prototype,"onDateInput"),E.prototype),T(E.prototype,"onDateBlur",[v],Object.getOwnPropertyDescriptor(E.prototype,"onDateBlur"),E.prototype),T(E.prototype,"onDateKeydown",[y],Object.getOwnPropertyDescriptor(E.prototype,"onDateKeydown"),E.prototype),w=E))||w)
|
|
499
505
|
Ember._setComponentTemplate(z,S)}),define("ghost-admin/components/gh-dropdown-button",["exports","ghost-admin/mixins/dropdown-mixin","@ember-decorators/component"],function(e,t,i){var r,n,a,s,o,l,u
|
|
500
506
|
function c(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
@@ -515,10 +521,11 @@ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enum
|
|
|
515
521
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
516
522
|
e.default=(r=(0,i.classNames)("dropdown"),n=(0,i.classNameBindings)("fadeIn:fade-in-scale:fade-out","isOpen:open:closed"),a=Ember.inject.service,s=Ember.computed("isOpen","closing"),r(o=n((l=class extends(Ember.Component.extend(t.default)){constructor(...e){var t,i,r,n
|
|
517
523
|
super(...e),t=this,i="dropdown",n=this,(r=u)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),c(this,"name",null),c(this,"closeOnClick",!1),c(this,"closing",!1),c(this,"isOpen",!1)}onClose(){}get fadeIn(){return this.isOpen&&!this.closing}didInsertElement(){super.didInsertElement(...arguments)
|
|
518
|
-
|
|
524
|
+
const e=this.dropdown
|
|
519
525
|
e.on("close",this,this.close),e.on("toggle",this,this.toggle),this._animationEndHandler=Ember.run.bind(this,function(e){"fade-out"===e.animationName&&this.closing&&(this.set("isOpen",!1),this.set("closing",!1),this.onClose?.())}),this.element.addEventListener("animationend",this._animationEndHandler)}willDestroyElement(){super.willDestroyElement(...arguments)
|
|
520
|
-
|
|
521
|
-
e.off("close",this,this.close),e.off("toggle",this,this.toggle),this.element.removeEventListener("animationend",this._animationEndHandler)}open(){this.set("isOpen",!0),this.set("closing",!1),this.set("button.isOpen",!0)}close(){this.set("closing",!0),this.button&&this.set("button.isOpen",!1)}toggle(e){
|
|
526
|
+
const e=this.dropdown
|
|
527
|
+
e.off("close",this,this.close),e.off("toggle",this,this.toggle),this.element.removeEventListener("animationend",this._animationEndHandler)}open(){this.set("isOpen",!0),this.set("closing",!1),this.set("button.isOpen",!0)}close(){this.set("closing",!0),this.button&&this.set("button.isOpen",!1)}toggle(e){const t=this.closing,i=this.isOpen,r=this.name,n=e.target
|
|
528
|
+
let a=this.button
|
|
522
529
|
r!==n||i&&!t?i&&this.close():(a||(a=e.button,this.set("button",a)),this.open())}click(){if(super.click(...arguments),this.closeOnClick)return this.close()}},u=d(l.prototype,"dropdown",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d(l.prototype,"fadeIn",[s],Object.getOwnPropertyDescriptor(l.prototype,"fadeIn"),l.prototype),o=l))||o)||o)}),define("ghost-admin/components/gh-editor-feature-image",["exports","@glimmer/component","@tryghost/kg-clean-basic-html"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x
|
|
523
530
|
function S(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function C(e,t,i,r,n){var a={}
|
|
524
531
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -527,7 +534,7 @@ function D(e){return(0,i.cleanBasicHtml)(e||"",{firstChildInnerContent:!0})}func
|
|
|
527
534
|
return i.body.querySelectorAll("span").forEach(e=>{(function(e){return"SPAN"===e.tagName&&1===e.style.length&&"pre-wrap"===e.style.whiteSpace})(e)&&e.replaceWith(...e.childNodes)}),i.body.innerHTML.trim()}let I=e.default=(r=Ember.inject.service,n=Ember._tracked,a=Ember._tracked,s=Ember._tracked,o=Ember._tracked,l=Ember._tracked,u=Ember._action,c=Ember._action,d=Ember._action,p=Ember._action,m=Ember._action,h=Ember._action,b=Ember._action,g=Ember._action,f=Ember._action,v=Ember._action,y=Ember._action,w=Ember._action,E=Ember._action,P=Ember._action,_=class extends t.default{constructor(...e){super(...e),S(this,"settings",k,this),S(this,"isEditingAlt",O,this),S(this,"captionInputFocused",j,this),S(this,"showUnsplashSelector",T,this),S(this,"canDrop",z,this),S(this,"tkCount",x,this)}get caption(){const e=this.args.caption
|
|
528
535
|
return e?function(e){const t=(new DOMParser).parseFromString(e,"text/html")
|
|
529
536
|
return"P"===t.body?.firstElementChild?.tagName}(e)?e:`<p>${e}</p>`:null}setCaption(e){const t=D(e)
|
|
530
|
-
A(t)!==A(this.caption)&&this.args.updateCaption(t)}registerEditorAPI(e){this.editorAPI=e}focusCaptionEditor(){this.editorAPI&&this.editorAPI.focusEditor({position:"bottom"})}handleCaptionBlur(){this.captionInputFocused=!1,this.args.handleCaptionBlur()}setUploadedImage(e){e[0]&&this.args.updateImage(e[0].url)}setUnsplashImage({src:e,caption:t}){this.args.updateImage(e),this.args.updateCaption(t)}toggleUnsplashSelector(){this.showUnsplashSelector=!this.showUnsplashSelector}toggleAltEditing(){this.isEditingAlt=!this.isEditingAlt}onAltInput(e){this.args.updateAlt(e.target.value)}dragOver(e){if(e.dataTransfer.files){if(navigator.userAgent.indexOf("Chrome")>-1){
|
|
537
|
+
A(t)!==A(this.caption)&&this.args.updateCaption(t)}registerEditorAPI(e){this.editorAPI=e}focusCaptionEditor(){this.editorAPI&&this.editorAPI.focusEditor({position:"bottom"})}handleCaptionBlur(){this.captionInputFocused=!1,this.args.handleCaptionBlur()}setUploadedImage(e){e[0]&&this.args.updateImage(e[0].url)}setUnsplashImage({src:e,caption:t}){this.args.updateImage(e),this.args.updateCaption(t)}toggleUnsplashSelector(){this.showUnsplashSelector=!this.showUnsplashSelector}toggleAltEditing(){this.isEditingAlt=!this.isEditingAlt}onAltInput(e){this.args.updateAlt(e.target.value)}dragOver(e){if(e.dataTransfer.files){if(navigator.userAgent.indexOf("Chrome")>-1){const t=e.dataTransfer.effectAllowed
|
|
531
538
|
e.dataTransfer.dropEffect="move"===t||"linkMove"===t?"move":"copy"}e.preventDefault(),this.canDrop=!0}}dragLeave(e){e.dataTransfer.files&&(e.preventDefault(),this.canDrop=!1)}drop(e,t){t.dataTransfer.files&&(t.stopPropagation(),t.preventDefault(),this.canDrop=!1,e(t.dataTransfer.files))}saveImage(e,t){this.canDrop=!1,e([t])}onTKCountChange(e){this.args.onTKCountChange&&(this.tkCount=e,this.args.onTKCountChange(e))}},k=C(_.prototype,"settings",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=C(_.prototype,"isEditingAlt",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),j=C(_.prototype,"captionInputFocused",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),T=C(_.prototype,"showUnsplashSelector",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),z=C(_.prototype,"canDrop",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),x=C(_.prototype,"tkCount",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),C(_.prototype,"setCaption",[u],Object.getOwnPropertyDescriptor(_.prototype,"setCaption"),_.prototype),C(_.prototype,"registerEditorAPI",[c],Object.getOwnPropertyDescriptor(_.prototype,"registerEditorAPI"),_.prototype),C(_.prototype,"focusCaptionEditor",[d],Object.getOwnPropertyDescriptor(_.prototype,"focusCaptionEditor"),_.prototype),C(_.prototype,"handleCaptionBlur",[p],Object.getOwnPropertyDescriptor(_.prototype,"handleCaptionBlur"),_.prototype),C(_.prototype,"setUploadedImage",[m],Object.getOwnPropertyDescriptor(_.prototype,"setUploadedImage"),_.prototype),C(_.prototype,"setUnsplashImage",[h],Object.getOwnPropertyDescriptor(_.prototype,"setUnsplashImage"),_.prototype),C(_.prototype,"toggleUnsplashSelector",[b],Object.getOwnPropertyDescriptor(_.prototype,"toggleUnsplashSelector"),_.prototype),C(_.prototype,"toggleAltEditing",[g],Object.getOwnPropertyDescriptor(_.prototype,"toggleAltEditing"),_.prototype),C(_.prototype,"onAltInput",[f],Object.getOwnPropertyDescriptor(_.prototype,"onAltInput"),_.prototype),C(_.prototype,"dragOver",[v],Object.getOwnPropertyDescriptor(_.prototype,"dragOver"),_.prototype),C(_.prototype,"dragLeave",[y],Object.getOwnPropertyDescriptor(_.prototype,"dragLeave"),_.prototype),C(_.prototype,"drop",[w],Object.getOwnPropertyDescriptor(_.prototype,"drop"),_.prototype),C(_.prototype,"saveImage",[E],Object.getOwnPropertyDescriptor(_.prototype,"saveImage"),_.prototype),C(_.prototype,"onTKCountChange",[P],Object.getOwnPropertyDescriptor(_.prototype,"onTKCountChange"),_.prototype),_)
|
|
532
539
|
Ember._setComponentTemplate(M,I)}),define("ghost-admin/components/gh-editor-post-status",["exports","@glimmer/component","ghost-admin/config/environment","ghost-admin/helpers/gh-format-post-time","ember-concurrency"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p,m,h,b,g
|
|
533
540
|
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 v(e,t,i,r,n){var a={}
|
|
@@ -543,9 +550,9 @@ throw new TypeError("@@toPrimitive must return a primitive value.")}return("stri
|
|
|
543
550
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function b(e,t,i,r,n){var a={}
|
|
544
551
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
545
552
|
const g=Ember.HTMLBars.template({id:"vzmLwcPe",block:'{"symbols":["&default"],"statements":[[18,1,[[30,[36,1],null,[["headerHeight","isDraggedOver","droppedFiles","uploadedImageUrls","imageMimeTypes","imageExtensions","uploadComplete","uploadCancelled","uploadImages"],[[32,0,["headerHeight"]],[32,0,["isDraggedOver"]],[32,0,["droppedFiles"]],[32,0,["uploadedImageUrls"]],[32,0,["imageMimeTypes"]],[32,0,["imageExtensions"]],[30,[36,0],[[32,0],"uploadComplete"],null],[30,[36,0],[[32,0],"uploadCancelled"],null],[30,[36,0],[[32,0],"uploadImages"],null]]]]]],[2,"\\n"]],"hasEval":false,"upvars":["action","hash"]}',moduleName:"ghost-admin/components/gh-editor.hbs"})
|
|
546
|
-
let f=e.default=(r=(0,i.classNameBindings)("isDraggedOver:-drag-over","isPreview:gh-editor-preview"),n=Ember.inject.service,a=Ember.inject.service,s=Ember._action,o=Ember._action,l=Ember._action,r((c=class extends Ember.Component{constructor(...e){super(...e),m(this,"feature",d,this),m(this,"ui",p,this),h(this,"droppedFiles",null),h(this,"headerHeight",0),h(this,"imageExtensions",t.IMAGE_EXTENSIONS),h(this,"imageMimeTypes",t.IMAGE_MIME_TYPES),h(this,"isDraggedOver",!1),h(this,"uploadedImageUrls",null),h(this,"_dragCounter",0),h(this,"_onResizeHandler",null),h(this,"_viewActionsWidth",190)}uploadImages(e,t){
|
|
547
|
-
this.set("droppedFiles",i),t()}uploadComplete(e){this.set("uploadedImageUrls",e.mapBy("url")),this.set("droppedFiles",null)}uploadCancelled(){this.set("droppedFiles",null)}_setHeaderHeight(){if(this.headerClass&&this._editorTitleElement){
|
|
548
|
-
return this.set("headerHeight",e)}this.set("headerHeight",0)}dragOver(e){if(e.dataTransfer){if(navigator.userAgent.indexOf("Chrome")>-1){
|
|
553
|
+
let f=e.default=(r=(0,i.classNameBindings)("isDraggedOver:-drag-over","isPreview:gh-editor-preview"),n=Ember.inject.service,a=Ember.inject.service,s=Ember._action,o=Ember._action,l=Ember._action,r((c=class extends Ember.Component{constructor(...e){super(...e),m(this,"feature",d,this),m(this,"ui",p,this),h(this,"droppedFiles",null),h(this,"headerHeight",0),h(this,"imageExtensions",t.IMAGE_EXTENSIONS),h(this,"imageMimeTypes",t.IMAGE_MIME_TYPES),h(this,"isDraggedOver",!1),h(this,"uploadedImageUrls",null),h(this,"_dragCounter",0),h(this,"_onResizeHandler",null),h(this,"_viewActionsWidth",190)}uploadImages(e,t){const i=Array.from(e)
|
|
554
|
+
this.set("droppedFiles",i),t()}uploadComplete(e){this.set("uploadedImageUrls",e.mapBy("url")),this.set("droppedFiles",null)}uploadCancelled(){this.set("droppedFiles",null)}_setHeaderHeight(){if(this.headerClass&&this._editorTitleElement){const e=this._editorTitleElement.offsetHeight
|
|
555
|
+
return this.set("headerHeight",e)}this.set("headerHeight",0)}dragOver(e){if(e.dataTransfer){if(navigator.userAgent.indexOf("Chrome")>-1){const t=e.dataTransfer.effectAllowed
|
|
549
556
|
e.dataTransfer.dropEffect="move"===t||"linkMove"===t?"move":"copy"}e.preventDefault(),e.stopPropagation()}}dragEnter(e){e.dataTransfer&&(e.preventDefault(),e.stopPropagation(),this._dragCounter+=1,this.set("isDraggedOver",!0))}dragLeave(e){e.preventDefault(),e.stopPropagation(),this._dragCounter-=1,0===this._dragCounter&&this.set("isDraggedOver",!1)}drop(e){e.preventDefault(),e.stopPropagation(),this._dragCounter=0,this.set("isDraggedOver",!1),e.dataTransfer.files&&this.set("droppedFiles",e.dataTransfer.files)}},d=b(c.prototype,"feature",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=b(c.prototype,"ui",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b(c.prototype,"uploadImages",[s],Object.getOwnPropertyDescriptor(c.prototype,"uploadImages"),c.prototype),b(c.prototype,"uploadComplete",[o],Object.getOwnPropertyDescriptor(c.prototype,"uploadComplete"),c.prototype),b(c.prototype,"uploadCancelled",[l],Object.getOwnPropertyDescriptor(c.prototype,"uploadCancelled"),c.prototype),u=c))||u)
|
|
550
557
|
Ember._setComponentTemplate(g,f)}),define("ghost-admin/components/gh-email-preview-link",["exports","@glimmer/component","ghost-admin/components/modals/email-preview"],function(e,t,i){var r,n,a,s
|
|
551
558
|
function o(e,t,i,r,n){var a={}
|
|
@@ -555,8 +562,9 @@ let u=e.default=(r=Ember.inject.service,n=Ember._action,a=class extends t.defaul
|
|
|
555
562
|
super(...e),t=this,i="modals",n=this,(r=s)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}openPreview(e){return e.preventDefault(),this.modals.open(i.default,this.args.data)}},s=o(a.prototype,"modals",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(a.prototype,"openPreview",[n],Object.getOwnPropertyDescriptor(a.prototype,"openPreview"),a.prototype),a)
|
|
556
563
|
Ember._setComponentTemplate(l,u)}),define("ghost-admin/components/gh-error-message",["exports","@glimmer/component"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
557
564
|
const i=Ember.HTMLBars.template({id:"mftrBN6Q",block:'{"symbols":["&attrs"],"statements":[[11,"p"],[24,0,"response"],[16,"hidden",[30,[36,0],[[32,0,["message"]],false,true],null]],[17,1],[12],[2,"\\n "],[1,[32,0,["message"]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["if"]}',moduleName:"ghost-admin/components/gh-error-message.hbs"})
|
|
558
|
-
class r extends t.default{get message(){
|
|
559
|
-
|
|
565
|
+
class r extends t.default{get message(){const{property:e,errors:t}=this.args,i=[]
|
|
566
|
+
let r
|
|
567
|
+
return!Ember.isEmpty(t)&&t.get(e)?(t.get(e).forEach(e=>{i.push(e)}),r=Math.floor(Math.random()*i.length),i[r].message):""}}e.default=r,Ember._setComponentTemplate(i,r)}),define("ghost-admin/components/gh-facebook-url-input",["exports","@glimmer/component","validator"],function(e,t,i){var r,n,a
|
|
560
568
|
function s(e,t,i,r,n){var a={}
|
|
561
569
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
562
570
|
const o=Ember.HTMLBars.template({id:"8DF34ihK",block:'{"symbols":["&attrs"],"statements":[[11,"input"],[24,0,"gh-input"],[24,"placeholder","https://www.facebook.com/username"],[16,2,[32,0,["value"]]],[24,"data-test-facebook-input",""],[17,1],[24,4,"url"],[4,[38,0],["input",[32,0,["setScratchValue"]]],null],[4,[38,0],["blur",[32,0,["setFacebookUrl"]]],null],[12],[13],[2,"\\n"]],"hasEval":false,"upvars":["on"]}',moduleName:"ghost-admin/components/gh-facebook-url-input.hbs"})
|
|
@@ -586,8 +594,8 @@ return this.inputElement=t,e.parentNode.replaceChild(t,e),t}files(e){return(e.or
|
|
|
586
594
|
Ember._setComponentTemplate(l,u)}),define("ghost-admin/components/gh-form-group",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
587
595
|
const t=Ember.HTMLBars.template({id:"td1Xg+ju",block:'{"symbols":["&attrs","@hasValidated","@property","@errors","&default"],"statements":[[11,"div"],[24,0,"form-group"],[17,1],[4,[38,0],null,[["errors","property","hasValidated"],[[32,4],[32,3],[32,2]]]],[12],[2,"\\n "],[18,5,null],[2,"\\n"],[13]],"hasEval":false,"upvars":["validation-status"]}',moduleName:"ghost-admin/components/gh-form-group.hbs"})
|
|
588
596
|
e.default=Ember._setComponentTemplate(t,Ember._templateOnlyComponent())}),define("ghost-admin/components/gh-fullscreen-modal",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
589
|
-
const t=Ember.HTMLBars.template({id:"e8UfH2Ep",block:'{"symbols":["ModalComponent","&default"],"statements":[[8,"liquid-wormhole",[],[["@class"],["fullscreen-modal-container"]],[["default"],[{"statements":[[2,"\\n "],[11,"div"],[24,0,"fullscreen-modal-background"],[4,[38,0],[[32,0],"clickOverlay","background"],null],[12],[13],[2,"\\n "],[10,"div"],[15,0,[32,0,["modalClasses"]]],[12],[2,"\\n"],[6,[37,4],[[27,[32,2]]],null,[["default","else"],[{"statements":[[2," "],[18,2,null],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],[[32,0,["modalPath"]]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,1],[],[["@model","@confirm","@closeModal","@modifier","@updateModifier"],[[32,0,["model"]],[30,[36,0],[[32,0],"confirm"],null],[30,[36,0],[[32,0],"close"],null],[32,0,["modifier"]],[30,[36,0],[[32,0],[30,[36,1],[[32,0,["modifier"]]],null]],null]]],null],[2,"\\n"]],"parameters":[1]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["action","mut","component","let","if"]}',moduleName:"ghost-admin/components/gh-fullscreen-modal.hbs"}),i=Ember.Component.extend({dropdown:Ember.inject.service(),model:null,modifier:null,modalPath:Ember.computed("modal",function(){return`modal-${this.modal||"unknown"}`}),modalClasses:Ember.computed("modifier",function(){
|
|
590
|
-
return t.forEach(t=>{if(!Ember.isBlank(t)){
|
|
597
|
+
const t=Ember.HTMLBars.template({id:"e8UfH2Ep",block:'{"symbols":["ModalComponent","&default"],"statements":[[8,"liquid-wormhole",[],[["@class"],["fullscreen-modal-container"]],[["default"],[{"statements":[[2,"\\n "],[11,"div"],[24,0,"fullscreen-modal-background"],[4,[38,0],[[32,0],"clickOverlay","background"],null],[12],[13],[2,"\\n "],[10,"div"],[15,0,[32,0,["modalClasses"]]],[12],[2,"\\n"],[6,[37,4],[[27,[32,2]]],null,[["default","else"],[{"statements":[[2," "],[18,2,null],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,3],[[30,[36,2],[[32,0,["modalPath"]]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,1],[],[["@model","@confirm","@closeModal","@modifier","@updateModifier"],[[32,0,["model"]],[30,[36,0],[[32,0],"confirm"],null],[30,[36,0],[[32,0],"close"],null],[32,0,["modifier"]],[30,[36,0],[[32,0],[30,[36,1],[[32,0,["modifier"]]],null]],null]]],null],[2,"\\n"]],"parameters":[1]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":["action","mut","component","let","if"]}',moduleName:"ghost-admin/components/gh-fullscreen-modal.hbs"}),i=Ember.Component.extend({dropdown:Ember.inject.service(),model:null,modifier:null,modalPath:Ember.computed("modal",function(){return`modal-${this.modal||"unknown"}`}),modalClasses:Ember.computed("modifier",function(){const e="fullscreen-modal",t=(this.modifier||"").split(" "),i=Ember.A([e])
|
|
598
|
+
return t.forEach(t=>{if(!Ember.isBlank(t)){const r=`${e}-${t}`
|
|
591
599
|
i.push(r)}}),i.join(" ")}),didInsertElement(){this._super(...arguments),Ember.run.schedule("afterRender",this,function(){this.dropdown.closeDropdowns()})},actions:{close(){return this.close(...arguments)},confirm(){return this.confirm(...arguments)},clickOverlay(){this.send("close",...arguments)}},close:()=>Ember.RSVP.resolve(),confirm:()=>Ember.RSVP.resolve()})
|
|
592
600
|
e.default=Ember._setComponentTemplate(t,i)}),define("ghost-admin/components/gh-html-iframe",["exports","@glimmer/component"],function(e,t){var i,r,n,a
|
|
593
601
|
function s(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
@@ -606,23 +614,25 @@ const t=Ember.HTMLBars.template({id:"KZHFkt9v",block:'{"symbols":["@text","@altT
|
|
|
606
614
|
e.default=Ember._setComponentTemplate(t,Ember._templateOnlyComponent())}),define("ghost-admin/components/gh-image-uploader",["exports","ghost-admin/utils/ghost-paths","ghost-admin/services/notifications","ghost-admin/services/ajax","ghost-admin/decorators/inject"],function(e,t,i,r,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.IMAGE_PARAMS=e.IMAGE_MIME_TYPES=e.IMAGE_EXTENSIONS=e.ICON_PARAMS=e.ICON_MIME_TYPES=e.ICON_EXTENSIONS=void 0
|
|
607
615
|
const a=Ember.HTMLBars.template({id:"O0GXIkY4",block:'{"symbols":[],"statements":[[6,[37,4],[[32,0,["file"]]],null,[["default","else"],[{"statements":[[6,[37,4],[[32,0,["failureMessage"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"failed"],[12],[1,[32,0,["failureMessage"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"div"],[14,0,"progress-container"],[12],[2,"\\n "],[10,"div"],[14,0,"progress"],[12],[2,"\\n "],[10,"div"],[15,0,[31,["bar ",[30,[36,4],[[32,0,["failureMessage"]],"fail"],null]]]],[15,5,[32,0,["progressStyle"]]],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,4],[[32,0,["failureMessage"]]],null,[["default"],[{"statements":[[2," "],[11,"button"],[24,0,"gh-btn gh-btn-green"],[24,4,"button"],[4,[38,0],[[32,0],"reset"],null],[12],[10,"span"],[12],[2,"Try Again"],[13],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"upload-form"],[12],[2,"\\n "],[8,"gh-file-input",[],[["@multiple","@alt","@action","@accept"],[false,[32,0,["description"]],[30,[36,0],[[32,0],"fileSelected"],null],[32,0,["accept"]]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-btn gh-btn-white"],[14,"data-test-file-input-description",""],[12],[10,"span"],[12],[1,[32,0,["description"]]],[13],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n"],[6,[37,4],[[30,[36,3],[[32,0,["allowUnsplash"]],[32,0,["settings","unsplash"]]],null]],null,[["default"],[{"statements":[[2," "],[11,"div"],[24,0,"gh-image-uploader-unsplash"],[4,[38,0],[[32,0],[30,[36,1],["_showUnsplash",[32,0]],null]],null],[12],[2,"\\n "],[1,[30,[36,2],["unsplash"],null]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,4],[[32,0,["_showUnsplash"]]],null,[["default"],[{"statements":[[2," "],[8,"gh-unsplash",[],[["@select","@close"],[[30,[36,0],[[32,0],"addUnsplashPhoto"],null],[30,[36,0],[[32,0],[30,[36,1],["_showUnsplash",[32,0]],null]],null]]],null],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["action","toggle","svg-jar","and","if"]}',moduleName:"ghost-admin/components/gh-image-uploader.hbs"}),s=e.IMAGE_MIME_TYPES="image/gif,image/jpg,image/jpeg,image/png,image/svg+xml,image/webp",o=e.IMAGE_EXTENSIONS=["gif","jpg","jpeg","png","svg","svgz","webp"],l=e.IMAGE_PARAMS={purpose:"image"}
|
|
608
616
|
e.ICON_EXTENSIONS=["gif","ico","jpg","jpeg","png","svg","svgz","webp"],e.ICON_MIME_TYPES="image/x-icon,image/vnd.microsoft.icon,image/gif,image/jpg,image/jpeg,image/png,image/svg+xml,image/webp",e.ICON_PARAMS={purpose:"icon"}
|
|
609
|
-
e.default=Ember._setComponentTemplate(a,Ember.Component.extend({ajax:Ember.inject.service(),notifications:Ember.inject.service(),settings:Ember.inject.service(),tagName:"section",classNames:["gh-image-uploader"],classNameBindings:["dragClass"],image:null,text:"",altText:"",saveButton:!0,accept:"",extensions:null,uploadUrl:null,paramName:"file",paramsHash:null,resourceName:"images",validate:null,allowUnsplash:!1,dragClass:null,failureMessage:null,file:null,url:null,uploadPercentage:0,_defaultAccept:s,_defaultExtensions:o,_defaultUploadUrl:"/images/upload/",_defaultParamsHash:l,_showUnsplash:!1,fileSelected:()=>{},update:()=>{},uploadStarted:()=>{},uploadFinished:()=>{},uploadSuccess:()=>{},uploadFailed:()=>{},config:(0,n.inject)(),formData:Ember.computed("file",function(){
|
|
610
|
-
return t.append(this.paramName,e),Object.keys(this.paramsHash||{}).forEach(e=>{t.append(e,this.paramsHash[e])}),t}),description:Ember.computed("text","altText",function(){
|
|
611
|
-
return this.text||(e?`Upload image of "${e}"`:"Upload an image")}),progressStyle:Ember.computed("uploadPercentage",function(){
|
|
617
|
+
e.default=Ember._setComponentTemplate(a,Ember.Component.extend({ajax:Ember.inject.service(),notifications:Ember.inject.service(),settings:Ember.inject.service(),tagName:"section",classNames:["gh-image-uploader"],classNameBindings:["dragClass"],image:null,text:"",altText:"",saveButton:!0,accept:"",extensions:null,uploadUrl:null,paramName:"file",paramsHash:null,resourceName:"images",validate:null,allowUnsplash:!1,dragClass:null,failureMessage:null,file:null,url:null,uploadPercentage:0,_defaultAccept:s,_defaultExtensions:o,_defaultUploadUrl:"/images/upload/",_defaultParamsHash:l,_showUnsplash:!1,fileSelected:()=>{},update:()=>{},uploadStarted:()=>{},uploadFinished:()=>{},uploadSuccess:()=>{},uploadFailed:()=>{},config:(0,n.inject)(),formData:Ember.computed("file",function(){const e=this.file,t=new FormData
|
|
618
|
+
return t.append(this.paramName,e),Object.keys(this.paramsHash||{}).forEach(e=>{t.append(e,this.paramsHash[e])}),t}),description:Ember.computed("text","altText",function(){const e=this.altText
|
|
619
|
+
return this.text||(e?`Upload image of "${e}"`:"Upload an image")}),progressStyle:Ember.computed("uploadPercentage",function(){const e=this.uploadPercentage
|
|
620
|
+
let t=""
|
|
612
621
|
return t=e>0?`${e}%`:"0",Ember.String.htmlSafe(`width: ${t}`)}),init(){this._super(...arguments),this.accept||this.set("accept",this._defaultAccept),this.extensions||this.set("extensions",this._defaultExtensions),this.uploadUrl||this.set("uploadUrl",this._defaultUploadUrl),this.paramsHash||this.set("paramsHash",this._defaultParamsHash)},didReceiveAttrs(){this._super(...arguments)
|
|
613
|
-
|
|
614
|
-
this.set("url",e)},actions:{fileSelected(e,t){
|
|
615
|
-
this.set("file",i),this.fileSelected(i),!0===r?Ember.run.schedule("actions",this,function(){this.generateRequest(),t&&t()}):(this._uploadFailed(r),t&&t())},addUnsplashPhoto({src:e}){this.set("url",e),this.send("saveUrl")},reset(){this.set("file",null),this.set("uploadPercentage",0)},saveUrl(){
|
|
616
|
-
this.update(e)}},dragOver(e){if(e.dataTransfer){if(navigator.userAgent.indexOf("Chrome")>-1){
|
|
617
|
-
e.dataTransfer.dropEffect="move"===t||"linkMove"===t?"move":"copy"}e.stopPropagation(),e.preventDefault(),this.set("dragClass","-drag-over")}},dragLeave(e){e.preventDefault(),this.set("dragClass",null)},drop(e){e.preventDefault(),this.set("dragClass",null),e.dataTransfer.files&&this.send("fileSelected",e.dataTransfer.files)},_uploadProgress(e){e.lengthComputable&&Ember.run(()=>{
|
|
622
|
+
const e=this.image
|
|
623
|
+
this.set("url",e)},actions:{fileSelected(e,t){const i=e[0],r=this._validate(i)
|
|
624
|
+
this.set("file",i),this.fileSelected(i),!0===r?Ember.run.schedule("actions",this,function(){this.generateRequest(),t&&t()}):(this._uploadFailed(r),t&&t())},addUnsplashPhoto({src:e}){this.set("url",e),this.send("saveUrl")},reset(){this.set("file",null),this.set("uploadPercentage",0)},saveUrl(){const e=this.url
|
|
625
|
+
this.update(e)}},dragOver(e){if(e.dataTransfer){if(navigator.userAgent.indexOf("Chrome")>-1){const t=e.dataTransfer.effectAllowed
|
|
626
|
+
e.dataTransfer.dropEffect="move"===t||"linkMove"===t?"move":"copy"}e.stopPropagation(),e.preventDefault(),this.set("dragClass","-drag-over")}},dragLeave(e){e.preventDefault(),this.set("dragClass",null)},drop(e){e.preventDefault(),this.set("dragClass",null),e.dataTransfer.files&&this.send("fileSelected",e.dataTransfer.files)},_uploadProgress(e){e.lengthComputable&&Ember.run(()=>{const t=Math.round(e.loaded/e.total*100)
|
|
618
627
|
this.isDestroyed||this.isDestroying||this.set("uploadPercentage",t)})},_uploadSuccess(e){let t,i
|
|
619
|
-
try{t=JSON.parse(e)}catch(r){if(!(r instanceof SyntaxError))throw r}if(t){
|
|
628
|
+
try{t=JSON.parse(e)}catch(r){if(!(r instanceof SyntaxError))throw r}if(t){const e=Ember.get(t,this.resourceName)
|
|
620
629
|
e&&Ember.isArray(e)&&e[0]&&(i=Ember.get(e[0],"url"))}this.set("url",i),this.send("saveUrl"),this.send("reset"),this.uploadSuccess(i)},_uploadFailed(e){let t
|
|
621
630
|
if((0,r.isVersionMismatchError)(e)&&this.notifications.showAPIError(e),(0,r.isUnsupportedMediaTypeError)(e)){let e=this.extensions.join(", .").toUpperCase()
|
|
622
631
|
e=`.${e}`,t=`The image type you uploaded is not supported. Please use ${e}`}else(0,r.isRequestEntityTooLargeError)(e)?t="The image you uploaded was larger than the maximum file size your server allows.":Ember.isBlank(e.payload?.errors?.[0]?.message)?(console.error(e),t=i.GENERIC_ERROR_MESSAGE):t=e.payload.errors[0].message
|
|
623
|
-
this.set("failureMessage",t),this.uploadFailed(e)},generateRequest(){
|
|
624
|
-
this.uploadStarted(),e.post(n,{data:i,processData:!1,contentType:!1,dataType:"text",xhr:()=>{
|
|
625
|
-
return e.upload.addEventListener("progress",e=>{this._uploadProgress(e)},!1),e}}).then(e=>{this._uploadSuccess(e)}).catch(e=>{this._uploadFailed(e)}).finally(()=>{this.uploadFinished()})},_validate(e){return this.validate?this.validate(e):this._defaultValidator(e)},_defaultValidator(e){let t=this.extensions
|
|
632
|
+
this.set("failureMessage",t),this.uploadFailed(e)},generateRequest(){const e=this.ajax,i=this.formData,r=this.uploadUrl,n=`${(0,t.default)().apiRoot}${r}`
|
|
633
|
+
this.uploadStarted(),e.post(n,{data:i,processData:!1,contentType:!1,dataType:"text",xhr:()=>{const e=new window.XMLHttpRequest
|
|
634
|
+
return e.upload.addEventListener("progress",e=>{this._uploadProgress(e)},!1),e}}).then(e=>{this._uploadSuccess(e)}).catch(e=>{this._uploadFailed(e)}).finally(()=>{this.uploadFinished()})},_validate(e){return this.validate?this.validate(e):this._defaultValidator(e)},_defaultValidator(e){let t=this.extensions
|
|
635
|
+
const[,i]=/(?:\.([^.]+))?$/.exec(e.name)
|
|
626
636
|
return Ember.isArray(t)||(t=t.split(",")),!(!i||-1===t.indexOf(i.toLowerCase()))||new r.UnsupportedMediaTypeError}}))}),define("ghost-admin/components/gh-infinity-loader",["exports","ember-infinity/components/infinity-loader"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
627
637
|
const i=Ember.HTMLBars.template({id:"rGAge57H",block:'{"symbols":["&default"],"statements":[[6,[37,0],[[32,0,["isVisible"]]],null,[["default"],[{"statements":[[2," "],[11,"div"],[16,0,[31,[[32,0,["loaderClassNames"]],[30,[36,0],[[32,0,["viewportEntered"]]," in-viewport"],null],[30,[36,0],[[32,0,["isDoneLoading"]]," reached-infinity"],null]]]],[24,"data-test-infinity-loader",""],[4,[38,1],[[32,0,["didInsertLoader"]],[32,0]],null],[12],[2,"\\n\\n"],[6,[37,0],[[27,[32,1]]],null,[["default","else"],[{"statements":[[2," "],[18,1,[[32,0,["infinityModelContent"]]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,0],[[32,0,["isDoneLoading"]]],null,[["default","else"],[{"statements":[],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"gh-loading-spinner"],[12],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["if","did-insert"]}',moduleName:"ghost-admin/components/gh-infinity-loader.hbs"})
|
|
628
638
|
class r extends t.default{}e.default=r,Ember._setComponentTemplate(i,r)}),define("ghost-admin/components/gh-input-with-select/index",["exports","@glimmer/component","ember-power-select/utils/group-utils"],function(e,t,i){var r,n,a,s,o
|
|
@@ -631,7 +641,7 @@ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerabl
|
|
|
631
641
|
const u=Ember.HTMLBars.template({id:"UyAmA6Gj",block:'{"symbols":["Select","option","term","&default","@suggestedOptionComponent","@afterOptionsComponent","@allowClear","@ariaDescribedBy","@ariaInvalid","@ariaLabel","@ariaLabelledBy","@buildSelection","@calculatePosition","@class","@closeOnSelect","@defaultHighlighted","@destination","@dir","@disabled","@dropdownClass","@closeWhenEmpty","@openOnFocus","@autofocus","@value","@extra","@groupComponent","@highlightOnHover","@horizontalPosition","@initiallyOpened","@loadingMessage","@matchTriggerWidth","@noMatchesMessage","@onBlur","@onClose","@onFocus","@onInput","@onKeydown","@onOpen","@options","@optionsComponent","@placeholder","@placeholderComponent","@preventScroll","@registerAPI","@renderInPlace","@scrollTo","@searchField","@searchMessage","@searchMessageComponent","@searchPlaceholder","@selected","@selectedItemComponent","@triggerClass","@tabindex","@triggerComponent","@triggerId","@triggerRole","@typeAheadMatcher","@verticalPosition","&attrs","@powerSelectComponentName"],"statements":[[6,[37,5],[[30,[36,1],[[30,[36,0],[[32,61],"power-select"],null]],null]],null,[["default"],[{"statements":[[2," "],[8,[32,1],[[17,60]],[["@afterOptionsComponent","@allowClear","@ariaDescribedBy","@ariaInvalid","@ariaLabel","@ariaLabelledBy","@beforeOptionsComponent","@buildSelection","@calculatePosition","@class","@closeOnSelect","@defaultHighlighted","@destination","@dir","@disabled","@dropdownClass","@extra","@groupComponent","@highlightOnHover","@horizontalPosition","@initiallyOpened","@loadingMessage","@matchTriggerWidth","@matcher","@noMatchesMessage","@onBlur","@onChange","@onClose","@onFocus","@onInput","@onKeydown","@onOpen","@options","@optionsComponent","@placeholder","@placeholderComponent","@preventScroll","@registerAPI","@renderInPlace","@scrollTo","@search","@searchEnabled","@searchField","@searchMessage","@searchMessageComponent","@searchPlaceholder","@selected","@selectedItemComponent","@tabindex","@triggerClass","@triggerComponent","@triggerId","@triggerRole","@typeAheadMatcher","@verticalPosition"],[[32,6],[32,7],[32,8],[32,9],[32,10],[32,11],[32,0,["beforeOptionsComponent"]],[32,12],[32,13],[32,14],[32,15],[32,16],[32,17],[32,18],[32,19],[32,20],[30,[36,3],[[32,25],[30,[36,2],null,[["value","autofocus","openOnFocus","closeWhenEmpty"],[[32,24],[32,23],[32,22],[32,21]]]]],null],[32,26],[32,27],[32,28],[32,29],[32,30],[32,31],[32,0,["matcher"]],[30,[36,0],[[32,32],""],null],[32,33],[32,0,["selectOrCreate"]],[32,34],[32,35],[32,36],[32,37],[32,38],[32,39],[32,40],[32,41],[32,42],[32,43],[32,44],[32,45],[32,46],[32,0,["searchAndSuggest"]],false,[30,[36,0],[[32,47],"name"],null],[32,48],[32,49],[32,50],[32,51],[32,52],"-1",[31,["ember-power-select-multiple-trigger gh-input-with-select-trigger ",[32,53]]],[30,[36,1],[[30,[36,0],[[32,55],"gh-input-with-select/trigger"],null]],[["tabindex"],[[32,54]]]],[32,56],[32,57],[32,58],[32,59]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,4],[[32,2,["__isSuggestion__"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,1],[[30,[36,0],[[32,5],"gh-input-with-select/suggested-option"],null]],[["option","term"],[[32,2],[32,3]]]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[18,4,[[32,2],[32,3]]],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[2,3]}]]],[2,"\\n"]],"parameters":[1]}]]]],"hasEval":false,"upvars":["or","component","hash","assign","if","let"]}',moduleName:"ghost-admin/components/gh-input-with-select/index.hbs"})
|
|
632
642
|
let c=e.default=(r=Ember._tracked,n=Ember._action,a=Ember._action,s=class extends t.default{constructor(...e){var t,i,r,n
|
|
633
643
|
super(...e),t=this,i="searchEnabled",n=this,(r=o)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}get matcher(){return this.args.matcher||i.defaultMatcher}get valueField(){return this.args.valueField||"name"}shouldShowCreateOption(e,t){return!!this.args.showCreate||!!this.args.showCreateWhen&&this.args.showCreateWhen(e,t)}addCreateOption(e,t){this.shouldShowCreateOption(e,t)&&("bottom"===this.args.showCreatePosition?t.push(this.buildSuggestionForTerm(e)):t.unshift(this.buildSuggestionForTerm(e)))}searchAndSuggest(e,t){return Ember.RSVP.resolve(this.args.options).then(i=>{if(0===e.length)return i
|
|
634
|
-
|
|
644
|
+
const r=this.args.search
|
|
635
645
|
return r?Ember.RSVP.resolve(r(e,t)).then(t=>(t.toArray&&(t=t.toArray()),this.addCreateOption(e,t),t)):(i=this.filter(i,e),this.addCreateOption(e,i),i)})}selectOrCreate(e,t,i){if(t&&!t.isOpen)return
|
|
636
646
|
const r=e.__value__||Ember.get(e,this.valueField)
|
|
637
647
|
return this.args.onChange?this.args.onChange(r,t,i):this.args.onInput(r,t,i)}filter(e,t){let r
|
|
@@ -649,7 +659,7 @@ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enum
|
|
|
649
659
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
650
660
|
const h=Ember.HTMLBars.template({id:"TOfCvOVj",block:'{"symbols":["@extra","@placeholder","@select"],"statements":[[6,[37,1],[[32,1,["inputIcon"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],[[32,1,["inputIcon"]]],[["class"],[[32,1,["inputIconClass"]]]]]],[2,"\\n"]],"parameters":[]}]]],[11,"input"],[24,0,"gh-input-with-select-input"],[16,"autofocus",[32,1,["autofocus"]]],[24,"autocomplete","off"],[24,"autocorrect","off"],[24,"autocapitalize","off"],[16,2,[32,1,["value"]]],[24,3,"selectSearchTerm"],[24,"spellcheck","false"],[16,"placeholder",[32,2]],[16,"disabled",[32,3,["disabled"]]],[16,"aria-label",[32,1,["label"]]],[16,4,[30,[36,2],[[32,1,["inputType"]],"text"],null]],[4,[38,3],[[32,0,["registerInput"]]],null],[4,[38,4],[[32,0,["closeWhenEmpty"]],[32,3,["results"]]],null],[4,[38,5],["input",[32,0,["handleInput"]]],null],[4,[38,5],["keydown",[32,0,["handleKeydown"]]],null],[4,[38,5],["keyup",[32,0,["handleKeyup"]]],null],[4,[38,5],["focus",[32,0,["handleFocus"]]],null],[4,[38,5],["blur",[32,0,["handleBlur"]]],null],[12],[13]],"hasEval":false,"upvars":["svg-jar","if","or","did-insert","did-update","on"]}',moduleName:"ghost-admin/components/gh-input-with-select/trigger.hbs"})
|
|
651
661
|
let b=e.default=(i=Ember.inject.service,r=Ember._action,n=Ember._action,a=Ember._action,s=Ember._action,o=Ember._action,l=Ember._action,u=Ember._action,c=class extends t.default{constructor(){var e,t,i,r
|
|
652
|
-
super(...arguments),e=this,t="dropdown",r=this,(i=d)&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0}),p(this,"inputElem",null),this.dropdown.on("close",this,this.closeFromDropdown)}willDestroy(){super.willDestroy(...arguments),this.dropdown.off("close",this,this.closeFromDropdown)}closeFromDropdown(){this.args.select.actions.close()}registerInput(e){this.inputElem=e,this.args.extra?.autofocus&&this.inputElem.focus()}handleInput(e){
|
|
662
|
+
super(...arguments),e=this,t="dropdown",r=this,(i=d)&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0}),p(this,"inputElem",null),this.dropdown.on("close",this,this.closeFromDropdown)}willDestroy(){super.willDestroy(...arguments),this.dropdown.off("close",this,this.closeFromDropdown)}closeFromDropdown(){this.args.select.actions.close()}registerInput(e){this.inputElem=e,this.args.extra?.autofocus&&this.inputElem.focus()}handleInput(e){const t=e.target.value
|
|
653
663
|
Ember.isBlank(t)===this.args.select.isOpen&&(Ember.isBlank(t)?this.close():this.open()),this.args.onInput?.(e)}handleKeydown(e){("Escape"===e.key&&e.target.value||"Enter"===e.key)&&(this._previousKeyScope=key.getScope(),key.setScope("ignore"))}handleKeyup(){"ignore"===key.getScope()&&key.setScope(this._previousKeyScope)}handleFocus(){this.args.extra?.openOnFocus&&this.args.select.results.length>0&&this.open(),this.args.onFocus?.(...arguments),!1===this.args.extra.showSearchMessage&&0===this.args.select.results.length&&this.close()}handleBlur(e){if(e?.relatedTarget){const t=this.inputElem.closest(".ember-basic-dropdown-trigger")
|
|
654
664
|
e.relatedTarget.closest(".ember-basic-dropdown-trigger")!==t&&(this.args.select.actions.search(""),this.close())}this.args.extra?.value&&this.args.select.searchText===this.args.extra.value&&(this.args.select.actions.search(""),this.close()),this.args.onBlur?.(...arguments)}closeWhenEmpty(){document.activeElement===this.inputElem&&this.args.extra?.closeWhenEmpty&&(this.args.select.results.length>0&&this.open(),0===this.args.select.results.length&&this.close())}open(){this.args.select.isOpen||this.args.select.actions.open(null,!0)}close(){this.args.select.isOpen&&this.args.select.actions.close(null,!0)}},d=m(c.prototype,"dropdown",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m(c.prototype,"registerInput",[r],Object.getOwnPropertyDescriptor(c.prototype,"registerInput"),c.prototype),m(c.prototype,"handleInput",[n],Object.getOwnPropertyDescriptor(c.prototype,"handleInput"),c.prototype),m(c.prototype,"handleKeydown",[a],Object.getOwnPropertyDescriptor(c.prototype,"handleKeydown"),c.prototype),m(c.prototype,"handleKeyup",[s],Object.getOwnPropertyDescriptor(c.prototype,"handleKeyup"),c.prototype),m(c.prototype,"handleFocus",[o],Object.getOwnPropertyDescriptor(c.prototype,"handleFocus"),c.prototype),m(c.prototype,"handleBlur",[l],Object.getOwnPropertyDescriptor(c.prototype,"handleBlur"),c.prototype),m(c.prototype,"closeWhenEmpty",[u],Object.getOwnPropertyDescriptor(c.prototype,"closeWhenEmpty"),c.prototype),c)
|
|
655
665
|
Ember._setComponentTemplate(h,b)}),define("ghost-admin/components/gh-koenig-editor-lexical",["exports","@glimmer/component","ghost-admin/utils/ghost-paths"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T
|
|
@@ -673,7 +683,7 @@ document.execCommand("insertText",!1,i)}focusTitle(){this.titleElement.focus()}o
|
|
|
673
683
|
if("Enter"===t&&(e.preventDefault(),this.excerptElement?.focus()),("ArrowDown"===t||"ArrowRight"===t)&&!e.shiftKey){(!i||r===i.length)&&(e.preventDefault(),this.excerptElement?.focus())}}else{const{editorAPI:t}=this
|
|
674
684
|
if(!t||e.originalEvent.isComposing)return
|
|
675
685
|
const{key:i}=e,{value:r,selectionStart:n}=e.target,a=!r||n===r.length,s=["ArrowDown","ArrowRight"].includes(i)&&a;("Enter"===i||"Tab"===i||s)&&(e.preventDefault(),"Enter"!==i||t.editorIsEmpty()?t.focusEditor({position:"top"}):t.insertParagraphAtTop({focus:!0}))}}registerExcerptElement(e){this.excerptElement=e}focusExcerpt(){this.excerptElement?.focus(),setTimeout(()=>{this.excerptElement?.setSelectionRange(-1,-1)},0)}onExcerptInput(e){this.args.setExcerpt?.(e.target.value)}onExcerptKeydown(e){const{key:t}=e,{value:i,selectionStart:r}=e.target
|
|
676
|
-
if(("ArrowUp"===t||"ArrowLeft"===t)&&!e.shiftKey){(!i||0===r)&&(e.preventDefault(),this.focusTitle())}const{editorAPI:n}=this,a=!i||r===i.length,s=("ArrowRight"===t||"ArrowDown"===t)&&a;("Enter"===t||"Tab"===t&&!e.shiftKey||s)&&(e.preventDefault(),"Enter"!==t||n.editorIsEmpty()?n.focusEditor({position:"top"}):n.insertParagraphAtTop({focus:!0}))}registerEditorAPI(e){this.editorAPI=e,this.args.registerAPI(e)}registerSecondaryEditorAPI(e){this.secondaryEditorAPI=e,this.args.registerSecondaryAPI(e)}focusEditor(e){if(!this.skipFocusEditor&&e.target.classList.contains("gh-koenig-editor-pane")&&this.editorAPI){
|
|
686
|
+
if(("ArrowUp"===t||"ArrowLeft"===t)&&!e.shiftKey){(!i||0===r)&&(e.preventDefault(),this.focusTitle())}const{editorAPI:n}=this,a=!i||r===i.length,s=("ArrowRight"===t||"ArrowDown"===t)&&a;("Enter"===t||"Tab"===t&&!e.shiftKey||s)&&(e.preventDefault(),"Enter"!==t||n.editorIsEmpty()?n.focusEditor({position:"top"}):n.insertParagraphAtTop({focus:!0}))}registerEditorAPI(e){this.editorAPI=e,this.args.registerAPI(e)}registerSecondaryEditorAPI(e){this.secondaryEditorAPI=e,this.args.registerSecondaryAPI(e)}focusEditor(e){if(!this.skipFocusEditor&&e.target.classList.contains("gh-koenig-editor-pane")&&this.editorAPI){const t=this.editorAPI.editorInstance.getRootElement(),{bottom:i}=t.getBoundingClientRect()
|
|
677
687
|
e.pageY>i&&e.clientY>i&&(e.preventDefault(),this.editorAPI.lastNodeIsDecorator()&&this.editorAPI.insertParagraphAtBottom(),this.editorAPI.focusEditor({position:"bottom"}))}this.skipFocusEditor=!1}},k=S(_.prototype,"settings",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=S(_.prototype,"feature",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=S(_.prototype,"titleIsHovered",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),T=S(_.prototype,"titleIsFocused",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),S(_.prototype,"registerElement",[o],Object.getOwnPropertyDescriptor(_.prototype,"registerElement"),_.prototype),S(_.prototype,"trackMousedown",[l],Object.getOwnPropertyDescriptor(_.prototype,"trackMousedown"),_.prototype),S(_.prototype,"editorPaneDragover",[u],Object.getOwnPropertyDescriptor(_.prototype,"editorPaneDragover"),_.prototype),S(_.prototype,"editorPaneDrop",[c],Object.getOwnPropertyDescriptor(_.prototype,"editorPaneDrop"),_.prototype),S(_.prototype,"registerTitleElement",[d],Object.getOwnPropertyDescriptor(_.prototype,"registerTitleElement"),_.prototype),S(_.prototype,"updateTitle",[p],Object.getOwnPropertyDescriptor(_.prototype,"updateTitle"),_.prototype),S(_.prototype,"cleanPastedTitle",[m],Object.getOwnPropertyDescriptor(_.prototype,"cleanPastedTitle"),_.prototype),S(_.prototype,"focusTitle",[h],Object.getOwnPropertyDescriptor(_.prototype,"focusTitle"),_.prototype),S(_.prototype,"onTitleKeydown",[b],Object.getOwnPropertyDescriptor(_.prototype,"onTitleKeydown"),_.prototype),S(_.prototype,"registerExcerptElement",[g],Object.getOwnPropertyDescriptor(_.prototype,"registerExcerptElement"),_.prototype),S(_.prototype,"focusExcerpt",[f],Object.getOwnPropertyDescriptor(_.prototype,"focusExcerpt"),_.prototype),S(_.prototype,"onExcerptInput",[v],Object.getOwnPropertyDescriptor(_.prototype,"onExcerptInput"),_.prototype),S(_.prototype,"onExcerptKeydown",[y],Object.getOwnPropertyDescriptor(_.prototype,"onExcerptKeydown"),_.prototype),S(_.prototype,"registerEditorAPI",[w],Object.getOwnPropertyDescriptor(_.prototype,"registerEditorAPI"),_.prototype),S(_.prototype,"registerSecondaryEditorAPI",[E],Object.getOwnPropertyDescriptor(_.prototype,"registerSecondaryEditorAPI"),_.prototype),S(_.prototype,"focusEditor",[P],Object.getOwnPropertyDescriptor(_.prototype,"focusEditor"),_.prototype),_)
|
|
678
688
|
Ember._setComponentTemplate(C,M)}),define("ghost-admin/components/gh-loading-list",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
679
689
|
const t=Ember.HTMLBars.template({id:"f5hW8lhN",block:'{"symbols":[],"statements":[[10,"ol"],[14,0,"gh-list loading"],[12],[2,"\\n "],[10,"li"],[14,0,"gh-list-row header"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-header"],[12],[2,"\\n "],[10,"div"],[14,0,"bg-lightgrey w20 h3"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"li"],[14,0,"gh-list-row loading"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-list-loadingcell"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-loading-title"],[12],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-loading-detail"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"li"],[14,0,"gh-list-row loading"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-list-loadingcell"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-loading-title"],[12],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-loading-detail"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"li"],[14,0,"gh-list-row loading"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-list-loadingcell"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-loading-title"],[12],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-loading-detail"],[12],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":[]}',moduleName:"ghost-admin/components/gh-loading-list.hbs"})
|
|
@@ -690,12 +700,12 @@ let u=e.default=(r=Ember._tracked,n=class extends t.default{constructor(){var e,
|
|
|
690
700
|
super(...arguments),e=this,t="showSpinner",r=this,(i=a)&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0}),s(this,"slowLoadTimeout",200),this.startSpinnerTimeout.perform()}*startSpinnerTimeout(){yield(0,i.timeout)(this.slowLoadTimeout),this.showSpinner=!0}},a=o(n.prototype,"showSpinner",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),o(n.prototype,"startSpinnerTimeout",[i.task],Object.getOwnPropertyDescriptor(n.prototype,"startSpinnerTimeout"),n.prototype),n)
|
|
691
701
|
Ember._setComponentTemplate(l,u)}),define("ghost-admin/components/gh-member-avatar",["exports","@glimmer/component"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
692
702
|
const i=Ember.HTMLBars.template({id:"np13J4BV",block:'{"symbols":["@member","@containerClass","@sizeClass"],"statements":[[10,"figure"],[15,0,[31,["gh-member-gravatar ",[32,2]]]],[12],[2,"\\n"],[6,[37,2],[[32,1,["email"]]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[15,0,[31,["gh-member-initials flex items-center justify-center br-100 ",[32,2]]]],[15,5,[32,0,["backgroundStyle"]]],[12],[2,"\\n "],[10,"span"],[15,0,[31,["gh-member-avatar-label ",[30,[36,1],[[32,3],"gh-member-list-avatar"],null]]]],[12],[1,[32,0,["initials"]]],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,2],[[32,0,["avatarImage"]]],null,[["default"],[{"statements":[[2," "],[10,"img"],[14,0,"gh-member-avatar-image"],[15,"src",[31,[[32,0,["avatarImage"]]]]],[15,"alt",[31,[[30,[36,1],[[32,1,["name"]],[32,1,["email"]]],null]]]],[12],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[2," "],[1,[30,[36,0],["avatar"],null]],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n"]],"hasEval":false,"upvars":["svg-jar","or","if"]}',moduleName:"ghost-admin/components/gh-member-avatar.hbs"})
|
|
693
|
-
class r extends t.default{get memberName(){
|
|
694
|
-
return e?.name||e?.email||t||"NM"}get avatarImage(){
|
|
695
|
-
return e?.avatar_image||e?.avatarImage||null}get backgroundStyle(){
|
|
703
|
+
class r extends t.default{get memberName(){const{member:e,name:t}=this.args
|
|
704
|
+
return e?.name||e?.email||t||"NM"}get avatarImage(){const{member:e}=this.args
|
|
705
|
+
return e?.avatar_image||e?.avatarImage||null}get backgroundStyle(){const e=function(e,t,i){for(var r=0,n=0;n<e.length;n++)r=e.charCodeAt(n)+((r<<5)-r)
|
|
696
706
|
return"hsl("+r%360+", "+t+"%, "+i+"%)"}(this.memberName,45,55)
|
|
697
707
|
return Ember.String.htmlSafe(`background-color: ${e}`)}get initials(){if("NM"===this.memberName)return"NM"
|
|
698
|
-
|
|
708
|
+
const e=this.memberName.split(" ")
|
|
699
709
|
return(e.length>1?[e[0][0],e[e.length-1][0]]:[e[0][0]]).join("").toUpperCase()}}e.default=r,Ember._setComponentTemplate(i,r)}),define("ghost-admin/components/gh-member-details-activity",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
700
710
|
const t=Ember.HTMLBars.template({id:"SWbQAk7f",block:'{"symbols":["@member","&attrs"],"statements":[[11,"section"],[24,0,"gh-member-details-activity"],[17,2],[12],[2,"\\n "],[10,"div"],[14,0,"gh-main-section-block"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-main-section-content"],[12],[2,"\\n "],[10,"div"],[14,0,"flex items-center"],[12],[2,"\\n"],[6,[37,0],[[30,[36,1],[[32,1,["name"]],[32,1,["email"]]],null]],null,[["default","else"],[{"statements":[[2," "],[8,"gh-member-avatar",[],[["@member","@sizeClass","@containerClass"],[[32,1],[30,[36,0],[[32,1,["name"]],"f-subheadline fw4 lh-zero tracked-1","f-subheadline fw4 lh-zero tracked-1"],null],"w20 h20 mr4 gh-member-detail-avatar"]],null],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"flex items-center justify-center br-100 mr4 gh-new-member-avatar"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-member-avatar-label f-subheadline lh-zero tracked-1"],[12],[2,"N"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"div"],[12],[2,"\\n "],[10,"h3"],[12],[2,"\\n "],[1,[30,[36,1],[[32,1,["name"]],[32,1,["email"]]],null]],[2,"\\n"],[6,[37,2],[[30,[36,1],[[32,1,["name"]],[32,1,["email"]]],null]],null,[["default"],[{"statements":[[6,[37,0],[[32,1,["isNew"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"midgrey"],[12],[2,"New member"],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n"],[6,[37,0],[[30,[36,3],[[32,1,["name"]],[32,1,["email"]]],null]],null,[["default"],[{"statements":[[2," "],[1,[32,1,["email"]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"p"],[12],[2,"\\n "],[10,"a"],[14,0,"gh-member-details-activity-link"],[15,6,[31,["#/members/",[32,1,["id"]]]]],[12],[2,"View member profile →"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["if","or","unless","and"]}',moduleName:"ghost-admin/components/gh-member-details-activity.hbs"})
|
|
701
711
|
e.default=Ember._setComponentTemplate(t,Ember._templateOnlyComponent())}),define("ghost-admin/components/gh-member-details",["exports","@glimmer/component"],function(e,t){var i,r,n,a,s
|
|
@@ -828,23 +838,23 @@ Je(this,"facebookTitle",$e,this),Je(this,"twitterDescription",Ye,this),Je(this,"
|
|
|
828
838
|
if(this.post.canonicalUrl)try{const t=new URL(this.post.canonicalUrl)
|
|
829
839
|
e.push(t.host),e.push(...t.pathname.split("/").reject(e=>!e))}catch(t){}else{const t=new URL(this.config.blogUrl)
|
|
830
840
|
e.push(t.host),e.push(...t.pathname.split("/").reject(e=>!e)),e.push(this.post.slug)}return e.join(" › ")}get canViewPostHistory(){return!this.post.isNew&&(null!==this.post.lexical&&(!this.post.isPublished&&!this.post.isSent||!this.post.emailOnly))}get themeMissingShowTitleAndFeatureImage(){return!this.themeManagement.activeTheme.hasPageBuilderFeature("show_title_and_feature_image")}willDestroyElement(){super.willDestroyElement(...arguments)
|
|
831
|
-
|
|
841
|
+
const e=this.post,t=e.get("errors");(t.has("publishedAtBlogDate")||t.has("publishedAtBlogTime"))&&(e.set("publishedAtBlogTZ",e.get("publishedAtUTC")),e.validate({attribute:"publishedAtBlog"})),this.setSidebarWidthVariable(0)}showSubview(e){this.set("isViewingSubview",!0),this.set("subview",e)}closeSubview(){this.set("isViewingSubview",!1),this.set("subview",null)}discardEnter(){return!1}toggleFeatured(){this.post.featured=!this.post.featured,this.post.isNew||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}toggleShowTitleAndFeatureImage(e){this.post.showTitleAndFeatureImage=e.target.checked,this.post.isNew||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}openPostHistory(){this.showPostHistory=!0}closePostHistory(){this.showPostHistory=!1}updateSlug(e){return this.updateSlugTask.perform(e).catch(e=>{this.showError(e),this.post.rollbackAttributes()})}setPublishedAtBlogDate(e){const t=this.post,r=i.default.tz(e,this.settings.get("timezone")).format("YYYY-MM-DD")
|
|
832
842
|
if(t.get("errors").remove("publishedAtBlogDate"),!t.get("isNew")&&e!==t.get("publishedAtBlogDate"))return t.set("publishedAtBlogDate",r),this.savePostTask.perform()
|
|
833
843
|
t.validate({property:"publishedAtBlog"})}async setVisibility(e){this.post.set("tiers",e)
|
|
834
844
|
try{await this.post.validate({property:"visibility"}),await this.post.validate({property:"tiers"}),this.post.get("isDraft")&&this.post.changedAttributes().tiers&&await this.savePostTask.perform()}catch(t){if(!t)return
|
|
835
|
-
throw t}}setPublishedAtBlogTime(e){
|
|
845
|
+
throw t}}setPublishedAtBlogTime(e){const t=this.post
|
|
836
846
|
if(t.get("errors").remove("publishedAtBlogDate"),!t.get("isNew")&&e!==t.get("publishedAtBlogTime"))return t.set("publishedAtBlogTime",e),this.savePostTask.perform()
|
|
837
|
-
t.validate({property:"publishedAtBlog"})}setCustomExcerpt(e){
|
|
838
|
-
if(e!==t.get("customExcerpt"))return t.set("customExcerpt",e),t.validate({property:"customExcerpt"}).then(()=>this.savePostTask.perform())}setHeaderInjection(e){
|
|
839
|
-
if(e!==t.get("codeinjectionHead"))return t.set("codeinjectionHead",e),t.validate({property:"codeinjectionHead"}).then(()=>this.savePostTask.perform())}setFooterInjection(e){
|
|
840
|
-
if(e!==t.get("codeinjectionFoot"))return t.set("codeinjectionFoot",e),t.validate({property:"codeinjectionFoot"}).then(()=>this.savePostTask.perform())}setMetaTitle(e){
|
|
841
|
-
if(t.get("metaTitle")!==e)return t.set("metaTitle",e),t.validate({property:"metaTitle"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setMetaDescription(e){
|
|
842
|
-
if(t.get("metaDescription")!==e)return t.set("metaDescription",e),t.validate({property:"metaDescription"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setCanonicalUrl(e){
|
|
843
|
-
if(t.canonicalUrl!==e)return t.set("canonicalUrl",e),t.validate({property:"canonicalUrl"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setOgTitle(e){
|
|
844
|
-
if(t.get("ogTitle")!==e)return t.set("ogTitle",e),t.validate({property:"ogTitle"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setOgDescription(e){
|
|
845
|
-
if(t.get("ogDescription")!==e)return t.set("ogDescription",e),t.validate({property:"ogDescription"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setTwitterTitle(e){
|
|
846
|
-
if(t.get("twitterTitle")!==e)return t.set("twitterTitle",e),t.validate({property:"twitterTitle"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setTwitterDescription(e){
|
|
847
|
-
if(t.get("twitterDescription")!==e)return t.set("twitterDescription",e),t.validate({property:"twitterDescription"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setCoverImage(e){this.set("post.featureImage",e),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}clearCoverImage(){this.set("post.featureImage",""),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}setOgImage(e){this.set("post.ogImage",e),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}clearOgImage(){this.set("post.ogImage",""),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}setTwitterImage(e){this.set("post.twitterImage",e),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}clearTwitterImage(){this.set("post.twitterImage",""),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}changeAuthors(e){
|
|
847
|
+
t.validate({property:"publishedAtBlog"})}setCustomExcerpt(e){const t=this.post
|
|
848
|
+
if(e!==t.get("customExcerpt"))return t.set("customExcerpt",e),t.validate({property:"customExcerpt"}).then(()=>this.savePostTask.perform())}setHeaderInjection(e){const t=this.post
|
|
849
|
+
if(e!==t.get("codeinjectionHead"))return t.set("codeinjectionHead",e),t.validate({property:"codeinjectionHead"}).then(()=>this.savePostTask.perform())}setFooterInjection(e){const t=this.post
|
|
850
|
+
if(e!==t.get("codeinjectionFoot"))return t.set("codeinjectionFoot",e),t.validate({property:"codeinjectionFoot"}).then(()=>this.savePostTask.perform())}setMetaTitle(e){const t=this.post
|
|
851
|
+
if(t.get("metaTitle")!==e)return t.set("metaTitle",e),t.validate({property:"metaTitle"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setMetaDescription(e){const t=this.post
|
|
852
|
+
if(t.get("metaDescription")!==e)return t.set("metaDescription",e),t.validate({property:"metaDescription"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setCanonicalUrl(e){const t=this.post
|
|
853
|
+
if(t.canonicalUrl!==e)return t.set("canonicalUrl",e),t.validate({property:"canonicalUrl"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setOgTitle(e){const t=this.post
|
|
854
|
+
if(t.get("ogTitle")!==e)return t.set("ogTitle",e),t.validate({property:"ogTitle"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setOgDescription(e){const t=this.post
|
|
855
|
+
if(t.get("ogDescription")!==e)return t.set("ogDescription",e),t.validate({property:"ogDescription"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setTwitterTitle(e){const t=this.post
|
|
856
|
+
if(t.get("twitterTitle")!==e)return t.set("twitterTitle",e),t.validate({property:"twitterTitle"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setTwitterDescription(e){const t=this.post
|
|
857
|
+
if(t.get("twitterDescription")!==e)return t.set("twitterDescription",e),t.validate({property:"twitterDescription"}).then(()=>{if(!t.get("isNew"))return this.savePostTask.perform()})}setCoverImage(e){this.set("post.featureImage",e),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}clearCoverImage(){this.set("post.featureImage",""),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}setOgImage(e){this.set("post.ogImage",e),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}clearOgImage(){this.set("post.ogImage",""),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}setTwitterImage(e){this.set("post.twitterImage",e),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}clearTwitterImage(){this.set("post.twitterImage",""),this.get("post.isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}changeAuthors(e){const t=this.post
|
|
848
858
|
e.mapBy("id").join()!==t.get("authors").mapBy("id").join()&&(t.set("authors",e),t.validate({property:"authors"}),t.get("isNew")||this.savePostTask.perform().catch(e=>{this.showError(e),t.rollbackAttributes()}))}savePost(){this.savePostTask.perform().catch(e=>{this.showError(e),this.post.rollbackAttributes()})}deletePostInternal(){this.deletePost&&this.deletePost()}setSidebarWidthFromElement(e){const t=e.getBoundingClientRect().width
|
|
849
859
|
this.setSidebarWidthVariable(t)}showError(e){e&&this.notifications.showAPIError(e)}setSidebarWidthVariable(e){document.documentElement.style.setProperty("--editor-sidebar-width",`${e}px`),document.documentElement.style.setProperty("--kg-breakout-adjustment",`${e}px`)}},ve=Qe(fe.prototype,"feature",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ye=Qe(fe.prototype,"store",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),we=Qe(fe.prototype,"ajax",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ee=Qe(fe.prototype,"ghostPaths",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Pe=Qe(fe.prototype,"notifications",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_e=Qe(fe.prototype,"slugGenerator",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ke=Qe(fe.prototype,"session",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Oe=Qe(fe.prototype,"settings",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),je=Qe(fe.prototype,"themeManagement",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Te=Qe(fe.prototype,"ui",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ze=Qe(fe.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),xe=Qe(fe.prototype,"showPostHistory",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),Se=Qe(fe.prototype,"canonicalUrlScratch",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ce=Qe(fe.prototype,"customExcerptScratch",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Me=Qe(fe.prototype,"codeinjectionFootScratch",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),De=Qe(fe.prototype,"codeinjectionHeadScratch",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ae=Qe(fe.prototype,"metaDescriptionScratch",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ie=Qe(fe.prototype,"metaTitleScratch",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Le=Qe(fe.prototype,"ogDescriptionScratch",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Re=Qe(fe.prototype,"ogTitleScratch",[k],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ne=Qe(fe.prototype,"twitterDescriptionScratch",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ue=Qe(fe.prototype,"twitterTitleScratch",[j],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Fe=Qe(fe.prototype,"slugValue",[T],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Be=Qe(fe.prototype,"uuidValue",[z],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),He=Qe(fe.prototype,"seoDescription",[x],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ve=Qe(fe.prototype,"facebookDescription",[S],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),qe=Qe(fe.prototype,"facebookImage",[C],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$e=Qe(fe.prototype,"facebookTitle",[M],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ye=Qe(fe.prototype,"twitterDescription",[D],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),We=Qe(fe.prototype,"twitterImage",[A],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ke=Qe(fe.prototype,"twitterTitle",[I],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ge=Qe(fe.prototype,"showVisibilityInput",[L],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Qe(fe.prototype,"seoTitle",[R],Object.getOwnPropertyDescriptor(fe.prototype,"seoTitle"),fe.prototype),Qe(fe.prototype,"seoURL",[N],Object.getOwnPropertyDescriptor(fe.prototype,"seoURL"),fe.prototype),Qe(fe.prototype,"showSubview",[U],Object.getOwnPropertyDescriptor(fe.prototype,"showSubview"),fe.prototype),Qe(fe.prototype,"closeSubview",[F],Object.getOwnPropertyDescriptor(fe.prototype,"closeSubview"),fe.prototype),Qe(fe.prototype,"discardEnter",[B],Object.getOwnPropertyDescriptor(fe.prototype,"discardEnter"),fe.prototype),Qe(fe.prototype,"toggleFeatured",[H],Object.getOwnPropertyDescriptor(fe.prototype,"toggleFeatured"),fe.prototype),Qe(fe.prototype,"toggleShowTitleAndFeatureImage",[V],Object.getOwnPropertyDescriptor(fe.prototype,"toggleShowTitleAndFeatureImage"),fe.prototype),Qe(fe.prototype,"openPostHistory",[q],Object.getOwnPropertyDescriptor(fe.prototype,"openPostHistory"),fe.prototype),Qe(fe.prototype,"closePostHistory",[$],Object.getOwnPropertyDescriptor(fe.prototype,"closePostHistory"),fe.prototype),Qe(fe.prototype,"updateSlug",[Y],Object.getOwnPropertyDescriptor(fe.prototype,"updateSlug"),fe.prototype),Qe(fe.prototype,"setPublishedAtBlogDate",[W],Object.getOwnPropertyDescriptor(fe.prototype,"setPublishedAtBlogDate"),fe.prototype),Qe(fe.prototype,"setVisibility",[K],Object.getOwnPropertyDescriptor(fe.prototype,"setVisibility"),fe.prototype),Qe(fe.prototype,"setPublishedAtBlogTime",[G],Object.getOwnPropertyDescriptor(fe.prototype,"setPublishedAtBlogTime"),fe.prototype),Qe(fe.prototype,"setCustomExcerpt",[J],Object.getOwnPropertyDescriptor(fe.prototype,"setCustomExcerpt"),fe.prototype),Qe(fe.prototype,"setHeaderInjection",[X],Object.getOwnPropertyDescriptor(fe.prototype,"setHeaderInjection"),fe.prototype),Qe(fe.prototype,"setFooterInjection",[Q],Object.getOwnPropertyDescriptor(fe.prototype,"setFooterInjection"),fe.prototype),Qe(fe.prototype,"setMetaTitle",[Z],Object.getOwnPropertyDescriptor(fe.prototype,"setMetaTitle"),fe.prototype),Qe(fe.prototype,"setMetaDescription",[ee],Object.getOwnPropertyDescriptor(fe.prototype,"setMetaDescription"),fe.prototype),Qe(fe.prototype,"setCanonicalUrl",[te],Object.getOwnPropertyDescriptor(fe.prototype,"setCanonicalUrl"),fe.prototype),Qe(fe.prototype,"setOgTitle",[ie],Object.getOwnPropertyDescriptor(fe.prototype,"setOgTitle"),fe.prototype),Qe(fe.prototype,"setOgDescription",[re],Object.getOwnPropertyDescriptor(fe.prototype,"setOgDescription"),fe.prototype),Qe(fe.prototype,"setTwitterTitle",[ne],Object.getOwnPropertyDescriptor(fe.prototype,"setTwitterTitle"),fe.prototype),Qe(fe.prototype,"setTwitterDescription",[ae],Object.getOwnPropertyDescriptor(fe.prototype,"setTwitterDescription"),fe.prototype),Qe(fe.prototype,"setCoverImage",[se],Object.getOwnPropertyDescriptor(fe.prototype,"setCoverImage"),fe.prototype),Qe(fe.prototype,"clearCoverImage",[oe],Object.getOwnPropertyDescriptor(fe.prototype,"clearCoverImage"),fe.prototype),Qe(fe.prototype,"setOgImage",[le],Object.getOwnPropertyDescriptor(fe.prototype,"setOgImage"),fe.prototype),Qe(fe.prototype,"clearOgImage",[ue],Object.getOwnPropertyDescriptor(fe.prototype,"clearOgImage"),fe.prototype),Qe(fe.prototype,"setTwitterImage",[ce],Object.getOwnPropertyDescriptor(fe.prototype,"setTwitterImage"),fe.prototype),Qe(fe.prototype,"clearTwitterImage",[de],Object.getOwnPropertyDescriptor(fe.prototype,"clearTwitterImage"),fe.prototype),Qe(fe.prototype,"changeAuthors",[pe],Object.getOwnPropertyDescriptor(fe.prototype,"changeAuthors"),fe.prototype),Qe(fe.prototype,"savePost",[me],Object.getOwnPropertyDescriptor(fe.prototype,"savePost"),fe.prototype),Qe(fe.prototype,"deletePostInternal",[he],Object.getOwnPropertyDescriptor(fe.prototype,"deletePostInternal"),fe.prototype),Qe(fe.prototype,"setSidebarWidthFromElement",[be],Object.getOwnPropertyDescriptor(fe.prototype,"setSidebarWidthFromElement"),fe.prototype),ge=fe))||ge)
|
|
850
860
|
Ember._setComponentTemplate(Ze,et)}),define("ghost-admin/components/gh-post-settings-menu/ctrl-or-cmd",["exports","@glimmer/component"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -863,7 +873,7 @@ const g=Ember.HTMLBars.template({id:"EIG0XORO",block:'{"symbols":["option","@dis
|
|
|
863
873
|
let f=e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember._tracked,o=Ember._tracked,l=Ember._action,u=class extends t.default{get renderInPlace(){return void 0!==this.args.renderInPlace&&this.args.renderInPlace}constructor(){super(...arguments),h(this,"store",c,this),h(this,"feature",d,this),h(this,"_options",p,this),h(this,"tiers",m,this),this.fetchOptionsTask.perform()}get options(){return this._options}get flatOptions(){const e=[]
|
|
864
874
|
return this._options.forEach(function t(i){if(i.options)return i.options.forEach(t)
|
|
865
875
|
e.push(i)}),e}get selectedOptions(){const e=this.args.tiers.map(e=>this.tiers.find(t=>t.id===e.id)).filter(e=>!!e).map(e=>e.id)
|
|
866
|
-
return this.flatOptions.filter(t=>e.includes(t.id))}setSegment(e){
|
|
876
|
+
return this.flatOptions.filter(t=>e.includes(t.id))}setSegment(e){const t=e.mapBy("id").map(e=>{const t=this.tiers.find(t=>t.id===e)
|
|
867
877
|
return{id:t.id,slug:t.slug,name:t.name}})||[]
|
|
868
878
|
this.args.onChange?.(t)}*fetchOptionsTask(){const e=yield[],t=yield this.store.query("tier",{filter:"type:paid",limit:"all",include:"monthly_price,yearly_price,benefits"})
|
|
869
879
|
if(this.tiers=t,t.length>0){const[r,n]=(0,i.groupTiersByActive)(t,e=>({name:e.name,id:e.id,count:e.count?.members,class:"segment-tier"}))
|
|
@@ -883,7 +893,7 @@ throw new TypeError("@@toPrimitive must return a primitive value.")}return("stri
|
|
|
883
893
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
884
894
|
const n=Ember.HTMLBars.template({id:"vFuUyfY7",block:'{"symbols":[],"statements":[[10,"div"],[14,0,"gh-progress-container"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-progress-container-progress"],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-progress-bar ",[30,[36,0],[[32,0,["isError"]],"-error"],null]]]],[15,5,[32,0,["progressStyle"]]],[14,"data-test-progress-bar",""],[15,"data-test-progress-width",[32,0,["percentage"]]],[12],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["if"]}',moduleName:"ghost-admin/components/gh-progress-bar.hbs"})
|
|
885
895
|
let a=e.default=(0,t.tagName)("")(i=class extends Ember.Component{constructor(...e){super(...e),r(this,"percentage",0),r(this,"isError",!1),r(this,"progressStyle","")}didReceiveAttrs(){super.didReceiveAttrs(...arguments)
|
|
886
|
-
|
|
896
|
+
const e=this.percentage,t=e>0?`${e}%`:"0"
|
|
887
897
|
this.set("progressStyle",Ember.String.htmlSafe(`width: ${t}`))}})||i
|
|
888
898
|
Ember._setComponentTemplate(n,a)}),define("ghost-admin/components/gh-psm-authors-input",["exports","@glimmer/component"],function(e,t){var i,r
|
|
889
899
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -904,12 +914,13 @@ throw new TypeError("@@toPrimitive must return a primitive value.")}return("stri
|
|
|
904
914
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function g(e,t,i,r,n){var a={}
|
|
905
915
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
906
916
|
const f=Ember.HTMLBars.template({id:"y2Fv0Vxb",block:'{"symbols":[],"statements":[[6,[37,0],[[32,0,["customTemplates"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"form-group for-select"],[14,"data-test-custom-template-form",""],[12],[2,"\\n "],[10,"label"],[14,"for","author-list"],[12],[2,"Template"],[13],[2,"\\n "],[10,"span"],[15,0,[31,["gh-select ",[30,[36,0],[[32,0,["matchedSlugTemplate"]],"disabled"],null]]]],[12],[2,"\\n "],[8,"one-way-select",[[24,"data-test-select","custom-template"]],[["@value","@options","@optionValuePath","@optionLabelPath","@update","@disabled"],[[32,0,["selectedTemplate"]],[32,0,["customTemplates"]],"filename","name",[30,[36,1],[[32,0],"selectTemplate"],null],[32,0,["matchedSlugTemplate"]]]],null],[2,"\\n "],[1,[30,[36,2],["arrow-down-small"],null]],[2,"\\n "],[13],[2,"\\n"],[6,[37,0],[[32,0,["matchedSlugTemplate"]]],null,[["default"],[{"statements":[[2," "],[10,"p"],[12],[2,"Post URL matches "],[1,[32,0,["matchedSlugTemplate","filename"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["if","action","svg-jar"]}',moduleName:"ghost-admin/components/gh-psm-template-select.hbs"})
|
|
907
|
-
let v=e.default=(r=(0,t.tagName)(""),n=Ember.inject.service,a=Ember.computed("activeTheme.customTemplates.[]"),s=Ember.computed("post.{page,slug}","activeTheme.slugTemplates.[]"),o=Ember.computed("post.customTemplate","customTemplates.[]"),l=Ember._action,u=(0,i.task)(function*(){
|
|
917
|
+
let v=e.default=(r=(0,t.tagName)(""),n=Ember.inject.service,a=Ember.computed("activeTheme.customTemplates.[]"),s=Ember.computed("post.{page,slug}","activeTheme.slugTemplates.[]"),o=Ember.computed("post.customTemplate","customTemplates.[]"),l=Ember._action,u=(0,i.task)(function*(){const e=this.store
|
|
918
|
+
let t=yield e.peekAll("theme")
|
|
908
919
|
Ember.isEmpty(t)&&(t=yield e.findAll("theme"))
|
|
909
|
-
|
|
910
|
-
this.set("activeTheme",i)}),r((d=class extends Ember.Component{constructor(...e){super(...e),h(this,"store",p,this),b(this,"post",null),b(this,"activeTheme",null),h(this,"loadActiveTheme",m,this)}onTemplateSelect(){}get customTemplates(){
|
|
911
|
-
return Ember.isEmpty(e)?e:[{filename:"",name:"Default"},...e.sortBy("name")]}get matchedSlugTemplate(){
|
|
912
|
-
return i}get selectedTemplate(){
|
|
920
|
+
const i=t.filterBy("active",!0).get("firstObject")
|
|
921
|
+
this.set("activeTheme",i)}),r((d=class extends Ember.Component{constructor(...e){super(...e),h(this,"store",p,this),b(this,"post",null),b(this,"activeTheme",null),h(this,"loadActiveTheme",m,this)}onTemplateSelect(){}get customTemplates(){const e=this.get("activeTheme.customTemplates")||[]
|
|
922
|
+
return Ember.isEmpty(e)?e:[{filename:"",name:"Default"},...e.sortBy("name")]}get matchedSlugTemplate(){const e=this.get("post.slug"),t=this.post.constructor.modelName,[i]=this.get("activeTheme.slugTemplates").filter(function(i){return i.for.includes(t)&&i.slug===e})
|
|
923
|
+
return i}get selectedTemplate(){const e=this.customTemplates,t=this.get("post.customTemplate")
|
|
913
924
|
return e.findBy("filename",t)}didInsertElement(){super.didInsertElement(...arguments),this.loadActiveTheme.perform()}selectTemplate(e){this.onTemplateSelect(e.filename)}},p=g(d.prototype,"store",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g(d.prototype,"customTemplates",[a],Object.getOwnPropertyDescriptor(d.prototype,"customTemplates"),d.prototype),g(d.prototype,"matchedSlugTemplate",[s],Object.getOwnPropertyDescriptor(d.prototype,"matchedSlugTemplate"),d.prototype),g(d.prototype,"selectedTemplate",[o],Object.getOwnPropertyDescriptor(d.prototype,"selectedTemplate"),d.prototype),g(d.prototype,"selectTemplate",[l],Object.getOwnPropertyDescriptor(d.prototype,"selectTemplate"),d.prototype),m=g(d.prototype,"loadActiveTheme",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=d))||c)
|
|
914
925
|
Ember._setComponentTemplate(f,v)})
|
|
915
926
|
define("ghost-admin/components/gh-psm-visibility-input",["exports"],function(e){var t,i,r,n,a
|
|
@@ -951,17 +962,17 @@ let c=e.default=(r=Ember.inject.service,n=Ember._action,a=Ember._action,s=class
|
|
|
951
962
|
super(...e),t=this,i="inViewport",n=this,(r=o)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}setupInViewport(e){this.loaderElement=e
|
|
952
963
|
let t=this.args.triggerOffset||{}
|
|
953
964
|
"number"==typeof t&&(t={top:t,bottom:t,left:t,right:t})
|
|
954
|
-
|
|
965
|
+
const r={viewportSpy:!0,viewportTolerance:t,scrollableArea:this.args.scrollable||(0,i.default)(e)},{onEnter:n,onExit:a}=this.inViewport.watchElement(e,r)
|
|
955
966
|
n(this.didEnterViewport.bind(this)),a(this.didExitViewport.bind(this)),this.args.registerElement?.(e)}didEnterViewport(){this.args.enter?.()}didExitViewport(){this.args.exit?.()}teardownInViewport(e){this.inViewport.stopWatching(e)}},o=l(s.prototype,"inViewport",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l(s.prototype,"setupInViewport",[n],Object.getOwnPropertyDescriptor(s.prototype,"setupInViewport"),s.prototype),l(s.prototype,"teardownInViewport",[a],Object.getOwnPropertyDescriptor(s.prototype,"teardownInViewport"),s.prototype),s)
|
|
956
967
|
Ember._setComponentTemplate(u,c)}),define("ghost-admin/components/gh-search-input",["exports","@glimmer/component","ghost-admin/utils/search"],function(e,t,i){var r,n,a,s,o,l,u,c,d
|
|
957
968
|
function p(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function m(e,t,i,r,n){var a={}
|
|
958
969
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
959
970
|
const h=Ember.HTMLBars.template({id:"P9iifeDx",block:'{"symbols":["name","select","&attrs"],"statements":[[11,"div"],[17,3],[12],[2,"\\n "],[10,"div"],[14,0,"ember-power-select-search"],[12],[2,"\\n "],[8,"power-select",[],[["@search","@onChange","@onClose","@placeholder","@searchEnabled","@triggerComponent","@renderInPlace","@loadingMessage","@extra"],[[30,[36,3],[[32,0,["search","searchTask"]]],null],[32,0,["openSelected"]],[32,0,["onClose"]],"Search site",false,[30,[36,4],["gh-input-with-select/trigger"],null],true,"Loading",[30,[36,5],null,[["autofocus","inputType","inputIcon","inputIconClass"],[true,"search","search","gh-nav-search-icon"]]]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-nav-search-option"],[12],[2,"\\n "],[10,"div"],[12],[1,[30,[36,6],[[32,1,["title"]],[32,2,["searchText"]]],null]],[13],[2,"\\n"],[6,[37,1],[[30,[36,7],[[30,[36,0],[[32,1,["status"]],"draft"],null],[30,[36,0],[[32,1,["status"]],"scheduled"],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[15,0,[31,["gh-nav-search-label ",[30,[36,1],[[30,[36,0],[[32,1,["status"]],"draft"],null],"draft"],null]," ",[30,[36,1],[[30,[36,0],[[32,1,["status"]],"scheduled"],null],"scheduled"],null]]]],[12],[1,[30,[36,2],[[32,1,["status"]]],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[1,2]}]]],[2,"\\n "],[13],[2,"\\n"],[13]],"hasEval":false,"upvars":["eq","if","capitalize","perform","component","hash","highlighted-text","or"]}',moduleName:"ghost-admin/components/gh-search-input.hbs"})
|
|
960
971
|
let b=e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember._action,o=Ember._action,l=class extends t.default{constructor(...e){super(...e),p(this,"billing",u,this),p(this,"router",c,this),p(this,"search",d,this)}openSelected(e){if(e){if(this.args.onSelected?.(e),e.groupKey===i.BILLING_SEARCH_GROUP_KEY){const t=this.billing.getAdminRouteForSubRoute(e.path)
|
|
961
|
-
return void(this.router.currentURL===t?this.billing.navigateToSubRoute(e.path):this.router.transitionTo(t))}if("Posts"===e.groupName){
|
|
962
|
-
this.router.transitionTo("lexical-editor.edit","post",t)}if("Pages"===e.groupName){
|
|
963
|
-
this.router.transitionTo("lexical-editor.edit","page",t)}if("Staff"===e.groupName){
|
|
964
|
-
this.router.transitionTo(`/settings/staff/${t}`)}if("Tags"===e.groupName){
|
|
972
|
+
return void(this.router.currentURL===t?this.billing.navigateToSubRoute(e.path):this.router.transitionTo(t))}if("Posts"===e.groupName){const t=e.id.replace("post.","")
|
|
973
|
+
this.router.transitionTo("lexical-editor.edit","post",t)}if("Pages"===e.groupName){const t=e.id.replace("page.","")
|
|
974
|
+
this.router.transitionTo("lexical-editor.edit","page",t)}if("Staff"===e.groupName){const t=e.id.replace("user.","")
|
|
975
|
+
this.router.transitionTo(`/settings/staff/${t}`)}if("Tags"===e.groupName){const t=e.id.replace("tag.","")
|
|
965
976
|
this.router.transitionTo("tag",t)}}}onClose(e,t){Ember.run.later(()=>{t?.target.focus()})}},u=m(l.prototype,"billing",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=m(l.prototype,"router",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=m(l.prototype,"search",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m(l.prototype,"openSelected",[s],Object.getOwnPropertyDescriptor(l.prototype,"openSelected"),l.prototype),m(l.prototype,"onClose",[o],Object.getOwnPropertyDescriptor(l.prototype,"onClose"),l.prototype),l)
|
|
966
977
|
Ember._setComponentTemplate(h,b)}),define("ghost-admin/components/gh-segment-token-input",["exports","@glimmer/component","ghost-admin/utils/flatten-grouped-options","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l
|
|
967
978
|
function u(e,t,i,r,n){var a={}
|
|
@@ -985,9 +996,9 @@ try{e.contentWindow.location.href!==this.srcUrl?e.contentWindow.location=this.sr
|
|
|
985
996
|
const t=new URL(this.srcUrl)
|
|
986
997
|
new URL(e.origin).origin===t.origin&&(e.data!==this.args.invisibleUntilLoaded&&e.data.type!==this.args.invisibleUntilLoaded||this.makeVisible.perform())},window.addEventListener("message",this.messageListener,!0))}*makeVisible(){yield(0,r.timeout)(100),this.isInvisible=!1,this.args.onLoad?.(this.iframe)}},u=p(l.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=p(l.prototype,"isInvisible",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return this.args.invisibleUntilLoaded}}),p(l.prototype,"resetSrcAttribute",[a],Object.getOwnPropertyDescriptor(l.prototype,"resetSrcAttribute"),l.prototype),p(l.prototype,"onLoad",[s],Object.getOwnPropertyDescriptor(l.prototype,"onLoad"),l.prototype),p(l.prototype,"attachMessageListener",[o],Object.getOwnPropertyDescriptor(l.prototype,"attachMessageListener"),l.prototype),p(l.prototype,"makeVisible",[r.task],Object.getOwnPropertyDescriptor(l.prototype,"makeVisible"),l.prototype),l)
|
|
987
998
|
Ember._setComponentTemplate(m,h)}),define("ghost-admin/components/gh-skip-link",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
988
|
-
e.default=Ember.Component.extend({tagName:"a",anchor:"",classNames:["sr-only","sr-only-focusable"],attributeBindings:["href"],href:Ember.String.htmlSafe("javascript:;"),click(){
|
|
999
|
+
e.default=Ember.Component.extend({tagName:"a",anchor:"",classNames:["sr-only","sr-only-focusable"],attributeBindings:["href"],href:Ember.String.htmlSafe("javascript:;"),click(){const e=document.querySelector(this.anchor)
|
|
989
1000
|
if(e){document.body.scrollTop=e.getBoundingClientRect().top
|
|
990
|
-
|
|
1001
|
+
const t=function(){e.removeAttribute("tabindex")}
|
|
991
1002
|
e.setAttribute("tabindex",-1),e.focus(),e.addEventListener("blur",t),e.addEventListener("focusout",t)}}})}),define("ghost-admin/components/gh-tags-token-input",["exports","@glimmer/component","tracked-built-ins","@tryghost/nql-string"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m,h
|
|
992
1003
|
function b(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function g(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
993
1004
|
var i=e[Symbol.toPrimitive]
|
|
@@ -999,23 +1010,24 @@ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerabl
|
|
|
999
1010
|
const v=Ember.HTMLBars.template({id:"V5Gmwx2W",block:'{"symbols":["@renderInPlace","@selected","@triggerId","@triggerClass","@placeholder","@allowCreation","@disabled","@selectedItemComponent","@class"],"statements":[[8,"gh-paginated-token-input",[],[["@extra","@loadPage","@onChange","@onCreate","@renderInPlace","@searchDebounceMs","@searchPage","@selected","@showCreateWhen","@sortOptions","@triggerId","@triggerClass","@placeholder","@allowCreation","@disabled","@selectedItemComponent","@class"],[[30,[36,1],null,[["tokenComponent"],[[30,[36,0],["gh-token-input/tag-token"],null]]]],[32,0,["loadTagsPage"]],[32,0,["updateTags"]],[32,0,["createTag"]],[32,1],[32,0,["searchDebounceMs"]],[32,0,["searchTagsPage"]],[32,2],[32,0,["showCreateWhen"]],[32,0,["sortTags"]],[32,3],[32,4],[32,5],[32,6],[32,7],[32,8],[32,9]]],null],[2,"\\n"]],"hasEval":false,"upvars":["component","hash"]}',moduleName:"ghost-admin/components/gh-tags-token-input.hbs"})
|
|
1000
1011
|
let y=e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember._action,o=Ember._action,l=Ember._action,u=Ember._action,c=Ember._action,d=Ember._action,p=class extends t.default{constructor(...e){super(...e),b(this,"store",m,this),b(this,"tagsManager",h,this),g(this,"_knownTags",new i.TrackedArray)}loadTagsPage({limit:e,page:t}){return this.store.query("tag",{limit:e,page:t,order:"name asc"}).then(e=>(this._addKnownTags(e.toArray()),e))}searchTagsPage(e,{limit:t,page:i}){return this.store.query("tag",{filter:`tags.name:~${(0,r.escapeNqlString)(e)}`,limit:t,page:i,order:"name asc"}).then(e=>(this._addKnownTags(e.toArray()),e))}sortTags(e){return this.tagsManager.sortTags(e)}showCreateWhen(e,t){const i=t.map(e=>e.name.toLowerCase())
|
|
1001
1012
|
i.push(...(this.args.selected||[]).map(e=>e.name.toLowerCase()))
|
|
1002
|
-
return!i.includes(e.toLowerCase())}get searchDebounceMs(){return 250}updateTags(e){(this.args.selected||[]).forEach(function(t){!e.includes(t)&&t.get("isNew")&&t.destroyRecord()}),this.args.onChange&&this.args.onChange(e)}createTag(e){
|
|
1003
|
-
|
|
1004
|
-
|
|
1013
|
+
return!i.includes(e.toLowerCase())}get searchDebounceMs(){return 250}updateTags(e){(this.args.selected||[]).forEach(function(t){!e.includes(t)&&t.get("isNew")&&t.destroyRecord()}),this.args.onChange&&this.args.onChange(e)}createTag(e){const t=this.args.selected||[],i=t.map(e=>e.get("name").toLowerCase())
|
|
1014
|
+
let r
|
|
1015
|
+
if(e=e.trim(),!i.includes(e.toLowerCase())){if(r=this._findTagByName(e),r||(r=this.store.createRecord("tag",{name:e}),r.updateVisibility()),this.args.onCreate)return this.args.onCreate(r)
|
|
1016
|
+
{const e=[...t,r]
|
|
1005
1017
|
this.updateTags(e)}}}_findTagByName(e){return this._knownTags.find(function(t){return!t.__isSuggestion__&&t.name.toLowerCase()===e.toLowerCase()})}_addKnownTags(e){const t=new Set(this._knownTags.map(e=>e.id)),i=e.filter(e=>!t.has(e.id))
|
|
1006
1018
|
this._knownTags.push(...i)}},m=f(p.prototype,"store",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=f(p.prototype,"tagsManager",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f(p.prototype,"loadTagsPage",[s],Object.getOwnPropertyDescriptor(p.prototype,"loadTagsPage"),p.prototype),f(p.prototype,"searchTagsPage",[o],Object.getOwnPropertyDescriptor(p.prototype,"searchTagsPage"),p.prototype),f(p.prototype,"sortTags",[l],Object.getOwnPropertyDescriptor(p.prototype,"sortTags"),p.prototype),f(p.prototype,"showCreateWhen",[u],Object.getOwnPropertyDescriptor(p.prototype,"showCreateWhen"),p.prototype),f(p.prototype,"updateTags",[c],Object.getOwnPropertyDescriptor(p.prototype,"updateTags"),p.prototype),f(p.prototype,"createTag",[d],Object.getOwnPropertyDescriptor(p.prototype,"createTag"),p.prototype),p)
|
|
1007
1019
|
Ember._setComponentTemplate(v,y)}),define("ghost-admin/components/gh-task-button",["exports","ghost-admin/config/environment","ghost-admin/decorators/inject","ember-concurrency"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1008
|
-
const n=Ember.HTMLBars.template({id:"f3bLyxrO",block:'{"symbols":["&default"],"statements":[[6,[37,1],[[27,[32,1]]],null,[["default","else"],[{"statements":[[2," "],[18,1,[[30,[36,6],null,[["isIdle","isRunning","isSuccess","isFailure"],[[32,0,["isIdle"]],[32,0,["isRunning"]],[32,0,["isSuccess"]],[32,0,["isFailure"]]]]]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[32,0,["isRunning"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,"data-test-task-button-state","running"],[12],[2,"\\n"],[6,[37,1],[[32,0,["showIcon"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],["spinner"],[["class"],["gh-icon-spinner"]]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[32,0,["runningText"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[30,[36,5],[[32,0,["isIdle"]],[30,[36,4],[[30,[36,3],[[32,0,["isRunning"]],[32,0,["isSuccess"]],[32,0,["isFailure"]]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,"data-test-task-button-state","idle"],[12],[2,"\\n"],[6,[37,1],[[32,0,["showIcon"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,0,["idleIcon"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],[[32,0,["idleIcon"]]],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[1,[32,0,["buttonText"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n\\n"],[6,[37,1],[[32,0,["isSuccess"]]],null,[["default"],[{"statements":[[2," "],[11,"span"],[24,"data-test-task-button-state","success"],[4,[38,2],[[32,0,["handleReset"]]],null],[12],[2,"\\n"],[6,[37,1],[[32,0,["showIcon"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],["check-circle"],null]],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[32,0,["successText"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,1],[[32,0,["isFailure"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,"data-test-task-button-state","failure"],[12],[2,"\\n"],[6,[37,1],[[32,0,["showIcon"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],["retry"],null]],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[32,0,["failureText"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["svg-jar","if","did-insert","or","not","and","hash"]}',moduleName:"ghost-admin/components/gh-task-button.hbs"}),a=Ember.Component.extend({tagName:"button",classNameBindings:["isRunning:appear-disabled","isIdleClass","isRunningClass","isSuccessClass","isFailureClass"],attributeBindings:["disabled","form","type","tabindex","data-test-button","style"],task:null,taskArgs:void 0,disabled:!1,defaultClick:!1,buttonText:"Save",idleClass:"",idleIcon:"",runningClass:"",showIcon:!0,showSuccess:!0,autoReset:!0,successText:"Saved",successClass:"gh-btn-green",failureText:"Retry",failureClass:"gh-btn-red",unlinkedTask:!1,isTesting:void 0,action:()=>{},config:(0,i.inject)(),runningText:Ember.computed.reads("buttonText"),hasRun:Ember.computed("task.performCount",function(){return this.get("task.performCount")>this._initialPerformCount}),isIdleClass:Ember.computed("isIdle",function(){return this.isIdle?this.idleClass:""}),isRunning:Ember.computed("task.last.isRunning","hasRun","showSuccess",function(){
|
|
1009
|
-
|
|
1020
|
+
const n=Ember.HTMLBars.template({id:"f3bLyxrO",block:'{"symbols":["&default"],"statements":[[6,[37,1],[[27,[32,1]]],null,[["default","else"],[{"statements":[[2," "],[18,1,[[30,[36,6],null,[["isIdle","isRunning","isSuccess","isFailure"],[[32,0,["isIdle"]],[32,0,["isRunning"]],[32,0,["isSuccess"]],[32,0,["isFailure"]]]]]]],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[32,0,["isRunning"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,"data-test-task-button-state","running"],[12],[2,"\\n"],[6,[37,1],[[32,0,["showIcon"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],["spinner"],[["class"],["gh-icon-spinner"]]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[32,0,["runningText"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[30,[36,5],[[32,0,["isIdle"]],[30,[36,4],[[30,[36,3],[[32,0,["isRunning"]],[32,0,["isSuccess"]],[32,0,["isFailure"]]],null]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,"data-test-task-button-state","idle"],[12],[2,"\\n"],[6,[37,1],[[32,0,["showIcon"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,0,["idleIcon"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],[[32,0,["idleIcon"]]],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[1,[32,0,["buttonText"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n\\n"],[6,[37,1],[[32,0,["isSuccess"]]],null,[["default"],[{"statements":[[2," "],[11,"span"],[24,"data-test-task-button-state","success"],[4,[38,2],[[32,0,["handleReset"]]],null],[12],[2,"\\n"],[6,[37,1],[[32,0,["showIcon"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],["check-circle"],null]],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[32,0,["successText"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,1],[[32,0,["isFailure"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,"data-test-task-button-state","failure"],[12],[2,"\\n"],[6,[37,1],[[32,0,["showIcon"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,0],["retry"],null]],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[32,0,["failureText"]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["svg-jar","if","did-insert","or","not","and","hash"]}',moduleName:"ghost-admin/components/gh-task-button.hbs"}),a=Ember.Component.extend({tagName:"button",classNameBindings:["isRunning:appear-disabled","isIdleClass","isRunningClass","isSuccessClass","isFailureClass"],attributeBindings:["disabled","form","type","tabindex","data-test-button","style"],task:null,taskArgs:void 0,disabled:!1,defaultClick:!1,buttonText:"Save",idleClass:"",idleIcon:"",runningClass:"",showIcon:!0,showSuccess:!0,autoReset:!0,successText:"Saved",successClass:"gh-btn-green",failureText:"Retry",failureClass:"gh-btn-red",unlinkedTask:!1,isTesting:void 0,action:()=>{},config:(0,i.inject)(),runningText:Ember.computed.reads("buttonText"),hasRun:Ember.computed("task.performCount",function(){return this.get("task.performCount")>this._initialPerformCount}),isIdleClass:Ember.computed("isIdle",function(){return this.isIdle?this.idleClass:""}),isRunning:Ember.computed("task.last.isRunning","hasRun","showSuccess",function(){const e=this.get("task.name"),t=this.get("task.last.task.name")
|
|
1021
|
+
let i=e===t&&this.get("task.last.isRunning")
|
|
1022
|
+
return this.hasRun&&e===t&&this.get("task.last.value")&&!this.showSuccess&&(i=!0),i}),isRunningClass:Ember.computed("isRunning",function(){return this.isRunning?this.runningClass||this.idleClass:""}),isSuccess:Ember.computed("hasRun","isRunning","task.last.value",function(){const e=this.get("task.name"),t=this.get("task.last.task.name")
|
|
1010
1023
|
if(!this.hasRun||this.isRunning||!this.showSuccess)return!1
|
|
1011
|
-
|
|
1012
|
-
return e===t&&!Ember.isBlank(i)&&!1!==i&&"canceled"!==i}),isSuccessClass:Ember.computed("isSuccess",function(){return this.isSuccess?this.successClass:""}),isFailure:Ember.computed("hasRun","isRunning","isSuccess","task.last.{value,error}",function(){
|
|
1013
|
-
const i=this.task?.last?.value
|
|
1024
|
+
const i=this.get("task.last.value")
|
|
1025
|
+
return e===t&&!Ember.isBlank(i)&&!1!==i&&"canceled"!==i}),isSuccessClass:Ember.computed("isSuccess",function(){return this.isSuccess?this.successClass:""}),isFailure:Ember.computed("hasRun","isRunning","isSuccess","task.last.{value,error}",function(){const e=this.get("task.name"),t=this.get("task.last.task.name"),i=this.task?.last?.value
|
|
1014
1026
|
return!(!this.hasRun||this.isRunning||this.isSuccess)&&(e===t&&void 0!==this.get("task.last.error")&&"canceled"!==i)}),isFailureClass:Ember.computed("isFailure",function(){return this.isFailure?this.failureClass:""}),isIdle:Ember.computed("isRunning","isSuccess","isFailure",function(){return!this.isRunning&&!this.isSuccess&&!this.isFailure}),style:Ember.computed("useAccentColor","isFailure",function(){return this.useAccentColor&&!this.isFailure?Ember.String.htmlSafe(`background-color: ${this.config.accent_color}`):null}),init(){this._super(...arguments),this._initialPerformCount=this.get("task.performCount"),void 0===this.isTesting&&(this.isTesting="test"===t.default.environment)},click(){if(this.defaultClick)return void(this.isRunning||this._restartAnimation.perform())
|
|
1015
1027
|
if(this.disabled)return!1
|
|
1016
|
-
|
|
1028
|
+
const e=this.get("task.name"),t=this.get("task.last.task.name")
|
|
1017
1029
|
return this.isRunning&&e===t?void 0:(this.action(),this._handleMainTask.perform(),this._restartAnimation.perform(),!1)},mouseDown(e){this.disableMouseDown&&e.preventDefault()},handleReset:Ember._action(function(){const e=this.get("task.last.isSuccessful")&&this.get("task.last.value")
|
|
1018
|
-
this.autoReset&&this.showSuccess&&e&&this._resetButtonState.perform()}),_restartAnimation:(0,r.task)(function*(){
|
|
1030
|
+
this.autoReset&&this.showSuccess&&e&&this._resetButtonState.perform()}),_restartAnimation:(0,r.task)(function*(){const e=this.element.querySelector(".retry-animated")
|
|
1019
1031
|
e&&(e.classList.remove("retry-animated"),yield(0,r.timeout)(10),e.classList.add("retry-animated"))}),_handleMainTask:(0,r.task)(function*(){this._resetButtonState.cancelAll(),this.unlinkedTask?yield this.task.unlinked().perform(this.taskArgs):yield this.task.perform(this.taskArgs)
|
|
1020
1032
|
const e=this.get("task.last.isSuccessful")&&this.get("task.last.value")
|
|
1021
1033
|
this.autoReset&&this.showSuccess&&e&&this._resetButtonState.perform()}),_resetButtonState:(0,r.task)(function*(){yield(0,r.timeout)(this.isTesting?50:2500),this.get("task.last.isRunning")||(yield this.set("task.last",null))}).restartable()})
|
|
@@ -1031,7 +1043,7 @@ if("object"!=typeof r)return r
|
|
|
1031
1043
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
1032
1044
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1033
1045
|
e.default=(r=(0,i.classNames)("gh-input"),n=Ember.inject.service,r((s=class extends(Ember.TextArea.extend(t.default)){constructor(...e){var t,i,r,n
|
|
1034
|
-
super(...e),t=this,i="resizeDetector",n=this,(r=o)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),l(this,"autoExpand",!1)}didReceiveAttrs(){super.didReceiveAttrs(...arguments),this.autoExpand&&Ember.run.scheduleOnce("afterRender",this,this._autoExpand)}willInsertElement(){super.willInsertElement(...arguments),this.autoExpand&&(this.element.style.resize="none")}didInsertElement(){super.didInsertElement(...arguments),this.autoExpand&&Ember.run.scheduleOnce("afterRender",this,this._setupAutoExpand),this.didCreateTextarea&&this.didCreateTextarea(this.element)}willDestroyElement(){this._teardownAutoExpand(),super.willDestroyElement(...arguments)}_autoExpand(){
|
|
1046
|
+
super(...e),t=this,i="resizeDetector",n=this,(r=o)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),l(this,"autoExpand",!1)}didReceiveAttrs(){super.didReceiveAttrs(...arguments),this.autoExpand&&Ember.run.scheduleOnce("afterRender",this,this._autoExpand)}willInsertElement(){super.willInsertElement(...arguments),this.autoExpand&&(this.element.style.resize="none")}didInsertElement(){super.didInsertElement(...arguments),this.autoExpand&&Ember.run.scheduleOnce("afterRender",this,this._setupAutoExpand),this.didCreateTextarea&&this.didCreateTextarea(this.element)}willDestroyElement(){this._teardownAutoExpand(),super.willDestroyElement(...arguments)}_autoExpand(){const e=this.element
|
|
1035
1047
|
e&&(e.style.height=0,e.style.height=`${e.scrollHeight}px`)}_setupAutoExpand(){this._resizeCallback=Ember.run.bind(this,this._onResize),this.resizeDetector.setup(this.autoExpand,this._resizeCallback),this._autoExpand()}_onResize(){this._autoExpand()}_teardownAutoExpand(){this.resizeDetector.teardown(this.autoExpand,this._resizeCallback)}},u=s.prototype,c="resizeDetector",d=[n],p={configurable:!0,enumerable:!0,writable:!0,initializer:null},h={},Object.keys(p).forEach(function(e){h[e]=p[e]}),h.enumerable=!!h.enumerable,h.configurable=!!h.configurable,("value"in h||h.initializer)&&(h.writable=!0),h=d.slice().reverse().reduce(function(e,t){return t(u,c,e)||e},h),m&&void 0!==h.initializer&&(h.value=h.initializer?h.initializer.call(m):void 0,h.initializer=void 0),o=void 0===h.initializer?(Object.defineProperty(u,c,h),null):h,a=s))||a)
|
|
1036
1048
|
var u,c,d,p,m,h}),define("ghost-admin/components/gh-theme-error-li",["exports","@ember-decorators/component"],function(e,t){var i,r,n,a
|
|
1037
1049
|
function s(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
@@ -1047,20 +1059,21 @@ Ember._setComponentTemplate(o,l)}),define("ghost-admin/components/gh-token-input
|
|
|
1047
1059
|
function p(e,t,i,r,n){var a={}
|
|
1048
1060
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1049
1061
|
const m=Ember.HTMLBars.template({id:"Mf6ES/yu",block:'{"symbols":["option","@labelField","&default","@class","@triggerRole","@ariaDescribedBy","@ariaInvalid","@ariaLabel","@ariaLabelledBy","@afterOptionsComponent","@allowClear","@beforeOptionsComponent","@buildSelection","@calculatePosition","@closeOnSelect","@destination","@disabled","@dropdownClass","@extra","@groupComponent","@horizontalPosition","@initiallyOpened","@loadingMessage","@matchTriggerWidth","@noMatchesMessage","@onClose","@onInput","@onOpen","@optionsComponent","@placeholder","@placeholderComponent","@preventScroll","@registerAPI","@renderInPlace","@required","@scrollTo","@searchMessage","@searchPlaceholder","@selected","@selectedItemComponent","@eventType","@title","@triggerClass","@triggerComponent","@triggerId","@verticalPosition","@tabindex"],"statements":[[8,"gh-token-input/select-multiple",[[16,0,[30,[36,4],["gh-token-input ",[32,4]],null]],[24,"data-test-token-input","true"]],[["@triggerRole","@ariaDescribedBy","@ariaInvalid","@ariaLabel","@ariaLabelledBy","@afterOptionsComponent","@allowClear","@beforeOptionsComponent","@buildSelection","@calculatePosition","@closeOnSelect","@defaultHighlighted","@destination","@disabled","@dropdownClass","@extra","@groupComponent","@horizontalPosition","@initiallyOpened","@loadingMessage","@matcher","@matchTriggerWidth","@noMatchesMessage","@onBlur","@onChange","@onClose","@onFocus","@onInput","@onKeydown","@onOpen","@options","@optionsComponent","@placeholder","@placeholderComponent","@preventScroll","@registerAPI","@renderInPlace","@required","@scrollTo","@search","@searchEnabled","@searchField","@searchMessage","@searchPlaceholder","@selected","@selectedItemComponent","@eventType","@title","@triggerClass","@triggerComponent","@triggerId","@verticalPosition","@tabindex"],[[32,5],[32,6],[32,7],[32,8],[32,9],[32,10],[32,11],[32,12],[32,13],[32,14],[30,[36,0],[[32,15],false],null],[32,0,["defaultHighlighted"]],[32,16],[32,17],[32,18],[32,19],[30,[36,0],[[32,20],"power-select/power-select-group"],null],[32,21],[32,22],[32,23],[32,0,["matcher"]],[32,24],[32,25],[32,0,["handleBlur"]],[32,0,["selectOrCreate"]],[32,26],[32,0,["handleFocus"]],[32,27],[32,0,["handleKeydown"]],[32,28],[32,0,["optionsWithoutSelected"]],[30,[36,0],[[32,29],[30,[36,5],["power-select-vertical-collection-options"],null]],null],[32,30],[32,31],[32,32],[32,33],[32,34],[32,35],[32,36],[32,0,["searchAndSuggest"]],true,[32,0,["searchField"]],[32,37],[32,38],[32,39],[32,40],[32,41],[32,42],[32,43],[30,[36,0],[[32,44],"gh-token-input/trigger"],null],[32,45],[32,46],[32,47]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,2],[[32,1,["__isSuggestion__"]]],null,[["default","else"],[{"statements":[[6,[37,3],[[32,0,["searchAndSuggestTask","isRunning"]]],null,[["default"],[{"statements":[[2," "],[8,"gh-token-input/suggested-option",[],[["@option"],[[32,1]]],null],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,2],[[27,[32,3]]],null,[["default","else"],[{"statements":[[2," "],[18,3,[[32,1]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[30,[36,1],[[32,1],[30,[36,0],[[32,2],"name"],null]],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1]}]]]],"hasEval":false,"upvars":["or","get","if","unless","concat","component"]}',moduleName:"ghost-admin/components/gh-token-input.hbs"}),{Handlebars:h}=Ember
|
|
1050
|
-
let b=e.default=(a=Ember._action,s=Ember._action,o=Ember._action,l=Ember._action,u=Ember._action,c=Ember._action,d=class extends i.default{get matcher(){return this.args.matcher||r.defaultMatcher}get searchField(){return void 0===this.args.searchField?"name":this.args.searchField}get optionsWithoutSelected(){
|
|
1062
|
+
let b=e.default=(a=Ember._action,s=Ember._action,o=Ember._action,l=Ember._action,u=Ember._action,c=Ember._action,d=class extends i.default{get matcher(){return this.args.matcher||r.defaultMatcher}get searchField(){return void 0===this.args.searchField?"name":this.args.searchField}get optionsWithoutSelected(){const e=this.args.options,t=this.args.selected,i=[]
|
|
1051
1063
|
return function e(i,r){i.forEach(i=>{if(i.options){const t=[]
|
|
1052
1064
|
return e(i.options,t),void(t.length>0&&r.push({groupName:i.groupName,options:t}))}t.includes(i)||r.push(i)})}(e,i),i}handleKeydown(e,i){if(8===i.keyCode&&Ember.isBlank(i.target.value)){return e.selected[e.selected.length-1]&&(this.args.onChange(e.selected.slice(0,-1),e),e.actions.search(""),e.actions.open(i)),!1}if(9===i.keyCode&&!Ember.isBlank(i.target.value)&&e.highlighted&&(!e.selected||-1===e.selected.indexOf(e.highlighted)))return e.actions.choose(e.highlighted,i),i.preventDefault(),!1
|
|
1053
1065
|
if((i.ctrlKey||i.metaKey)&&t.includes(i)){const e=new KeyboardEvent(i.type,i)
|
|
1054
1066
|
return document.getElementsByClassName("gh-app")[0].dispatchEvent(e),i.preventDefault(),!1}return!0}handleFocus(){key.setScope("gh-token-input"),this.args.onFocus?.(...arguments)}handleBlur(){key.setScope("default"),this.args.onBlur?.(...arguments)}searchAndSuggest(e,t){return this.searchAndSuggestTask.perform(e,t)}selectOrCreate(e,t,i){if(i&&"Space"===i.code)return void t.actions.search(`${t.searchText} `)
|
|
1055
1067
|
if(!Ember.isArray(e))return
|
|
1056
|
-
|
|
1068
|
+
const r=e.find(e=>e.__isSuggestion__)
|
|
1057
1069
|
if(r){if(this.searchAndSuggestTask.isRunning)return
|
|
1058
1070
|
this.args.onCreate(r.__value__,t)}else this.args.onChange(e,t)
|
|
1059
1071
|
t.actions.search("")}*searchAndSuggestTask(e,t){let i=this.optionsWithoutSelected.toArray()
|
|
1060
1072
|
if(0===e.length)return i
|
|
1061
|
-
|
|
1062
|
-
if(r){
|
|
1063
|
-
return this._addCreateOption(e,i),i}return i=this._filter(Ember.A(i),e),this._addCreateOption(e,i),i}defaultHighlighted(e){
|
|
1073
|
+
const r=this.args.search
|
|
1074
|
+
if(r){const i=yield r(e,t)
|
|
1075
|
+
return this._addCreateOption(e,i),i}return i=this._filter(Ember.A(i),e),this._addCreateOption(e,i),i}defaultHighlighted(e){const{results:t}=e
|
|
1076
|
+
let i=(0,r.advanceSelectableOption)(t,void 0,1)
|
|
1064
1077
|
return t.length>1&&i.__isSuggestion__&&(i=(0,r.advanceSelectableOption)(t,i,1)),i}_addCreateOption(e,t){this._shouldShowCreateOption(e,t)&&t.unshift(this._buildSuggestionForTerm(e))}_shouldShowCreateOption(e,t){return!1!==this.args.allowCreation&&(this.args.showCreateWhen?this.args.showCreateWhen(e,t):this._hideCreateOptionOnSameTerm(e,t))}_buildSuggestionForTerm(e){return{__isSuggestion__:!0,__value__:e,text:this._buildSuggestionLabel(e)}}_hideCreateOptionOnSameTerm(e,t){return!t.findBy(this.searchField,e)}_filter(e,t){let i
|
|
1065
1078
|
return i=this.searchField?(e,t)=>this.matcher(Ember.get(e,this.searchField),t):(e,t)=>this.matcher(e,t),(0,r.filterOptions)(e||[],t,i)}_buildSuggestionLabel(e){return this.args.buildSuggestion?this.args.buildSuggestion(e):Ember.String.htmlSafe(`Add <strong>"${h.Utils.escapeExpression(e)}"...</strong>`)}},p(d.prototype,"handleKeydown",[a],Object.getOwnPropertyDescriptor(d.prototype,"handleKeydown"),d.prototype),p(d.prototype,"handleFocus",[s],Object.getOwnPropertyDescriptor(d.prototype,"handleFocus"),d.prototype),p(d.prototype,"handleBlur",[o],Object.getOwnPropertyDescriptor(d.prototype,"handleBlur"),d.prototype),p(d.prototype,"searchAndSuggest",[l],Object.getOwnPropertyDescriptor(d.prototype,"searchAndSuggest"),d.prototype),p(d.prototype,"selectOrCreate",[u],Object.getOwnPropertyDescriptor(d.prototype,"selectOrCreate"),d.prototype),p(d.prototype,"searchAndSuggestTask",[n.task],Object.getOwnPropertyDescriptor(d.prototype,"searchAndSuggestTask"),d.prototype),p(d.prototype,"defaultHighlighted",[c],Object.getOwnPropertyDescriptor(d.prototype,"defaultHighlighted"),d.prototype),d)
|
|
1066
1079
|
Ember._setComponentTemplate(m,b)}),define("ghost-admin/components/gh-token-input/label-selected-item",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -1093,13 +1106,13 @@ Ember._setComponentTemplate(m,h)}),define("ghost-admin/components/gh-token-input
|
|
|
1093
1106
|
function o(e,t,i,r,n){var a={}
|
|
1094
1107
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1095
1108
|
const l=Ember.HTMLBars.template({id:"GIDnizkc",block:'{"symbols":["opt","idx","@select","@listboxId","@tabindex","@onFocus","@onBlur","@placeholder","@searchEnabled","&default","@selectedItemComponent","@extra"],"statements":[[8,"sortable-objects",[],[["@tagName","@id","@class","@sortableObjectList","@enableSort","@useSwap","@sortEndAction"],["ul",[30,[36,9],["ember-power-select-multiple-options-",[32,3,["uniqueId"]]],null],"ember-power-select-multiple-options",[32,3,["selected"]],true,false,[30,[36,11],[[32,0],"reorderItems"],null]]],[["default"],[{"statements":[[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,3,["selected"]]],null]],null]],null,[["default","else"],[{"statements":[[6,[37,7],[[30,[36,10],[[32,12,["tokenComponent"]],"draggable-object"],null]],[["tagName","class","select","content","idx","isSortable","mouseDown","touchStart"],["li",[30,[36,9],["ember-power-select-multiple-option",[30,[36,4],[[32,1,["class"]],[30,[36,9],[" token-",[32,1,["class"]]],null]],null]],null],[32,3],[30,[36,6],[[32,1]],null],[32,2],true,[32,0,["handleOptionMouseDown"]],[32,0,["handleOptionTouchStart"]]]],[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"ember-power-select-multiple-inner-text"],[14,"data-test-selected-token",""],[12],[2,"\\n"],[6,[37,4],[[32,11]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,7],[[32,11]],[["option","select"],[[30,[36,6],[[32,1]],null],[30,[36,6],[[32,3]],null]]]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[18,10,[[32,1],[32,3]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[6,[37,8],[[32,3,["disabled"]]],null,[["default"],[{"statements":[[2," "],[11,"span"],[24,"role","button"],[24,"aria-label","remove element"],[24,0,"ember-power-select-multiple-remove-btn"],[16,"data-selected-index",[32,2]],[4,[38,0],["mousedown",[32,0,["handleOptionMouseDown"]]],null],[12],[2,"\\n "],[1,[30,[36,5],["close"],[["data-selected-index"],[[32,2]]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[1,2]},{"statements":[[6,[37,4],[[30,[36,3],[[32,8],[30,[36,2],[[32,9]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"ember-power-select-placeholder"],[12],[1,[32,8]],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[6,[37,4],[[32,9]],null,[["default"],[{"statements":[[2," "],[11,"input"],[24,0,"ember-power-select-trigger-multiple-input"],[24,"autocomplete","off"],[24,"autocorrect","off"],[24,"autocapitalize","off"],[24,"spellcheck","false"],[16,1,[31,["ember-power-select-trigger-multiple-input-",[32,3,["uniqueId"]]]]],[16,2,[32,3,["searchText"]]],[16,"aria-controls",[32,4]],[16,5,[32,0,["triggerMultipleInputStyle"]]],[16,"placeholder",[32,0,["maybePlaceholder"]]],[16,"disabled",[32,3,["disabled"]]],[16,"tabindex",[32,5]],[24,"data-testid","token-input-search"],[24,4,"search"],[4,[38,0],["focus",[32,6]],null],[4,[38,0],["blur",[32,7]],null],[4,[38,0],["input",[32,0,["handleInput"]]],null],[4,[38,0],["keydown",[32,0,["handleKeydown"]]],null],[4,[38,1],[[32,0,["storeInputStyles"]]],null],[12],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[10,"span"],[14,0,"ember-power-select-status-icon"],[12],[13],[2,"\\n"]],"hasEval":false,"upvars":["on","did-insert","not","and","if","svg-jar","readonly","component","unless","concat","or","action","-track-array","each"]}',moduleName:"ghost-admin/components/gh-token-input/trigger.hbs"})
|
|
1096
|
-
let u=e.default=(i=Ember._action,r=Ember._action,n=Ember._action,a=Ember._action,o((s=class extends t.default{handleOptionMouseDown(e){if(e.stopPropagation(),this.args.select.actions.close(),!e.target.closest("[data-selected-index]")){
|
|
1097
|
-
if(t)return t(e)}return this.chooseOption(e)}handleOptionTouchStart(e){
|
|
1098
|
-
if(t)return t(e)}reorderItems(){
|
|
1109
|
+
let u=e.default=(i=Ember._action,r=Ember._action,n=Ember._action,a=Ember._action,o((s=class extends t.default{handleOptionMouseDown(e){if(e.stopPropagation(),this.args.select.actions.close(),!e.target.closest("[data-selected-index]")){const t=this.args.extra.optionMouseDown
|
|
1110
|
+
if(t)return t(e)}return this.chooseOption(e)}handleOptionTouchStart(e){const t=this.args.extra.optionTouchStart
|
|
1111
|
+
if(t)return t(e)}reorderItems(){const e=this.args.select.selected.slice()
|
|
1099
1112
|
this.args.select.actions.select(e)}handleKeydown(e){if(this.args.onKeydown&&!1===this.args.onKeydown(e))return e.stopPropagation(),!1
|
|
1100
|
-
if(8===e.keyCode&&(e.stopPropagation(),Ember.isBlank(e.target.value))){
|
|
1113
|
+
if(8===e.keyCode&&(e.stopPropagation(),Ember.isBlank(e.target.value))){const t=this.args.select.selected[this.args.select.selected.length-1]
|
|
1101
1114
|
if(t){if(this.args.select.actions.select(this.args.buildSelection(t,this.args.select),e),"string"==typeof t)this.args.select.actions.search(t)
|
|
1102
|
-
else{
|
|
1115
|
+
else{const e=this.searchField
|
|
1103
1116
|
this.args.select.actions.search(Ember.get(t,e))}this.args.select.actions.open(e)}}}}).prototype,"handleOptionMouseDown",[i],Object.getOwnPropertyDescriptor(s.prototype,"handleOptionMouseDown"),s.prototype),o(s.prototype,"handleOptionTouchStart",[r],Object.getOwnPropertyDescriptor(s.prototype,"handleOptionTouchStart"),s.prototype),o(s.prototype,"reorderItems",[n],Object.getOwnPropertyDescriptor(s.prototype,"reorderItems"),s.prototype),o(s.prototype,"handleKeydown",[a],Object.getOwnPropertyDescriptor(s.prototype,"handleKeydown"),s.prototype),s)
|
|
1104
1117
|
Ember._setComponentTemplate(l,u)}),define("ghost-admin/components/gh-tooltip",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1105
1118
|
const t=Ember.HTMLBars.template({id:"b0yo4GOa",block:'{"symbols":["key","@text","@shortcut","&attrs"],"statements":[[11,"span"],[24,0,"gh-tooltip"],[17,4],[12],[2,"\\n"],[6,[37,3],[[32,3]],null,[["default","else"],[{"statements":[[2," "],[1,[32,2]],[2,"\\n"],[6,[37,2],[[30,[36,1],[[30,[36,1],[[32,3]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"p"],[14,0,"gh-shortcut-key"],[12],[1,[30,[36,0],[[32,1]],null]],[13],[2,"\\n"]],"parameters":[1]}]]]],"parameters":[]},{"statements":[[2," "],[1,[32,2]],[2,"\\n"]],"parameters":[]}]]],[13]],"hasEval":false,"upvars":["html-safe","-track-array","each","if"]}',moduleName:"ghost-admin/components/gh-tooltip.hbs"})
|
|
@@ -1110,7 +1123,7 @@ if("object"!=typeof r)return r
|
|
|
1110
1123
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
1111
1124
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1112
1125
|
class r extends t.default{constructor(...e){super(...e),i(this,"shouldFocus",!0)}focusOut(e){this._trimInput(e.target.value,e),super.focusOut(...arguments)}_trimInput(e,t){e&&"function"==typeof e.trim&&(e=e.trim()),this.element.value=e,this._elementValueDidChange(t)
|
|
1113
|
-
|
|
1126
|
+
const i=this.input
|
|
1114
1127
|
i&&i(t)}}e.default=r}),define("ghost-admin/components/gh-twitter-url-input",["exports","@glimmer/component"],function(e,t){var i,r,n
|
|
1115
1128
|
function a(e,t,i,r,n){var a={}
|
|
1116
1129
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -1144,9 +1157,10 @@ const P=Ember.HTMLBars.template({id:"bRb629Tq",block:'{"symbols":["photos","phot
|
|
|
1144
1157
|
let _=e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember._tracked,a=Ember._tracked,s=Ember._action,o=Ember._action,l=Ember._action,u=Ember._action,c=Ember._action,d=Ember._action,p=Ember._action,m=Ember._action,h=Ember._action,b=class extends t.default{get sideNavHidden(){return this.ui.isFullScreen}constructor(){super(...arguments),w(this,"unsplash",g,this),w(this,"ui",f,this),w(this,"zoomedPhoto",v,this),w(this,"searchTerm",y,this),key.setScope("unsplash")}willDestroy(){super.willDestroy(...arguments),key.setScope("default")}loadNextPage(){this.unsplash.loadNextPage()}search(e){e.preventDefault()
|
|
1145
1158
|
const t=e.target.value
|
|
1146
1159
|
this.unsplash.updateSearch(t),this.closeZoom()}clearSearch(e,t){e.target.value&&(t.stopPropagation(),this.unsplash.updateSearch(""))}zoomPhoto(e){this.zoomedPhoto=e}closeZoom(e){e?.preventDefault?.(),this.zoomedPhoto=null}select(e){this.unsplash.triggerDownload(e)
|
|
1147
|
-
|
|
1160
|
+
const t={src:e.urls.regular.replace(/&w=1080/,"&w=2000"),width:e.width,height:e.height,alt:e.description||"",caption:`Photo by <a href="${e.user.links.html}?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">${e.user.name}</a> / <a href="https://unsplash.com/?utm_source=ghost&utm_medium=referral&utm_campaign=api-credit">Unsplash</a>`}
|
|
1148
1161
|
this.args.select(t),this.args.close()}retry(e){e?.preventDefault(),this.unsplash.retryLastRequest()}handleEscape(e){if(e?.preventDefault(),this.zoomedPhoto)return this.closeZoom()
|
|
1149
|
-
this.args.close()}handleResize(e){
|
|
1162
|
+
this.args.close()}handleResize(e){const t=e.clientWidth
|
|
1163
|
+
let i=3
|
|
1150
1164
|
t<=540?i=1:t<=940&&(i=2),this.unsplash.changeColumnCount(i)}},g=E(b.prototype,"unsplash",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=E(b.prototype,"ui",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=E(b.prototype,"zoomedPhoto",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),y=E(b.prototype,"searchTerm",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),E(b.prototype,"loadNextPage",[s],Object.getOwnPropertyDescriptor(b.prototype,"loadNextPage"),b.prototype),E(b.prototype,"search",[o],Object.getOwnPropertyDescriptor(b.prototype,"search"),b.prototype),E(b.prototype,"clearSearch",[l],Object.getOwnPropertyDescriptor(b.prototype,"clearSearch"),b.prototype),E(b.prototype,"zoomPhoto",[u],Object.getOwnPropertyDescriptor(b.prototype,"zoomPhoto"),b.prototype),E(b.prototype,"closeZoom",[c],Object.getOwnPropertyDescriptor(b.prototype,"closeZoom"),b.prototype),E(b.prototype,"select",[d],Object.getOwnPropertyDescriptor(b.prototype,"select"),b.prototype),E(b.prototype,"retry",[p],Object.getOwnPropertyDescriptor(b.prototype,"retry"),b.prototype),E(b.prototype,"handleEscape",[m],Object.getOwnPropertyDescriptor(b.prototype,"handleEscape"),b.prototype),E(b.prototype,"handleResize",[h],Object.getOwnPropertyDescriptor(b.prototype,"handleResize"),b.prototype),b)
|
|
1151
1165
|
Ember._setComponentTemplate(P,_)}),define("ghost-admin/components/gh-uploader",["exports","ghost-admin/utils/ghost-paths","ghost-admin/components/gh-image-uploader","ember-concurrency"],function(e,t,i,r){function n(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
1152
1166
|
var i=e[Symbol.toPrimitive]
|
|
@@ -1155,28 +1169,32 @@ if("object"!=typeof r)return r
|
|
|
1155
1169
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
1156
1170
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1157
1171
|
const a=Ember.HTMLBars.template({id:"hB0rEz8l",block:'{"symbols":["&default"],"statements":[[18,1,[[30,[36,2],null,[["cancel","errors","files","isUploading","progressBar","setFiles","registerFileInput","triggerFileDialog","imageExtensions","imageMimeTypes","iconExtensions","iconMimeTypes"],[[30,[36,0],[[32,0],"cancel"],null],[32,0,["errors"]],[32,0,["files"]],[32,0,["_uploadFiles","isRunning"]],[30,[36,1],["gh-progress-bar"],[["percentage"],[[32,0,["uploadPercentage"]]]]],[30,[36,0],[[32,0],"setFiles"],null],[30,[36,0],[[32,0],"registerFileInput"],null],[30,[36,0],[[32,0],"triggerFileDialog"],null],[32,0,["imageExtensions"]],[32,0,["imageMimeTypes"]],[32,0,["iconExtensions"]],[32,0,["iconMimeTypes"]]]]]]],[2,"\\n"]],"hasEval":false,"upvars":["action","component","hash"]}',moduleName:"ghost-admin/components/gh-uploader.hbs"})
|
|
1158
|
-
class s extends Ember.Object{constructor(...e){super(...e),n(this,"file",null),n(this,"total",0),n(this,"loaded",0)}init(){super.init(...arguments),this.total=this.file&&this.file.size||0}update({loaded:e,total:t}){this.total=t,this.loaded=e}}e.default=Ember._setComponentTemplate(a,Ember.Component.extend({ajax:Ember.inject.service(),tagName:"",accept:"",extensions:"",files:null,paramName:"file",paramsHash:null,resourceName:"images",uploadUrl:null,requestMethod:"post",errors:null,totalSize:0,uploadedSize:0,uploadPercentage:0,uploadUrls:null,_defaultUploadUrl:"/images/upload/",_files:null,_uploadTrackers:null,onCancel(){},onComplete(){},onFailed(){},onStart(){},onUploadStart(){},onUploadFailure(){},onUploadSuccess(){},init(){this._super(...arguments),this.set("errors",[]),this.set("uploadUrls",[]),this._uploadTrackers=[],this.paramsHash||this.set("paramsHash",{purpose:"image"}),this.set("imageExtensions",i.IMAGE_EXTENSIONS),this.set("imageMimeTypes",i.IMAGE_MIME_TYPES),this.set("iconExtensions",i.ICON_EXTENSIONS),this.set("iconMimeTypes",i.ICON_MIME_TYPES)},didReceiveAttrs(){this._super(...arguments),this.uploadUrl||this.set("uploadUrl",this._defaultUploadUrl),this.files?.length&&this._setFiles(this.files)},actions:{registerFileInput(e){this.fileInput=e},triggerFileDialog(){this.fileInput?this.fileInput.click():console.error("When using uploader.triggerFileDialog you must call uploader.registerFileInput first")},setFiles(e,t){this._setFiles(e),t&&(this.fileInput=t())},cancel(){this._reset(),this.onCancel()}},_setFiles(e){this.set("files",e),e&&e!==this._files&&(this.get("_uploadFiles.isRunning")&&console.error("Adding new files whilst an upload is in progress is not supported."),this._files=e,this._validate()&&this._uploadFiles.perform(e))},_validate(){
|
|
1159
|
-
for(let n=0;n<e.length;n+=1){
|
|
1160
|
-
!0===s?i.push(a):r.push({fileName:a.name,message:s})}return!!Ember.isEmpty(r)||(this.set("errors",r),this.onFailed(r),!1)},_defaultValidator(e){let t=this.extensions
|
|
1172
|
+
class s extends Ember.Object{constructor(...e){super(...e),n(this,"file",null),n(this,"total",0),n(this,"loaded",0)}init(){super.init(...arguments),this.total=this.file&&this.file.size||0}update({loaded:e,total:t}){this.total=t,this.loaded=e}}e.default=Ember._setComponentTemplate(a,Ember.Component.extend({ajax:Ember.inject.service(),tagName:"",accept:"",extensions:"",files:null,paramName:"file",paramsHash:null,resourceName:"images",uploadUrl:null,requestMethod:"post",errors:null,totalSize:0,uploadedSize:0,uploadPercentage:0,uploadUrls:null,_defaultUploadUrl:"/images/upload/",_files:null,_uploadTrackers:null,onCancel(){},onComplete(){},onFailed(){},onStart(){},onUploadStart(){},onUploadFailure(){},onUploadSuccess(){},init(){this._super(...arguments),this.set("errors",[]),this.set("uploadUrls",[]),this._uploadTrackers=[],this.paramsHash||this.set("paramsHash",{purpose:"image"}),this.set("imageExtensions",i.IMAGE_EXTENSIONS),this.set("imageMimeTypes",i.IMAGE_MIME_TYPES),this.set("iconExtensions",i.ICON_EXTENSIONS),this.set("iconMimeTypes",i.ICON_MIME_TYPES)},didReceiveAttrs(){this._super(...arguments),this.uploadUrl||this.set("uploadUrl",this._defaultUploadUrl),this.files?.length&&this._setFiles(this.files)},actions:{registerFileInput(e){this.fileInput=e},triggerFileDialog(){this.fileInput?this.fileInput.click():console.error("When using uploader.triggerFileDialog you must call uploader.registerFileInput first")},setFiles(e,t){this._setFiles(e),t&&(this.fileInput=t())},cancel(){this._reset(),this.onCancel()}},_setFiles(e){this.set("files",e),e&&e!==this._files&&(this.get("_uploadFiles.isRunning")&&console.error("Adding new files whilst an upload is in progress is not supported."),this._files=e,this._validate()&&this._uploadFiles.perform(e))},_validate(){const e=this.files,t=this.validate||this._defaultValidator.bind(this),i=[],r=[]
|
|
1173
|
+
for(let n=0;n<e.length;n+=1){const a=e[n],s=t(a)
|
|
1174
|
+
!0===s?i.push(a):r.push({fileName:a.name,message:s})}return!!Ember.isEmpty(r)||(this.set("errors",r),this.onFailed(r),!1)},_defaultValidator(e){let t=this.extensions
|
|
1175
|
+
const[,i]=/(?:\.([^.]+))?$/.exec(e.name)
|
|
1161
1176
|
if(!t)return!0
|
|
1162
|
-
if(Ember.isArray(t)||(t=t.split(",")),!i||-1===t.indexOf(i.toLowerCase())){return`The file type you uploaded is not supported. Please use ${`.${t.join(", .").toUpperCase()}`}`}return!0},_uploadFiles:(0,r.task)(function*(e){
|
|
1177
|
+
if(Ember.isArray(t)||(t=t.split(",")),!i||-1===t.indexOf(i.toLowerCase())){return`The file type you uploaded is not supported. Please use ${`.${t.join(", .").toUpperCase()}`}`}return!0},_uploadFiles:(0,r.task)(function*(e){const t=[]
|
|
1163
1178
|
this._reset(),this.onStart(e)
|
|
1164
|
-
for(let i=0;i<e.length;i+=1){
|
|
1165
|
-
this._uploadTrackers.pushObject(n),t.push(this._uploadFile.perform(n,r,i))}yield(0,r.all)(t),Ember.isEmpty(this.errors)||this.onFailed(this.errors),this.onComplete(this.uploadUrls)}).drop(),_uploadFile:(0,r.task)(function*(e,i,r){
|
|
1179
|
+
for(let i=0;i<e.length;i+=1){const r=e[i],n=s.create({file:r})
|
|
1180
|
+
this._uploadTrackers.pushObject(n),t.push(this._uploadFile.perform(n,r,i))}yield(0,r.all)(t),Ember.isEmpty(this.errors)||this.onFailed(this.errors),this.onComplete(this.uploadUrls)}).drop(),_uploadFile:(0,r.task)(function*(e,i,r){const n=this.ajax,a=this._getFormData(i),s=`${(0,t.default)().apiRoot}${this.uploadUrl}`
|
|
1181
|
+
let o=null
|
|
1166
1182
|
try{o=yield Promise.resolve(this.onUploadStart(i))
|
|
1167
|
-
|
|
1183
|
+
const t=yield n[this.requestMethod](s,{data:a,processData:!1,contentType:!1,dataType:"text",xhr:()=>{const t=new window.XMLHttpRequest
|
|
1168
1184
|
return t.upload.addEventListener("progress",t=>{Ember.run(()=>{e.update(t),this._updateProgress()})},!1),t}})
|
|
1185
|
+
let u,c
|
|
1169
1186
|
e.update({loaded:i.size,total:i.size}),this._updateProgress()
|
|
1170
|
-
try{
|
|
1171
|
-
e&&Ember.isArray(e)&&e[0]&&(
|
|
1172
|
-
return this.uploadUrls[r]=d,this.onUploadSuccess(d,o),!0}catch(u){let e=u.payload&&u.payload.errors&&u.payload.errors[0].message||""
|
|
1187
|
+
try{u=JSON.parse(t)}catch(l){if(!(l instanceof SyntaxError))throw l}if(u){const e=Ember.get(u,this.resourceName)
|
|
1188
|
+
e&&Ember.isArray(e)&&e[0]&&(c=Ember.get(e[0],"url"))}const d={url:c,fileName:i.name}
|
|
1189
|
+
return this.uploadUrls[r]=d,this.onUploadSuccess(d,o),!0}catch(u){let e=u.payload&&u.payload.errors&&u.payload.errors[0].message||""
|
|
1190
|
+
const t=u.payload&&u.payload.errors&&u.payload.errors[0].context||""
|
|
1173
1191
|
e||(e=u.message)
|
|
1174
|
-
|
|
1175
|
-
this.errors.pushObject(r),this.onUploadFailure(r,o)}}).maxConcurrency(2).enqueue(),_getFormData(e){
|
|
1192
|
+
const r={message:e,context:t,fileName:i.name}
|
|
1193
|
+
this.errors.pushObject(r),this.onUploadFailure(r,o)}}).maxConcurrency(2).enqueue(),_getFormData(e){const t=new FormData
|
|
1176
1194
|
return t.append(this.paramName,e,e.name),Object.keys(this.paramsHash||{}).forEach(e=>{t.append(e,this.paramsHash[e])}),t},_updateProgress(){if(this.isDestroyed||this.isDestroying)return
|
|
1177
|
-
|
|
1195
|
+
const e=this._uploadTrackers,t=e.reduce((e,t)=>e+t.get("total"),0),i=e.reduce((e,t)=>e+t.get("loaded"),0)
|
|
1178
1196
|
if(this.set("totalSize",t),this.set("uploadedSize",i),0===t||0===i)return
|
|
1179
|
-
|
|
1197
|
+
const r=Math.round(i/t*100)
|
|
1180
1198
|
this.set("uploadPercentage",r)},_reset(){this.set("errors",[]),this.set("totalSize",0),this.set("uploadedSize",0),this.set("uploadPercentage",0),this.set("uploadUrls",[]),this._uploadTrackers=[]}}))}),define("ghost-admin/components/gh-url-input",["exports","@glimmer/component"],function(e,t){var i,r,n
|
|
1181
1199
|
function a(e,t,i,r,n){var a={}
|
|
1182
1200
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -1193,7 +1211,7 @@ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enum
|
|
|
1193
1211
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1194
1212
|
const c=Ember.HTMLBars.template({id:"B7Cdxahk",block:'{"symbols":[],"statements":[[1,[32,0,["url"]]],[2,"\\n"]],"hasEval":false,"upvars":[]}',moduleName:"ghost-admin/components/gh-url-preview.hbs"})
|
|
1195
1213
|
let d=e.default=(r=(0,t.classNames)("ghost-url-preview"),n=Ember.computed("slug"),r((s=class extends Ember.Component{constructor(...e){var t,i,r,n
|
|
1196
|
-
super(...e),t=this,i="config",n=this,(r=o)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),l(this,"prefix",null),l(this,"slug",null)}get url(){
|
|
1214
|
+
super(...e),t=this,i="config",n=this,(r=o)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),l(this,"prefix",null),l(this,"slug",null)}get url(){const e=this.config.blogUrl
|
|
1197
1215
|
return`${e.substr(e.indexOf("://")+3)}/${this.prefix?`${this.prefix}/`:""}${this.slug?`${this.slug}/`:""}`}},o=u(s.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u(s.prototype,"url",[n],Object.getOwnPropertyDescriptor(s.prototype,"url"),s.prototype),a=s))||a)
|
|
1198
1216
|
Ember._setComponentTemplate(c,d)}),define("ghost-admin/components/gh-view-title",["exports","@ember-decorators/component"],function(e,t){var i
|
|
1199
1217
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -1217,9 +1235,9 @@ return e?(e.startsWith("/")&&(e=window.location.origin+this.ghostPaths.adminRoot
|
|
|
1217
1235
|
if(e)if(window.pintura)this.scriptLoaded=!0
|
|
1218
1236
|
else try{const t=new URL(e)
|
|
1219
1237
|
let i
|
|
1220
|
-
i="http:"===t.protocol?import(`http://${t.host}${t.pathname}`):import(`https://${t.host}${t.pathname}`),i.then(()=>{this.scriptLoaded=!0}).catch(()=>{})}catch(t){}}loadImageEditorCSS(){
|
|
1238
|
+
i="http:"===t.protocol?import(`http://${t.host}${t.pathname}`):import(`https://${t.host}${t.pathname}`),i.then(()=>{this.scriptLoaded=!0}).catch(()=>{})}catch(t){}}loadImageEditorCSS(){const e=this.getImageEditorCSSUrl()
|
|
1221
1239
|
if(e)try{if(document.querySelector(`link[href="${e}"]`))this.cssLoaded=!0
|
|
1222
|
-
else{
|
|
1240
|
+
else{const t=document.createElement("link")
|
|
1223
1241
|
t.rel="stylesheet",t.type="text/css",t.href=e,t.onload=()=>{this.cssLoaded=!0},document.head.appendChild(t)}}catch(t){}}constructor(){super(...arguments),k(this,"ajax",g,this),k(this,"feature",f,this),k(this,"settings",v,this),k(this,"ghostPaths",y,this),k(this,"scriptLoaded",w,this),k(this,"cssLoaded",E,this),k(this,"allowClose",P,this),k(this,"config",_,this),this.loadImageEditorJavascript(),this.loadImageEditorCSS()}willDestroy(){super.willDestroy(...arguments),this.removeCloseHandler()}async onUploadComplete(e){if(this.args.saveUrl){const t=e[0].url
|
|
1224
1242
|
this.args.saveUrl(t)}}willClose(){return!!this.allowClose&&(this.allowClose=!1,this.removeCloseHandler(),!0)}async handleClick(e){if(this.isEditorEnabled&&this.args.imageSrc){this.allowClose=!1,this.addCloseHandler()
|
|
1225
1243
|
const t=new URL(this.args.imageSrc)
|
|
@@ -1270,7 +1288,7 @@ return r.default.createElement(i,t)},W=({editorResource:e,...t})=>{const{TKCount
|
|
|
1270
1288
|
return r.default.createElement(i,t)},K={useFileUpload:o.useKoenigFileUpload,fileTypes:o.koenigFileUploadTypes},G=()=>{},J=({cardConfig:e,darkMode:t,editorArgs:i,editorResource:n,isInitInstance:a,onError:s})=>r.default.createElement("div",{"data-secondary-instance":!!a,style:a?{display:"none"}:{}},r.default.createElement(q,{editorResource:n,cardConfig:e,fileUploader:K,initialEditorState:i.lexical,onError:s,darkMode:t,isTKEnabled:!0},r.default.createElement($,{editorResource:n,cursorDidExitAtTop:a?null:i.cursorDidExitAtTop,placeholderText:a?null:i.placeholderText,darkMode:a?null:t,onChange:a?i.updateSecondaryInstanceModel:i.onChange,registerAPI:a?i.registerSecondaryAPI:i.registerAPI}),r.default.createElement(Y,{editorResource:n,onChange:a?G:i.updateWordCount}),r.default.createElement(W,{editorResource:n,onChange:a?G:i.updatePostTkCount})))
|
|
1271
1289
|
let X=e.default=(l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember.inject.service,p=Ember.inject.service,m=Ember.inject.service,h=Ember.inject.service,b=Ember.inject.service,g=Ember.inject.service,f=Ember._action,v=(0,a.task)({restartable:!1}),y=(0,a.task)({restartable:!1}),w=class extends i.default{constructor(...e){super(...e),C(this,"ajax",E,this),C(this,"feature",P,this),C(this,"ghostPaths",_,this),C(this,"koenig",k,this),C(this,"membersUtils",O,this),C(this,"search",j,this),C(this,"session",T,this),C(this,"settings",z,this),C(this,"store",x,this),C(this,"config",S,this),D(this,"offers",null),D(this,"contentKey",null),D(this,"defaultLinks",null),D(this,"editorResource",this.koenig.resource),D(this,"ReactComponent",e=>{const t={defaultHeaders:{Authorization:"Client-ID 8672af113b0a8573edae3aa3713886265d9bb741d707f6c01a486cde8c278980","Accept-Version":"v1","Content-Type":"application/json","App-Pragma":"no-cache","X-Unsplash-Cache":!0}},i={unsplash:this.settings.unsplash?t.defaultHeaders:null,klipy:this.config.klipy?.apiKey?this.config.klipy:null,fetchAutocompleteLinks:async()=>{const e="page"===this.args.cardConfig?.post?.displayName?"page":"post",t=[{label:"Homepage",value:window.location.origin+"/"},{label:"Free signup",value:"#/portal/signup/free"}],i=[{label:`Share ${e}`,value:"#/share"}],r=await H.call(this)
|
|
1272
1290
|
return[...t,...(()=>{let e=[]
|
|
1273
|
-
return this.membersUtils.paidMembersEnabled&&(e=[{label:"Paid signup",value:"#/portal/signup"},{label:"Upgrade or change plan",value:"#/portal/account/plans"}]),e})(),...(()=>this.settings.donationsEnabled?[{label:"Tips and donations",value:"#/portal/support"}]:[])(),...(()=>this.membersUtils.paidMembersEnabled?[{label:"Gift subscriptions",value:"#/portal/gift"}]:[])(),...i,...(()=>this.settings.recommendationsEnabled?[{label:"Recommendations",value:"#/portal/recommendations"}]:[])(),...r]},fetchEmbed:async(e,{type:t})=>{
|
|
1291
|
+
return this.membersUtils.paidMembersEnabled&&(e=[{label:"Paid signup",value:"#/portal/signup"},{label:"Upgrade or change plan",value:"#/portal/account/plans"}]),e})(),...(()=>this.settings.donationsEnabled?[{label:"Tips and donations",value:"#/portal/support"}]:[])(),...(()=>this.membersUtils.paidMembersEnabled?[{label:"Gift subscriptions",value:"#/portal/gift"}]:[])(),...i,...(()=>this.settings.recommendationsEnabled?[{label:"Recommendations",value:"#/portal/recommendations"}]:[])(),...r]},fetchEmbed:async(e,{type:t})=>{const i=this.ghostPaths.url.api("oembed")
|
|
1274
1292
|
return await this.ajax.request(i,{data:{url:e,type:t}})},fetchLabels:async()=>{let e=[]
|
|
1275
1293
|
try{e=await this.fetchLabelsTask.perform()}catch(t){if((0,a.didCancel)(t))return[]
|
|
1276
1294
|
throw t}return e.map(e=>e.name)},renderLabels:!this.session.user.isContributor,feature:{transistor:this.settings.transistor,paywallImprovements:this.feature.paywallImprovements},deprecated:{headerV1:!0},membersEnabled:"all"===this.settings.membersSignupAccess,searchLinks:async e=>{if(!e){if(this.defaultLinks)return this.defaultLinks
|
|
@@ -1325,14 +1343,15 @@ e.default=Ember._setComponentTemplate(a,t.default.extend({store:Ember.inject.ser
|
|
|
1325
1343
|
this.set("signinUrl",e.url)}).drop()}))})
|
|
1326
1344
|
define("ghost-admin/components/modal-members-label-form",["exports","ghost-admin/components/modal-base","ghost-admin/helpers/reset-query-params","ember-concurrency"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1327
1345
|
const n=Ember.HTMLBars.template({id:"osAPvi2p",block:'{"symbols":[],"statements":[[6,[37,3],[[32,0,["showDeleteLabelModal"]]],null,[["default","else"],[{"statements":[[2," "],[10,"header"],[14,0,"modal-header"],[12],[2,"\\n "],[10,"h1"],[12],[2,"Are you sure you want to delete this label?"],[13],[2,"\\n "],[13],[2,"\\n "],[11,"a"],[24,0,"close"],[24,6,""],[24,"role","button"],[24,"title","Close"],[4,[38,0],[[32,0],"closeModal"],null],[12],[1,[30,[36,4],["close"],null]],[10,"span"],[14,0,"hidden"],[12],[2,"Close"],[13],[13],[2,"\\n\\n "],[10,"div"],[14,0,"modal-body"],[12],[2,"\\n "],[10,"p"],[12],[2,"\\n You’re about to delete label \\""],[10,"strong"],[12],[1,[32,0,["label","name"]]],[13],[2,"\\". This is permanent! We warned you, k?\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"modal-footer"],[12],[2,"\\n "],[11,"button"],[24,0,"gh-btn"],[24,4,"button"],[4,[38,0],[[32,0],"closeModal"],null],[12],[10,"span"],[12],[2,"Cancel"],[13],[13],[2,"\\n "],[8,"gh-task-button",[],[["@buttonText","@successText","@task","@class"],["Delete","Deleted",[32,0,["deleteLabel"]],"gh-btn gh-btn-red gh-btn-icon"]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2,"\\n "],[10,"header"],[14,0,"modal-header"],[14,"data-test-modal","label-form"],[12],[2,"\\n "],[10,"h1"],[12],[1,[30,[36,3],[[32,0,["label","isNew"]],"New label","Edit label"],null]],[13],[2,"\\n "],[13],[2,"\\n"],[2," "],[11,"button"],[24,0,"close"],[24,6,""],[24,"title","Close"],[24,4,"button"],[4,[38,0],[[32,0],"closeModal"],null],[4,[38,0],[[32,0],[30,[36,2],[[32,0,["noop"]]],null]],[["on"],["mouseDown"]]],[12],[2,"\\n "],[1,[30,[36,4],["close"],null]],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"modal-body"],[12],[2,"\\n "],[10,"fieldset"],[12],[2,"\\n "],[8,"gh-form-group",[],[["@errors","@hasValidated","@property"],[[32,0,["label","errors"]],[32,0,["label","hasValidated"]],"name"]],[["default"],[{"statements":[[2,"\\n "],[10,"label"],[14,"for","label-name"],[14,0,"fw6 dib"],[12],[2,"Label name"],[13],[2,"\\n "],[8,"gh-text-input",[[24,"data-test-input","label-name"]],[["@id","@value","@focus-out"],["label-name",[32,0,["label","name"]],[30,[36,0],[[32,0],"validate","name"],[["target"],[[32,0,["label"]]]]]]],null],[2,"\\n"],[6,[37,3],[[32,0,["label","errors"]]],null,[["default"],[{"statements":[[2," "],[8,"gh-error-message",[[24,"data-test-error","label-name"]],[["@errors","@property"],[[32,0,["label","errors"]],"name"]],null],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"modal-footer"],[12],[2,"\\n"],[6,[37,3],[[32,0,["label","isNew"]]],null,[["default","else"],[{"statements":[[2," "],[11,"button"],[24,0,"gh-btn"],[24,"data-test-button","cancel-label-form"],[24,4,"button"],[4,[38,0],[[32,0],"closeModal"],null],[4,[38,0],[[32,0],[30,[36,2],[[32,0,["noop"]]],null]],[["on"],["mouseDown"]]],[12],[2,"\\n "],[10,"span"],[12],[2,"Cancel"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[11,"button"],[24,0,"gh-btn gh-btn-red gh-btn-icon"],[24,"data-test-button","delete-label"],[24,4,"button"],[4,[38,1],["click",[30,[36,0],[[32,0],"toggleDeleteLabelModal"],null]],null],[4,[38,1],["mousedown",[30,[36,2],[[32,0,["noop"]]],null]],null],[12],[2,"\\n "],[10,"span"],[12],[2,"Delete"],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[8,"gh-task-button",[[24,"data-test-button","save-label"]],[["@buttonText","@runningText","@successText","@task","@taskArgs","@class"],["Save","Saving...","Saved",[32,0,["saveTask"]],[32,0,["label"]],"gh-btn gh-btn-black gh-btn-icon"]],null],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"hasEval":false,"upvars":["action","on","optional","if","svg-jar"]}',moduleName:"ghost-admin/components/modal-members-label-form.hbs"})
|
|
1328
|
-
e.default=Ember._setComponentTemplate(n,t.default.extend({router:Ember.inject.service(),notifications:Ember.inject.service(),labelsManager:Ember.inject.service(),model:null,showDeleteLabelModal:!1,confirm(){},label:Ember.computed.and("model","model.label"),willDestroyElement(){this._super(...arguments),this.label.errors.clear(),this.label.rollbackAttributes()},actions:{toggleDeleteLabelModal(){this.label.rollbackAttributes(),this.set("showDeleteLabelModal",!0)},validate(e){return this.label.validate({property:e})},confirm(){return this.saveTask.perform()}},saveTask:(0,r.task)(function*(){
|
|
1346
|
+
e.default=Ember._setComponentTemplate(n,t.default.extend({router:Ember.inject.service(),notifications:Ember.inject.service(),labelsManager:Ember.inject.service(),model:null,showDeleteLabelModal:!1,confirm(){},label:Ember.computed.and("model","model.label"),willDestroyElement(){this._super(...arguments),this.label.errors.clear(),this.label.rollbackAttributes()},actions:{toggleDeleteLabelModal(){this.label.rollbackAttributes(),this.set("showDeleteLabelModal",!0)},validate(e){return this.label.validate({property:e})},confirm(){return this.saveTask.perform()}},saveTask:(0,r.task)(function*(){const e=this.model&&this.model.label,t=this.model&&this.model.labels||[]
|
|
1329
1347
|
if(!e)return!1
|
|
1330
|
-
try{
|
|
1331
|
-
|
|
1332
|
-
|
|
1348
|
+
try{yield e.validate()
|
|
1349
|
+
if(t.find(t=>t.name.trim().toLowerCase()===e.name.trim().toLowerCase()&&t.slug!==e.slug))return e.errors.add("name","A label with the same name already exists"),e.hasValidated.pushObject("name"),!1
|
|
1350
|
+
const i=yield e.save()
|
|
1351
|
+
return this.notifications.showNotification("Label saved"),this.send("closeModal"),i}catch(i){i&&this.notifications.showAPIError(i,{key:"label.save"})}}),deleteLabel:(0,r.task)(function*(){const e=this.model&&this.model.label
|
|
1333
1352
|
if(!e)return!1
|
|
1334
1353
|
try{yield e.destroyRecord(),this.labelsManager.removeLabel(e)
|
|
1335
|
-
|
|
1354
|
+
const t=this.router.currentRouteName
|
|
1336
1355
|
this.notifications.showNotification("Label deleted"),this.send("closeModal"),this.router.transitionTo(t,{queryParams:(0,i.resetQueryParams)(t)})}catch(t){if(t)return this.notifications.showAPIError(t,{key:"label.delete"})}})}))}),define("ghost-admin/components/modal-post-history",["exports","@glimmer/component","dompurify","ghost-admin/components/modals/restore-revision","@ember/test-waiters"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k
|
|
1337
1356
|
function O(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function j(e,t,i,r,n){var a={}
|
|
1338
1357
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -1341,9 +1360,11 @@ let z=e.default=(a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.se
|
|
|
1341
1360
|
return e.feature_image_caption=i.default.sanitize(e.feature_image_caption,{ALLOWED_TAGS:["a","b","i","span"],ALLOWED_ATTR:["href","style"],ALLOW_DATA_ATTR:!1,ALLOW_ARIA_ATTR:!1}),e}get currentTitle(){return this.selectedRevision?.title||this.post.get("title")}get revisionList(){const e=this.post.get("postRevisions").toArray().sort((e,t)=>t.get("createdAt")-e.get("createdAt"))
|
|
1342
1361
|
return e.map((t,i)=>({lexical:t.get("lexical"),selected:i===this.selectedRevisionIndex,latest:0===i,createdAt:t.get("createdAt"),title:t.get("title"),custom_excerpt:t.get("customExcerpt")??this.post.customExcerpt,feature_image:t.get("featureImage"),feature_image_alt:t.get("featureImageAlt"),feature_image_caption:t.get("featureImageCaption"),author:{name:t.get("author.name")||"Deleted staff user",profile_image_url:t.get("author.profileImageUrl")},postStatus:t.get("postStatus"),reason:t.get("reason"),new_publish:"published"===t.get("postStatus")&&"draft"===e[i+1]?.get("postStatus")}))}onInsert(){this.updateSelectedHTML(),window.addEventListener("keydown",this.handleKeyDown)}willDestroy(){super.willDestroy(...arguments),window.removeEventListener("keydown",this.handleKeyDown)}handleKeyDown(e){"Escape"===e.key&&this.args.closeModal()}async handleClick(e){this.selectedRevisionIndex=e,await this.updateSelectedHTML()}registerSelectedEditorApi(e){this.selectedEditor=e}registerSecondarySelectedEditorApi(e){this.secondarySelectedEditor=e}registerComparisonEditorApi(e){this.comparisonEditor=e}closeModal(){this.args.closeModal()}stripInitialPlaceholder(e){return e.replace(/<div\b[^>]*>(\s*Begin writing your post\.\.\.\s*)<\/div>/i,"")}restoreRevision(e){const t=this.revisionList[e]
|
|
1343
1362
|
this.modals.open(r.default,{post:this.post,revision:t,updateTitle:()=>{Ember.set(this.post,"titleScratch",t.title)},updateEditor:()=>{const e=this.editorAPI.editorInstance.parseEditorState(t.lexical)
|
|
1344
|
-
this.editorAPI.editorInstance.setEditorState(e),this.secondaryEditorAPI.editorInstance.setEditorState(e)},closePostHistoryModal:()=>{this.closeModal(),this.toggleSettingsMenu()}})}get cardConfig(){return{post:this.args.model}}updateSelectedHTML(){return new Promise(e=>{if(this.selectedEditor){
|
|
1345
|
-
this.selectedEditor.editorInstance.setEditorState(e)}
|
|
1346
|
-
|
|
1363
|
+
this.editorAPI.editorInstance.setEditorState(e),this.secondaryEditorAPI.editorInstance.setEditorState(e)},closePostHistoryModal:()=>{this.closeModal(),this.toggleSettingsMenu()}})}get cardConfig(){return{post:this.args.model}}updateSelectedHTML(){return new Promise(e=>{if(this.selectedEditor){const e=this.selectedEditor.editorInstance.parseEditorState(this.selectedRevision.lexical)
|
|
1364
|
+
this.selectedEditor.editorInstance.setEditorState(e)}const t=document.querySelector(".gh-post-history-hidden-lexical.current")
|
|
1365
|
+
let i=!1
|
|
1366
|
+
const r=()=>{i&&(this.selectedHTML=this.stripInitialPlaceholder(t.innerHTML)),e()};(function(e,t){let i=e.innerHTML
|
|
1367
|
+
setTimeout(function r(){const n=e.innerHTML
|
|
1347
1368
|
n===i?t():(i=n,setTimeout(r,50))},50)})(t,()=>{t.querySelectorAll("[contenteditable]").forEach(e=>{e.setAttribute("contenteditable",!1)}),i=!0,r()})})}},w=j(y.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=j(y.prototype,"modals",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=j(y.prototype,"ghostPaths",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=j(y.prototype,"selectedHTML",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),k=j(y.prototype,"selectedRevisionIndex",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),j(y.prototype,"onInsert",[c],Object.getOwnPropertyDescriptor(y.prototype,"onInsert"),y.prototype),j(y.prototype,"willDestroy",[d],Object.getOwnPropertyDescriptor(y.prototype,"willDestroy"),y.prototype),j(y.prototype,"handleKeyDown",[p],Object.getOwnPropertyDescriptor(y.prototype,"handleKeyDown"),y.prototype),j(y.prototype,"handleClick",[m,n.waitFor],Object.getOwnPropertyDescriptor(y.prototype,"handleClick"),y.prototype),j(y.prototype,"registerSelectedEditorApi",[h],Object.getOwnPropertyDescriptor(y.prototype,"registerSelectedEditorApi"),y.prototype),j(y.prototype,"registerSecondarySelectedEditorApi",[b],Object.getOwnPropertyDescriptor(y.prototype,"registerSecondarySelectedEditorApi"),y.prototype),j(y.prototype,"registerComparisonEditorApi",[g],Object.getOwnPropertyDescriptor(y.prototype,"registerComparisonEditorApi"),y.prototype),j(y.prototype,"closeModal",[f],Object.getOwnPropertyDescriptor(y.prototype,"closeModal"),y.prototype),j(y.prototype,"restoreRevision",[v],Object.getOwnPropertyDescriptor(y.prototype,"restoreRevision"),y.prototype),y)
|
|
1348
1369
|
Ember._setComponentTemplate(T,z)}),define("ghost-admin/components/modal-post-success",["exports","@glimmer/component","ghost-admin/utils/copy-text-to-clipboard","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l,u,c,d
|
|
1349
1370
|
function p(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function m(e,t,i,r,n){var a={}
|
|
@@ -1397,9 +1418,8 @@ if(!this.newsletter&&this.args.data.newsletter&&(this.newsletter=this.args.data.
|
|
|
1397
1418
|
this.newsletter=e}if(e&&t)return
|
|
1398
1419
|
if(this.args.data.html&&this.args.data.subject)e=this.args.data.html,t=this.args.data.subject
|
|
1399
1420
|
else if(this.args.data.email)e=this.args.data.email.html,t=this.args.data.email.subject
|
|
1400
|
-
else{const i=this.args.data.post_id||this.args.data.id
|
|
1401
|
-
|
|
1402
|
-
e=a.html,t=a.subject}let i=(new DOMParser).parseFromString(e,"text/html"),r=i.querySelector("style"),n=r.innerHTML
|
|
1421
|
+
else{const i=this.args.data.post_id||this.args.data.id,r=this.ghostPaths.url.api("/email_previews/posts",i),n=await this.ajax.request(r),[a]=n.email_previews
|
|
1422
|
+
e=a.html,t=a.subject}const i=(new DOMParser).parseFromString(e,"text/html"),r=i.querySelector("style"),n=r.innerHTML
|
|
1403
1423
|
r.innerHTML=`${n}\n\n\nhtml::-webkit-scrollbar {\n display: none;\n width: 0;\n background: transparent\n}\nhtml {\n scrollbar-width: none;\n}\n`
|
|
1404
1424
|
e=(new XMLSerializer).serializeToString(i.doctype)+i.documentElement.outerHTML,this.html=e,this.subject=t}},k(P,"modalOptions",{className:"fullscreen-modal-full-overlay fullscreen-modal-email-preview"}),h=O((m=P).prototype,"ajax",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=O(m.prototype,"ghostPaths",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=O(m.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=O(m.prototype,"store",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=O(m.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=O(m.prototype,"tab",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"desktop"}}),w=O(m.prototype,"subject",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),E=O(m.prototype,"newsletter",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),O(m.prototype,"changeTab",[d],Object.getOwnPropertyDescriptor(m.prototype,"changeTab"),m.prototype),O(m.prototype,"renderEmailPreview",[p],Object.getOwnPropertyDescriptor(m.prototype,"renderEmailPreview"),m.prototype),m)
|
|
1405
1425
|
Ember._setComponentTemplate(j,T)}),define("ghost-admin/components/modals/limits/publish-limit",["exports","@glimmer/component","ghost-admin/utils/upgrade-url","ghost-admin/decorators/inject"],function(e,t,i,r){var n,a
|
|
@@ -1413,7 +1433,7 @@ function h(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,config
|
|
|
1413
1433
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1414
1434
|
const g=Ember.HTMLBars.template({id:"+HTEknrW",block:'{"symbols":["@close"],"statements":[[10,"div"],[14,0,"modal-content"],[12],[2,"\\n "],[10,"header"],[14,0,"modal-header"],[14,"data-test-modal","new-integration"],[12],[2,"\\n "],[10,"h1"],[12],[2,"New custom integration"],[13],[2,"\\n "],[13],[2,"\\n"],[2," "],[11,"button"],[24,0,"close"],[24,6,""],[24,"title","Close"],[24,4,"button"],[4,[38,0],["click",[32,1]],null],[12],[2,"\\n "],[1,[30,[36,1],["close"],null]],[2,"\\n "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"modal-body"],[12],[2,"\\n "],[10,"fieldset"],[12],[2,"\\n "],[8,"gh-form-group",[],[["@errors","@hasValidated","@property"],[[32,0,["integration","errors"]],[32,0,["integration","hasValidated"]],"name"]],[["default"],[{"statements":[[2,"\\n "],[10,"label"],[14,"for","new-integration-name"],[14,0,"fw6"],[12],[2,"Name"],[13],[2,"\\n "],[11,"input"],[16,2,[32,0,["integration","name"]]],[24,1,"new-integration-name"],[24,0,"gh-input mt1"],[24,3,"integration-name"],[24,"autofocus","autofocus"],[24,"autocapitalize","off"],[24,"autocorrect","off"],[24,"data-test-input","new-integration-name"],[24,4,"text"],[4,[38,0],["input",[32,0,["updateName"]]],null],[4,[38,3],["Enter",[30,[36,2],[[32,0,["createIntegrationTask"]]],null]],null],[4,[38,4],null,null],[12],[13],[2,"\\n "],[8,"gh-error-message",[[24,"data-test-error","new-integration-name"]],[["@errors","@property"],[[32,0,["integration","errors"]],"name"]],null],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,5],[[32,0,["errorMessage"]]],null,[["default"],[{"statements":[[2," "],[10,"p"],[14,0,"error"],[12],[10,"strong"],[14,0,"response"],[12],[1,[32,0,["errorMessage"]]],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n\\n "],[10,"div"],[14,0,"modal-footer"],[12],[2,"\\n "],[11,"button"],[24,0,"gh-btn"],[24,"data-test-button","cancel-new-integration"],[24,4,"button"],[4,[38,0],["click",[32,1]],null],[12],[2,"\\n "],[10,"span"],[12],[2,"Cancel"],[13],[2,"\\n "],[13],[2,"\\n\\n "],[8,"gh-task-button",[[24,"data-test-button","create-integration"]],[["@buttonText","@successText","@task","@class"],["Create","Created",[32,0,["createIntegrationTask"]],"gh-btn gh-btn-black gh-btn-icon"]],null],[2,"\\n "],[13],[2,"\\n\\n"],[13]],"hasEval":false,"upvars":["on","svg-jar","perform","on-key","autofocus","if"]}',moduleName:"ghost-admin/components/modals/new-custom-integration.hbs"})
|
|
1415
1435
|
let f=e.default=(a=Ember.inject.service,s=Ember.inject.service,o=Ember._tracked,l=Ember._action,u=(0,n.task)({drop:!0}),c=class extends t.default{constructor(){super(...arguments),h(this,"router",d,this),h(this,"store",p,this),h(this,"errorMessage",m,this),this.integration=this.store.createRecord("integration")}willDestroy(){super.willDestroy(...arguments),this.integration.rollbackAttributes()}updateName(e){this.integration.set("name",e.target.value),this.integration.set("hasValidated",Ember.A()),this.integration.errors.clear()}*createIntegrationTask(){try{const e=yield this.integration.save()
|
|
1416
|
-
return this.router.transitionTo("settings.integration",e),!0}catch(e){if(e&&(0,r.isInvalidError)(e)){
|
|
1436
|
+
return this.router.transitionTo("settings.integration",e),!0}catch(e){if(e&&(0,r.isInvalidError)(e)){const[t]=e.payload.errors,{message:i}=t
|
|
1417
1437
|
if(i&&i.match(/name/i))return this.integration.errors.add("name",i),void this.integration.hasValidated.pushObject("name")}if((0,i.isHostLimitError)(e))return void(this.errorMessage=e.payload.errors[0].context)
|
|
1418
1438
|
if(e)throw e}}},d=b(c.prototype,"router",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=b(c.prototype,"store",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=b(c.prototype,"errorMessage",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b(c.prototype,"updateName",[l],Object.getOwnPropertyDescriptor(c.prototype,"updateName"),c.prototype),b(c.prototype,"createIntegrationTask",[u],Object.getOwnPropertyDescriptor(c.prototype,"createIntegrationTask"),c.prototype),c)
|
|
1419
1439
|
Ember._setComponentTemplate(g,f)}),define("ghost-admin/components/modals/restore-revision",["exports","@glimmer/component","ember-concurrency"],function(e,t,i){var r,n,a,s,o
|
|
@@ -1466,8 +1486,8 @@ e.default=t.default}),define("ghost-admin/components/one-way-select",["exports",
|
|
|
1466
1486
|
function u(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function c(e,t,i,r,n){var a={}
|
|
1467
1487
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1468
1488
|
const d=Ember.HTMLBars.template({id:"bMz+er0q",block:'{"symbols":["order","tag","author","visibility","type","@selectedTag","@staticTagOptions","@loadTagsPage","@searchTagsPage","@sortTags","@onTagChange","@selectedAuthor","@staticAuthorOptions","@loadAuthorsPage","@searchAuthorsPage","@onAuthorChange","@selectedVisibility","@availableVisibilities","@onVisibilityChange","&attrs","@selectedType","@availableTypes","@onTypeChange","@currentUser","@selectedOrder","@availableOrders","@onOrderChange"],"statements":[[11,"div"],[24,0,"gh-contentfilter view-actions-bottom-row"],[17,20],[12],[2,"\\n\\n "],[10,"div"],[15,0,[31,["gh-contentfilter-menu gh-contentfilter-type ",[30,[36,2],[[32,21,["value"]],"gh-contentfilter-selected"],null]]]],[14,"data-test-type-select","true"],[12],[2,"\\n "],[8,"power-select",[[24,"aria-label","Type filter"]],[["@selected","@options","@searchEnabled","@onChange","@triggerComponent","@triggerClass","@dropdownClass","@matchTriggerWidth"],[[32,21],[32,22],false,[32,23],[30,[36,3],["gh-power-select/trigger"],null],"gh-contentfilter-menu-trigger","gh-contentfilter-menu-dropdown",false]],[["default"],[{"statements":[[2,"\\n "],[6,[37,2],[[32,5,["name"]]],null,[["default","else"],[{"statements":[[1,[32,5,["name"]]]],"parameters":[]},{"statements":[[10,"span"],[14,0,"red"],[12],[2,"Unknown type"],[13]],"parameters":[]}]]],[2,"\\n "]],"parameters":[5]}]]],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,4],[[32,24,["isContributor"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[15,0,[31,["gh-contentfilter-menu gh-contentfilter-visibility ",[30,[36,2],[[32,17,["value"]],"gh-contentfilter-selected"],null]]]],[14,"data-test-visibility-select","true"],[12],[2,"\\n "],[8,"power-select",[[24,"aria-label","Visibility filter"]],[["@selected","@options","@searchEnabled","@onChange","@triggerComponent","@triggerClass","@dropdownClass","@matchTriggerWidth"],[[32,17],[32,18],false,[32,19],[30,[36,3],["gh-power-select/trigger"],null],"gh-contentfilter-menu-trigger","gh-contentfilter-menu-dropdown",false]],[["default"],[{"statements":[[2,"\\n "],[6,[37,2],[[32,4,["name"]]],null,[["default","else"],[{"statements":[[1,[32,4,["name"]]]],"parameters":[]},{"statements":[[10,"span"],[14,0,"red"],[12],[2,"Unknown visibility"],[13]],"parameters":[]}]]],[2,"\\n "]],"parameters":[4]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,4],[[32,24,["isAuthorOrContributor"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[15,0,[31,["gh-contentfilter-menu gh-contentfilter-author ",[30,[36,2],[[32,12,["slug"]],"gh-contentfilter-selected"],null]]]],[14,"data-test-author-select","true"],[12],[2,"\\n "],[8,"gh-paginated-filter-select",[],[["@selected","@staticOptions","@loadPage","@searchPage","@searchDebounceMs","@onChange","@triggerClass","@dropdownClass","@searchPlaceholder","@ariaLabel"],[[32,12],[32,13],[32,14],[32,15],250,[32,16],"gh-contentfilter-menu-trigger","gh-contentfilter-menu-dropdown","Search authors","Author filter"]],[["default"],[{"statements":[[2,"\\n "],[6,[37,2],[[32,3,["name"]]],null,[["default","else"],[{"statements":[[1,[32,3,["name"]]]],"parameters":[]},{"statements":[[10,"span"],[14,0,"red"],[12],[2,"Unknown author"],[13]],"parameters":[]}]]],[2,"\\n "]],"parameters":[3]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,4],[[32,24,["isContributor"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[15,0,[31,["gh-contentfilter-menu gh-contentfilter-tag ",[30,[36,2],[[32,6,["slug"]],"gh-contentfilter-selected"],null]]]],[14,"data-test-tag-select","true"],[12],[2,"\\n "],[8,"gh-paginated-filter-select",[],[["@selected","@staticOptions","@loadPage","@searchPage","@searchDebounceMs","@sortOptions","@onChange","@triggerClass","@dropdownClass","@searchPlaceholder","@ariaLabel"],[[32,6],[32,7],[32,8],[32,9],250,[32,10],[32,11],"gh-contentfilter-menu-trigger","gh-contentfilter-menu-dropdown","Search tags","Tag filter"]],[["default"],[{"statements":[[2,"\\n "],[6,[37,2],[[32,2,["name"]]],null,[["default","else"],[{"statements":[[1,[32,2,["name"]]]],"parameters":[]},{"statements":[[10,"span"],[14,0,"red"],[12],[2,"Unknown tag"],[13]],"parameters":[]}]]],[2,"\\n "]],"parameters":[2]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n "],[10,"div"],[14,0,"gh-contentfilter-menu gh-contentfilter-sort"],[14,"data-test-order-select","true"],[12],[2,"\\n "],[8,"power-select",[[24,"aria-label","Sort filter"]],[["@selected","@options","@searchEnabled","@onChange","@triggerComponent","@triggerClass","@dropdownClass","@matchTriggerWidth"],[[32,25],[32,26],false,[32,27],[30,[36,3],["gh-power-select/trigger"],null],"gh-contentfilter-menu-trigger","gh-contentfilter-menu-dropdown",false]],[["default"],[{"statements":[[2,"\\n "],[6,[37,2],[[32,1,["name"]]],null,[["default","else"],[{"statements":[[1,[32,1,["name"]]]],"parameters":[]},{"statements":[[10,"span"],[14,0,"red"],[12],[2,"Unknown"],[13]],"parameters":[]}]]],[2,"\\n "]],"parameters":[1]}]]],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,2],[[32,0,["showCustomViewManagement"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"dropdown gh-contentfilter-menu gh-contentfilter-actions"],[12],[2,"\\n"],[6,[37,2],[[32,0,["customViews","activeView"]]],null,[["default","else"],[{"statements":[[2," "],[11,"button"],[24,0,"gh-contentfilter-menu-trigger gh-contentfilter-button gh-btn-save-view"],[24,"title","Edit current view..."],[24,"data-test-button","edit-view"],[24,4,"button"],[4,[38,0],["click",[32,0,["customViews","editView"]]],null],[12],[2,"\\n "],[1,[30,[36,1],["edit-view"],null]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[11,"button"],[24,0,"gh-contentfilter-menu-trigger gh-contentfilter-button gh-btn-save-view"],[24,"title","Save as view..."],[24,"data-test-button","add-view"],[24,4,"button"],[4,[38,0],["click",[32,0,["customViews","editView"]]],null],[12],[2,"\\n "],[1,[30,[36,1],["add-view"],null]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[13]],"hasEval":false,"upvars":["on","svg-jar","if","component","unless"]}',moduleName:"ghost-admin/components/posts-list/content-filter.hbs"})
|
|
1469
|
-
let p=e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember.inject.service,a=class extends t.default{constructor(...e){super(...e),u(this,"customViews",s,this),u(this,"feature",o,this),u(this,"router",l,this)}get showCustomViewManagement(){
|
|
1470
|
-
return e&&t&&!i&&r}calculateActionsDropdownPosition(e,t){
|
|
1489
|
+
let p=e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember.inject.service,a=class extends t.default{constructor(...e){super(...e),u(this,"customViews",s,this),u(this,"feature",o,this),u(this,"router",l,this)}get showCustomViewManagement(){const e=Ember.get(this.args.currentUser||{},"isAdmin"),t="posts"===this.router.currentRouteName,i=this.customViews?.activeView?.isDefault,r=this.args.selectedType.value||this.args.selectedVisibility.value||this.args.selectedAuthor.slug||this.args.selectedTag.slug||this.args.selectedOrder.value
|
|
1490
|
+
return e&&t&&!i&&r}calculateActionsDropdownPosition(e,t){const{top:i,left:r,width:n,height:a}=e.getBoundingClientRect(),{width:s}=t.firstElementChild.getBoundingClientRect()
|
|
1471
1491
|
return{style:{left:r+n-s,top:i+a+5}}}},s=c(a.prototype,"customViews",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=c(a.prototype,"feature",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=c(a.prototype,"router",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a)
|
|
1472
1492
|
Ember._setComponentTemplate(d,p)}),define("ghost-admin/components/posts-list/context-menu",["exports","ghost-admin/components/posts-list/modals/add-tag","@glimmer/component","ghost-admin/components/posts-list/modals/delete-posts","ghost-admin/components/posts-list/modals/edit-posts-access","ghost-admin/components/posts-list/modals/unpublish-posts","ghost-admin/components/posts-list/modals/unschedule-posts","ghost-admin/utils/copy-text-to-clipboard","@tryghost/nql","ghost-admin/utils/gift-link","ghost-admin/helpers/capitalize-first-letter","ember-concurrency","ghost-admin/utils/analytics"],function(e,t,i,r,n,a,s,o,l,u,c,d,p){var m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U,F,B,H
|
|
1473
1493
|
function V(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 q(e,t){(function(e,t){if(t.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,t),t.add(e)}function $(e,t,i){if("function"==typeof e?e===t:e.has(t))return arguments.length<3?t:i
|
|
@@ -1502,10 +1522,8 @@ for(const t of e)this.store.push({data:{id:t.id,type:this.type,attributes:{featu
|
|
|
1502
1522
|
return this.updateFilteredPosts(),!0}*copyPostsTask(){try{const e=yield this.performCopy()
|
|
1503
1523
|
this.store.pushPayload(e)
|
|
1504
1524
|
const t=e["post"===this.type?"posts":"pages"][0],i=this.store.peekRecord(this.type,t.id)
|
|
1505
|
-
this.selectionList.infinityModel.draftInfinityModel&&this.selectionList.infinityModel.draftInfinityModel.content.unshiftObject(i),this.notifications.showNotification($(H,this,X).call(this,"duplicated"),{type:"success"})}catch(e){this.notifications.showAPIError(e,{key:`${this.type}.copy.failed`})}return!0}*copyPostLinkTask(){return(0,o.default)(this.selectionList.availableModels[0].url),this.notifications.showNotification($(H,this,X).call(this,"copiedPostUrl"),{type:"success"}),yield(0,d.timeout)(1e3),!0}*copyPreviewLinkTask(){return(0,o.default)(this.selectionList.availableModels[0].url),this.notifications.showNotification($(H,this,X).call(this,"copiedPreviewUrl"),{type:"success"}),yield(0,d.timeout)(1e3),!0}async performBulkDestroy(){const e=this.selectionList.filter
|
|
1506
|
-
|
|
1507
|
-
return await this.ajax.delete(t)}async performBulkEdit(e,t={}){const i=this.selectionList.filter
|
|
1508
|
-
let r=this.ghostPaths.url.api("post"===this.type?"posts/bulk":"pages/bulk")+`?filter=${encodeURIComponent(i)}`
|
|
1525
|
+
this.selectionList.infinityModel.draftInfinityModel&&this.selectionList.infinityModel.draftInfinityModel.content.unshiftObject(i),this.notifications.showNotification($(H,this,X).call(this,"duplicated"),{type:"success"})}catch(e){this.notifications.showAPIError(e,{key:`${this.type}.copy.failed`})}return!0}*copyPostLinkTask(){return(0,o.default)(this.selectionList.availableModels[0].url),this.notifications.showNotification($(H,this,X).call(this,"copiedPostUrl"),{type:"success"}),yield(0,d.timeout)(1e3),!0}*copyPreviewLinkTask(){return(0,o.default)(this.selectionList.availableModels[0].url),this.notifications.showNotification($(H,this,X).call(this,"copiedPreviewUrl"),{type:"success"}),yield(0,d.timeout)(1e3),!0}async performBulkDestroy(){const e=this.selectionList.filter,t=this.ghostPaths.url.api("post"===this.type?"posts":"pages")+`?filter=${encodeURIComponent(e)}`
|
|
1526
|
+
return await this.ajax.delete(t)}async performBulkEdit(e,t={}){const i=this.selectionList.filter,r=this.ghostPaths.url.api("post"===this.type?"posts/bulk":"pages/bulk")+`?filter=${encodeURIComponent(i)}`
|
|
1509
1527
|
return await this.ajax.put(r,{data:{bulk:{action:e,meta:t}}})}async performCopy(){const e=this.selectionList.availableModels[0].id,t=this.ghostPaths.url.api(`${"post"===this.type?"posts":"pages"}/${e}/copy`)+"?formats=mobiledoc,lexical"
|
|
1510
1528
|
return await this.ajax.post(t)}get shouldFeatureSelection(){let e=0
|
|
1511
1529
|
for(const t of this.selectionList.availableModels)t.featured&&(e+=1)
|
|
@@ -1517,14 +1535,14 @@ function X(e){return this.selectionList.isSingle?K(G[e].single,{count:this.selec
|
|
|
1517
1535
|
function P(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function _(e,t,i,r,n){var a={}
|
|
1518
1536
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1519
1537
|
const k=Ember.HTMLBars.template({id:"U76BTjcN",block:'{"symbols":["@post","@hideAuthor","&attrs"],"statements":[[11,"li"],[24,0,"gh-list-row gh-posts-list-item gh-post-list-plain-status gh-post-list-analytics"],[24,"data-testid","posts-list-item"],[17,3],[4,[38,16],["mouseover",[32,0,["mouseOver"]]],null],[4,[38,16],["mouseleave",[32,0,["mouseLeave"]]],null],[12],[2,"\\n\\n"],[6,[37,1],[[30,[36,3],[[32,0,["session","user","isContributor"]],[32,1,["isPublished"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[32,1,["url"]]],[14,0,"permalink gh-list-data gh-post-list-title gh-post-with-feature-image"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-list-feature-image"],[15,5,[30,[36,14],[[30,[36,13],["background-image: url(",[32,1,["featureImage"]],");"],null]],null]],[12],[2,"\\n"],[6,[37,15],[[32,1,["featureImage"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-post-list-feature-image-placeholder"],[12],[2,"\\n "],[1,[30,[36,2],["post-feature-image-placeholder"],null]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-post-list-title-content"],[12],[2,"\\n "],[10,"h3"],[14,0,"gh-content-entry-title"],[12],[2,"\\n "],[1,[32,1,["title"]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,15],[[32,2]],null,[["default"],[{"statements":[[2," "],[10,"p"],[14,0,"gh-content-entry-meta"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-entry-author"],[12],[2,"\\n By "],[1,[30,[36,11],[[32,1]],null]],[2,"\\n\\n"],[6,[37,1],[[32,1,["primaryTag"]]],null,[["default"],[{"statements":[[2," in "],[10,"span"],[14,0,"midgrey-l2 fw5"],[12],[1,[32,1,["primaryTag","name"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n -\\n "],[13],[2,"\\n"],[6,[37,1],[[30,[36,12],[[32,1,["isDraft"]],[32,1,["isScheduled"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-content-entry-date"],[15,"title",[31,["Updated ",[30,[36,10],[[32,1,["updatedAtUTC"]]],[["absolute"],[true]]]]]],[12],[2,"\\n "],[1,[30,[36,10],[[32,1,["updatedAtUTC"]]],[["absolute","short"],[true,true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"gh-content-entry-date"],[15,"title",[31,["Published ",[30,[36,10],[[32,1,["publishedAtUTC"]]],[["absolute"],[true]]]]]],[12],[2,"\\n "],[1,[30,[36,10],[[32,1,["publishedAtUTC"]]],[["absolute","short"],[true,true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"p"],[14,0,"gh-content-entry-status"],[14,"data-test-editor-post-status",""],[12],[2,"\\n "],[10,"span"],[14,0,"published"],[12],[2,"\\n Published\\n"],[6,[37,1],[[32,1,["hasEmail"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,0,["isHovered"]]],null,[["default","else"],[{"statements":[[2," and sent to "],[1,[30,[36,8],[[32,1,["email","emailCount"]],"member"],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," and sent\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"link-to",[[24,0,"permalink gh-list-data gh-post-list-title gh-post-with-feature-image"]],[["@route","@models"],["lexical-editor.edit",[30,[36,0],[[32,0,["post","displayName"]],[32,0,["post","id"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-post-list-feature-image"],[15,5,[30,[36,14],[[30,[36,13],["background-image: url(",[32,1,["featureImage"]],");"],null]],null]],[12],[2,"\\n"],[6,[37,15],[[32,1,["featureImage"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-post-list-feature-image-placeholder"],[12],[2,"\\n "],[1,[30,[36,2],["post-feature-image-placeholder"],null]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-post-list-title-content"],[12],[2,"\\n "],[10,"h3"],[14,0,"gh-content-entry-title"],[12],[2,"\\n"],[6,[37,1],[[32,1,["featured"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],["star-fill"],[["class"],["gh-featured-post"]]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[32,1,["title"]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,15],[[32,2]],null,[["default"],[{"statements":[[2," "],[10,"p"],[14,0,"gh-content-entry-meta"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-entry-author"],[12],[2,"\\n By "],[1,[30,[36,11],[[32,1]],null]],[2,"\\n\\n"],[6,[37,1],[[32,1,["primaryTag"]]],null,[["default"],[{"statements":[[2," in "],[10,"span"],[14,0,"midgrey-l2 fw5"],[12],[1,[32,1,["primaryTag","name"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," -\\n "],[13],[2,"\\n"],[6,[37,1],[[30,[36,12],[[32,1,["isDraft"]],[32,1,["isScheduled"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-content-entry-date"],[15,"title",[31,["Updated ",[30,[36,10],[[32,1,["updatedAtUTC"]]],[["absolute"],[true]]]]]],[12],[2,"\\n "],[1,[30,[36,10],[[32,1,["updatedAtUTC"]]],[["absolute","short"],[true,true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"gh-content-entry-date"],[15,"title",[31,["Published ",[30,[36,10],[[32,1,["publishedAtUTC"]]],[["absolute"],[true]]]]]],[12],[2,"\\n "],[1,[30,[36,10],[[32,1,["publishedAtUTC"]]],[["absolute","short"],[true,true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"p"],[14,0,"gh-content-entry-status"],[14,"data-test-editor-post-status",""],[12],[2,"\\n"],[6,[37,1],[[32,1,["isScheduled"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"scheduled"],[12],[2,"\\n Scheduled\\n"],[6,[37,1],[[32,0,["isHovered"]]],null,[["default"],[{"statements":[[2," "],[11,"span"],[24,0,"schedule-details"],[4,[38,7],["anim-fade-in-scale"],null],[12],[2,"\\n"],[6,[37,1],[[32,1,["emailOnly"]]],null,[["default","else"],[{"statements":[[2," to be sent\\n "],[1,[32,0,["scheduledText"]]],[2," to "],[1,[30,[36,9],[[32,1,["emailSegment"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," to be published "],[1,[30,[36,1],[[32,1,["newsletter"]],"and sent "],null]],[2,"\\n "],[1,[32,0,["scheduledText"]]],[2,"\\n"],[6,[37,1],[[32,1,["newsletter"]]],null,[["default"],[{"statements":[[2," to "],[1,[30,[36,9],[[32,1,["emailSegment"]]],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["isDraft"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"draft"],[12],[2,"\\n Draft\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["isPublished"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[15,0,[31,["published ",[32,0,["errorClass"]]]]],[12],[2,"\\n Published\\n"],[6,[37,1],[[32,1,["didEmailFail"]]],null,[["default","else"],[{"statements":[[2," but failed to send newsletter\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[32,1,["hasBeenEmailed"]]],null,[["default"],[{"statements":[[2," and sent\\n"],[6,[37,1],[[32,0,["isHovered"]]],null,[["default"],[{"statements":[[2," "],[11,"span"],[4,[38,7],["anim-fade-in-scale"],null],[12],[2,"to "],[1,[30,[36,8],[[32,1,["email","emailCount"]],"member"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["isSent"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[15,0,[31,["sent ",[32,0,["errorClass"]]]]],[12],[2,"\\n"],[6,[37,1],[[32,1,["didEmailFail"]]],null,[["default","else"],[{"statements":[[2," Failed to send newsletter\\n"]],"parameters":[]},{"statements":[[2," Sent\\n"],[6,[37,1],[[32,0,["isHovered"]]],null,[["default"],[{"statements":[[2," "],[11,"span"],[4,[38,7],["anim-fade-in-scale"],null],[12],[2,"to "],[1,[30,[36,8],[[32,1,["email","emailCount"]],"member"],null]],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[2," "],[10,"div"],[14,0,"gh-post-list-analytics-right"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-list-metrics-container"],[12],[2,"\\n\\n"],[6,[37,1],[[32,0,["settings","webAnalyticsEnabled"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,1,["isPublished"]]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/posts/analytics/",[32,1,["id"]],"/web"]]],[14,0,"permalink gh-list-data gh-post-list-metrics gh-post-list-analytics-tt-container"],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-post-list-analytics-tooltip ",[32,0,["tooltipPosition"]]]]],[12],[2,"\\n "],[10,"h3"],[12],[2,"Web traffic"],[13],[2,"\\n "],[10,"div"],[14,0,"metrics"],[12],[2,"\\n "],[10,"div"],[14,0,"metric"],[12],[2,"\\n "],[10,"div"],[14,0,"data"],[12],[2,"\\n "],[1,[30,[36,2],["analytics-visitors"],null]],[2,"\\n Unique visitors\\n "],[13],[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,1],[[32,0,["hasVisitorData"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,4],[[32,0,["visitorCount"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," 0\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-post-list-analytics-metric"],[14,"data-test-analytics-visitors",""],[12],[2,"\\n "],[1,[30,[36,2],["analytics-visitors"],[["class"],["gh-list-analytics-icon"]]]],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n"],[6,[37,1],[[32,0,["hasVisitorData"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,5],[[32,0,["visitorCount"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," 0\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["email"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-post-analytics-email-metrics gh-post-list-analytics-tt-container"],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-post-list-analytics-tooltip ",[32,0,["tooltipPosition"]]]]],[12],[2,"\\n "],[10,"h3"],[12],[2,"Newsletter performance"],[13],[2,"\\n "],[10,"div"],[14,0,"metrics"],[12],[2,"\\n"],[2," "],[10,"div"],[14,0,"metric"],[12],[2,"\\n "],[10,"div"],[14,0,"data"],[12],[2,"\\n "],[1,[30,[36,2],["analytics-sent"],null]],[2,"\\n Sent\\n "],[13],[2,"\\n "],[10,"span"],[12],[1,[30,[36,4],[[32,1,["email","emailCount"]]],null]],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,1],[[32,1,["showEmailOpenAnalytics"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"metric"],[12],[2,"\\n "],[10,"div"],[14,0,"data"],[12],[2,"\\n "],[1,[30,[36,2],["analytics-opens"],null]],[2,"\\n Opens\\n "],[13],[2,"\\n "],[10,"span"],[12],[1,[30,[36,4],[[32,1,["email","openedCount"]]],null]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,1],[[32,1,["showEmailClickAnalytics"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"metric"],[12],[2,"\\n "],[10,"div"],[14,0,"data"],[12],[2,"\\n "],[1,[30,[36,2],["analytics-clicks"],null]],[2,"\\n Clicks\\n "],[13],[2,"\\n "],[10,"span"],[12],[1,[30,[36,4],[[32,1,["count","clicks"]]],null]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,1],[[32,1,["showEmailOpenAnalytics"]]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/posts/analytics/",[32,1,["id"]],"/newsletter"]]],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-list-analytics-metric"],[14,"data-test-analytics-opens",""],[12],[2,"\\n "],[1,[30,[36,2],["analytics-opens"],[["class"],["gh-list-analytics-icon"]]]],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n "],[1,[32,1,["email","openRate"]]],[2,"%\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["showEmailClickAnalytics"]]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/posts/analytics/",[32,1,["id"]],"/newsletter"]]],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-list-analytics-metric"],[14,"data-test-analytics-clicks",""],[12],[2,"\\n "],[1,[30,[36,2],["analytics-clicks"],[["class"],["gh-list-analytics-icon"]]]],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n "],[1,[32,1,["clickRate"]]],[2,"%\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[30,[36,3],[[30,[36,6],[[32,1,["showEmailClickAnalytics"]]],null],[30,[36,6],[[32,1,["showEmailOpenAnalytics"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/posts/analytics/",[32,1,["id"]],"/newsletter"]]],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-list-analytics-metric"],[14,"data-test-analytics-sent",""],[12],[2,"\\n "],[1,[30,[36,2],["analytics-sent"],[["class"],["gh-list-analytics-icon"]]]],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n "],[1,[30,[36,5],[[32,1,["email","emailCount"]]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,0,["settings","membersTrackSources"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,1,["isPublished"]]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/posts/analytics/",[32,1,["id"]],"/growth"]]],[14,0,"permalink gh-list-data gh-post-list-metrics gh-post-list-analytics-tt-container"],[12],[2,"\\n "],[10,"div"],[15,0,[31,["gh-post-list-analytics-tooltip ",[32,0,["tooltipPosition"]]]]],[12],[2,"\\n "],[10,"h3"],[12],[2,"New members"],[13],[2,"\\n "],[10,"div"],[14,0,"metrics"],[12],[2,"\\n "],[10,"div"],[14,0,"metric"],[12],[2,"\\n "],[10,"div"],[14,0,"data"],[12],[2,"\\n "],[1,[30,[36,2],["analytics-free-members"],null]],[2,"\\n Free\\n "],[13],[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,1],[[32,0,["hasMemberData"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,4],[[32,0,["memberCounts","free"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," 0\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,1],[[32,0,["membersUtils","paidMembersEnabled"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"metric"],[12],[2,"\\n "],[10,"div"],[14,0,"data"],[12],[2,"\\n "],[1,[30,[36,2],["analytics-paid-members"],null]],[2,"\\n Paid\\n "],[13],[2,"\\n "],[10,"span"],[12],[2,"\\n"],[6,[37,1],[[32,0,["hasMemberData"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,4],[[32,0,["memberCounts","paid"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," 0\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-post-list-analytics-metric"],[14,"data-test-analytics-member-conversions",""],[12],[2,"\\n "],[1,[30,[36,2],["analytics-members"],[["class"],["gh-list-analytics-icon"]]]],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n"],[6,[37,1],[[32,0,["hasMemberData"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,4],[[32,0,["totalMemberConversions"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," 0\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n\\n"],[6,[37,1],[[32,1,["hasAnalyticsPage"]]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/posts/analytics/",[32,1,["id"]]]]],[14,0,"permalink gh-list-data gh-post-list-button"],[14,"title",""],[12],[2,"\\n "],[10,"span"],[15,0,[31,["gh-post-list-cta stats ",[30,[36,1],[[32,0,["isHovered"]],"is-hovered"],null]]]],[14,"title","Go to Analytics"],[14,"data-ignore-select",""],[12],[2,"\\n "],[1,[30,[36,2],["stats"],[["title"],["Go to Analytics"]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,3],[[32,0,["session","user","isContributor"]],[32,1,["isPublished"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[32,1,["url"]]],[14,0,"permalink gh-list-data gh-post-list-button"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"\\n "],[10,"span"],[15,0,[31,["gh-post-list-cta view ",[30,[36,1],[[32,0,["isHovered"]],"is-hovered"],null]]]],[14,"title","View post"],[14,"data-ignore-select",""],[12],[2,"\\n "],[1,[30,[36,2],["arrow-top-right"],[["title"],["View post"]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"link-to",[[24,0,"permalink gh-list-data gh-post-list-button"],[24,"title",""]],[["@route","@models"],["lexical-editor.edit",[30,[36,0],[[32,0,["post","displayName"]],[32,0,["post","id"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[15,0,[31,["gh-post-list-cta edit ",[30,[36,1],[[32,0,["isHovered"]],"is-hovered"],null]]]],[14,"title","Go to Editor"],[14,"data-ignore-select",""],[12],[2,"\\n "],[1,[30,[36,2],["pen"],[["title"],["Go to Editor"]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["array","if","svg-jar","and","format-number","abbreviate-number","not","css-transition","gh-pluralize","humanize-recipient-filter","gh-format-post-time","post-author-names","or","concat","html-safe","unless","on"]}',moduleName:"ghost-admin/components/posts-list/list-item-analytics.hbs"})
|
|
1520
|
-
let O=e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember._tracked,c=Ember._tracked,d=Ember._action,p=Ember._action,m=class extends t.default{constructor(...e){super(...e),P(this,"feature",h,this),P(this,"membersUtils",b,this),P(this,"session",g,this),P(this,"settings",f,this),P(this,"postAnalytics",v,this),P(this,"isHovered",y,this),P(this,"tooltipPosition",w,this),P(this,"config",E,this)}get post(){return this.args.post}get errorClass(){return this.post.didEmailFail?"error":""}get scheduledText(){
|
|
1538
|
+
let O=e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember._tracked,c=Ember._tracked,d=Ember._action,p=Ember._action,m=class extends t.default{constructor(...e){super(...e),P(this,"feature",h,this),P(this,"membersUtils",b,this),P(this,"session",g,this),P(this,"settings",f,this),P(this,"postAnalytics",v,this),P(this,"isHovered",y,this),P(this,"tooltipPosition",w,this),P(this,"config",E,this)}get post(){return this.args.post}get errorClass(){return this.post.didEmailFail?"error":""}get scheduledText(){const e=[],t=(0,i.formatPostTime)(this.post.publishedAtUTC,{timezone:this.settings.timezone,scheduled:!0})
|
|
1521
1539
|
return e.push(t),e.join(" ")}get visitorCount(){return this.postAnalytics.getVisitorCount(this.post.uuid)}get hasVisitorData(){return null!==this.visitorCount}get memberCounts(){return this.postAnalytics.getMemberCounts(this.post.uuid)}get hasMemberData(){return null!==this.memberCounts}get totalMemberConversions(){return this.memberCounts?this.memberCounts.free+this.memberCounts.paid:0}mouseOver(e){this.isHovered=!0,this.calculateTooltipPosition(e.currentTarget)}calculateTooltipPosition(e){const t=e.getBoundingClientRect().top>=110
|
|
1522
1540
|
this.tooltipPosition=t?"above":"below"}mouseLeave(){this.isHovered=!1}},h=_(m.prototype,"feature",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=_(m.prototype,"membersUtils",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=_(m.prototype,"session",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=_(m.prototype,"settings",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=_(m.prototype,"postAnalytics",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=_(m.prototype,"isHovered",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),w=_(m.prototype,"tooltipPosition",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"above"}}),E=_(m.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_(m.prototype,"mouseOver",[d],Object.getOwnPropertyDescriptor(m.prototype,"mouseOver"),m.prototype),_(m.prototype,"mouseLeave",[p],Object.getOwnPropertyDescriptor(m.prototype,"mouseLeave"),m.prototype),m)
|
|
1523
1541
|
Ember._setComponentTemplate(k,O)}),define("ghost-admin/components/posts-list/list-item",["exports","@glimmer/component","ghost-admin/helpers/gh-format-post-time","ghost-admin/decorators/inject"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m,h,b,g,f
|
|
1524
1542
|
function v(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,r,n){var a={}
|
|
1525
1543
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1526
1544
|
const w=Ember.HTMLBars.template({id:"73YJsAhx",block:'{"symbols":["@post","@hideAuthor","&attrs"],"statements":[[11,"li"],[24,0,"gh-list-row gh-posts-list-item gh-post-list-plain-status"],[17,3],[4,[38,14],["mouseover",[32,0,["mouseOver"]]],null],[4,[38,14],["mouseleave",[32,0,["mouseLeave"]]],null],[12],[2,"\\n\\n"],[6,[37,1],[[30,[36,3],[[32,0,["session","user","isContributor"]],[32,1,["isPublished"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[32,1,["url"]]],[14,0,"permalink gh-list-data gh-post-list-title"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"\\n "],[10,"h3"],[14,0,"gh-content-entry-title"],[12],[2,"\\n "],[1,[32,1,["title"]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,13],[[32,2]],null,[["default"],[{"statements":[[2," "],[10,"p"],[14,0,"gh-content-entry-meta"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-entry-author"],[12],[2,"\\n By "],[1,[30,[36,11],[[32,1]],null]],[2,"\\n\\n"],[6,[37,1],[[32,1,["primaryTag"]]],null,[["default"],[{"statements":[[2," in "],[10,"span"],[14,0,"midgrey-l2 fw5"],[12],[1,[32,1,["primaryTag","name"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n -\\n "],[13],[2,"\\n"],[6,[37,1],[[30,[36,12],[[32,1,["isDraft"]],[32,1,["isScheduled"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-content-entry-date"],[15,"title",[31,["Updated ",[30,[36,10],[[32,1,["updatedAtUTC"]]],[["absolute"],[true]]]]]],[12],[2,"\\n "],[1,[30,[36,10],[[32,1,["updatedAtUTC"]]],[["absolute","short"],[true,true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"gh-content-entry-date"],[15,"title",[31,["Published ",[30,[36,10],[[32,1,["publishedAtUTC"]]],[["absolute"],[true]]]]]],[12],[2,"\\n "],[1,[30,[36,10],[[32,1,["publishedAtUTC"]]],[["absolute","short"],[true,true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"p"],[14,0,"gh-content-entry-status"],[14,"data-test-editor-post-status",""],[12],[2,"\\n "],[10,"span"],[14,0,"published"],[12],[2,"\\n Published\\n"],[6,[37,1],[[32,1,["hasEmail"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,0,["isHovered"]]],null,[["default","else"],[{"statements":[[2," and sent to "],[1,[30,[36,8],[[32,1,["email","emailCount"]],"member"],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," and sent\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"link-to",[[24,0,"permalink gh-list-data gh-post-list-title"]],[["@route","@models"],["lexical-editor.edit",[30,[36,0],[[32,0,["post","displayName"]],[32,0,["post","id"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[14,0,"gh-content-entry-title"],[12],[2,"\\n"],[6,[37,1],[[32,1,["featured"]]],null,[["default"],[{"statements":[[2," "],[1,[30,[36,2],["star-fill"],[["class"],["gh-featured-post"]]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[1,[32,1,["title"]]],[2,"\\n "],[13],[2,"\\n"],[6,[37,13],[[32,2]],null,[["default"],[{"statements":[[2," "],[10,"p"],[14,0,"gh-content-entry-meta"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-entry-author"],[12],[2,"\\n By "],[1,[30,[36,11],[[32,1]],null]],[2,"\\n\\n"],[6,[37,1],[[32,1,["primaryTag"]]],null,[["default"],[{"statements":[[2," in "],[10,"span"],[14,0,"midgrey-l2 fw5"],[12],[1,[32,1,["primaryTag","name"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," -\\n "],[13],[2,"\\n"],[6,[37,1],[[30,[36,12],[[32,1,["isDraft"]],[32,1,["isScheduled"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-content-entry-date"],[15,"title",[31,["Updated ",[30,[36,10],[[32,1,["updatedAtUTC"]]],[["absolute"],[true]]]]]],[12],[2,"\\n "],[1,[30,[36,10],[[32,1,["updatedAtUTC"]]],[["absolute","short"],[true,true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"gh-content-entry-date"],[15,"title",[31,["Published ",[30,[36,10],[[32,1,["publishedAtUTC"]]],[["absolute"],[true]]]]]],[12],[2,"\\n "],[1,[30,[36,10],[[32,1,["publishedAtUTC"]]],[["absolute","short"],[true,true]]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"p"],[14,0,"gh-content-entry-status"],[14,"data-test-editor-post-status",""],[12],[2,"\\n"],[6,[37,1],[[32,1,["isScheduled"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"scheduled"],[12],[2,"\\n Scheduled\\n"],[6,[37,1],[[32,0,["isHovered"]]],null,[["default"],[{"statements":[[2," "],[11,"span"],[24,0,"schedule-details"],[4,[38,7],["anim-fade-in-scale"],null],[12],[2,"\\n"],[6,[37,1],[[32,1,["emailOnly"]]],null,[["default","else"],[{"statements":[[2," to be sent\\n "],[1,[32,0,["scheduledText"]]],[2," to "],[1,[30,[36,9],[[32,1,["emailSegment"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," to be published "],[1,[30,[36,1],[[32,1,["newsletter"]],"and sent "],null]],[2,"\\n "],[1,[32,0,["scheduledText"]]],[2,"\\n"],[6,[37,1],[[32,1,["newsletter"]]],null,[["default"],[{"statements":[[2," to "],[1,[30,[36,9],[[32,1,["emailSegment"]]],null]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["isDraft"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"draft"],[12],[2,"\\n Draft\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["isPublished"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[15,0,[31,["published ",[32,0,["errorClass"]]]]],[12],[2,"\\n Published\\n"],[6,[37,1],[[32,1,["didEmailFail"]]],null,[["default","else"],[{"statements":[[2," but failed to send newsletter\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[32,1,["hasBeenEmailed"]]],null,[["default"],[{"statements":[[2," and sent\\n"],[6,[37,1],[[32,0,["isHovered"]]],null,[["default"],[{"statements":[[2," "],[11,"span"],[4,[38,7],["anim-fade-in-scale"],null],[12],[2,"to "],[1,[30,[36,8],[[32,1,["email","emailCount"]],"member"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["isSent"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[15,0,[31,["sent ",[32,0,["errorClass"]]]]],[12],[2,"\\n"],[6,[37,1],[[32,1,["didEmailFail"]]],null,[["default","else"],[{"statements":[[2," Failed to send newsletter\\n"]],"parameters":[]},{"statements":[[2," Sent\\n"],[6,[37,1],[[32,0,["isHovered"]]],null,[["default"],[{"statements":[[2," "],[11,"span"],[4,[38,7],["anim-fade-in-scale"],null],[12],[2,"to "],[1,[30,[36,8],[[32,1,["email","emailCount"]],"member"],null]],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[2," "],[10,"div"],[14,0,"gh-post-list-metrics-container"],[12],[2,"\\n"],[6,[37,1],[[30,[36,3],[[32,1,["showEmailOpenAnalytics"]],[32,1,["showEmailClickAnalytics"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/members?filter=",[30,[36,6],["opened_emails.post_id:",[32,1,["id"]]],null]]]],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n"],[6,[37,1],[[32,0,["isHovered"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,5],[[32,1,["email","openedCount"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,1,["email","openRate"]]],[10,"sup"],[12],[2,"%"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats"],[12],[2,"\\n opened\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n"],[2," "],[13],[2,"\\n"]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,1,["showEmailClickAnalytics"]]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/members?filter=",[30,[36,6],["clicked_links.post_id:",[32,1,["id"]]],null]]]],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n"],[6,[37,1],[[32,0,["isHovered"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,5],[[32,1,["count","clicks"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,1,["clickRate"]]],[10,"sup"],[12],[2,"%"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats"],[12],[2,"\\n clicked\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,1],[[32,1,["showEmailOpenAnalytics"]]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/members?filter=",[30,[36,6],["opened_emails.post_id:",[32,1,["id"]]],null]]]],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n"],[6,[37,1],[[32,0,["isHovered"]]],null,[["default","else"],[{"statements":[[2," "],[1,[30,[36,5],[[32,1,["email","openedCount"]]],null]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,1,["email","openRate"]]],[10,"sup"],[12],[2,"%"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats"],[12],[2,"\\n opened\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n"],[2," "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,0,["settings","webAnalyticsEnabled"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,1,["isPublished"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,0,["hasVisitorData"]]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n "],[1,[30,[36,5],[[32,0,["visitorCount"]]],null]],[2,"\\n "],[13],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats"],[12],[2,"\\n visitors\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n —\\n "],[13],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats"],[12],[2,"\\n visitors\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[6,[37,1],[[32,0,["settings","membersTrackSources"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,1,["isPublished"]]],null,[["default"],[{"statements":[[6,[37,1],[[32,0,["hasMemberData"]]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[14,0,"permalink gh-list-data gh-post-list-metrics"],[15,"data-tooltip",[30,[36,1],[[32,0,["totalMemberConversions"]],[30,[36,6],[[30,[36,5],[[32,0,["memberCounts","free"]]],null]," free ",[30,[36,5],[[32,0,["memberCounts","paid"]]],null]," paid "],null]],null]],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n +"],[1,[30,[36,5],[[32,0,["totalMemberConversions"]]],null]],[2,"\\n"],[2," "],[13],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats"],[12],[2,"\\n members\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"permalink gh-list-data gh-post-list-metrics"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats-value"],[12],[2,"\\n —\\n "],[13],[2,"\\n "],[10,"span"],[14,0,"gh-content-email-stats"],[12],[2,"\\n members\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n\\n"],[6,[37,1],[[32,1,["hasAnalyticsPage"]]],null,[["default","else"],[{"statements":[[6,[37,1],[[30,[36,4],[[32,0,["session","user"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/posts/analytics/",[32,1,["id"]]]]],[14,0,"permalink gh-list-data gh-post-list-button"],[14,"title",""],[12],[2,"\\n "],[10,"span"],[15,0,[31,["gh-post-list-cta stats ",[30,[36,1],[[32,0,["isHovered"]],"is-hovered"],null]]]],[14,"title","Go to Analytics"],[14,"data-ignore-select",""],[12],[2,"\\n "],[1,[30,[36,2],["stats"],[["title"],["Go to Analytics"]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,1],[[30,[36,3],[[32,0,["session","user","isContributor"]],[32,1,["isPublished"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[32,1,["url"]]],[14,0,"permalink gh-list-data gh-post-list-button"],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[12],[2,"\\n "],[10,"span"],[15,0,[31,["gh-post-list-cta view ",[30,[36,1],[[32,0,["isHovered"]],"is-hovered"],null]]]],[14,"title","View post"],[14,"data-ignore-select",""],[12],[2,"\\n "],[1,[30,[36,2],["arrow-top-right"],[["title"],["View post"]]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[8,"link-to",[[24,0,"permalink gh-list-data gh-post-list-button"],[24,"title",""]],[["@route","@models"],["lexical-editor.edit",[30,[36,0],[[32,0,["post","displayName"]],[32,0,["post","id"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[15,0,[31,["gh-post-list-cta edit ",[30,[36,1],[[32,0,["isHovered"]],"is-hovered"],null]]]],[14,"title","Go to Editor"],[14,"data-ignore-select",""],[12],[2,"\\n "],[1,[30,[36,2],["pen"],[["title"],["Go to Editor"]]]],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[13],[2,"\\n"]],"hasEval":false,"upvars":["array","if","svg-jar","and","gh-user-can-admin","format-number","concat","css-transition","gh-pluralize","humanize-recipient-filter","gh-format-post-time","post-author-names","or","unless","on"]}',moduleName:"ghost-admin/components/posts-list/list-item.hbs"})
|
|
1527
|
-
let E=e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember._tracked,u=Ember._action,c=Ember._action,d=class extends t.default{constructor(...e){super(...e),v(this,"feature",p,this),v(this,"session",m,this),v(this,"settings",h,this),v(this,"postAnalytics",b,this),v(this,"isHovered",g,this),v(this,"config",f,this)}get post(){return this.args.post}get errorClass(){return this.post.didEmailFail?"error":""}get scheduledText(){
|
|
1545
|
+
let E=e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember._tracked,u=Ember._action,c=Ember._action,d=class extends t.default{constructor(...e){super(...e),v(this,"feature",p,this),v(this,"session",m,this),v(this,"settings",h,this),v(this,"postAnalytics",b,this),v(this,"isHovered",g,this),v(this,"config",f,this)}get post(){return this.args.post}get errorClass(){return this.post.didEmailFail?"error":""}get scheduledText(){const e=[],t=(0,i.formatPostTime)(this.post.publishedAtUTC,{timezone:this.settings.timezone,scheduled:!0})
|
|
1528
1546
|
return e.push(t),e.join(" ")}get visitorCount(){return this.postAnalytics.getVisitorCount(this.post.uuid)}get hasVisitorData(){return null!==this.visitorCount}get memberCounts(){return this.postAnalytics.getMemberCounts(this.post.uuid)}get hasMemberData(){return null!==this.memberCounts}get totalMemberConversions(){return this.memberCounts?this.memberCounts.free+this.memberCounts.paid:0}mouseOver(){this.isHovered=!0}mouseLeave(){this.isHovered=!1}},p=y(d.prototype,"feature",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=y(d.prototype,"session",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=y(d.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=y(d.prototype,"postAnalytics",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=y(d.prototype,"isHovered",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),f=y(d.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y(d.prototype,"mouseOver",[u],Object.getOwnPropertyDescriptor(d.prototype,"mouseOver"),d.prototype),y(d.prototype,"mouseLeave",[c],Object.getOwnPropertyDescriptor(d.prototype,"mouseLeave"),d.prototype),d)
|
|
1529
1547
|
Ember._setComponentTemplate(w,E)}),define("ghost-admin/components/posts-list/list",["exports","@glimmer/component","ghost-admin/components/modal-post-success","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p
|
|
1530
1548
|
function m(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function h(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
@@ -1589,22 +1607,24 @@ if(i?.content&&0!==i.content.length)for(const r of i.content){if(r.id===this.las
|
|
|
1589
1607
|
break}if(t=!0,r.id===this.lastSelectedId)continue}t&&(this.lastShiftSelectionGroup.add(r.id),this.inverted?this.selectedIds.delete(r.id):this.selectedIds.add(r.id))}}this.selectedIds=this.selectedIds}selectAll(){b(c,this)||(this.selectedIds=new Set,this.inverted=!this.inverted,this.lastSelectedId=null)}clearSelection(e={}){b(c,this)&&!e.force||(this.selectedIds=new Set,this.inverted=!1,this.lastSelectedId=null)}},s=v(a.prototype,"selectedIds",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Set}}),o=v(a.prototype,"inverted",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),l=v(a.prototype,"lastSelectedId",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),u=v(a.prototype,"lastShiftSelectionGroup",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new Set}}),a)}),define("ghost-admin/components/posts/debug",["exports","@glimmer/component","moment-timezone","ember-concurrency","ghost-admin/helpers/format-number","ghost-admin/helpers/gh-pluralize"],function(e,t,i,r,n,a){var s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U,F,B,H
|
|
1590
1608
|
function V(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 q(e,t,i,r,n){var a={}
|
|
1591
1609
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1592
|
-
const $=Ember.HTMLBars.template({id:"k5XyES7n",block:'{"symbols":["tabs","batch","failure","index","failure","index","publishedAt","@post"],"statements":[[11,"section"],[24,0,"gh-canvas gh-email-debug"],[4,[38,7],[[32,0,["loadData"]]],null],[12],[2,"\\n "],[8,"gh-canvas-header",[[24,0,"gh-canvas-header gh-post-analytics-header"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"flex flex-column flex-grow-1"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-canvas-breadcrumb"],[12],[2,"\\n "],[8,"link-to",[],[["@route"],["posts"]],[["default"],[{"statements":[[2,"\\n Posts\\n "]],"parameters":[]}]]],[2,"\\n "],[1,[30,[36,1],["arrow-right-small"],null]],[2,"\\n "],[10,"a"],[15,6,[31,["#/posts/analytics/",[32,0,["post","id"]]]]],[12],[2,"\\n Analytics\\n "],[13],[2,"\\n "],[1,[30,[36,1],["arrow-right-small"],null]],[2,"\\n Debug\\n "],[13],[2,"\\n "],[10,"h2"],[14,0,"gh-canvas-title gh-post-title"],[12],[2,"\\n "],[1,[32,0,["post","title"]]],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-post-analytics-meta"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-analytics-meta-text"],[12],[2,"\\n"],[6,[37,2],[[32,0,["post","hasBeenEmailed"]]],null,[["default","else"],[{"statements":[[6,[37,2],[[32,0,["post","emailOnly"]]],null,[["default","else"],[{"statements":[[2," Sent\\n"]],"parameters":[]},{"statements":[[2," Published and sent\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[2," Published\\n"],[6,[37,2],[[32,8,["didEmailFail"]]],null,[["default","else"],[{"statements":[[2," but failed to send\\n"]],"parameters":[]},{"statements":[[2," on your site\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[6,[37,9],[[30,[36,8],[[32,0,["post","publishedAtUTC"]]],null]],null,[["default"],[{"statements":[[2," on\\n "],[1,[30,[36,6],[[32,7],"D MMM YYYY"],null]],[2,"\\n at\\n "],[1,[30,[36,6],[[32,7],"HH:mm"],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,2],[[30,[36,10],[[32,0,["post","email","status"]],"failed"],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-box gh-box-error gh-box-tip gh-email-debug-error"],[12],[2,"\\n "],[1,[30,[36,1],["warning"],null]],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-errortext"],[12],[2,"\\n "],[10,"h4"],[12],[1,[32,0,["emailError","message"]]],[13],[2,"\\n "],[10,"p"],[14,0,"mb0"],[12],[1,[32,0,["emailError","details"]]],[13],[2,"\\n "],[13],[2,"\\n "],[8,"link-to",[[24,0,"gh-btn gh-btn-primary gh-btn-icon gh-btn-red ember-view self-center"]],[["@route","@models"],["lexical-editor.edit",[30,[36,5],[[32,0,["post","displayName"]],[32,0,["post","id"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"Retry"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"tabs/tabs",[[24,0,"gh-tabs-analytics"]],[["@forceRender"],[false]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["tab"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[1,[30,[36,1],["analytics-tab-sent-large"],null]],[2," "],[1,[32,0,["tabTotals","permanentFailures"]]],[13],[2,"\\n "],[10,"p"],[12],[10,"span"],[14,0,"analytics-tab-label"],[12],[2,"Permanent "],[1,[30,[36,11],[[32,0,["tabTotals","permanentFailures"]],"failure"],[["without-count"],[true]]]],[13],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tabPanel"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"table"],[14,0,"gh-list gh-email-debug-permanent-failures"],[12],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,0,["permanentFailureData"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-col-member"],[12],[2,"\\n"],[6,[37,2],[[32,5,["member","id"]]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/members/",[32,5,["member","id"]]]]],[14,0,"gh-email-debug-member"],[12],[2,"\\n "],[8,"gh-member-avatar",[],[["@member","@containerClass"],[[32,5,["member","record"]],"w9 h9 mr3 flex-shrink-0"]],null],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h3"],[14,0,"ma0 pa0 gh-members-list-name"],[15,"title",[32,5,["recipient","name"]]],[12],[1,[32,5,["recipient","name"]]],[13],[2,"\\n "],[10,"p"],[14,0,"ma0 pa0 middarkgrey f8 gh-members-list-email"],[15,"title",[32,5,["recipient","email"]]],[12],[1,[32,5,["recipient","email"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"gh-email-debug-member"],[12],[2,"\\n "],[10,"figure"],[14,0,"gh-member-gravatar w9 h9 mr3 flex-shrink-0 bg-red"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-member-initials flex w9 h9 items-center justify-center br-100"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-member-avatar-label gh-member-list-avatar"],[12],[1,[32,5,["recipient","initials"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h3"],[14,0,"ma0 pa0 gh-members-list-name"],[15,"title",[32,5,["recipient","name"]]],[12],[1,[32,5,["recipient","name"]]],[13],[2,"\\n "],[10,"p"],[14,0,"ma0 pa0 middarkgrey f8 gh-members-list-email"],[15,"title",[32,5,["recipient","email"]]],[12],[1,[32,5,["recipient","email"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-col-failure"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure-details"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure-codes"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-email-debug-failure-code"],[12],[2,"Failure code: "],[10,"span"],[12],[1,[32,5,["code"]]],[13],[13],[2,"\\n"],[6,[37,2],[[32,5,["enhancedCode"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-email-debug-failure-code"],[12],[2,"Enhanced code: "],[10,"span"],[12],[1,[32,5,["enhancedCode"]]],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[8,"posts/debug/email-error-message",[],[["@index","@message"],[[32,6],[32,5,["message"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[5,6]}]]],[6,[37,3],[[32,0,["permanentFailureData"]]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-empty-list"],[12],[2,"No permanent failures."],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tab"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[1,[30,[36,1],["analytics-tab-opened-large"],null]],[1,[32,0,["tabTotals","temporaryFailures"]]],[13],[2,"\\n "],[10,"p"],[12],[10,"span"],[14,0,"analytics-tab-label"],[12],[2,"Temporary "],[1,[30,[36,11],[[32,0,["tabTotals","temporaryFailures"]],"failure"],[["without-count"],[true]]]],[13],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tabPanel"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"table"],[14,0,"gh-list gh-email-debug-permanent-failures"],[12],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,0,["temporaryFailureData"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-col-member"],[12],[2,"\\n"],[6,[37,2],[[32,3,["member","id"]]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/members/",[32,3,["member","id"]]]]],[14,0,"gh-email-debug-member"],[12],[2,"\\n "],[8,"gh-member-avatar",[],[["@member","@containerClass"],[[32,3,["member","record"]],"w9 h9 mr3 flex-shrink-0"]],null],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h3"],[14,0,"ma0 pa0 gh-members-list-name"],[15,"title",[32,3,["recipient","name"]]],[12],[1,[32,3,["recipient","name"]]],[13],[2,"\\n "],[10,"p"],[14,0,"ma0 pa0 middarkgrey f8 gh-members-list-email"],[15,"title",[32,3,["recipient","email"]]],[12],[1,[32,3,["recipient","email"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"gh-email-debug-member"],[12],[2,"\\n "],[10,"figure"],[14,0,"gh-member-gravatar w9 h9 mr3 flex-shrink-0 bg-blue"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-member-initials flex w9 h9 items-center justify-center br-100"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-member-avatar-label gh-member-list-avatar"],[12],[1,[32,3,["recipient","initials"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h3"],[14,0,"ma0 pa0 gh-members-list-name"],[15,"title",[32,3,["recipient","name"]]],[12],[1,[32,3,["recipient","name"]]],[13],[2,"\\n "],[10,"p"],[14,0,"ma0 pa0 middarkgrey f8 gh-members-list-email"],[15,"title",[32,3,["recipient","email"]]],[12],[1,[32,3,["recipient","email"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-col-failure"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure-details"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure-codes"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-email-debug-failure-code"],[12],[2,"Failure code: "],[10,"span"],[12],[1,[32,3,["code"]]],[13],[13],[2,"\\n"],[6,[37,2],[[32,3,["enhancedCode"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-email-debug-failure-code"],[12],[2,"Enhanced code: "],[10,"span"],[12],[1,[32,3,["enhancedCode"]]],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[8,"posts/debug/email-error-message",[],[["@index","@message"],[[32,4],[32,3,["message"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3,4]}]]],[6,[37,3],[[32,0,["temporaryFailureData"]]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-empty-list"],[12],[2,"No temporary failures."],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tab"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[1,[30,[36,1],["analytics-tab-clicked-large"],null]],[1,[32,0,["tabTotals","erroredBatches"]]],[13],[2,"\\n "],[10,"p"],[12],[10,"span"],[14,0,"analytics-tab-label"],[12],[1,[30,[36,11],[[32,0,["tabTotals","erroredBatches"]],"batch"],[["without-count"],[true]]]],[2," errored"],[13],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tabPanel"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"table"],[14,0,"gh-list gh-email-debug-batches"],[12],[2,"\\n "],[10,"thead"],[12],[2,"\\n "],[10,"tr"],[14,0,"gh-list-row header"],[12],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Status"],[13],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Created"],[13],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Segment"],[13],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Recipients"],[13],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Details"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,0,["emailBatchesData"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-status"],[12],[2,"\\n "],[10,"span"],[15,0,[31,[[32,2,["statusClass"]]]]],[12],[1,[32,2,["status"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-created"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,2,["createdAt"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-segment"],[12],[2,"\\n"],[6,[37,2],[[32,2,["segment"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[12],[1,[32,2,["segment"]]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"dib lightgrey"],[12],[2,"N/A"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-recipients"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,2,["recipientCount"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-details"],[12],[2,"\\n "],[10,"div"],[14,0,"flex flex-col items-center space-between w100"],[12],[2,"\\n"],[6,[37,2],[[30,[36,4],[[32,2,["mailgunMessageId"]],[32,2,["errorStatusCode"]],[32,2,["errorMessage"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[14,0,"detailtext"],[12],[2,"\\n"],[6,[37,2],[[32,2,["mailgunMessageId"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"noselect"],[12],[2,"\\n Provider id:\\n "],[10,"code"],[12],[2,"\\n "],[1,[32,2,["mailgunMessageId"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,2,["errorStatusCode"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n Failure status code: "],[10,"span"],[12],[1,[32,2,["errorStatusCode"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,2,["errorMessage"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"error"],[12],[1,[32,2,["errorMessage"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"dib lightgrey"],[12],[2,"N/A"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]],[6,[37,3],[[32,0,["emailBatchesData"]]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-empty-list"],[12],[2,"No batch data."],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tab"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-overviewtab-icon"],[12],[1,[30,[36,1],["info"],null]],[13],[2,"\\n "],[10,"p"],[12],[10,"span"],[14,0,"analytics-tab-label"],[12],[2,"Overview"],[13],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tabPanel"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"table"],[14,0,"gh-email-debug-settings"],[12],[2,"\\n "],[10,"tbody"],[12],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Status:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-batch-col-status"],[12],[10,"span"],[15,0,[31,[[32,0,["emailSettings","statusClass"]]]]],[12],[1,[32,0,["emailSettings","status"]]],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Recipient filter:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-batch-col-segment"],[12],[10,"span"],[12],[1,[32,0,["emailSettings","recipientFilter"]]],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Created at:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["emailSettings","createdAt"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Submitted at:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["emailSettings","submittedAt"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Emails sent:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-type-number"],[12],[1,[30,[36,14],[[32,0,["emailSettings","emailsSent"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Delivered:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-type-number"],[12],[1,[30,[36,14],[[32,0,["emailSettings","emailsDelivered"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Opened:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-type-number"],[12],[1,[30,[36,14],[[32,0,["emailSettings","emailsOpened"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Failed:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-type-number"],[12],[1,[30,[36,14],[[32,0,["emailSettings","emailsFailed"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Track opens:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[32,0,["emailSettings","trackOpens"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Track clicks:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[32,0,["emailSettings","trackClicks"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Member feedback:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[32,0,["emailSettings","feedbackEnabled"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Analytics Latest running:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[30,[36,15],[[32,0,["analyticsStatus"]],[32,0,["analyticsStatus","latest"]],[32,0,["analyticsStatus","latest","running"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last started:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latest","lastStarted"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Fetching from:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latest","lastBegin"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last event time:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latest","lastEventTimestamp"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Analytics Missing running:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[30,[36,15],[[32,0,["analyticsStatus"]],[32,0,["analyticsStatus","missing"]],[32,0,["analyticsStatus","missing","running"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last started:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","missing","lastStarted"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Fetching from:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","missing","lastBegin"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last event time:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","missing","lastEventTimestamp"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,2],[[30,[36,15],[[32,0,["analyticsStatus"]],[32,0,["analyticsStatus","scheduled"]],[32,0,["analyticsStatus","scheduled","schedule"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Analytics Scheduled running:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[32,0,["analyticsStatus","scheduled","running"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Schedule:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","scheduled","schedule","begin"]]],[2," - "],[1,[32,0,["analyticsStatus","scheduled","schedule","end"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last started:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","scheduled","lastStarted"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last event time:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","scheduled","lastEventTimestamp"]]],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,3],[[32,0,["analyticsStatus","scheduled","canceled"]]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["cancelScheduleAnalytics"]]],null],[12],[1,[30,[36,1],["trash"],null]],[2,"Cancel scheduled refetch"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,2],[[32,0,["showCustomSchedule"]]],null,[["default","else"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[10,"label"],[14,"for","custom-begin-date"],[12],[2,"Begin:"],[13],[13],[2,"\\n "],[10,"td"],[12],[11,"input"],[24,1,"custom-begin-date"],[16,2,[32,0,["customBeginDate"]]],[24,5,"border: 1px solid #ccc; padding: 6px 10px; border-radius: 4px; background: #f9f9f9; cursor: pointer; font-size: 1.3rem;"],[24,4,"datetime-local"],[4,[38,0],["input",[32,0,["updateCustomBeginDate"]]],null],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[10,"label"],[14,"for","custom-end-date"],[12],[2,"End:"],[13],[13],[2,"\\n "],[10,"td"],[12],[11,"input"],[24,1,"custom-end-date"],[16,2,[32,0,["customEndDate"]]],[24,5,"border: 1px solid #ccc; padding: 6px 10px; border-radius: 4px; background: #f9f9f9; cursor: pointer; font-size: 1.3rem;"],[24,4,"datetime-local"],[4,[38,0],["input",[32,0,["updateCustomEndDate"]]],null],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["scheduleAnalytics"]]],null],[12],[1,[30,[36,1],["reload"],null]],[2,"Schedule Custom Refetch"],[13],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["toggleCustomSchedule"]]],null],[12],[2,"Cancel"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["scheduleAnalytics"]]],null],[12],[1,[30,[36,1],["reload"],null]],[2,"Refetch Analytics"],[13],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["toggleCustomSchedule"]]],null],[12],[2,"Custom Date Range"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n\\n "]],"parameters":[1]}]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["on","svg-jar","if","unless","or","array","moment-format","did-insert","moment-site-tz","let","eq","gh-pluralize","-track-array","each","format-number","and"]}',moduleName:"ghost-admin/components/posts/debug.hbs"})
|
|
1593
|
-
let Y=e.default=(s=Ember.inject.service,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._tracked,h=Ember._tracked,b=Ember._tracked,g=Ember._tracked,f=Ember._tracked,v=Ember._tracked,y=Ember._tracked,w=Ember._tracked,E=Ember._action,P=Ember._action,_=Ember._action,k=Ember._action,O=Ember._action,j=Ember._action,T=class extends t.default{constructor(...e){super(...e),V(this,"ajax",z,this),V(this,"ghostPaths",x,this),V(this,"settings",S,this),V(this,"membersUtils",C,this),V(this,"utils",M,this),V(this,"feature",D,this),V(this,"store",A,this),V(this,"emailBatches",I,this),V(this,"recipientFailures",L,this),V(this,"loading",R,this),V(this,"analyticsStatus",N,this),V(this,"latestEmail",U,this),V(this,"showCustomSchedule",F,this),V(this,"customBeginDate",B,this),V(this,"customEndDate",H,this)}get post(){return this.args.post}get email(){return this.latestEmail??this.post.email}async updateEmail(){try{this.latestEmail=await this.store.findRecord("email",this.post.email.id,{reload:!0})}catch(e){}}get emailError(){
|
|
1594
|
-
return{message:this.post.email?.error||"Failed to send email.",details:i}}get emailSettings(){return{statusClass:this.email?.status,status:this.getStatusLabel(this.email?.status),recipientFilter:this.email?.recipientFilter,createdAt:this.email?.createdAtUTC?
|
|
1595
|
-
|
|
1596
|
-
return(t.length>1?[t[0][0],t[t.length-1][0]]:[t[0][0]]).join("").toUpperCase()}getStatusLabel(e){return"submitted"===e?"Submitted":"submitting"===e?"Submitting":"pending"===e?"Pending":"failed"===e?"Failed":e}loadData(){this.post.email&&(this.fetchEmailBatches(),this.fetchRecipientFailures(),this.pollAnalyticsStatus.perform(),this.pollEmail.perform())}async fetchEmailBatches(){try{return this._fetchEmailBatches.isRunning?this._fetchEmailBatches.last:this._fetchEmailBatches.perform()}catch(e){if(!(0,r.didCancel)(e))throw e}}*_fetchEmailBatches(){
|
|
1597
|
-
this.emailBatches=t.batches,this.loading=!1}async fetchRecipientFailures(){try{return this._fetchRecipientFailures.isRunning?this._fetchRecipientFailures.last:this._fetchRecipientFailures.perform()}catch(e){if(!(0,r.didCancel)(e))throw e}}*pollAnalyticsStatus(){for(;;)yield this.fetchAnalyticsStatus(),yield(0,r.timeout)(5e3)}*pollEmail(){for(;;)yield(0,r.timeout)(1e4),yield this.updateEmail()}async fetchAnalyticsStatus(){try{return this._fetchAnalyticsStatus.isRunning?this._fetchAnalyticsStatus.last:this._fetchAnalyticsStatus.perform()}catch(e){}}*_fetchRecipientFailures(){
|
|
1598
|
-
this.recipientFailures=t.failures}*_fetchAnalyticsStatus(){
|
|
1610
|
+
const $=Ember.HTMLBars.template({id:"GFoLL/9s",block:'{"symbols":["tabs","batch","failure","index","failure","index","publishedAt","@post"],"statements":[[11,"section"],[24,0,"gh-canvas gh-email-debug"],[4,[38,7],[[32,0,["loadData"]]],null],[12],[2,"\\n "],[8,"gh-canvas-header",[[24,0,"gh-canvas-header gh-post-analytics-header"]],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"flex flex-column flex-grow-1"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-canvas-breadcrumb"],[12],[2,"\\n "],[8,"link-to",[],[["@route"],["posts"]],[["default"],[{"statements":[[2,"\\n Posts\\n "]],"parameters":[]}]]],[2,"\\n "],[1,[30,[36,1],["arrow-right-small"],null]],[2,"\\n "],[10,"a"],[15,6,[31,["#/posts/analytics/",[32,0,["post","id"]]]]],[12],[2,"\\n Analytics\\n "],[13],[2,"\\n "],[1,[30,[36,1],["arrow-right-small"],null]],[2,"\\n Debug\\n "],[13],[2,"\\n "],[10,"h2"],[14,0,"gh-canvas-title gh-post-title"],[12],[2,"\\n "],[1,[32,0,["post","title"]]],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-post-analytics-meta"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-post-analytics-meta-text"],[12],[2,"\\n"],[6,[37,2],[[32,0,["post","hasBeenEmailed"]]],null,[["default","else"],[{"statements":[[6,[37,2],[[32,0,["post","emailOnly"]]],null,[["default","else"],[{"statements":[[2," Sent\\n"]],"parameters":[]},{"statements":[[2," Published and sent\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[2," Published\\n"],[6,[37,2],[[32,8,["didEmailFail"]]],null,[["default","else"],[{"statements":[[2," but failed to send\\n"]],"parameters":[]},{"statements":[[2," on your site\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2,"\\n"],[6,[37,9],[[30,[36,8],[[32,0,["post","publishedAtUTC"]]],null]],null,[["default"],[{"statements":[[2," on\\n "],[1,[30,[36,6],[[32,7],"D MMM YYYY"],null]],[2,"\\n at\\n "],[1,[30,[36,6],[[32,7],"HH:mm"],null]],[2,"\\n"]],"parameters":[7]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,2],[[30,[36,10],[[32,0,["post","email","status"]],"failed"],null]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"gh-box gh-box-error gh-box-tip gh-email-debug-error"],[12],[2,"\\n "],[1,[30,[36,1],["warning"],null]],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-errortext"],[12],[2,"\\n "],[10,"h4"],[12],[1,[32,0,["emailError","message"]]],[13],[2,"\\n "],[10,"p"],[14,0,"mb0"],[12],[1,[32,0,["emailError","details"]]],[13],[2,"\\n "],[13],[2,"\\n "],[8,"link-to",[[24,0,"gh-btn gh-btn-primary gh-btn-icon gh-btn-red ember-view self-center"]],[["@route","@models"],["lexical-editor.edit",[30,[36,5],[[32,0,["post","displayName"]],[32,0,["post","id"]]],null]]],[["default"],[{"statements":[[2,"\\n "],[10,"span"],[12],[2,"Retry"],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"tabs/tabs",[[24,0,"gh-tabs-analytics"]],[["@forceRender"],[false]],[["default"],[{"statements":[[2,"\\n "],[8,[32,1,["tab"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[1,[30,[36,1],["analytics-tab-sent-large"],null]],[2," "],[1,[32,0,["tabTotals","permanentFailures"]]],[13],[2,"\\n "],[10,"p"],[12],[10,"span"],[14,0,"analytics-tab-label"],[12],[2,"Permanent "],[1,[30,[36,11],[[32,0,["tabTotals","permanentFailures"]],"failure"],[["without-count"],[true]]]],[13],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tabPanel"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"table"],[14,0,"gh-list gh-email-debug-permanent-failures"],[12],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,0,["permanentFailureData"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-col-member"],[12],[2,"\\n"],[6,[37,2],[[32,5,["member","id"]]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/members/",[32,5,["member","id"]]]]],[14,0,"gh-email-debug-member"],[12],[2,"\\n "],[8,"gh-member-avatar",[],[["@member","@containerClass"],[[32,5,["member","record"]],"w9 h9 mr3 flex-shrink-0"]],null],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h3"],[14,0,"ma0 pa0 gh-members-list-name"],[15,"title",[32,5,["recipient","name"]]],[12],[1,[32,5,["recipient","name"]]],[13],[2,"\\n "],[10,"p"],[14,0,"ma0 pa0 middarkgrey f8 gh-members-list-email"],[15,"title",[32,5,["recipient","email"]]],[12],[1,[32,5,["recipient","email"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"gh-email-debug-member"],[12],[2,"\\n "],[10,"figure"],[14,0,"gh-member-gravatar w9 h9 mr3 flex-shrink-0 bg-red"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-member-initials flex w9 h9 items-center justify-center br-100"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-member-avatar-label gh-member-list-avatar"],[12],[1,[32,5,["recipient","initials"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h3"],[14,0,"ma0 pa0 gh-members-list-name"],[15,"title",[32,5,["recipient","name"]]],[12],[1,[32,5,["recipient","name"]]],[13],[2,"\\n "],[10,"p"],[14,0,"ma0 pa0 middarkgrey f8 gh-members-list-email"],[15,"title",[32,5,["recipient","email"]]],[12],[1,[32,5,["recipient","email"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-col-failure"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure-details"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure-codes"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-email-debug-failure-code"],[12],[2,"Failure code: "],[10,"span"],[12],[1,[32,5,["code"]]],[13],[13],[2,"\\n"],[6,[37,2],[[32,5,["enhancedCode"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-email-debug-failure-code"],[12],[2,"Enhanced code: "],[10,"span"],[12],[1,[32,5,["enhancedCode"]]],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[8,"posts/debug/email-error-message",[],[["@index","@message"],[[32,6],[32,5,["message"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[5,6]}]]],[6,[37,3],[[32,0,["permanentFailureData"]]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-empty-list"],[12],[2,"No permanent failures."],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tab"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[1,[30,[36,1],["analytics-tab-opened-large"],null]],[1,[32,0,["tabTotals","temporaryFailures"]]],[13],[2,"\\n "],[10,"p"],[12],[10,"span"],[14,0,"analytics-tab-label"],[12],[2,"Temporary "],[1,[30,[36,11],[[32,0,["tabTotals","temporaryFailures"]],"failure"],[["without-count"],[true]]]],[13],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tabPanel"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"table"],[14,0,"gh-list gh-email-debug-permanent-failures"],[12],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,0,["temporaryFailureData"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-col-member"],[12],[2,"\\n"],[6,[37,2],[[32,3,["member","id"]]],null,[["default","else"],[{"statements":[[2," "],[10,"a"],[15,6,[31,["#/members/",[32,3,["member","id"]]]]],[14,0,"gh-email-debug-member"],[12],[2,"\\n "],[8,"gh-member-avatar",[],[["@member","@containerClass"],[[32,3,["member","record"]],"w9 h9 mr3 flex-shrink-0"]],null],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h3"],[14,0,"ma0 pa0 gh-members-list-name"],[15,"title",[32,3,["recipient","name"]]],[12],[1,[32,3,["recipient","name"]]],[13],[2,"\\n "],[10,"p"],[14,0,"ma0 pa0 middarkgrey f8 gh-members-list-email"],[15,"title",[32,3,["recipient","email"]]],[12],[1,[32,3,["recipient","email"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"gh-email-debug-member"],[12],[2,"\\n "],[10,"figure"],[14,0,"gh-member-gravatar w9 h9 mr3 flex-shrink-0 bg-blue"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-member-initials flex w9 h9 items-center justify-center br-100"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-member-avatar-label gh-member-list-avatar"],[12],[1,[32,3,["recipient","initials"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[12],[2,"\\n "],[10,"h3"],[14,0,"ma0 pa0 gh-members-list-name"],[15,"title",[32,3,["recipient","name"]]],[12],[1,[32,3,["recipient","name"]]],[13],[2,"\\n "],[10,"p"],[14,0,"ma0 pa0 middarkgrey f8 gh-members-list-email"],[15,"title",[32,3,["recipient","email"]]],[12],[1,[32,3,["recipient","email"]]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-col-failure"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure-details"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-failure-codes"],[12],[2,"\\n "],[10,"span"],[14,0,"gh-email-debug-failure-code"],[12],[2,"Failure code: "],[10,"span"],[12],[1,[32,3,["code"]]],[13],[13],[2,"\\n"],[6,[37,2],[[32,3,["enhancedCode"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"gh-email-debug-failure-code"],[12],[2,"Enhanced code: "],[10,"span"],[12],[1,[32,3,["enhancedCode"]]],[13],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[8,"posts/debug/email-error-message",[],[["@index","@message"],[[32,4],[32,3,["message"]]]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[3,4]}]]],[6,[37,3],[[32,0,["temporaryFailureData"]]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-empty-list"],[12],[2,"No temporary failures."],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tab"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"h3"],[12],[1,[30,[36,1],["analytics-tab-clicked-large"],null]],[1,[32,0,["tabTotals","erroredBatches"]]],[13],[2,"\\n "],[10,"p"],[12],[10,"span"],[14,0,"analytics-tab-label"],[12],[1,[30,[36,11],[[32,0,["tabTotals","erroredBatches"]],"batch"],[["without-count"],[true]]]],[2," errored"],[13],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tabPanel"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"table"],[14,0,"gh-list gh-email-debug-batches"],[12],[2,"\\n "],[10,"thead"],[12],[2,"\\n "],[10,"tr"],[14,0,"gh-list-row header"],[12],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Status"],[13],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Created"],[13],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Segment"],[13],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Recipients"],[13],[2,"\\n "],[10,"th"],[14,0,"gh-list-header"],[12],[2,"Details"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tbody"],[12],[2,"\\n"],[6,[37,13],[[30,[36,12],[[30,[36,12],[[32,0,["emailBatchesData"]]],null]],null]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-status"],[12],[2,"\\n "],[10,"span"],[15,0,[31,[[32,2,["statusClass"]]]]],[12],[1,[32,2,["status"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-created"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,2,["createdAt"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-segment"],[12],[2,"\\n"],[6,[37,2],[[32,2,["segment"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[12],[1,[32,2,["segment"]]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"dib lightgrey"],[12],[2,"N/A"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-recipients"],[12],[2,"\\n "],[10,"span"],[12],[1,[32,2,["recipientCount"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"div"],[14,0,"gh-list-data gh-email-debug-batch-col-details"],[12],[2,"\\n "],[10,"div"],[14,0,"flex flex-col items-center space-between w100"],[12],[2,"\\n"],[6,[37,2],[[30,[36,4],[[32,2,["mailgunMessageId"]],[32,2,["errorStatusCode"]],[32,2,["errorMessage"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[14,0,"detailtext"],[12],[2,"\\n"],[6,[37,2],[[32,2,["mailgunMessageId"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[14,0,"noselect"],[12],[2,"\\n Provider id:\\n "],[10,"code"],[12],[2,"\\n "],[1,[32,2,["mailgunMessageId"]]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,2,["errorStatusCode"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n Failure status code: "],[10,"span"],[12],[1,[32,2,["errorStatusCode"]]],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[6,[37,2],[[32,2,["errorMessage"]]],null,[["default"],[{"statements":[[2," "],[10,"span"],[14,0,"error"],[12],[1,[32,2,["errorMessage"]]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"div"],[14,0,"dib lightgrey"],[12],[2,"N/A"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[2]}]]],[6,[37,3],[[32,0,["emailBatchesData"]]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-empty-list"],[12],[2,"No batch data."],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tab"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"div"],[14,0,"gh-email-debug-overviewtab-icon"],[12],[1,[30,[36,1],["info"],null]],[13],[2,"\\n "],[10,"p"],[12],[10,"span"],[14,0,"analytics-tab-label"],[12],[2,"Overview"],[13],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,[32,1,["tabPanel"]],[],[[],[]],[["default"],[{"statements":[[2,"\\n "],[10,"table"],[14,0,"gh-email-debug-settings"],[12],[2,"\\n "],[10,"tbody"],[12],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Status:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-batch-col-status"],[12],[10,"span"],[15,0,[31,[[32,0,["emailSettings","statusClass"]]]]],[12],[1,[32,0,["emailSettings","status"]]],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Recipient filter:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-batch-col-segment"],[12],[10,"span"],[12],[1,[32,0,["emailSettings","recipientFilter"]]],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Created at:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["emailSettings","createdAt"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Submitted at:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["emailSettings","submittedAt"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Emails sent:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-type-number"],[12],[1,[30,[36,14],[[32,0,["emailSettings","emailsSent"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Delivered:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-type-number"],[12],[1,[30,[36,14],[[32,0,["emailSettings","emailsDelivered"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Opened:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-type-number"],[12],[1,[30,[36,14],[[32,0,["emailSettings","emailsOpened"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Failed:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-type-number"],[12],[1,[30,[36,14],[[32,0,["emailSettings","emailsFailed"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Track opens:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[32,0,["emailSettings","trackOpens"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Track clicks:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[32,0,["emailSettings","trackClicks"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Member feedback:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[32,0,["emailSettings","feedbackEnabled"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Analytics Delivery/failures running:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[30,[36,15],[[32,0,["analyticsStatus"]],[32,0,["analyticsStatus","latest"]],[32,0,["analyticsStatus","latest","running"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last started:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latest","lastStarted"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Fetching from:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latest","lastBegin"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last event time:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latest","lastEventTimestamp"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Fetched through:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latest","fetchedThrough"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Ingestion lag:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latest","lag"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Analytics Opens running:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[30,[36,15],[[32,0,["analyticsStatus"]],[32,0,["analyticsStatus","latestOpened"]],[32,0,["analyticsStatus","latestOpened","running"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last started:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latestOpened","lastStarted"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Fetching from:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latestOpened","lastBegin"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last event time:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latestOpened","lastEventTimestamp"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Fetched through:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latestOpened","fetchedThrough"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Ingestion lag:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","latestOpened","lag"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Analytics Missing running:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[30,[36,15],[[32,0,["analyticsStatus"]],[32,0,["analyticsStatus","missing"]],[32,0,["analyticsStatus","missing","running"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last started:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","missing","lastStarted"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Fetching from:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","missing","lastBegin"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last event time:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","missing","lastEventTimestamp"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Fetched through:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","missing","fetchedThrough"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Ingestion lag:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","missing","lag"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[10,"hr"],[12],[13],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,2],[[30,[36,15],[[32,0,["analyticsStatus"]],[32,0,["analyticsStatus","scheduled"]],[32,0,["analyticsStatus","scheduled","schedule"]]],null]],null,[["default","else"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Analytics Scheduled running:"],[13],[2,"\\n "],[10,"td"],[14,0,"gh-email-debug-settings-icon"],[12],[2,"\\n"],[6,[37,2],[[32,0,["analyticsStatus","scheduled","running"]]],null,[["default","else"],[{"statements":[[2," "],[10,"span"],[14,0,"check"],[12],[1,[30,[36,1],["check-2"],null]],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"span"],[14,0,"x"],[12],[1,[30,[36,1],["close"],null]],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Schedule:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","scheduled","schedule","begin"]]],[2," - "],[1,[32,0,["analyticsStatus","scheduled","schedule","end"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last started:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","scheduled","lastStarted"]]],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[2,"Last event time:"],[13],[2,"\\n "],[10,"td"],[12],[1,[32,0,["analyticsStatus","scheduled","lastEventTimestamp"]]],[13],[2,"\\n "],[13],[2,"\\n"],[6,[37,3],[[32,0,["analyticsStatus","scheduled","canceled"]]],null,[["default"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["cancelScheduleAnalytics"]]],null],[12],[1,[30,[36,1],["trash"],null]],[2,"Cancel scheduled refetch"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]},{"statements":[[6,[37,2],[[32,0,["showCustomSchedule"]]],null,[["default","else"],[{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[10,"label"],[14,"for","custom-begin-date"],[12],[2,"Begin (UTC):"],[13],[13],[2,"\\n "],[10,"td"],[12],[11,"input"],[24,1,"custom-begin-date"],[16,2,[32,0,["customBeginDate"]]],[24,5,"border: 1px solid #ccc; padding: 6px 10px; border-radius: 4px; background: #f9f9f9; cursor: pointer; font-size: 1.3rem;"],[24,4,"datetime-local"],[4,[38,0],["input",[32,0,["updateCustomBeginDate"]]],null],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[12],[10,"label"],[14,"for","custom-end-date"],[12],[2,"End (UTC):"],[13],[13],[2,"\\n "],[10,"td"],[12],[11,"input"],[24,1,"custom-end-date"],[16,2,[32,0,["customEndDate"]]],[24,5,"border: 1px solid #ccc; padding: 6px 10px; border-radius: 4px; background: #f9f9f9; cursor: pointer; font-size: 1.3rem;"],[24,4,"datetime-local"],[4,[38,0],["input",[32,0,["updateCustomEndDate"]]],null],[12],[13],[13],[2,"\\n "],[13],[2,"\\n "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["scheduleAnalytics"]]],null],[12],[1,[30,[36,1],["reload"],null]],[2,"Schedule Custom Refetch"],[13],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["toggleCustomSchedule"]]],null],[12],[2,"Cancel"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[10,"tr"],[12],[2,"\\n "],[10,"td"],[14,"colspan","2"],[12],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["scheduleAnalytics"]]],null],[12],[1,[30,[36,1],["reload"],null]],[2,"Refetch Analytics"],[13],[2,"\\n "],[11,"button"],[24,0,"gh-email-debug-schedule-analytics"],[24,4,"button"],[4,[38,0],["click",[32,0,["toggleCustomSchedule"]]],null],[12],[2,"Custom Date Range"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n "],[13],[2,"\\n\\n "]],"parameters":[]}]]],[2,"\\n\\n "]],"parameters":[1]}]]],[2,"\\n"],[13],[2,"\\n"]],"hasEval":false,"upvars":["on","svg-jar","if","unless","or","array","moment-format","did-insert","moment-site-tz","let","eq","gh-pluralize","-track-array","each","format-number","and"]}',moduleName:"ghost-admin/components/posts/debug.hbs"})
|
|
1611
|
+
let Y=e.default=(s=Ember.inject.service,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._tracked,h=Ember._tracked,b=Ember._tracked,g=Ember._tracked,f=Ember._tracked,v=Ember._tracked,y=Ember._tracked,w=Ember._tracked,E=Ember._action,P=Ember._action,_=Ember._action,k=Ember._action,O=Ember._action,j=Ember._action,T=class extends t.default{constructor(...e){super(...e),V(this,"ajax",z,this),V(this,"ghostPaths",x,this),V(this,"settings",S,this),V(this,"membersUtils",C,this),V(this,"utils",M,this),V(this,"feature",D,this),V(this,"store",A,this),V(this,"emailBatches",I,this),V(this,"recipientFailures",L,this),V(this,"loading",R,this),V(this,"analyticsStatus",N,this),V(this,"latestEmail",U,this),V(this,"showCustomSchedule",F,this),V(this,"customBeginDate",B,this),V(this,"customEndDate",H,this)}get post(){return this.args.post}get email(){return this.latestEmail??this.post.email}async updateEmail(){try{this.latestEmail=await this.store.findRecord("email",this.post.email.id,{reload:!0})}catch(e){}}get emailError(){const e=this.emailBatchesData?.filter(e=>"failed"===e.statusClass).length||0,t=this.emailBatchesData?.length||0,i=this.loading||!t?"":`${e} of ${(0,a.ghPluralize)(t,"batch")} failed to send, check below for more details.`
|
|
1612
|
+
return{message:this.post.email?.error||"Failed to send email.",details:i}}get emailSettings(){return{statusClass:this.email?.status,status:this.getStatusLabel(this.email?.status),recipientFilter:this.email?.recipientFilter,createdAt:this.email?.createdAtUTC?i.default.utc(this.email.createdAtUTC).format("DD MMM, YYYY, HH:mm:ss [UTC]"):"",submittedAt:this.email?.submittedAtUTC?i.default.utc(this.email.submittedAtUTC).format("DD MMM, YYYY, HH:mm:ss [UTC]"):"",emailsSent:this.email?.emailCount,emailsDelivered:this.email?.deliveredCount,emailsOpened:this.email?.openedCount,emailsFailed:this.email?.failedCount,trackOpens:this.email?.trackOpens,trackClicks:this.email?.trackClicks,feedbackEnabled:this.email?.feedbackEnabled}}get tabTotals(){return{temporaryFailures:(0,n.formatNumber)(this.temporaryFailureData?.length||0),permanentFailures:(0,n.formatNumber)(this.permanentFailureData?.length||0),erroredBatches:(0,n.formatNumber)(this.emailBatchesData?.filter(e=>"failed"===e.statusClass).length||0)}}get emailBatchesData(){return this.emailBatches?.map(e=>({id:e.id,status:this.getStatusLabel(e.status),statusClass:e.status,createdAt:e.created_at?i.default.utc(e.created_at).format("DD MMM, YYYY, HH:mm:ss [UTC]"):"",segment:e.member_segment||"",mailgunMessageId:e.mailgun_message_id||null,errorMessage:e.error_message||"",errorStatusCode:e.error_status_code||"",recipientCount:e.count?.recipients||0}))}get temporaryFailureData(){return this.recipientFailures?.filter(e=>"temporary"===e.severity).map(e=>({id:e.id,code:e.code,failedAt:e.failed_at?i.default.utc(e.failed_at).format("DD MMM, YYYY, HH:mm:ss [UTC]"):"",processedAt:e.email_recipient.processed_at?i.default.utc(e.email_recipient.processed_at).format("DD MMM, YYYY, HH:mm:ss [UTC]"):"",batchId:e.email_recipient.batch_id,enhancedCode:e.enhanced_code,message:e.message,recipient:{name:e.email_recipient.member_name||"",email:e.email_recipient.member_email||"",initials:this.getInitials(e.email_recipient?.member_name||e.email_recipient?.member_email)},member:{record:e.member,id:e.member?.id,name:e.member?.name||"",email:e.member?.email||"",initials:this.getInitials(e.member?.name)}}))}get permanentFailureData(){return this.recipientFailures?.filter(e=>"permanent"===e.severity).map(e=>({id:e.id,code:e.code,enhancedCode:e.enhanced_code,message:e.message,recipient:{name:e.email_recipient.member_name||"",email:e.email_recipient.member_email||"",initials:this.getInitials(e.email_recipient?.member_name||e.email_recipient?.member_email)},member:{record:e.member,id:e.member?.id,name:e.member?.name||"",email:e.member?.email||"",initials:this.getInitials(e.member?.name)}}))}getInitials(e){if(!e)return"U"
|
|
1613
|
+
const t=e.split(" ")
|
|
1614
|
+
return(t.length>1?[t[0][0],t[t.length-1][0]]:[t[0][0]]).join("").toUpperCase()}getStatusLabel(e){return"submitted"===e?"Submitted":"submitting"===e?"Submitting":"pending"===e?"Pending":"failed"===e?"Failed":e}loadData(){this.post.email&&(this.fetchEmailBatches(),this.fetchRecipientFailures(),this.pollAnalyticsStatus.perform(),this.pollEmail.perform())}async fetchEmailBatches(){try{return this._fetchEmailBatches.isRunning?this._fetchEmailBatches.last:this._fetchEmailBatches.perform()}catch(e){if(!(0,r.didCancel)(e))throw e}}*_fetchEmailBatches(){const e=this.ghostPaths.url.api(`emails/${this.post.email.id}/batches`),t=yield this.ajax.request(e,{data:{include:"count.recipients",limit:"all",order:"status asc, created_at desc"}})
|
|
1615
|
+
this.emailBatches=t.batches,this.loading=!1}async fetchRecipientFailures(){try{return this._fetchRecipientFailures.isRunning?this._fetchRecipientFailures.last:this._fetchRecipientFailures.perform()}catch(e){if(!(0,r.didCancel)(e))throw e}}*pollAnalyticsStatus(){for(;;)yield this.fetchAnalyticsStatus(),yield(0,r.timeout)(5e3)}*pollEmail(){for(;;)yield(0,r.timeout)(1e4),yield this.updateEmail()}async fetchAnalyticsStatus(){try{return this._fetchAnalyticsStatus.isRunning?await this._fetchAnalyticsStatus.last:await this._fetchAnalyticsStatus.perform()}catch(e){}}*_fetchRecipientFailures(){const e=this.ghostPaths.url.api(`/emails/${this.post.email.id}/recipient-failures`),t=yield this.ajax.request(e,{data:{include:"member,email_recipient",limit:"all"}})
|
|
1616
|
+
this.recipientFailures=t.failures}*_fetchAnalyticsStatus(){const e=this.ghostPaths.url.api(`/emails/${this.post.email.id}/analytics`),t=yield this.ajax.request(e)
|
|
1599
1617
|
this.analyticsStatus=t
|
|
1600
|
-
for(const r of
|
|
1618
|
+
for(const r of["latest","latestOpened","missing","scheduled"]){t[r]||(t[r]={})
|
|
1601
1619
|
let e=t[r]
|
|
1602
|
-
for(const t of["lastStarted","lastBegin","lastEventTimestamp"])e[t]?e[t]=
|
|
1603
|
-
if(e.schedule){e=e.schedule
|
|
1604
|
-
for(const t of["begin","end"])e[t]?e[t]=
|
|
1605
|
-
const
|
|
1620
|
+
for(const t of["lastStarted","lastBegin","lastEventTimestamp","fetchedThrough"])e[t]?e[t]=i.default.utc(e[t]).format("DD MMM, YYYY, HH:mm:ss.SSS [UTC]"):e[t]="N/A"
|
|
1621
|
+
if(e.lag=this.formatIngestionLag(e.lagSeconds),e.schedule){e=e.schedule
|
|
1622
|
+
for(const t of["begin","end"])e[t]?e[t]=i.default.utc(e[t]).format("DD MMM, YYYY, HH:mm:ss.SSS [UTC]"):e[t]="N/A"}}}formatIngestionLag(e){if(!Number.isFinite(e)||e<0)return"N/A"
|
|
1623
|
+
const t=i.default.duration(e,"seconds")
|
|
1624
|
+
return[[Math.floor(t.asDays()),"d"],[t.hours(),"h"],[t.minutes(),"m"],[t.seconds(),"s"]].filter(([e])=>e>0).map(([e,t])=>`${e}${t}`).join(" ")||"0s"}toggleCustomSchedule(){if(this.showCustomSchedule=!this.showCustomSchedule,this.showCustomSchedule){this.customBeginDate=i.default.utc(this.email?.createdAtUTC).format("YYYY-MM-DDTHH:mm")
|
|
1625
|
+
const e=i.default.utc(this.email?.createdAtUTC),t=i.default.min(i.default.utc().subtract(1,"hour"),e.clone().add(7,"days"))
|
|
1606
1626
|
this.customEndDate=t.format("YYYY-MM-DDTHH:mm")}else this.customBeginDate=null,this.customEndDate=null}updateCustomBeginDate(e){this.customBeginDate=e.target.value}updateCustomEndDate(e){this.customEndDate=e.target.value}scheduleAnalytics(){try{return this._scheduleAnalytics.isRunning?this._scheduleAnalytics.last:this._scheduleAnalytics.perform()}catch(e){if(!(0,r.didCancel)(e))throw e}}*_scheduleAnalytics(){const e=new URL(this.ghostPaths.url.api(`/emails/${this.post.email.id}/analytics`),window.location.origin)
|
|
1607
|
-
this.customBeginDate&&e.searchParams.set("begin",
|
|
1627
|
+
this.customBeginDate&&e.searchParams.set("begin",i.default.utc(this.customBeginDate).toISOString()),this.customEndDate&&e.searchParams.set("end",i.default.utc(this.customEndDate).toISOString()),yield this.ajax.put(e.pathname+e.search,{}),yield this.fetchAnalyticsStatus(),this.showCustomSchedule=!1}cancelScheduleAnalytics(){try{return this._cancelScheduleAnalytics.isRunning?this._cancelScheduleAnalytics.last:this._cancelScheduleAnalytics.perform()}catch(e){if(!(0,r.didCancel)(e))throw e}}*_cancelScheduleAnalytics(){const e=this.ghostPaths.url.api("/emails/analytics")
|
|
1608
1628
|
yield this.ajax.delete(e,{}),yield this.fetchAnalyticsStatus()}},z=q(T.prototype,"ajax",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=q(T.prototype,"ghostPaths",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=q(T.prototype,"settings",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=q(T.prototype,"membersUtils",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=q(T.prototype,"utils",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=q(T.prototype,"feature",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=q(T.prototype,"store",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=q(T.prototype,"emailBatches",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),L=q(T.prototype,"recipientFailures",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),R=q(T.prototype,"loading",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!0}}),N=q(T.prototype,"analyticsStatus",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),U=q(T.prototype,"latestEmail",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),F=q(T.prototype,"showCustomSchedule",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),B=q(T.prototype,"customBeginDate",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),H=q(T.prototype,"customEndDate",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),q(T.prototype,"loadData",[E],Object.getOwnPropertyDescriptor(T.prototype,"loadData"),T.prototype),q(T.prototype,"_fetchEmailBatches",[r.task],Object.getOwnPropertyDescriptor(T.prototype,"_fetchEmailBatches"),T.prototype),q(T.prototype,"pollAnalyticsStatus",[r.task],Object.getOwnPropertyDescriptor(T.prototype,"pollAnalyticsStatus"),T.prototype),q(T.prototype,"pollEmail",[r.task],Object.getOwnPropertyDescriptor(T.prototype,"pollEmail"),T.prototype),q(T.prototype,"_fetchRecipientFailures",[r.task],Object.getOwnPropertyDescriptor(T.prototype,"_fetchRecipientFailures"),T.prototype),q(T.prototype,"_fetchAnalyticsStatus",[r.task],Object.getOwnPropertyDescriptor(T.prototype,"_fetchAnalyticsStatus"),T.prototype),q(T.prototype,"toggleCustomSchedule",[P],Object.getOwnPropertyDescriptor(T.prototype,"toggleCustomSchedule"),T.prototype),q(T.prototype,"updateCustomBeginDate",[_],Object.getOwnPropertyDescriptor(T.prototype,"updateCustomBeginDate"),T.prototype),q(T.prototype,"updateCustomEndDate",[k],Object.getOwnPropertyDescriptor(T.prototype,"updateCustomEndDate"),T.prototype),q(T.prototype,"scheduleAnalytics",[O],Object.getOwnPropertyDescriptor(T.prototype,"scheduleAnalytics"),T.prototype),q(T.prototype,"_scheduleAnalytics",[r.task],Object.getOwnPropertyDescriptor(T.prototype,"_scheduleAnalytics"),T.prototype),q(T.prototype,"cancelScheduleAnalytics",[j],Object.getOwnPropertyDescriptor(T.prototype,"cancelScheduleAnalytics"),T.prototype),q(T.prototype,"_cancelScheduleAnalytics",[r.task],Object.getOwnPropertyDescriptor(T.prototype,"_cancelScheduleAnalytics"),T.prototype),T)
|
|
1609
1629
|
Ember._setComponentTemplate($,Y)})
|
|
1610
1630
|
define("ghost-admin/components/posts/debug/email-error-message",["exports","@glimmer/component"],function(e,t){var i,r,n,a
|
|
@@ -1682,7 +1702,9 @@ let i=this.args.tag.canonicalUrl||`${e}/tag/${t}`
|
|
|
1682
1702
|
return i.endsWith("/")||(i+="/"),i}get twitterTitle(){return this.args.tag.twitterTitle||this.seoTitle}get twitterDescription(){return this.args.tag.twitterDescription||this.seoDescription||this.settings.metaDescription||""}get twitterImage(){return this.args.tag.twitterImage||this.args.tag.featureImage}get facebookTitle(){return this.args.tag.ogTitle||this.seoTitle}get facebookDescription(){return this.args.tag.facebookDescription||this.seoDescription||this.settings.metaDescription||""}get facebookImage(){return this.args.tag.ogImage||this.args.tag.featureImage}get accentColor(){const e=this.args.tag.accentColor
|
|
1683
1703
|
return e&&"#"===e[0]?e.slice(1):e}get accentColorPickerValue(){return this.args.tag.accentColor||"#ffffff"}get accentColorBgStyle(){return Ember.String.htmlSafe(`background-color: ${this.accentColorPickerValue}`)}setTagProperty(e,t){const{tag:i}=this.args
|
|
1684
1704
|
if(t&&(t=t.trim()),"name"===e&&i.isNew&&!this.hasChangedSlug){let e=(0,r.slugify)(t);/^#/.test(t)&&(e="hash-"+e),i.slug=e}"slug"===e&&(this.hasChangedSlug=!!t),i[e]=t,i.hasValidated.addObject(e)}validateTagProperty(e){return this.args.tag.validate({property:e})}validateCanonicalUrl(){const{tag:e}=this.args
|
|
1685
|
-
let t=e.canonicalUrl
|
|
1705
|
+
let t=e.canonicalUrl
|
|
1706
|
+
const[i]=e.changedAttributes().canonicalUrl
|
|
1707
|
+
let r=""
|
|
1686
1708
|
if(e.errors.remove("canonicalUrl"),e.hasValidated.removeObject("canonicalUrl"),""!==t){t||(t=i)
|
|
1687
1709
|
try{new URL(t),e.canonicalUrl="",Ember.run.schedule("afterRender",this,function(){e.canonicalUrl=t})}catch(n){r="The url should be a valid url",e.errors.add("canonicalUrl",r),e.hasValidated.pushObject("canonicalUrl")}}else e.canonicalUrl=""}async updateAccentColor(e){const{tag:t}=this.args
|
|
1688
1710
|
let i=e.target.value
|
|
@@ -1696,7 +1718,7 @@ define("ghost-admin/controllers/application",["exports","ghost-admin/decorators/
|
|
|
1696
1718
|
function O(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function j(e,t,i,r,n){var a={}
|
|
1697
1719
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1698
1720
|
e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember.inject.service,p=Ember._action,m=class extends Ember.Controller{constructor(...e){super(...e),O(this,"billing",h,this),O(this,"router",b,this),O(this,"session",g,this),O(this,"settings",f,this),O(this,"ui",v,this),O(this,"upgradeStatus",y,this),O(this,"ghostPaths",w,this),O(this,"ajax",E,this),O(this,"store",P,this),O(this,"feature",_,this),O(this,"config",k,this)}get modalDestinationElement(){let e=Ember.getOwner(this).lookup("application:main").rootElement||"body"
|
|
1699
|
-
return"string"==typeof e&&(e=document.querySelector(e)),document.getElementById("ember-modal-wormhole")||e}get showBilling(){return this.config.hostSettings?.billing?.enabled}get showUpdateBanner(){return this.config.hostSettings?.update?.enabled&&this.config.hostSettings.update.url&&this.config.version.startsWith("5.")}get ownerUserNameOrEmail(){
|
|
1721
|
+
return"string"==typeof e&&(e=document.querySelector(e)),document.getElementById("ember-modal-wormhole")||e}get showBilling(){return this.config.hostSettings?.billing?.enabled}get showUpdateBanner(){return this.config.hostSettings?.update?.enabled&&this.config.hostSettings.update.url&&this.config.version.startsWith("5.")}get ownerUserNameOrEmail(){const e=this.store.peekAll("user").findBy("isOwnerOnly",!0)
|
|
1700
1722
|
if(e){if(e.name)return e.name
|
|
1701
1723
|
if(e.email)return e.email}return null}get showScriptExtension(){const{session:e}=this
|
|
1702
1724
|
return!(!e.isAuthenticated||!e.user)&&this.config.clientExtensions?.script}async openUpdateTab(){if(!this.showUpdateBanner)return
|
|
@@ -1725,8 +1747,7 @@ if("object"!=typeof r)return r
|
|
|
1725
1747
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
1726
1748
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function rt(e,t,i,r,n){var a={}
|
|
1727
1749
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1728
|
-
const nt="(Untitled)",at=new RegExp(/(^|.)([^\p{L}\p{N}\s]*(TK)+[^\p{L}\p{N}\s]*)(.)?/u),st=new RegExp(/\p{L}|\p{N}/u)
|
|
1729
|
-
let ot=["post.lexicalScratch","post.titleScratch","post.hasDirtyAttributes","post.tags.[]","post.isError"]
|
|
1750
|
+
const nt="(Untitled)",at=new RegExp(/(^|.)([^\p{L}\p{N}\s]*(TK)+[^\p{L}\p{N}\s]*)(.)?/u),st=new RegExp(/\p{L}|\p{N}/u),ot=["post.lexicalScratch","post.titleScratch","post.hasDirtyAttributes","post.tags.[]","post.isError"]
|
|
1730
1751
|
a.default.eachAttribute(function(e){ot.push(`post.${e}`)})
|
|
1731
1752
|
const lt={errors:{post:{published:{published:"Update failed",draft:"Saving failed",scheduled:"Scheduling failed"},draft:{published:"Publish failed",draft:"Saving failed",scheduled:"Scheduling failed"},scheduled:{scheduled:"Update failed",draft:"Unscheduling failed",published:"Publish failed"}}},success:{post:{published:{published:"Updated",draft:"Saved",scheduled:"Scheduled",sent:"Sent"},draft:{published:"Published",draft:"Saved",scheduled:"Scheduled",sent:"Sent"},scheduled:{scheduled:"Updated",draft:"Unscheduled",published:"Published",sent:"Sent"},sent:{sent:"Updated"}}}}
|
|
1732
1753
|
function ut(e){let t=at.exec(e)
|
|
@@ -1738,47 +1759,47 @@ tt(this,"saveTasks",Xe,this),tt(this,"_tagNames",Qe,this),it(this,"TK_REGEX",new
|
|
|
1738
1759
|
if(!e||!e.currentState)return
|
|
1739
1760
|
const{stateName:t,isDeleted:i,isDirty:r,isEmpty:n,isLoading:a,isLoaded:s,isNew:o,isSaving:l,isValid:u}=e.currentState
|
|
1740
1761
|
if(t){const e=[t,{isDeleted:i,isDirty:r,isEmpty:n,isLoading:a,isLoaded:s,isNew:o,isSaving:l,isValid:u}]
|
|
1741
|
-
console.log("post state changed:",...e),this._postStates.push(e)}}get hasDirtyAttributes(){return this._hasDirtyAttributes()}set hasDirtyAttributes(e){return e}get _snippets(){return this.store.peekAll("snippet")}get snippets(){return this._snippets.reject(e=>e.get("isNew")).sort((e,t)=>e.name.localeCompare(t.name)).filter(e=>null!==e.lexical).map(e=>(e.value=JSON.stringify(e.lexical),e))}get canManageSnippets(){
|
|
1742
|
-
return!(!e.get("isAdmin")&&!e.get("isEitherEditor"))}get _autosaveRunning(){
|
|
1762
|
+
console.log("post state changed:",...e),this._postStates.push(e)}}get hasDirtyAttributes(){return this._hasDirtyAttributes()}set hasDirtyAttributes(e){return e}get _snippets(){return this.store.peekAll("snippet")}get snippets(){return this._snippets.reject(e=>e.get("isNew")).sort((e,t)=>e.name.localeCompare(t.name)).filter(e=>null!==e.lexical).map(e=>(e.value=JSON.stringify(e.lexical),e))}get canManageSnippets(){const{user:e}=this.session
|
|
1763
|
+
return!(!e.get("isAdmin")&&!e.get("isEitherEditor"))}get _autosaveRunning(){const e=this.get("_autosaveTask.isRunning"),t=this.get("_timedSaveTask.isRunning")
|
|
1743
1764
|
return e||t}get _canAutosave(){return this.post.isDraft}get titleHasTk(){return ut(this.post.titleScratch)}get excerptHasTk(){return!!this.feature.editorExcerpt&&ut(this.post.customExcerpt||"")}get tkCount(){return(this.titleHasTk?1:0)+(this.feature.editorExcerpt&&this.excerptHasTk?1:0)+this.postTkCount+this.featureImageTkCount}updateScratch(e){const t=JSON.stringify(e)
|
|
1744
1765
|
this.set("post.lexicalScratch",t)
|
|
1745
1766
|
try{this.localRevisions.scheduleSave(this.post.displayName,{...this.post.serialize({includeId:!0}),lexical:t})}catch(i){}this._autosaveTask.perform(),this._timedSaveTask.perform()}updateSecondaryInstanceModel(e){this.set("post.secondaryLexicalState",JSON.stringify(e))}updateTitleScratch(e){this.set("post.titleScratch",e)
|
|
1746
1767
|
try{this.localRevisions.scheduleSave(this.post.displayName,{...this.post.serialize({includeId:!0}),title:e})}catch(t){}}async updateExcerpt(e){this.post.customExcerpt=e
|
|
1747
1768
|
try{await this.post.validate({property:"customExcerpt"}),this.excerptErrorMessage=""}catch(t){if(void 0===t)return void(this.excerptErrorMessage=this.post.errors.errorsFor("customExcerpt")?.[0]?.message)
|
|
1748
|
-
throw t}}*saveExcerptTask(){"draft"===this.post.status&&(yield this.autosaveTask.perform())}setSaveType(e){"publish"===e?(this.set("willPublish",!0),this.set("willSchedule",!1)):"draft"===e?(this.set("willPublish",!1),this.set("willSchedule",!1)):"schedule"===e&&(this.set("willSchedule",!0),this.set("willPublish",!1))}save(e){return this.saveTask.perform(e)}cancelAutosave(){this._autosaveTask.cancelAll(),this._timedSaveTask.cancelAll()}leaveEditor(){
|
|
1769
|
+
throw t}}*saveExcerptTask(){"draft"===this.post.status&&(yield this.autosaveTask.perform())}setSaveType(e){"publish"===e?(this.set("willPublish",!0),this.set("willSchedule",!1)):"draft"===e?(this.set("willPublish",!1),this.set("willSchedule",!1)):"schedule"===e&&(this.set("willSchedule",!0),this.set("willPublish",!1))}save(e){return this.saveTask.perform(e)}cancelAutosave(){this._autosaveTask.cancelAll(),this._timedSaveTask.cancelAll()}leaveEditor(){const e=this.leaveEditorTransition
|
|
1749
1770
|
if(e)return this.reset(),e.retry()
|
|
1750
1771
|
this.notifications.showAlert(h.GENERIC_ERROR_MESSAGE,{type:"error"})}openDeletePostModal(){this.get("post.isNew")||this.modals.open(r.default,{post:this.post})}openUpgradeModal(e={}){this.modals.open(s.default,{message:e.message,details:e.details,code:e.code})}setKoenigEditor(e){this._koenig=e}updateWordCount(e){this.set("wordCount",e)}updatePostTkCount(e){this.set("postTkCount",e)}updateFeatureImageTkCount(e){this.set("featureImageTkCount",e)}setFeatureImage(e){this.post.set("featureImage",e),this.post.isDraft&&this.autosaveTask.perform()}registerEditorAPI(e){this.editorAPI=e}registerSecondaryEditorAPI(e){this.secondaryEditorAPI=e}clearFeatureImage(){this.post.set("featureImage",null),this.post.set("featureImageAlt",null),this.post.set("featureImageCaption",null),this.post.isDraft&&this.autosaveTask.perform()}setFeatureImageAlt(e){this.post.set("featureImageAlt",e),this.post.isDraft&&this.autosaveTask.perform()}setFeatureImageCaption(e){this.post.isDestroyed&&this.post.isDestroying||this.post.set("featureImageCaption",e)}handleFeatureImageCaptionBlur(){!this.post||this.post.isDestroyed||this.post.isDestroying||this.post.isDraft&&this.autosaveTask.perform()}toggleSettingsMenu(){this.set("showSettingsMenu",!this.showSettingsMenu)}closeSettingsMenu(){this.set("showSettingsMenu",!1)}saveNewSnippet(e){const t={name:e.name,lexical:JSON.parse(e.value),mobiledoc:{}},i=this.store.createRecord("snippet",t)
|
|
1751
1772
|
return i.save().then(()=>(this.notifications.closeAlerts("snippet.save"),this.notifications.showNotification(`Snippet saved as "${e.name}"`,{type:"success"}),i)).catch(e=>{throw i.errors.isEmpty||this.notifications.showAlert(`Snippet save failed: ${i.errors.messages.join(". ")}`,{type:"error",key:"snippet.save"}),i.rollbackAttributes(),e})}async createSnippet(e){const t=e.name.trim().toLowerCase(),i=this.snippets.find(e=>e.name.toLowerCase()===t)
|
|
1752
1773
|
i?await this.confirmUpdateSnippet(i,{lexical:JSON.parse(e.value)}):await this.saveNewSnippet(e)}async confirmUpdateSnippet(e,t={}){await this.modals.open(l.default,{snippet:e,updatedProperties:t})}async confirmDeleteSnippet(e){await this.modals.open(n.default,{snippet:e})}*autosaveTask(e){if(!this.get("saveTask.isRunning"))return yield this.saveTask.perform({silent:!0,backgroundSave:!0,...e})}*saveTask(e={}){if(this.post.isDestroyed||this.post.isDestroying)return
|
|
1753
|
-
|
|
1754
|
-
const n={}
|
|
1774
|
+
const i=this.get("post.status"),r=this.get("post.isNew"),n={}
|
|
1755
1775
|
if(this.cancelAutosave(),e.backgroundSave&&!this.hasDirtyAttributes&&!e.leavingEditor)return
|
|
1756
1776
|
if(e.leavingEditor)this.post.status||(this.post.status="draft")
|
|
1757
1777
|
else{let t
|
|
1758
1778
|
t=e.backgroundSave?"draft":this.get("post.pastScheduledTime")?this.willSchedule||this.willPublish?"published":"draft":this.willPublish&&!this.get("post.isScheduled")?"published":this.willSchedule&&!this.get("post.isPublished")?"scheduled":this.get("post.isSent")?"sent":"draft",this.set("post.status",t)}const a=!e.backgroundSave,s=e.leavingEditor;(a||s)&&(n.saveRevision=1),yield this.beforeSaveTask.perform(e)
|
|
1759
|
-
try{
|
|
1779
|
+
try{const t=yield this._savePostTask.perform({...e,adapterOptions:n})
|
|
1760
1780
|
return this.notifications.clearAll(),e.silent||this._showSaveNotification(i,t.get("status"),!!r),r&&t.get("id")?(this.leaveEditorTransition||this.replaceRoute("lexical-editor.edit",t),!0):t}catch(l){if(!this.session.isAuthenticated&&(yield this.modals.open(o.default),this.session.isAuthenticated))return this.autosaveTask.perform()
|
|
1761
1781
|
if(this.set("post.status",i),void 0===l&&0===this.post.errors.length)return
|
|
1762
1782
|
if((0,v.isHostLimitError)(l))return this.post.rollbackAttributes(),void this.openUpgradeModal(l.payload.errors[0])
|
|
1763
1783
|
if((0,y.isNotFoundError)(l)&&!this.post.id){const e=this._getNotFoundErrorContext()
|
|
1764
1784
|
return console.error("saveTask failed with 404",e),t.captureException(l,{tags:{savePostTask:!0},extra:e}),void this._showErrorAlert(i,this.post.status,"Editor has crashed. Please copy your content and start a new post.")}if((0,y.isNotFoundError)(l)&&this.post.id){const e=this.post.isPage?"page":"post"
|
|
1765
1785
|
return t.captureMessage(`Attempted to edit deleted ${e}`,{extra:{post_id:this.post.id}}),void this._showErrorAlert(i,this.post.status,`${(0,b.capitalizeFirstLetter)(e)} has been deleted in a different session. If you need to keep this content, copy it and paste into a new ${e}.`)}if(l&&!(0,y.isInvalidError)(l))return console.error(l),t.captureException(l,{tags:{savePostTask:!0}}),void this.send("error",l)
|
|
1766
|
-
if(!e.silent){
|
|
1767
|
-
return void this._showErrorAlert(i,this.get("post.status"),e)}return this.post}}_getNotFoundErrorContext(){return{setPostState:this._setPostState,currentPostState:this.post.currentState.stateName,allPostStates:this._postStates}}*beforeSaveTask(){this.post?.isDestroyed||this.post?.isDestroying||("draft"===this.post.status&&this.post.titleScratch!==this.post.title&&(yield this.generateSlugTask.perform()),this.set("post.lexical",this.post.lexicalScratch||null),this.post.titleScratch?.trim()||this.set("post.titleScratch",nt),this.set("post.title",this.get("post.titleScratch")),this.set("post.customExcerpt",this.get("post.customExcerptScratch")),this.set("post.footerInjection",this.get("post.footerExcerptScratch")),this.set("post.headerInjection",this.get("post.headerExcerptScratch")),this.set("post.metaTitle",this.get("post.metaTitleScratch")),this.set("post.metaDescription",this.get("post.metaDescriptionScratch")),this.set("post.ogTitle",this.get("post.ogTitleScratch")),this.set("post.ogDescription",this.get("post.ogDescriptionScratch")),this.set("post.twitterTitle",this.get("post.twitterTitleScratch")),this.set("post.twitterDescription",this.get("post.twitterDescriptionScratch")),this.set("post.emailSubject",this.get("post.emailSubjectScratch")),this.get("post.slug")||(this.saveTitleTask.cancelAll(),yield this.generateSlugTask.perform()))}*updateSlugTask(e){
|
|
1768
|
-
|
|
1769
|
-
if(i=
|
|
1770
|
-
|
|
1771
|
-
if(
|
|
1772
|
-
|
|
1773
|
-
if(
|
|
1774
|
-
this.
|
|
1775
|
-
const
|
|
1786
|
+
if(!e.silent){const e=l||this.get("post.errors.messages")
|
|
1787
|
+
return void this._showErrorAlert(i,this.get("post.status"),e)}return this.post}}_getNotFoundErrorContext(){return{setPostState:this._setPostState,currentPostState:this.post.currentState.stateName,allPostStates:this._postStates}}*beforeSaveTask(){this.post?.isDestroyed||this.post?.isDestroying||("draft"===this.post.status&&this.post.titleScratch!==this.post.title&&(yield this.generateSlugTask.perform()),this.set("post.lexical",this.post.lexicalScratch||null),this.post.titleScratch?.trim()||this.set("post.titleScratch",nt),this.set("post.title",this.get("post.titleScratch")),this.set("post.customExcerpt",this.get("post.customExcerptScratch")),this.set("post.footerInjection",this.get("post.footerExcerptScratch")),this.set("post.headerInjection",this.get("post.headerExcerptScratch")),this.set("post.metaTitle",this.get("post.metaTitleScratch")),this.set("post.metaDescription",this.get("post.metaDescriptionScratch")),this.set("post.ogTitle",this.get("post.ogTitleScratch")),this.set("post.ogDescription",this.get("post.ogDescriptionScratch")),this.set("post.twitterTitle",this.get("post.twitterTitleScratch")),this.set("post.twitterDescription",this.get("post.twitterDescriptionScratch")),this.set("post.emailSubject",this.get("post.emailSubjectScratch")),this.get("post.slug")||(this.saveTitleTask.cancelAll(),yield this.generateSlugTask.perform()))}*updateSlugTask(e){const t=this.get("post.slug")
|
|
1788
|
+
let i
|
|
1789
|
+
if(i=e||t,i=i&&i.trim(),!i||t===i)return void this.set("slugValue",t)
|
|
1790
|
+
const r=yield this.slugGenerator.generateSlug("post",i,this.get("post.id"))
|
|
1791
|
+
if(r===t)return
|
|
1792
|
+
const n=r.split("-"),a=Number(n.pop())
|
|
1793
|
+
if((0,d.default)(a)&&a>0&&t===n.join("-")&&r!==i)this.set("slugValue",t)
|
|
1794
|
+
else if(this.set("post.slug",r),!this.get("post.isNew"))return yield this._savePostTask.perform()}*savePostTask(){try{return yield this._savePostTask.perform()}catch(e){if(void 0===e)return
|
|
1795
|
+
if(e){const t=this.get("post.status")
|
|
1796
|
+
this._showErrorAlert(t,t,e)}throw e}}*_savePostTask(e={}){const{post:i}=this,r=this.post.emailOnly
|
|
1776
1797
|
Object.prototype.hasOwnProperty.call(e,"emailOnly")&&this.post.set("emailOnly",e.emailOnly)
|
|
1777
1798
|
const n=Date.now()
|
|
1778
1799
|
try{yield i.save(e)}catch(a){if(this.post.set("emailOnly",r),this.config.sentry_dsn&&Date.now()-n>2e3&&t.captureException("Failed Lexical save took > 2s",t=>{t.setTag("save_time",Math.ceil((Date.now()-n)/1e3)),t.setTag("post_type",i.isPage?"page":"post"),t.setTag("save_revision",e.adapterOptions?.saveRevision),t.setTag("email_segment",e.adapterOptions?.emailSegment),t.setTag("convert_to_lexical",e.adapterOptions?.convertToLexical)}),(0,v.isServerUnreachableError)(a)){const[e,t]=this.post.changedAttributes().status||[this.post.status,this.post.status]
|
|
1779
1800
|
throw void this._showErrorAlert(e,t,a)}throw a}return this.afterSave(i),i}afterSave(e){this.notifications.closeAlerts("post.save"),e.updateTags(),this._previousTagNames=this._tagNames,e.lexicalScratch||e.set("lexicalScratch",e.get("lexical"))
|
|
1780
|
-
|
|
1781
|
-
t&&i&&this.set("hasDirtyAttributes",!1)}*saveTitleTask(){
|
|
1801
|
+
const t=e.get("titleScratch")===e.get("title"),i=e.get("lexicalScratch")===e.get("lexical")
|
|
1802
|
+
t&&i&&this.set("hasDirtyAttributes",!1)}*saveTitleTask(){const e=this.post,t=e.get("title"),i=e.get("titleScratch").trim()
|
|
1782
1803
|
t&&i&&i===t||!t&&!i||(this.set("hasDirtyAttributes",!0),this.get("post.isDraft")&&(yield this.generateSlugTask.perform(),yield this.autosaveTask.perform()),this.ui.updateDocumentTitle())}*generateSlugTask(){const e=this.get("post.title"),t=this.get("post.titleScratch"),i=this.get("post.slug")
|
|
1783
1804
|
if((t!==nt||!i)&&(!i||(0,P.slugify)(e)===i||e===nt||e?.endsWith("(Copy)")))try{const e=yield this.slugGenerator.generateSlug("post",t,this.get("post.id"))
|
|
1784
1805
|
Ember.isBlank(e)||this.set("post.slug",e)}catch(r){(0,v.isVersionMismatchError)(r)&&this.notifications.showAPIError(r)}}*backgroundLoaderTask(){yield this.store.query("snippet",{limit:"all"}),this.search.refreshContentTask.perform(),this.syncMobiledocSnippets()}sleep(e){return new Promise(t=>{setTimeout(t,e)})}async syncMobiledocSnippets(){const e=this.store.peekAll("snippet")
|
|
@@ -1788,13 +1809,13 @@ if(!i.lexical||i.lexical.syncedAt&&m.default.utc(i.lexical.syncedAt).isBefore(i.
|
|
|
1788
1809
|
let t=JSON.parse(e).root.children
|
|
1789
1810
|
1===t.length&&"paragraph"===t[0].type&&(t=t[0].children)
|
|
1790
1811
|
const r={namespace:"KoenigEditor",nodes:t}
|
|
1791
|
-
r.syncedAt=m.default.utc().toISOString(),i.lexical=r,i.save(),await this.sleep(100)}}}setPost(e){e!==this.post?(this.reset(),this._setPostState=e.currentState.stateName,this.set("post",e),this.backgroundLoaderTask.perform(),this.set("shouldFocusTitle",e.get("isNew")),e.set("titleScratch",e.get("title")),e.set("lexicalScratch",e.get("lexical")),this._previousTagNames=this._tagNames,window.onbeforeunload=e=>{this.hasDirtyAttributes&&(console.log("Preventing unload due to hasDirtyAttributes"),e.preventDefault(),e.returnValue=!0)},this._unregisterUnsavedChanges?.(),this._unregisterUnsavedChanges=this.unsavedChanges.register({isDirty:()=>this.hasDirtyAttributes,confirmLeave:()=>this._confirmLeave()})):this.set("shouldFocusTitle",e.get("isNew"))}async willTransition(e){
|
|
1812
|
+
r.syncedAt=m.default.utc().toISOString(),i.lexical=r,i.save(),await this.sleep(100)}}}setPost(e){e!==this.post?(this.reset(),this._setPostState=e.currentState.stateName,this.set("post",e),this.backgroundLoaderTask.perform(),this.set("shouldFocusTitle",e.get("isNew")),e.set("titleScratch",e.get("title")),e.set("lexicalScratch",e.get("lexical")),this._previousTagNames=this._tagNames,window.onbeforeunload=e=>{this.hasDirtyAttributes&&(console.log("Preventing unload due to hasDirtyAttributes"),e.preventDefault(),e.returnValue=!0)},this._unregisterUnsavedChanges?.(),this._unregisterUnsavedChanges=this.unsavedChanges.register({isDirty:()=>this.hasDirtyAttributes,confirmLeave:()=>this._confirmLeave()})):this.set("shouldFocusTitle",e.get("isNew"))}async willTransition(e){const i=this.post
|
|
1792
1813
|
if(!i)return
|
|
1793
1814
|
if(this.updateSlugTask.isRunning)return e.abort(),await this.updateSlugTask.last,e.retry()
|
|
1794
1815
|
const r="lexical-editor.new"===this.router.currentRouteName&&"lexical-editor.edit"===e.targetName&&e.intent.contexts?.[0]?.id===i.id
|
|
1795
1816
|
if(this._getLeaveTransitionState({fromNewToEdit:r}).shouldAbort){e.abort(),this._confirmLeaveContext={fromNewToEdit:r}
|
|
1796
1817
|
try{if(!await this.unsavedChanges.confirmLeave())return}finally{this._confirmLeaveContext=null}return e.retry()}if(this.post){const e=this.post.get("slug"),i=this.post.get("title"),r="draft"===this.post.get("status"),n=e.includes("untitled"),a=i&&""!==i.trim()&&i!==nt
|
|
1797
|
-
r&&n&&a&&t.captureException(new Error("Draft post has title set with untitled slug"),{extra:{slug:e,title:i,titleScratch:this.post.get("titleScratch")}})}r||"lexical-editor.edit"===e.targetName||this.reset()}async _confirmLeave(){
|
|
1818
|
+
r&&n&&a&&t.captureException(new Error("Draft post has title set with untitled slug"),{extra:{slug:e,title:i,titleScratch:this.post.get("titleScratch")}})}r||"lexical-editor.edit"===e.targetName||this.reset()}async _confirmLeave(){const{fromNewToEdit:e=!1}=this._confirmLeaveContext||{}
|
|
1798
1819
|
if(!this.post)return!0
|
|
1799
1820
|
this.updateSlugTask.isRunning&&await this.updateSlugTask.last
|
|
1800
1821
|
let r=this._getLeaveTransitionState({fromNewToEdit:e})
|
|
@@ -1804,55 +1825,63 @@ if(this._autosaveRunning)return this.cancelAutosave(),this.autosaveTask.cancelAl
|
|
|
1804
1825
|
this.post&&Object.assign(this._leaveModalReason,{status:this.post.status}),"SCRATCH_DIVERGED_FROM_SECONDARY"===this._leaveModalReason.code&&this._assignLexicalDiffToLeaveModalReason()
|
|
1805
1826
|
const n={...this._leaveModalReason.context,diff:JSON.stringify(this._leaveModalReason.context?.diff),secondaryLexical:void 0,scratch:void 0,lexical:void 0}
|
|
1806
1827
|
t.captureMessage("showing leave editor modal",{extra:{...this._leaveModalReason,context:n}}),console.log("showing leave editor modal",this._leaveModalReason)
|
|
1807
|
-
return!0===await this.modals.open(i.default)&&(this._leaveConfirmed=!0,!0)}_getLeaveTransitionState({fromNewToEdit:e=!1}={}){
|
|
1828
|
+
return!0===await this.modals.open(i.default)&&(this._leaveConfirmed=!0,!0)}_getLeaveTransitionState({fromNewToEdit:e=!1}={}){const t=this.post
|
|
1808
1829
|
if(!t)return{shouldAbort:!1,shouldConfirmFlow:!1,shouldSaveOnLeave:!1}
|
|
1809
|
-
let i=this.hasDirtyAttributes
|
|
1830
|
+
let i=this.hasDirtyAttributes
|
|
1831
|
+
const r=t.getProperties("isDeleted","isSaving","hasDirtyAttributes","isNew")
|
|
1810
1832
|
r.isDeleted&&(i=!1)
|
|
1811
|
-
|
|
1812
|
-
return{shouldAbort:l||u,shouldConfirmFlow:u,shouldSaveOnLeave:l}}willDestroy(){super.willDestroy(...arguments),this._unregisterUnsavedChanges?.(),this._unregisterUnsavedChanges=null,window.onbeforeunload=null}reset(){
|
|
1833
|
+
const n=t.get("postRevisions").toArray(),a=n[n.length-1],s=!a||!t.isNew&&t.lexical.replaceAll(this.config.blogUrl,"")!==a.lexical.replaceAll(this.config.blogUrl,""),o=r.isDeleted&&(r.isSaving||!r.hasDirtyAttributes),l=!this._saveOnLeavePerformed&&s&&i&&!r.isDeleted&&"draft"===t.get("status"),u=!this._leaveConfirmed&&!e&&!o&&i
|
|
1834
|
+
return{shouldAbort:l||u,shouldConfirmFlow:u,shouldSaveOnLeave:l}}willDestroy(){super.willDestroy(...arguments),this._unregisterUnsavedChanges?.(),this._unregisterUnsavedChanges=null,window.onbeforeunload=null}reset(){const e=this.post
|
|
1813
1835
|
this.cancelAutosave(),this._unregisterUnsavedChanges?.(),this._unregisterUnsavedChanges=null,e&&(e.updateTags(),e.get("isNew")?e.deleteRecord():e.rollbackAttributes()),this._previousTagNames=[],this._leaveConfirmed=!1,this._saveOnLeavePerformed=!1,this._setPostState=null,this._postStates=[],this.set("post",null),this.set("hasDirtyAttributes",!1),this.set("shouldFocusTitle",!1),this.set("showSettingsMenu",!1),this.set("wordCount",0),this.set("postTkCount",0),this.set("featureImageTkCount",0),window.onbeforeunload=null}_assignLexicalDiffToLeaveModalReason(){try{const e=JSON.parse(this.post.secondaryLexicalState||JSON.stringify({})),t=JSON.parse(this.post.scratch||JSON.stringify({})),i=(0,p.default)(t,e,{cyclesFix:!1})
|
|
1814
|
-
i.forEach(e=>{if(e.path){
|
|
1836
|
+
i.forEach(e=>{if(e.path){const r=[]
|
|
1815
1837
|
e.path.forEach((e,n)=>{if("number"==typeof e){const a=i.path.slice(0,n+1),s=Ember.get(t,a.join("."))
|
|
1816
|
-
s&&s.type?r.push(`${e}[${s.type}]`):r.push(e)}else r.push(e)}),e.path=r.join(".")}}),this._leaveModalReason.context||(this._leaveModalReason.context={}),Object.assign(this._leaveModalReason.context,{diff:i})}catch(e){console.error(e),t.captureException(e)}}_hasDirtyAttributes(){
|
|
1838
|
+
s&&s.type?r.push(`${e}[${s.type}]`):r.push(e)}else r.push(e)}),e.path=r.join(".")}}),this._leaveModalReason.context||(this._leaveModalReason.context={}),Object.assign(this._leaveModalReason.context,{diff:i})}catch(e){console.error(e),t.captureException(e)}}_hasDirtyAttributes(){const e=this.post
|
|
1817
1839
|
if(!e)return!1
|
|
1818
1840
|
if(e.get("isError"))return this._leaveModalReason={reason:"isError",code:"POST_HAS_ERROR",context:e.errors.messages},!0
|
|
1819
|
-
|
|
1841
|
+
const t=(this._tagNames||[]).join(", "),i=(this._previousTagNames||[]).join(", ")
|
|
1820
1842
|
if(t!==i)return this._leaveModalReason={reason:"tags are different",code:"POST_TAGS_DIVERGED",context:{currentTags:t,previousTags:i}},!0
|
|
1821
1843
|
if(e.titleScratch.trim()!==e.title.trim())return this._leaveModalReason={reason:"title is different",code:"POST_TITLE_DIVERGED",context:{current:e.title,scratch:e.titleScratch}},!0
|
|
1822
|
-
|
|
1844
|
+
const r=e.get("lexical"),n=e.get("lexicalScratch"),a=e.get("secondaryLexicalState"),s=r?JSON.parse(r).root?.children:[],o=n?JSON.parse(n).root?.children:[],l=a?JSON.parse(a).root?.children:[]
|
|
1823
1845
|
s.forEach(e=>e.direction=null),o.forEach(e=>e.direction=null),l.forEach(e=>e.direction=null)
|
|
1824
1846
|
const u=a&&n&&JSON.stringify(l)!==JSON.stringify(o),c=r&&n&&JSON.stringify(s)!==JSON.stringify(o)
|
|
1825
1847
|
if(u&&c)return this._leaveModalReason={reason:"main editor content has diverged from both hidden editor and saved content",code:"SCRATCH_DIVERGED_FROM_SECONDARY",context:{secondaryLexical:a,lexical:r,scratch:n}},!0
|
|
1826
|
-
if(e.get("isNew")){
|
|
1827
|
-
return t.length&&(this._leaveModalReason={reason:"post.changedAttributes.length > 0",code:"NEW_POST_HAS_CHANGED_ATTRIBUTES",context:e.changedAttributes()}),!!t.length}
|
|
1848
|
+
if(e.get("isNew")){const t=Object.keys(e.changedAttributes()||{})
|
|
1849
|
+
return t.length&&(this._leaveModalReason={reason:"post.changedAttributes.length > 0",code:"NEW_POST_HAS_CHANGED_ATTRIBUTES",context:e.changedAttributes()}),!!t.length}const{hasDirtyAttributes:d}=e
|
|
1828
1850
|
return d?(this._leaveModalReason={reason:"post.hasDirtyAttributes === true",code:"POST_HAS_DIRTY_ATTRIBUTES",context:e.changedAttributes()},!0):d}_showSaveNotification(e,t,i){if("scheduled"===t)return this._showScheduledNotification(i)
|
|
1829
|
-
|
|
1830
|
-
n
|
|
1851
|
+
const r=this.notifications
|
|
1852
|
+
let n,a,s=lt.success.post[e][t]
|
|
1853
|
+
const o=this.get("post.displayName")
|
|
1854
|
+
"published"!==t&&"scheduled"!==t||(a=this.get("post.url"),n=`<a href="${a}" target="_blank">View on site</a>`),s=(0,b.capitalizeFirstLetter)(o)+" "+s.toLowerCase(),r.showNotification(s,{type:"success",actions:n&&Ember.String.htmlSafe(n),delayed:i})}async _showScheduledNotification(e){const{publishedAtUTC:t,previewUrl:i,emailOnly:r,newsletter:n,displayName:a}=this.post,s=m.default.tz(t,this.settings.timezone),o=(0,b.capitalizeFirstLetter)(a)+" scheduled"
|
|
1855
|
+
let l=r?["Will be sent"]:["Will be published"]
|
|
1831
1856
|
if(n){const e=await this.membersCountCache.countString(this.post.fullRecipientFilter,{newsletter:n})
|
|
1832
1857
|
l.push(`${r?"":"and delivered "}to <span><strong>${e}</strong></span>`)}l.push(`on <span><strong>${s.format("D MMM YYYY")}</strong></span>`)
|
|
1833
1858
|
let u=""
|
|
1834
1859
|
u=0===s.utcOffset()?"(UTC)</span>":`(UTC${s.format("Z").replace(/([+-])0/,"$1").replace(/:00/,"")})</span>`,l.push(`at <span><strong>${s.format("HH:mm")}</strong> ${u}`),l=Ember.String.htmlSafe(l.join(" "))
|
|
1835
|
-
|
|
1836
|
-
return this.notifications.showNotification(o,{description:l,actions:c,type:"success",delayed:e})}_showErrorAlert(e,t,i,r){let n
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1860
|
+
const c=Ember.String.htmlSafe(`<a href="${i}" target="_blank">Show preview</a>`)
|
|
1861
|
+
return this.notifications.showNotification(o,{description:l,actions:c,type:"success",delayed:e})}_showErrorAlert(e,t,i,r){let n=lt.errors.post[e][t]
|
|
1862
|
+
const a=this.notifications
|
|
1863
|
+
let s
|
|
1864
|
+
if((0,v.isServerUnreachableError)(i))s="Unable to connect, please check your internet connection and try again"
|
|
1865
|
+
else if(i&&(o=i,"[object String]"===toString.call(o)))s=i
|
|
1866
|
+
else if(i&&Ember.isArray(i))s=i[0]
|
|
1840
1867
|
else{if(i&&i.payload&&i.payload.errors&&i.payload.errors[0].message)return this.notifications.showAPIError(i,{key:"post.save"})
|
|
1841
|
-
|
|
1842
|
-
|
|
1868
|
+
s="Unknown Error"}var o
|
|
1869
|
+
n+=`: ${s}`,n=Ember.String.htmlSafe(n),a.showAlert(n,{type:"error",delayed:r,key:"post.save"})}},De=rt(Me.prototype,"application",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ae=rt(Me.prototype,"feature",[k],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ie=rt(Me.prototype,"membersCountCache",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Le=rt(Me.prototype,"modals",[j],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Re=rt(Me.prototype,"notifications",[T],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ne=rt(Me.prototype,"router",[z],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ue=rt(Me.prototype,"slugGenerator",[x],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Fe=rt(Me.prototype,"search",[S],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Be=rt(Me.prototype,"session",[C],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),He=rt(Me.prototype,"settings",[M],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ve=rt(Me.prototype,"ui",[D],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),qe=rt(Me.prototype,"localRevisions",[A],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$e=rt(Me.prototype,"unsavedChanges",[I],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ye=rt(Me.prototype,"config",[f.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),We=rt(Me.prototype,"excerptErrorMessage",[L],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),rt(Me.prototype,"_pushPostState",[R],Object.getOwnPropertyDescriptor(Me.prototype,"_pushPostState"),Me.prototype),Ke=rt(Me.prototype,"post",[N],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Ge=rt(Me.prototype,"willPublish",[U],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Je=rt(Me.prototype,"willSchedule",[F],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Xe=rt(Me.prototype,"saveTasks",[B],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Qe=rt(Me.prototype,"_tagNames",[H],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),rt(Me.prototype,"hasDirtyAttributes",[V],Object.getOwnPropertyDescriptor(Me.prototype,"hasDirtyAttributes"),Me.prototype),rt(Me.prototype,"_snippets",[q],Object.getOwnPropertyDescriptor(Me.prototype,"_snippets"),Me.prototype),rt(Me.prototype,"snippets",[$],Object.getOwnPropertyDescriptor(Me.prototype,"snippets"),Me.prototype),rt(Me.prototype,"canManageSnippets",[Y],Object.getOwnPropertyDescriptor(Me.prototype,"canManageSnippets"),Me.prototype),rt(Me.prototype,"_autosaveRunning",[W],Object.getOwnPropertyDescriptor(Me.prototype,"_autosaveRunning"),Me.prototype),rt(Me.prototype,"_canAutosave",[K],Object.getOwnPropertyDescriptor(Me.prototype,"_canAutosave"),Me.prototype),rt(Me.prototype,"titleHasTk",[G],Object.getOwnPropertyDescriptor(Me.prototype,"titleHasTk"),Me.prototype),rt(Me.prototype,"excerptHasTk",[J],Object.getOwnPropertyDescriptor(Me.prototype,"excerptHasTk"),Me.prototype),rt(Me.prototype,"tkCount",[X],Object.getOwnPropertyDescriptor(Me.prototype,"tkCount"),Me.prototype),rt(Me.prototype,"updateScratch",[Q],Object.getOwnPropertyDescriptor(Me.prototype,"updateScratch"),Me.prototype),rt(Me.prototype,"updateSecondaryInstanceModel",[Z],Object.getOwnPropertyDescriptor(Me.prototype,"updateSecondaryInstanceModel"),Me.prototype),rt(Me.prototype,"updateTitleScratch",[ee],Object.getOwnPropertyDescriptor(Me.prototype,"updateTitleScratch"),Me.prototype),rt(Me.prototype,"updateExcerpt",[te],Object.getOwnPropertyDescriptor(Me.prototype,"updateExcerpt"),Me.prototype),rt(Me.prototype,"saveExcerptTask",[g.task],Object.getOwnPropertyDescriptor(Me.prototype,"saveExcerptTask"),Me.prototype),rt(Me.prototype,"setSaveType",[ie],Object.getOwnPropertyDescriptor(Me.prototype,"setSaveType"),Me.prototype),rt(Me.prototype,"save",[re],Object.getOwnPropertyDescriptor(Me.prototype,"save"),Me.prototype),rt(Me.prototype,"cancelAutosave",[ne],Object.getOwnPropertyDescriptor(Me.prototype,"cancelAutosave"),Me.prototype),rt(Me.prototype,"leaveEditor",[ae],Object.getOwnPropertyDescriptor(Me.prototype,"leaveEditor"),Me.prototype),rt(Me.prototype,"openDeletePostModal",[se],Object.getOwnPropertyDescriptor(Me.prototype,"openDeletePostModal"),Me.prototype),rt(Me.prototype,"openUpgradeModal",[oe],Object.getOwnPropertyDescriptor(Me.prototype,"openUpgradeModal"),Me.prototype),rt(Me.prototype,"setKoenigEditor",[le],Object.getOwnPropertyDescriptor(Me.prototype,"setKoenigEditor"),Me.prototype),rt(Me.prototype,"updateWordCount",[ue],Object.getOwnPropertyDescriptor(Me.prototype,"updateWordCount"),Me.prototype),rt(Me.prototype,"updatePostTkCount",[ce],Object.getOwnPropertyDescriptor(Me.prototype,"updatePostTkCount"),Me.prototype),rt(Me.prototype,"updateFeatureImageTkCount",[de],Object.getOwnPropertyDescriptor(Me.prototype,"updateFeatureImageTkCount"),Me.prototype),rt(Me.prototype,"setFeatureImage",[pe],Object.getOwnPropertyDescriptor(Me.prototype,"setFeatureImage"),Me.prototype),rt(Me.prototype,"registerEditorAPI",[me],Object.getOwnPropertyDescriptor(Me.prototype,"registerEditorAPI"),Me.prototype),rt(Me.prototype,"registerSecondaryEditorAPI",[he],Object.getOwnPropertyDescriptor(Me.prototype,"registerSecondaryEditorAPI"),Me.prototype),rt(Me.prototype,"clearFeatureImage",[be],Object.getOwnPropertyDescriptor(Me.prototype,"clearFeatureImage"),Me.prototype),rt(Me.prototype,"setFeatureImageAlt",[ge],Object.getOwnPropertyDescriptor(Me.prototype,"setFeatureImageAlt"),Me.prototype),rt(Me.prototype,"setFeatureImageCaption",[fe],Object.getOwnPropertyDescriptor(Me.prototype,"setFeatureImageCaption"),Me.prototype),rt(Me.prototype,"handleFeatureImageCaptionBlur",[ve],Object.getOwnPropertyDescriptor(Me.prototype,"handleFeatureImageCaptionBlur"),Me.prototype),rt(Me.prototype,"toggleSettingsMenu",[ye],Object.getOwnPropertyDescriptor(Me.prototype,"toggleSettingsMenu"),Me.prototype),rt(Me.prototype,"closeSettingsMenu",[we],Object.getOwnPropertyDescriptor(Me.prototype,"closeSettingsMenu"),Me.prototype),rt(Me.prototype,"saveNewSnippet",[Ee],Object.getOwnPropertyDescriptor(Me.prototype,"saveNewSnippet"),Me.prototype),rt(Me.prototype,"createSnippet",[Pe],Object.getOwnPropertyDescriptor(Me.prototype,"createSnippet"),Me.prototype),rt(Me.prototype,"confirmUpdateSnippet",[_e],Object.getOwnPropertyDescriptor(Me.prototype,"confirmUpdateSnippet"),Me.prototype),rt(Me.prototype,"confirmDeleteSnippet",[ke],Object.getOwnPropertyDescriptor(Me.prototype,"confirmDeleteSnippet"),Me.prototype),rt(Me.prototype,"autosaveTask",[g.dropTask],Object.getOwnPropertyDescriptor(Me.prototype,"autosaveTask"),Me.prototype),rt(Me.prototype,"saveTask",[Oe],Object.getOwnPropertyDescriptor(Me.prototype,"saveTask"),Me.prototype),rt(Me.prototype,"beforeSaveTask",[g.task],Object.getOwnPropertyDescriptor(Me.prototype,"beforeSaveTask"),Me.prototype),rt(Me.prototype,"updateSlugTask",[je],Object.getOwnPropertyDescriptor(Me.prototype,"updateSlugTask"),Me.prototype),rt(Me.prototype,"savePostTask",[Te],Object.getOwnPropertyDescriptor(Me.prototype,"savePostTask"),Me.prototype),rt(Me.prototype,"_savePostTask",[g.task],Object.getOwnPropertyDescriptor(Me.prototype,"_savePostTask"),Me.prototype),rt(Me.prototype,"afterSave",[ze],Object.getOwnPropertyDescriptor(Me.prototype,"afterSave"),Me.prototype),rt(Me.prototype,"saveTitleTask",[g.task],Object.getOwnPropertyDescriptor(Me.prototype,"saveTitleTask"),Me.prototype),rt(Me.prototype,"generateSlugTask",[g.enqueueTask],Object.getOwnPropertyDescriptor(Me.prototype,"generateSlugTask"),Me.prototype),rt(Me.prototype,"backgroundLoaderTask",[g.restartableTask],Object.getOwnPropertyDescriptor(Me.prototype,"backgroundLoaderTask"),Me.prototype),rt(Me.prototype,"syncMobiledocSnippets",[xe],Object.getOwnPropertyDescriptor(Me.prototype,"syncMobiledocSnippets"),Me.prototype),Ze=rt(Me.prototype,"_autosaveTask",[Se],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),et=rt(Me.prototype,"_timedSaveTask",[Ce],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Me)}),define("ghost-admin/controllers/lexical-editor/edit-loading",["exports"],function(e){var t,i,r
|
|
1843
1870
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1844
1871
|
e.default=(t=Ember.inject.service,i=class extends Ember.Controller{constructor(...e){var t,i,n,a
|
|
1845
1872
|
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),r=void 0===u.initializer?(Object.defineProperty(n,a,u),null):u,i)
|
|
1846
|
-
var n,a,s,o,l,u}),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
|
|
1847
|
-
function
|
|
1873
|
+
var n,a,s,o,l,u}),define("ghost-admin/controllers/members-activity",["exports","ghost-admin/helpers/member-fetcher","ghost-admin/helpers/members-event-filter","ghost-admin/decorators/inject","ember-could-get-used-to-this"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E
|
|
1874
|
+
function P(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function _(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
1848
1875
|
var i=e[Symbol.toPrimitive]
|
|
1849
1876
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
1850
1877
|
if("object"!=typeof r)return r
|
|
1851
1878
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
1852
|
-
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function
|
|
1879
|
+
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function k(e,t,i,r,n){var a={}
|
|
1853
1880
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1854
|
-
e.default=(
|
|
1855
|
-
|
|
1881
|
+
e.default=(a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember._tracked,c=Ember._tracked,d=Ember._action,p=Ember._action,m=class extends Ember.Controller{constructor(...e){super(...e),P(this,"router",h,this),P(this,"settings",b,this),P(this,"store",g,this),P(this,"config",f,this),P(this,"feature",v,this),_(this,"queryParams",["excludedEvents","member"]),P(this,"excludedEvents",y,this),P(this,"member",w,this),P(this,"memberRecord",E,this)}get hiddenEvents(){const e=[]
|
|
1882
|
+
this.member||e.push(...i.EMAIL_EVENTS),e.push("aggregated_click_event"),"disabled"===this.settings.editorDefaultEmailRecipients&&e.push(...i.EMAIL_EVENTS,...i.NEWSLETTER_EVENTS)
|
|
1883
|
+
const t=!0===this.config.hostSettings?.limits?.limitCustomFields?.disabled
|
|
1884
|
+
return this.feature.membersCustomFields&&!t||e.push("metafield_change_event"),e}get fullExcludedEvents(){return(this.excludedEvents||"").split(",").concat(this.hiddenEvents)}changeExcludedEvents(e){this.router.transitionTo({queryParams:{excludedEvents:e}})}changeMember(e){this.router.transitionTo({queryParams:{member:e?.id}})}},h=k(m.prototype,"router",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=k(m.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=k(m.prototype,"store",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=k(m.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=k(m.prototype,"feature",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=k(m.prototype,"excludedEvents",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),w=k(m.prototype,"member",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),E=k(m.prototype,"memberRecord",[n.use],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new t.default(()=>[this.member])}}),k(m.prototype,"changeExcludedEvents",[d],Object.getOwnPropertyDescriptor(m.prototype,"changeExcludedEvents"),m.prototype),k(m.prototype,"changeMember",[p],Object.getOwnPropertyDescriptor(m.prototype,"changeMember"),m.prototype),m)}),define("ghost-admin/controllers/migrate",["exports"],function(e){var t,i,r,n,a,s
|
|
1856
1885
|
function o(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function l(e,t,i,r,n){var a={}
|
|
1857
1886
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1858
1887
|
e.default=(t=Ember.inject.service,i=Ember.inject.service,r=Ember._action,n=class extends Ember.Controller{constructor(...e){super(...e),o(this,"migrate",a,this),o(this,"router",s,this)}get visibilityClass(){return this.migrate.isIframeTransition?"migrate iframe-migrate-container":" migrate fullscreen-migrate-container"}closeMigrate(){this.router.transitionTo("/settings/migration")}},a=l(n.prototype,"migrate",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=l(n.prototype,"router",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l(n.prototype,"closeMigrate",[r],Object.getOwnPropertyDescriptor(n.prototype,"closeMigrate"),n.prototype),n)}),define("ghost-admin/controllers/pages-loading",["exports","ghost-admin/controllers/posts-loading"],function(e,t){var i,r,n,a,s
|
|
@@ -1893,7 +1922,7 @@ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerabl
|
|
|
1893
1922
|
e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember._tracked,u=Ember._tracked,c=Ember._tracked,d=Ember._tracked,p=Ember._action,m=(0,r.task)({drop:!0}),h=class extends(Ember.Controller.extend(t.default)){constructor(...e){super(...e),k(this,"ghostPaths",b,this),k(this,"notifications",g,this),k(this,"session",f,this),k(this,"ajax",v,this),k(this,"config",y,this),k(this,"newPassword",w,this),k(this,"ne2Password",E,this),k(this,"token",P,this),k(this,"flowErrors",_,this),O(this,"validationType","reset")}get email(){return atob(this.token).split("|")[1]}clearData(){this.newPassword="",this.ne2Password="",this.token="",document.querySelector("form#reset")?.reset()}handleInput(e){this.flowErrors="",this.errors.clear(),this.hasValidated.addObjects(["newPassword","ne2Password"]),this[e.currentTarget.name]=e.target.value}*resetPasswordTask(){const{email:e,newPassword:t,ne2Password:i,token:r}=this,n=this.ghostPaths.url.api("authentication","password_reset")
|
|
1894
1923
|
this.flowErrors="",this.hasValidated.addObjects(["newPassword","ne2Password"])
|
|
1895
1924
|
try{yield this.validate()
|
|
1896
|
-
try{
|
|
1925
|
+
try{const{password_reset:[{message:a,emailVerificationToken:s}]}=yield this.ajax.put(n,{data:{password_reset:[{newPassword:t,ne2Password:i,token:r}]}})
|
|
1897
1926
|
return this.notifications.showNotification(a,{type:"info",delayed:!0,key:"password.reset"}),s?yield this.session.authenticate("authenticator:cookie",{identification:e,password:t,token:s}):(yield this.session.setup(),yield this.session.handleAuthentication()),!0}catch(a){this.notifications.showAPIError(a,{key:"password.reset"})}}catch(a){if(this.errors.errorsFor("newPassword").length&&(this.flowErrors=this.errors.errorsFor("newPassword")[0].message),this.errors.errorsFor("ne2Password").length&&(this.flowErrors=this.errors.errorsFor("ne2Password")[0].message),a&&0===this.errors.length)throw a}}},b=j(h.prototype,"ghostPaths",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=j(h.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=j(h.prototype,"session",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=j(h.prototype,"ajax",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=j(h.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=j(h.prototype,"newPassword",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),E=j(h.prototype,"ne2Password",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),P=j(h.prototype,"token",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),_=j(h.prototype,"flowErrors",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),j(h.prototype,"handleInput",[p],Object.getOwnPropertyDescriptor(h.prototype,"handleInput"),h.prototype),j(h.prototype,"resetPasswordTask",[m],Object.getOwnPropertyDescriptor(h.prototype,"resetPasswordTask"),h.prototype),h)}),define("ghost-admin/controllers/restore-posts",["exports","ember-concurrency"],function(e,t){var i,r,n,a,s
|
|
1898
1927
|
function o(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function l(e,t,i,r,n){var a={}
|
|
1899
1928
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -1909,10 +1938,10 @@ e.default=(s=Ember.inject.controller,o=Ember.inject.service,l=Ember.inject.servi
|
|
|
1909
1938
|
try{return yield this.session.authenticate(e,{identification:t,password:i}),this.errors.remove("session"),!0}catch(r){if("TransitionAborted"===r.message)return!0
|
|
1910
1939
|
if(r&&r.payload&&r.payload.errors){if((0,n.isVersionMismatchError)(r))return this.notifications.showAPIError(r)
|
|
1911
1940
|
r.payload.errors.forEach(e=>{e.message=Ember.String.htmlSafe(e.message)}),this.set("flowErrors",r.payload.errors[0].message.string)}else this.notifications.showAlert("There was a problem on the server.",{type:"error",key:"session.authenticate.failed"})
|
|
1912
|
-
return!1}}),f=class extends(Ember.Controller.extend(t.default)){constructor(...e){super(...e),z(this,"application",v,this),z(this,"ajax",y,this),z(this,"ghostPaths",w,this),z(this,"notifications",E,this),z(this,"onboarding",P,this),z(this,"router",_,this),z(this,"session",k,this),z(this,"config",O,this),x(this,"validationType","setup"),x(this,"blogCreated",!1),x(this,"blogTitle",null),x(this,"email",""),x(this,"flowErrors",""),x(this,"name",null),x(this,"password",null),z(this,"setupTask",j,this),z(this,"authenticate",T,this)}setup(){this.setupTask.perform()}preValidate(e){if(this.get(e))return this.validate({property:e})}_passwordSetup(){
|
|
1913
|
-
return this.set("flowErrors",""),this.hasValidated.addObjects(e),this.validate().then(()=>{
|
|
1914
|
-
return this.ajax[i](e,{data:{setup:[{name:t.name,email:t.email,password:t.password,blogTitle:t.blogTitle}]}}).then(e=>(this.config.blogTitle=t.blogTitle,this.get("session.isAuthenticated")?this._afterAuthentication(e):(this.session.skipAuthSuccessHandler=!0,this.session.authenticate("authenticator:cookie",{identification:t.email,password:t.password}).then(()=>(this.set("blogCreated",!0),this._afterAuthentication(e))).catch(e=>{this._handleAuthenticationError(e)})))).catch(e=>{this._handleSaveError(e)})}).catch(()=>{this.set("flowErrors","Please fill out every field correctly to set up your site.")})}_handleSaveError(e){if((0,r.isInvalidError)(e)){
|
|
1915
|
-
this.set("flowErrors",[t.message,t.context].join(" "))}else this.notifications.showAPIError(e,{key:"setup.blog-details"})}_handleAuthenticationError(e){if(e&&e.payload&&e.payload.errors){
|
|
1941
|
+
return!1}}),f=class extends(Ember.Controller.extend(t.default)){constructor(...e){super(...e),z(this,"application",v,this),z(this,"ajax",y,this),z(this,"ghostPaths",w,this),z(this,"notifications",E,this),z(this,"onboarding",P,this),z(this,"router",_,this),z(this,"session",k,this),z(this,"config",O,this),x(this,"validationType","setup"),x(this,"blogCreated",!1),x(this,"blogTitle",null),x(this,"email",""),x(this,"flowErrors",""),x(this,"name",null),x(this,"password",null),z(this,"setupTask",j,this),z(this,"authenticate",T,this)}setup(){this.setupTask.perform()}preValidate(e){if(this.get(e))return this.validate({property:e})}_passwordSetup(){const e=["blogTitle","name","email","password"],t=this.getProperties(e),i=this.blogCreated?"put":"post"
|
|
1942
|
+
return this.set("flowErrors",""),this.hasValidated.addObjects(e),this.validate().then(()=>{const e=this.get("ghostPaths.url").api("authentication","setup")
|
|
1943
|
+
return this.ajax[i](e,{data:{setup:[{name:t.name,email:t.email,password:t.password,blogTitle:t.blogTitle}]}}).then(e=>(this.config.blogTitle=t.blogTitle,this.get("session.isAuthenticated")?this._afterAuthentication(e):(this.session.skipAuthSuccessHandler=!0,this.session.authenticate("authenticator:cookie",{identification:t.email,password:t.password}).then(()=>(this.set("blogCreated",!0),this._afterAuthentication(e))).catch(e=>{this._handleAuthenticationError(e)})))).catch(e=>{this._handleSaveError(e)})}).catch(()=>{this.set("flowErrors","Please fill out every field correctly to set up your site.")})}_handleSaveError(e){if((0,r.isInvalidError)(e)){const[t]=e.payload.errors
|
|
1944
|
+
this.set("flowErrors",[t.message,t.context].join(" "))}else this.notifications.showAPIError(e,{key:"setup.blog-details"})}_handleAuthenticationError(e){if(e&&e.payload&&e.payload.errors){const[t]=e.payload.errors
|
|
1916
1945
|
this.set("flowErrors",[t.message,t.context].join(" "))}else{if("TransitionAborted"===e.message)return!0
|
|
1917
1946
|
this.notifications.showAlert("There was a problem on the server.",{type:"error",key:"setup.authenticate.failed"})}}async _afterAuthentication(){await this.session.handleAuthentication(),await this.onboarding.startChecklist(),window.location.hash="/setup/onboarding?returnTo=/analytics"}},v=S(f.prototype,"application",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=S(f.prototype,"ajax",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=S(f.prototype,"ghostPaths",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=S(f.prototype,"notifications",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=S(f.prototype,"onboarding",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=S(f.prototype,"router",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=S(f.prototype,"session",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=S(f.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S(f.prototype,"setup",[m],Object.getOwnPropertyDescriptor(f.prototype,"setup"),f.prototype),S(f.prototype,"preValidate",[h],Object.getOwnPropertyDescriptor(f.prototype,"preValidate"),f.prototype),j=S(f.prototype,"setupTask",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=S(f.prototype,"authenticate",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f)}),define("ghost-admin/controllers/signin-verify",["exports","ember-data","ghost-admin/config/environment","tracked-built-ins","ember-ajax/errors","ember-concurrency"],function(e,t,i,r,n,a){var s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x
|
|
1918
1947
|
function S(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||!e)return e
|
|
@@ -1936,17 +1965,17 @@ throw new TypeError("@@toPrimitive must return a primitive value.")}return("stri
|
|
|
1936
1965
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function R(e,t,i,r,n){var a={}
|
|
1937
1966
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1938
1967
|
const N=!0,U=!1
|
|
1939
|
-
e.default=(a=Ember.inject.controller,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember.inject.service,p=Ember._tracked,m=Ember._tracked,h=Ember._tracked,b=Ember._tracked,g=Ember._tracked,f=Ember._action,v=Ember._action,y=(0,n.task)({drop:!0}),w=(0,n.task)({drop:!0}),E=class extends(Ember.Controller.extend(t.default)){constructor(...e){super(...e),I(this,"application",P,this),I(this,"ajax",_,this),I(this,"ghostPaths",k,this),I(this,"notifications",O,this),I(this,"router",j,this),I(this,"session",T,this),I(this,"settings",z,this),I(this,"config",x,this),I(this,"submitting",S,this),I(this,"loggingIn",C,this),I(this,"flowNotification",M,this),I(this,"flowErrors",D,this),I(this,"passwordResetEmailSent",A,this),L(this,"validationType","signin"),L(this,"authProperties",["identification","password"])}get signin(){return this.model}handleInput(e){this.signin[e.target.name]=e.target.value}validateProperty(e){return this.validate({property:e})}*authenticateTask(e,{identification:t,password:i}){try{return yield this.session.authenticate(e,{identification:t,password:i}),N}catch(n){if((0,r.isTwoFactorTokenRequiredError)(n)){
|
|
1968
|
+
e.default=(a=Ember.inject.controller,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=Ember.inject.service,p=Ember._tracked,m=Ember._tracked,h=Ember._tracked,b=Ember._tracked,g=Ember._tracked,f=Ember._action,v=Ember._action,y=(0,n.task)({drop:!0}),w=(0,n.task)({drop:!0}),E=class extends(Ember.Controller.extend(t.default)){constructor(...e){super(...e),I(this,"application",P,this),I(this,"ajax",_,this),I(this,"ghostPaths",k,this),I(this,"notifications",O,this),I(this,"router",j,this),I(this,"session",T,this),I(this,"settings",z,this),I(this,"config",x,this),I(this,"submitting",S,this),I(this,"loggingIn",C,this),I(this,"flowNotification",M,this),I(this,"flowErrors",D,this),I(this,"passwordResetEmailSent",A,this),L(this,"validationType","signin"),L(this,"authProperties",["identification","password"])}get signin(){return this.model}handleInput(e){this.signin[e.target.name]=e.target.value}validateProperty(e){return this.validate({property:e})}*authenticateTask(e,{identification:t,password:i}){try{return yield this.session.authenticate(e,{identification:t,password:i}),N}catch(n){if((0,r.isTwoFactorTokenRequiredError)(n)){const e=n.payload?.errors[0]?.code
|
|
1940
1969
|
return this.session.set("errorCode",e),this.router.transitionTo("signin-verify"),N}if((0,r.isVersionMismatchError)(n))return this.notifications.showAPIError(n),U
|
|
1941
|
-
if(this.signin.errors.clear(),n&&n.payload&&n.payload.errors){
|
|
1970
|
+
if(this.signin.errors.clear(),n&&n.payload&&n.payload.errors){const[e]=n.payload.errors
|
|
1942
1971
|
e.message=Ember.String.htmlSafe(e.message||""),e.context=Ember.String.htmlSafe(e.context||""),this.flowErrors=e.context.string||e.message.string,"TooManyRequestsError"===e.type&&(this.flowErrors=e.message.string),"PasswordResetRequiredError"===e.type&&(this.passwordResetEmailSent=!0),e.context.string.match(/user with that email/i)&&this.signin.errors.add("identification",""),e.context.string.match(/password is incorrect/i)&&this.signin.errors.add("password","")}else console.error(n),this.notifications.showAlert("There was a problem on the server.",{type:"error",key:"session.authenticate.failed"})
|
|
1943
1972
|
return U}}*validateAndAuthenticateTask(){const{identification:e,password:t}=this.signin
|
|
1944
1973
|
this.flowErrors="",this.hasValidated.addObjects(this.authProperties)
|
|
1945
|
-
try{return yield this.validate({property:"signin"}),yield this.authenticateTask.perform("authenticator:cookie",{identification:e,password:t})}catch(i){return this.flowErrors="Please fill out the form to sign in.",U}}*forgotPasswordTask(){
|
|
1974
|
+
try{return yield this.validate({property:"signin"}),yield this.authenticateTask.perform("authenticator:cookie",{identification:e,password:t})}catch(i){return this.flowErrors="Please fill out the form to sign in.",U}}*forgotPasswordTask(){const e=this.signin.identification,t=this.ghostPaths.url.api("authentication","password_reset"),i=this.notifications
|
|
1946
1975
|
this.flowErrors="",this.flowNotification="",this.hasValidated.addObject("identification")
|
|
1947
1976
|
try{return yield this.validate({property:"forgotPassword"}),yield this.ajax.post(t,{data:{password_reset:[{email:e}]}}),this.flowNotification="An email with password reset instructions has been sent.",N}catch(n){if(!n)return this.flowErrors="We need your email address to reset your password.",U
|
|
1948
1977
|
if((0,r.isVersionMismatchError)(n))return i.showAPIError(n),U
|
|
1949
|
-
if(n&&n.payload&&n.payload.errors&&Ember.isArray(n.payload.errors)){
|
|
1978
|
+
if(n&&n.payload&&n.payload.errors&&Ember.isArray(n.payload.errors)){const[{message:e}]=n.payload.errors
|
|
1950
1979
|
this.flowErrors=e,e.match(/no user|not found/)&&this.signin.errors.add("identification","")}else i.showAPIError(n,{defaultErrorText:"There was a problem with the reset, please try again.",key:"forgot-password.send"})
|
|
1951
1980
|
return U}}},P=R(E.prototype,"application",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=R(E.prototype,"ajax",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=R(E.prototype,"ghostPaths",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=R(E.prototype,"notifications",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=R(E.prototype,"router",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=R(E.prototype,"session",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=R(E.prototype,"settings",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=R(E.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=R(E.prototype,"submitting",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),C=R(E.prototype,"loggingIn",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),M=R(E.prototype,"flowNotification",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),D=R(E.prototype,"flowErrors",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),A=R(E.prototype,"passwordResetEmailSent",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),R(E.prototype,"handleInput",[f],Object.getOwnPropertyDescriptor(E.prototype,"handleInput"),E.prototype),R(E.prototype,"validateProperty",[v],Object.getOwnPropertyDescriptor(E.prototype,"validateProperty"),E.prototype),R(E.prototype,"authenticateTask",[y],Object.getOwnPropertyDescriptor(E.prototype,"authenticateTask"),E.prototype),R(E.prototype,"validateAndAuthenticateTask",[w],Object.getOwnPropertyDescriptor(E.prototype,"validateAndAuthenticateTask"),E.prototype),R(E.prototype,"forgotPasswordTask",[n.task],Object.getOwnPropertyDescriptor(E.prototype,"forgotPasswordTask"),E.prototype),E)}),define("ghost-admin/controllers/signup",["exports","ghost-admin/decorators/inject","ghost-admin/services/ajax","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k
|
|
1952
1981
|
function O(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function j(e,t,i,r,n){var a={}
|
|
@@ -1967,11 +1996,11 @@ function g(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,config
|
|
|
1967
1996
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
1968
1997
|
e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember._action,u=(0,r.task)({drop:!0}),c=class extends Ember.Controller{constructor(...e){super(...e),g(this,"modals",d,this),g(this,"notifications",p,this),g(this,"router",m,this),g(this,"tagsManager",h,this),g(this,"config",b,this)}get tag(){return this.model}get tagURL(){const e=this.config.blogUrl,t=this.tag?.slug||""
|
|
1969
1998
|
let i=this.tag?.canonicalUrl||`${e}/tag/${t}`
|
|
1970
|
-
return i.endsWith("/")||(i+="/"),i}confirmDeleteTag(){return this.modals.open(t.default,{tag:this.model})}*saveTask(){
|
|
1999
|
+
return i.endsWith("/")||(i+="/"),i}confirmDeleteTag(){return this.modals.open(t.default,{tag:this.model})}*saveTask(){const{tag:e}=this
|
|
1971
2000
|
try{if(0!==e.get("errors").length)return
|
|
1972
2001
|
const t=e.isNew
|
|
1973
2002
|
return yield e.save(),t&&this.tagsManager.tagsScreenInfinityModel?.pushObjects([e]),this.replaceRoute("tag",e),e}catch(t){t&&this.notifications.showAPIError(t,{key:"tag.save"})}}},d=f(c.prototype,"modals",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=f(c.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=f(c.prototype,"router",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=f(c.prototype,"tagsManager",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=f(c.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f(c.prototype,"confirmDeleteTag",[l],Object.getOwnPropertyDescriptor(c.prototype,"confirmDeleteTag"),c.prototype),f(c.prototype,"saveTask",[u],Object.getOwnPropertyDescriptor(c.prototype,"saveTask"),c.prototype),c)}),define("ghost-admin/data-adapter",["exports","@ember-data/debug"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/decorators/inject",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.inject=function(...e){let t,i
|
|
1974
|
-
!function(e){
|
|
2003
|
+
!function(e){const[t,i,r]=e
|
|
1975
2004
|
return 3===e.length&&("function"==typeof t||"object"==typeof t&&null!==t)&&"string"==typeof i&&("object"==typeof r&&null!==r||void 0===r)}(e)?"string"==typeof e[0]&&(i=e[0]):t=e
|
|
1976
2005
|
const r=Ember.computed({get:function(e){return(Ember.getOwner(this)||this.container).lookup(`${i||e}:main`)},set(e,t){Ember.defineProperty(this,e,null,t)}})
|
|
1977
2006
|
return t?r(t[0],t[1],t[2]):r}}),define("ghost-admin/errors/email-failed-error",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -2001,7 +2030,7 @@ let a=r.versionOnly||r.hideSha,s=r.shaOnly||r.hideVersion,o=null
|
|
|
2001
2030
|
return a&&(r.showExtended&&(o=n.match(i.versionExtendedRegExp)),o||(o=n.match(i.versionRegExp))),s&&(o=n.match(i.shaRegExp)),o?o[0]:n}Object.defineProperty(e,"__esModule",{value:!0}),e.appVersion=r,e.default=void 0
|
|
2002
2031
|
e.default=Ember.Helper.helper(r)}),define("ghost-admin/helpers/assign",["exports","ember-assign-helper/helpers/assign"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"assign",{enumerable:!0,get:function(){return t.assign}}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})
|
|
2003
2032
|
define("ghost-admin/helpers/author-names",["exports"],function(e){function t([e]){if(e&&!Ember.isEmpty(e))return e.mapBy("name").join(", ")}Object.defineProperty(e,"__esModule",{value:!0}),e.authorNames=t,e.default=void 0
|
|
2004
|
-
e.default=Ember.Helper.helper(t)}),define("ghost-admin/helpers/background-image-style",["exports"],function(e){function t([e]){if(e){
|
|
2033
|
+
e.default=Ember.Helper.helper(t)}),define("ghost-admin/helpers/background-image-style",["exports"],function(e){function t([e]){if(e){const t=encodeURI(decodeURI(e))
|
|
2005
2034
|
return Ember.String.htmlSafe(`background-image: url(${t});`)}return""}Object.defineProperty(e,"__esModule",{value:!0}),e.backgroundImageStyle=t,e.default=void 0
|
|
2006
2035
|
e.default=Ember.Helper.helper(t)}),define("ghost-admin/helpers/camelize",["exports","ember-cli-string-helpers/helpers/camelize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"camelize",{enumerable:!0,get:function(){return t.camelize}}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/cancel-all",["exports","ember-concurrency/helpers/cancel-all"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/capitalize-first-letter",["exports"],function(e){function t(e){return"string"!=typeof e||0===e.length?e:e.charAt(0).toUpperCase()+e.slice(1)}Object.defineProperty(e,"__esModule",{value:!0}),e.capitalizeFirstLetter=t,e.default=void 0
|
|
2007
2036
|
e.default=Ember.Helper.helper(([e])=>t(e))}),define("ghost-admin/helpers/capitalize",["exports","ember-cli-string-helpers/helpers/capitalize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"capitalize",{enumerable:!0,get:function(){return t.capitalize}}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/classify",["exports","ember-cli-string-helpers/helpers/classify"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"classify",{enumerable:!0,get:function(){return t.classify}}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/compute",["exports","ember-composable-helpers/helpers/compute"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"compute",{enumerable:!0,get:function(){return t.compute}}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/currency-symbol",["exports","ghost-admin/utils/currency"],function(e,t){var i,r,n
|
|
@@ -2014,7 +2043,7 @@ e.default=(i=class extends Ember.Helper{constructor(...e){var t,i,n,a
|
|
|
2014
2043
|
super(...e),t=this,i="config",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})}compute(){return this.config.enableDeveloperExperiments}},n=i.prototype,a="config",s=[t.inject],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},u={},Object.keys(o).forEach(function(e){u[e]=o[e]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=s.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},u),l&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(l):void 0,u.initializer=void 0),r=void 0===u.initializer?(Object.defineProperty(n,a,u),null):u,i)
|
|
2015
2044
|
var n,a,s,o,l,u}),define("ghost-admin/helpers/ensure-safe-component",["exports","@embroider/util"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.EnsureSafeComponentHelper}})}),define("ghost-admin/helpers/eq",["exports","ember-truth-helpers/helpers/eq"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"equal",{enumerable:!0,get:function(){return t.equal}})}),define("ghost-admin/helpers/event-name",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=e.AVAILABLE_EVENTS=void 0,e.eventName=i
|
|
2016
2045
|
const t=e.AVAILABLE_EVENTS=[{event:"site.changed",name:"Site changed (rebuild)",group:"Global"},{event:"post.added",name:"Post created",group:"Posts"},{event:"post.deleted",name:"Post deleted",group:"Posts"},{event:"post.edited",name:"Post updated",group:"Posts"},{event:"post.published",name:"Post published",group:"Posts"},{event:"post.published.edited",name:"Published post updated",group:"Posts"},{event:"post.unpublished",name:"Post unpublished",group:"Posts"},{event:"post.scheduled",name:"Post scheduled",group:"Posts"},{event:"post.unscheduled",name:"Post unscheduled",group:"Posts"},{event:"post.tag.attached",name:"Tag added to post",group:"Posts"},{event:"post.tag.detached",name:"Tag removed from post",group:"Posts"},{event:"page.added",name:"Page created",group:"Pages"},{event:"page.deleted",name:"Page deleted",group:"Pages"},{event:"page.edited",name:"Page updated",group:"Pages"},{event:"page.published",name:"Page published",group:"Pages"},{event:"page.published.edited",name:"Published page updated",group:"Pages"},{event:"page.unpublished",name:"Page unpublished",group:"Pages"},{event:"page.tag.attached",name:"Tag added to page",group:"Pages"},{event:"page.tag.detached",name:"Tag removed from page",group:"Pages"},{event:"tag.added",name:"Tag created",group:"Tags"},{event:"tag.edited",name:"Tag updated",group:"Tags"},{event:"tag.deleted",name:"Tag deleted",group:"Tags"},{event:"member.added",name:"Member added",group:"Members"},{event:"member.edited",name:"Member updated",group:"Members"},{event:"member.deleted",name:"Member deleted",group:"Members"}]
|
|
2017
|
-
function i([e]){
|
|
2046
|
+
function i([e]){const i=t.findBy("event",e)
|
|
2018
2047
|
return i?i.name:e}e.default=Ember.Helper.helper(i)}),define("ghost-admin/helpers/feature",["exports"],function(e){var t,i,r
|
|
2019
2048
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2020
2049
|
e.default=(t=Ember.inject.service,i=class extends Ember.Helper{constructor(...e){var t,i,n,a
|
|
@@ -2030,29 +2059,30 @@ Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
|
2030
2059
|
e.default=(t=Ember.inject.service,i=class extends Ember.Helper{constructor(...e){var t,i,n,a
|
|
2031
2060
|
super(...e),t=this,i="settings",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})}compute([e=""]){return this.settings[e]}},n=i.prototype,a="settings",s=[t],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},u={},Object.keys(o).forEach(function(e){u[e]=o[e]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=s.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},u),l&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(l):void 0,u.initializer=void 0),r=void 0===u.initializer?(Object.defineProperty(n,a,u),null):u,i)
|
|
2032
2061
|
var n,a,s,o,l,u}),define("ghost-admin/helpers/gh-count-characters",["exports"],function(e){function t(e){if(!e||!e.length)return
|
|
2033
|
-
|
|
2062
|
+
const t=document.createElement("span"),i=e[0]||"",{length:r}=Array.from(i)
|
|
2034
2063
|
return t.className="word-count",t.style.color=r>180?"#f05230":"#45C32E",t.innerHTML=200-r,Ember.String.htmlSafe(t.outerHTML)}Object.defineProperty(e,"__esModule",{value:!0}),e.countCharacters=t,e.default=void 0
|
|
2035
2064
|
e.default=Ember.Helper.helper(function(e){return t(e)})}),define("ghost-admin/helpers/gh-count-down-characters",["exports"],function(e){function t(e){if(!e||e.length<2)return
|
|
2036
|
-
|
|
2065
|
+
const t=document.createElement("span"),[i,r]=e,{length:n}=Array.from(i||"")
|
|
2037
2066
|
return t.className="word-count",n>r?(t.style.color="#E25440",t.style.fontWeight="bold"):(t.style.color="#30CF43",t.style.fontWeight="bold"),t.innerHTML=n,Ember.String.htmlSafe(t.outerHTML)}Object.defineProperty(e,"__esModule",{value:!0}),e.countDownCharacters=t,e.default=void 0
|
|
2038
2067
|
e.default=Ember.Helper.helper(function(e){return t(e)})}),define("ghost-admin/helpers/gh-count-down-html-characters",["exports","ghost-admin/helpers/gh-count-down-characters"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2039
2068
|
e.default=Ember.Helper.helper(function(e){let[i,r]=e
|
|
2040
2069
|
return i||(i=""),i=i.replace(/<[^>]*>?/gm,""),i=i.replace(/ /g," "),i=i.replace(/&/g,"&"),i=i.replace(/"/g,'"'),i=i.replace(/</g,"<"),i=i.replace(/>/g,">"),(0,t.countDownCharacters)([i,r])})}),define("ghost-admin/helpers/gh-format-post-time",["exports","moment-timezone"],function(e,t){var i,r,n
|
|
2041
2070
|
function a(e,{timezone:i="etc/UTC",format:r,relative:n,absolute:a,scheduled:s,short:o}){if(n)return(0,t.default)(e).from(t.default.utc())
|
|
2042
|
-
|
|
2071
|
+
const l=t.default.tz(e,i)
|
|
2043
2072
|
if(r)return l.format(r)
|
|
2044
|
-
|
|
2045
|
-
|
|
2046
|
-
if(l.
|
|
2047
|
-
|
|
2048
|
-
if(
|
|
2049
|
-
|
|
2073
|
+
const u=t.default.tz(t.default.utc(),i)
|
|
2074
|
+
let c
|
|
2075
|
+
if(c=0===l.utcOffset()?"(UTC)":`(UTC${l.format("Z").replace(/([+-])0/,"$1").replace(/:00/,"")})`,Math.abs(u.diff(l,"hours"))<=12)return l.from(u)
|
|
2076
|
+
if(l.isSame(u,"day")){const e=l.format(`HH:mm [${c}] [Today]`)
|
|
2077
|
+
return s?`at ${e}`:e}if(a&&l.isSame(u.clone().subtract(1,"days").startOf("day"),"day"))return o?l.format("[Yesterday]"):l.format(`HH:mm [${c}] [yesterday]`)
|
|
2078
|
+
if(s&&l.isSame(u.clone().add(1,"days").startOf("day"),"day"))return l.format(`[at] HH:mm [${c}] [tomorrow]`)
|
|
2079
|
+
const d=s?`[at] HH:mm [${c}] [on] DD MMM YYYY`:o?"DD MMM YYYY":`HH:mm [${c}] DD MMM YYYY`
|
|
2050
2080
|
return l.format(d)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.formatPostTime=a
|
|
2051
2081
|
e.default=(i=Ember.inject.service,r=class extends Ember.Helper{constructor(...e){var t,i,r,a
|
|
2052
2082
|
super(...e),t=this,i="settings",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})}compute([e],t){return a(e,Object.assign({},t,{timezone:this.settings.timezone}))}},s=r.prototype,o="settings",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),n=void 0===d.initializer?(Object.defineProperty(s,o,d),null):d,r)
|
|
2053
|
-
var s,o,l,u,c,d}),define("ghost-admin/helpers/gh-pluralize",["exports","ghost-admin/helpers/format-number","ember-inflector"],function(e,t,i){function r(e,r,{withoutCount:n}={}){
|
|
2083
|
+
var s,o,l,u,c,d}),define("ghost-admin/helpers/gh-pluralize",["exports","ghost-admin/helpers/format-number","ember-inflector"],function(e,t,i){function r(e,r,{withoutCount:n}={}){const a=[]
|
|
2054
2084
|
return Ember.isBlank(e)||!0===n||a.push((0,t.formatNumber)(e)),Ember.isBlank(e)?a.push((0,i.pluralize)(r)):a.push((0,i.pluralize)(e,r,{withoutCount:!0})),a.join(" ")}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.ghPluralize=r
|
|
2055
|
-
e.default=Ember.Helper.helper(function([e,t],{"without-count":i}={}){return r(e,t,{withoutCount:i})})}),define("ghost-admin/helpers/gh-price-amount",["exports","ghost-admin/helpers/format-number"],function(e,t){function i(e,{cents:i=!0}={}){if(e){
|
|
2085
|
+
e.default=Ember.Helper.helper(function([e,t],{"without-count":i}={}){return r(e,t,{withoutCount:i})})}),define("ghost-admin/helpers/gh-price-amount",["exports","ghost-admin/helpers/format-number"],function(e,t){function i(e,{cents:i=!0}={}){if(e){const r=i?e/100:Math.round(e/100)
|
|
2056
2086
|
return r%1==0?(0,t.formatNumber)(r):(0,t.formatNumber)(Math.round(100*r)/100,{minimumFractionDigits:2})}return 0}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.ghPriceAmount=i
|
|
2057
2087
|
e.default=Ember.Helper.helper(function([e],t={}){return i(e,t)})}),define("ghost-admin/helpers/gh-user-can-admin",["exports"],function(e){function t(e){return!!e[0].get("isAdmin")}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.ghUserCanAdmin=t
|
|
2058
2088
|
e.default=Ember.Helper.helper(function(e){return t(e)})})
|
|
@@ -2061,7 +2091,8 @@ e.default=Ember.Helper.helper(function([e],{s:i=0,l:r=0}={}){let n=(0,t.Color)(e
|
|
|
2061
2091
|
return 0!==i&&(n=n.saturationl(n.saturationl()+i)),0!==r&&(n=n.lightness(n.lightness()+r)),n.hex()})}),define("ghost-admin/helpers/hex-contrast",["exports","@tryghost/color-utils"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2062
2092
|
e.default=Ember.Helper.helper(function([e]){return(0,t.textColorForBackgroundColor)((0,t.Color)(e)).hex()})}),define("ghost-admin/helpers/highlighted-text",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.highlightedText=i
|
|
2063
2093
|
const{Handlebars:t}=Ember
|
|
2064
|
-
function i([e,i]){
|
|
2094
|
+
function i([e,i]){const r=i.replace(new RegExp(/\W/gi),"\\$&"),n=new RegExp(r,"ig"),a=e.match(n)||[],s=e.split(n)
|
|
2095
|
+
let o=""
|
|
2065
2096
|
return s.forEach((e,i)=>{o+=t.Utils.escapeExpression(e),a[i]&&(o+=`<span class="highlight">${t.Utils.escapeExpression(a[i])}</span>`)}),Ember.String.htmlSafe(o)}e.default=Ember.Helper.helper(i)}),define("ghost-admin/helpers/history-event-fetcher",["exports","moment-timezone","ember-could-get-used-to-this","tracked-built-ins","ember-concurrency"],function(e,t,i,r,n){var a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P
|
|
2066
2097
|
function _(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function k(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2067
2098
|
var i=e[Symbol.toPrimitive]
|
|
@@ -2088,14 +2119,13 @@ const e=t.payload?.errors?.[0]?.message
|
|
|
2088
2119
|
e&&(this.errorMessage=e),console.error(t)}finally{this.isLoading=!1}}},b=O(h.prototype,"ajax",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=O(h.prototype,"ghostPaths",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=O(h.prototype,"store",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=O(h.prototype,"data",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new r.TrackedArray([])}}),y=O(h.prototype,"isLoading",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),w=O(h.prototype,"isError",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),E=O(h.prototype,"errorMessage",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),P=O(h.prototype,"hasReachedEnd",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),O(h.prototype,"loadNextPage",[m],Object.getOwnPropertyDescriptor(h.prototype,"loadNextPage"),h.prototype),O(h.prototype,"loadEventsTask",[n.task],Object.getOwnPropertyDescriptor(h.prototype,"loadEventsTask"),h.prototype),h)}),define("ghost-admin/helpers/history-event-filter",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2089
2120
|
class t extends Ember.Helper{compute(e,{excludedEvents:t=[],excludedResources:i=[],user:r=""}){const n=new Set,a=new Set
|
|
2090
2121
|
t.length&&t.forEach(e=>n.add(e)),i.length&&i.forEach(e=>a.add(e))
|
|
2091
|
-
|
|
2092
|
-
const o=Array.from(n).reject(Ember.isBlank)
|
|
2122
|
+
const s=[],o=Array.from(n).reject(Ember.isBlank)
|
|
2093
2123
|
o.length>0&&s.push(`event:-[${o.join(",")}]`)
|
|
2094
2124
|
const l=Array.from(a).concat(["label"]).reject(Ember.isBlank)
|
|
2095
2125
|
return l.length>0&&s.push(`resource_type:-[${l.join(",")}]`),r&&s.push(`actor_id:'${r}'`),s.join("+")}}e.default=t}),define("ghost-admin/helpers/html-safe",["exports","ember-cli-string-helpers/helpers/html-safe"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"htmlSafe",{enumerable:!0,get:function(){return t.htmlSafe}})}),define("ghost-admin/helpers/humanize-recipient-filter",["exports","ember-inflector"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2096
2126
|
e.default=Ember.Helper.helper(function([e=""]){const i=e.split(",")
|
|
2097
2127
|
if(i.includes("status:free")&&i.includes("status:-free"))return"All subscribers"
|
|
2098
|
-
|
|
2128
|
+
const r=[]
|
|
2099
2129
|
i.includes("status:free")?r.push("Free subscribers"):i.includes("status:-free")&&r.push("Paid subscribers")
|
|
2100
2130
|
const n=/labels:\[(.*?)\]/,a=/label:(.*?)(?:,|$)/g
|
|
2101
2131
|
if(n.test(e)){const[,i]=e.match(n),a=i.split(",")
|
|
@@ -2108,7 +2138,7 @@ const i=[...e.matchAll(o)].map(([,e])=>e)
|
|
|
2108
2138
|
r.push(`${(0,t.pluralize)(i.length,"Product",{withoutCount:!0})}: ${i.map(Ember.String.capitalize).join(", ")}`)}return r.length?r.join(" & "):e})}),define("ghost-admin/helpers/humanize-setting-key",["exports","ember-cli-string-helpers/helpers/humanize"],function(e,t){function i([e]){let i=(0,t.humanize)([e])
|
|
2109
2139
|
return["API","CTA","RSS"].forEach(e=>{const t=new RegExp(`(^| )(${e})( |$)`,"gi")
|
|
2110
2140
|
i=i.replace(t,`$1${e}$3`)}),i}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.humanizeSettingKey=i
|
|
2111
|
-
e.default=Ember.Helper.helper(i)}),define("ghost-admin/helpers/humanize",["exports","ember-cli-string-helpers/helpers/humanize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"humanize",{enumerable:!0,get:function(){return t.humanize}})}),define("ghost-admin/helpers/if-key",["exports","ember-keyboard/helpers/if-key.js"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/integration-icon-style",["exports"],function(e){function t([e]){if(e.iconImage){
|
|
2141
|
+
e.default=Ember.Helper.helper(i)}),define("ghost-admin/helpers/humanize",["exports","ember-cli-string-helpers/helpers/humanize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"humanize",{enumerable:!0,get:function(){return t.humanize}})}),define("ghost-admin/helpers/if-key",["exports","ember-keyboard/helpers/if-key.js"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/integration-icon-style",["exports"],function(e){function t([e]){if(e.iconImage){const t=`background-image:url(${e.iconImage});background-size:36px;`
|
|
2112
2142
|
return Ember.String.htmlSafe(t)}}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.integrationLogoStyle=t
|
|
2113
2143
|
e.default=Ember.Helper.helper(t)}),define("ghost-admin/helpers/is-after",["exports","ember-moment/helpers/is-after"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/is-array",["exports","ember-truth-helpers/helpers/is-array"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isArray",{enumerable:!0,get:function(){return t.isArray}})}),define("ghost-admin/helpers/is-before",["exports","ember-moment/helpers/is-before"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/is-between",["exports","ember-moment/helpers/is-between"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/is-empty",["exports","ember-truth-helpers/helpers/is-empty"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/is-equal",["exports","ember-truth-helpers/helpers/is-equal"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"isEqual",{enumerable:!0,get:function(){return t.isEqual}})}),define("ghost-admin/helpers/is-moment-today",["exports","moment-timezone"],function(e,t){var i,r,n
|
|
2114
2144
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -2158,8 +2188,7 @@ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerabl
|
|
|
2158
2188
|
const l=e.EMAIL_EVENTS=["email_sent_event","email_delivered_event","email_opened_event","email_failed_event","email_complaint_event"],u=e.NEWSLETTER_EVENTS=["newsletter_event"]
|
|
2159
2189
|
e.default=(t=Ember.inject.service,i=Ember.inject.service,r=class extends Ember.Helper{constructor(...e){super(...e),s(this,"settings",n,this),s(this,"feature",a,this)}compute(e,{excludedEvents:t=[],includeEvents:i=null,member:r="",post:n="",excludeEmailEvents:a=!1}){const s=new Set
|
|
2160
2190
|
"disabled"===this.settings.editorDefaultEmailRecipients&&[...l,...u].forEach(e=>s.add(e)),"off"===this.settings.commentsEnabled&&s.add("comment_event"),a&&l.forEach(e=>s.add(e)),t.length&&t.forEach(e=>s.add(e))
|
|
2161
|
-
|
|
2162
|
-
const c=Array.from(s).reject(Ember.isBlank)
|
|
2191
|
+
const o=[],c=Array.from(s).reject(Ember.isBlank)
|
|
2163
2192
|
return null!==i?o.push(`type:[${i.join(",")}]`):c.length>0&&o.push(`type:-[${c.join(",")}]`),r&&o.push(`data.member_id:'${r}'`),n&&o.push(`data.post_id:'${n}'`),o.join("+")}},n=o(r.prototype,"settings",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a=o(r.prototype,"feature",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),r)}),define("ghost-admin/helpers/moment-add",["exports","ember-moment/helpers/moment-add"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/moment-calendar",["exports","ember-moment/helpers/moment-calendar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/moment-diff",["exports","ember-moment/helpers/moment-diff"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/moment-duration",["exports","ember-moment/helpers/moment-duration"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/moment-format",["exports","ember-moment/helpers/moment-format"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/moment-from-now",["exports","ember-moment/helpers/moment-from-now"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/moment-from",["exports","ember-moment/helpers/moment-from"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/moment-site-tz",["exports","moment-timezone"],function(e,t){var i,r,n
|
|
2164
2193
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2165
2194
|
e.default=(i=Ember.inject.service,r=class extends Ember.Helper{constructor(...e){var t,i,r,a
|
|
@@ -2182,7 +2211,12 @@ return String(e).trim()||null}compute([e,i]){let r=e.data.member?.name
|
|
|
2182
2211
|
r=this.trimString(r)
|
|
2183
2212
|
const n=e.data.member?r||e.data.member.email:e.data.name||e.data.email||"",a=this.getIcon(e),s=this.getAction(e,i),o=this.getActionTitle(e,i),l=this.getInfo(e),u=this.getDescription(e),c=this.getJoin(e),d=this.getObject(e),p=this.getURL(e),m=this.getRoute(e),h=(0,t.default)(e.data.created_at),b=this.getSource(e),g=e.data.member?{...e.data.member,name:r}:e.data.member
|
|
2184
2213
|
return{memberId:e.data.member_id??e.data.member?.id,member:g,emailId:e.data.email_id,email:e.data.email,icon:a,subject:n,action:s,actionTitle:o,join:c,object:d,source:b,info:l,description:u,url:p,route:m,timestamp:h}}getIcon(e){let t
|
|
2185
|
-
return"login_event"===e.type&&(t="logged-in"),"payment_event"===e.type&&(t="subscriptions"),"newsletter_event"===e.type&&(t=e.data.subscribed?"subscribed-to-email":"unsubscribed-from-email"),"subscription_event"===e.type&&(t="subscriptions","canceled"===e.data.type&&(t="canceled-subscription")),("signup_event"===e.type||"subscription_event"===e.type&&"created"===e.data.type&&e.data.signup)&&(t="signed-up"),"email_opened_event"===e.type&&(t="opened-email"),"email_sent_event"===e.type&&(t="sent-email"),"automated_email_sent_event"===e.type&&(t="sent-email"),"email_delivered_event"===e.type&&(t="received-email"),"email_failed_event"===e.type&&(t="email-delivery-failed"),"email_complaint_event"===e.type&&(t="email-delivery-spam"),"comment_event"===e.type&&(t="comment"),"click_event"!==e.type&&"aggregated_click_event"!==e.type||(t="click"),"feedback_event"===e.type&&(t=1===e.data.score?"more-like-this":"less-like-this"),"donation_event"===e.type&&(t="subscriptions"),"gift_purchase_event"===e.type&&(t="gift"),"gift_redemption_event"===e.type&&(t="gift"),"gift_ended_event"===e.type&&(t="gift"),"email_change_event"===e.type&&(t="email-changed"),"event-"+t}
|
|
2214
|
+
return"login_event"===e.type&&(t="logged-in"),"payment_event"===e.type&&(t="subscriptions"),"newsletter_event"===e.type&&(t=e.data.subscribed?"subscribed-to-email":"unsubscribed-from-email"),"subscription_event"===e.type&&(t="subscriptions","canceled"===e.data.type&&(t="canceled-subscription")),("signup_event"===e.type||"subscription_event"===e.type&&"created"===e.data.type&&e.data.signup)&&(t="signed-up"),"email_opened_event"===e.type&&(t="opened-email"),"email_sent_event"===e.type&&(t="sent-email"),"automated_email_sent_event"===e.type&&(t="sent-email"),"email_delivered_event"===e.type&&(t="received-email"),"email_failed_event"===e.type&&(t="email-delivery-failed"),"email_complaint_event"===e.type&&(t="email-delivery-spam"),"comment_event"===e.type&&(t="comment"),"click_event"!==e.type&&"aggregated_click_event"!==e.type||(t="click"),"feedback_event"===e.type&&(t=1===e.data.score?"more-like-this":"less-like-this"),"donation_event"===e.type&&(t="subscriptions"),"gift_purchase_event"===e.type&&(t="gift"),"gift_redemption_event"===e.type&&(t="gift"),"gift_ended_event"===e.type&&(t="gift"),"email_change_event"===e.type&&(t="email-changed"),"metafield_change_event"===e.type&&(t="metafields-changed"),"event-"+t}getMetafieldChangeAction(e){const t={admin:"in Admin",admin_api:"through the Admin API",import:"from an import",checkout:"at checkout",portal:"in Portal"},i=(e.data.metafields||[]).map(e=>e.name)
|
|
2215
|
+
let r="custom fields"
|
|
2216
|
+
if(i.length>3){const e=i.length-3
|
|
2217
|
+
r=`${i.slice(0,3).join(", ")} and ${e} more ${1===e?"field":"fields"}`}else 1===i.length?r=i[0]:i.length>1&&(r=`${i.slice(0,-1).join(", ")} and ${i[i.length-1]}`)
|
|
2218
|
+
const n=Object.hasOwn(t,e.data.source)?t[e.data.source]:null
|
|
2219
|
+
return n?`updated ${r} ${n}`:`updated ${r}`}getAction(e,t){if("signup_event"===e.type||"subscription_event"===e.type&&"created"===e.data.type&&e.data.signup)return"signed up"
|
|
2186
2220
|
if("login_event"===e.type)return"logged in"
|
|
2187
2221
|
if("payment_event"===e.type)return"made payment"
|
|
2188
2222
|
if("newsletter_event"===e.type){let i="newsletter"
|
|
@@ -2197,9 +2231,10 @@ if("click_event"===e.type)return"clicked link in email"
|
|
|
2197
2231
|
if("aggregated_click_event"===e.type)return e.data.count.clicks<=1?"clicked link in email":`clicked ${(0,r.ghPluralize)(e.data.count.clicks,"link")} in email`
|
|
2198
2232
|
if("feedback_event"===e.type)return 1===e.data.score?"more like this":"less like this"
|
|
2199
2233
|
if("email_change_event"===e.type)return e.data.from_email&&e.data.to_email?`Email address changed from ${e.data.from_email} to ${e.data.to_email}`:"Email address changed"
|
|
2234
|
+
if("metafield_change_event"===e.type)return this.getMetafieldChangeAction(e)
|
|
2200
2235
|
if("donation_event"===e.type)return"Made a one-time payment"
|
|
2201
2236
|
if("gift_purchase_event"===e.type){const t=(0,i.getSymbol)(e.data.currency)+(0,i.getNonDecimal)(e.data.amount,e.data.currency),r=e.data.tier_name,n=e.data.duration
|
|
2202
|
-
return`Purchased gift subscription for ${t} (${r}, ${n} ${1===n?e.data.cadence:e.data.cadence+"s"})`}return"gift_redemption_event"===e.type?"started gift subscription":"gift_ended_event"===e.type?"gift subscription expired":void 0}getActionTitle(e,t){if("automated_email_sent_event"===e.type&&"automation_action_revision"===e.data.automatedEmail?.source){return`received automated email: ${this.trimString(e.data.automatedEmail.subject)}`}return this.getAction(e,t)}getJoin(){return"–"}getObject(e){return"signup_event"!==e.type&&"subscription_event"!==e.type&&"donation_event"!==e.type||!e.data.attribution?.title?"comment_event"===e.type&&e.data.post?e.data.post.title:"click_event"!==e.type&&"feedback_event"!==e.type||!e.data.post?"":e.data.post.title:e.data.attribution.title}getSource(e){return e.data?.attribution?.referrer_source?{name:e.data.attribution.referrer_source,url:e.data.attribution.referrer_url??null}:null}getInfo(e){if("subscription_event"===e.type){
|
|
2237
|
+
return`Purchased gift subscription for ${t} (${r}, ${n} ${1===n?e.data.cadence:e.data.cadence+"s"})`}return"gift_redemption_event"===e.type?"started gift subscription":"gift_ended_event"===e.type?"gift subscription expired":void 0}getActionTitle(e,t){if("automated_email_sent_event"===e.type&&"automation_action_revision"===e.data.automatedEmail?.source){return`received automated email: ${this.trimString(e.data.automatedEmail.subject)}`}return this.getAction(e,t)}getJoin(){return"–"}getObject(e){return"signup_event"!==e.type&&"subscription_event"!==e.type&&"donation_event"!==e.type||!e.data.attribution?.title?"comment_event"===e.type&&e.data.post?e.data.post.title:"click_event"!==e.type&&"feedback_event"!==e.type||!e.data.post?"":e.data.post.title:e.data.attribution.title}getSource(e){return e.data?.attribution?.referrer_source?{name:e.data.attribution.referrer_source,url:e.data.attribution.referrer_url??null}:null}getInfo(e){if("subscription_event"===e.type){const t=(0,i.getNonDecimal)(e.data.mrr_delta,e.data.currency)
|
|
2203
2238
|
if(0===t)return
|
|
2204
2239
|
const r=(0,i.getSymbol)(e.data.currency)
|
|
2205
2240
|
if("created"===e.data.type){const i=t>0?"":"-"
|
|
@@ -2234,7 +2269,7 @@ e.default=(i=class extends Ember.Helper{constructor(...e){var t,i,n,a
|
|
|
2234
2269
|
super(...e),t=this,i="config",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})}compute(){const e=this.config.icon||"https://static.ghost.org/v4.0.0/images/ghost-orb-2.png"
|
|
2235
2270
|
return Ember.String.htmlSafe(`background-image: url(${e})`)}},n=i.prototype,a="config",s=[t.inject],o={configurable:!0,enumerable:!0,writable:!0,initializer:null},u={},Object.keys(o).forEach(function(e){u[e]=o[e]}),u.enumerable=!!u.enumerable,u.configurable=!!u.configurable,("value"in u||u.initializer)&&(u.writable=!0),u=s.slice().reverse().reduce(function(e,t){return t(n,a,e)||e},u),l&&void 0!==u.initializer&&(u.value=u.initializer?u.initializer.call(l):void 0,u.initializer=void 0),r=void 0===u.initializer?(Object.defineProperty(n,a,u),null):u,i)
|
|
2236
2271
|
var n,a,s,o,l,u}),define("ghost-admin/helpers/split-number",["exports","ghost-admin/helpers/format-number"],function(e,t){function i([e,i]){if(void 0===e||void 0===i)return 0
|
|
2237
|
-
|
|
2272
|
+
const r=(0,t.formatNumber)(e),n=(0,t.formatNumber)(i).split("").map(e=>`<span class="old-char">${e}</span>`).join(""),a=r.split("").map(e=>`<span class="new-char">${e}</span>`).join("")
|
|
2238
2273
|
return Ember.String.htmlSafe(`\n <div class="number-group old-number">${n}</div>\n <div class="number-group new-number">${a}</div>\n `)}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.splitNumber=i
|
|
2239
2274
|
e.default=Ember.Helper.helper(i)}),define("ghost-admin/helpers/svg-jar",["exports","ember-svg-jar/helpers/svg-jar"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"svgJar",{enumerable:!0,get:function(){return t.svgJar}})}),define("ghost-admin/helpers/task",["exports","ember-concurrency/helpers/task"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/titleize",["exports","ember-cli-string-helpers/helpers/titleize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"titleize",{enumerable:!0,get:function(){return t.titleize}})}),define("ghost-admin/helpers/toggle-action",["exports","ember-composable-helpers/helpers/toggle-action"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/helpers/toggle-feature",["exports"],function(e){var t,i,r
|
|
2240
2275
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -2281,7 +2316,7 @@ e.default={name:"setup coordinator",initialize:function(){let e=arguments[1]||ar
|
|
|
2281
2316
|
e.register("drag:coordinator",t.default),e.inject("component","coordinator","drag:coordinator")}}}),define("ghost-admin/initializers/ember-cli-mirage",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2282
2317
|
e.default={name:"ember-cli-mirage",initialize(){}}}),define("ghost-admin/initializers/ember-concurrency",["exports","ember-concurrency/initializers/ember-concurrency"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/initializers/ember-data-data-adapter",["exports","@ember-data/debug/setup"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/initializers/ember-data",["exports","ember-data","ember-data/setup-container"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2283
2318
|
e.default={name:"ember-data",initialize:i.default}}),define("ghost-admin/initializers/ember-simple-auth",["exports","ember-simple-auth/configuration","ghost-admin/config/environment","ghost-admin/utils/ghost-paths","ember-simple-auth/initializers/setup-session"],function(e,t,i,r,n){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2284
|
-
e.default={name:"ember-simple-auth",initialize(e){
|
|
2319
|
+
e.default={name:"ember-simple-auth",initialize(e){const a=i.default["ember-simple-auth"]||{}
|
|
2285
2320
|
a.rootURL=(0,r.default)().adminRoot,t.default.load(a),(0,n.default)(e)}}}),define("ghost-admin/initializers/export-application-global",["exports","ghost-admin/config/environment"],function(e,t){function i(){var e=arguments[1]||arguments[0]
|
|
2286
2321
|
if(!1!==t.default.exportApplicationGlobal){var i
|
|
2287
2322
|
if("undefined"!=typeof window)i=window
|
|
@@ -2294,13 +2329,13 @@ const i=/^([0-9]+)\.([0-9]+)\.([0-9]+)(?:(?:-(alpha|beta)\.([0-9]+)(?:\.([0-9]+)
|
|
|
2294
2329
|
function n(){if(r){let[e,i]=arguments
|
|
2295
2330
|
t.default.initialize(e,i)}}e.default={name:"hide-loading-screen",initialize:n}}),define("ghost-admin/initializers/liquid-fire",["exports","liquid-fire/velocity-ext"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2296
2331
|
e.default={name:"liquid-fire",initialize:function(){}}}),define("ghost-admin/initializers/trailing-hash",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2297
|
-
|
|
2332
|
+
const t=Ember.HashLocation.extend({unsavedChanges:Ember.inject.service("unsaved-changes"),formatURL(){const e=this._super(...arguments)
|
|
2298
2333
|
return e.indexOf("?")>0?e.replace(/([^/])\?/,"$1/?"):e.replace(/\/?$/,"/")},init(){this._super(...arguments),this._clickHandler=e=>{if(!this.unsavedChanges.isDirty)return
|
|
2299
2334
|
if(e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||0!==e.button)return
|
|
2300
|
-
|
|
2335
|
+
const t=e.target.closest?.('a[href^="#/"]')
|
|
2301
2336
|
if(!t)return
|
|
2302
2337
|
e.preventDefault(),e.stopPropagation()
|
|
2303
|
-
|
|
2338
|
+
const i=t.getAttribute("href")
|
|
2304
2339
|
this.unsavedChanges.confirmLeave().then(e=>{e&&(window.location.hash=i)})},document.addEventListener("click",this._clickHandler,!0)},willDestroy(){this._super(...arguments),this._clickHandler&&document.removeEventListener("click",this._clickHandler,!0)}})
|
|
2305
2340
|
e.default={name:"registerTrailingHashLocation",initialize(e){e.register("location:trailing-hash",t)}}}),define("ghost-admin/initializers/upgrade-status",["exports"],function(e){function t(e){e.inject("route","upgradeStatus","service:upgrade-status")}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.initialize=t
|
|
2306
2341
|
e.default={name:"upgrade-status",initialize:t}}),define("ghost-admin/initializers/usable-function-manager",["exports","ember-could-get-used-to-this/initializers/usable-function-manager"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"initialize",{enumerable:!0,get:function(){return t.initialize}})}),define("ghost-admin/initializers/viewport-config",["exports","ember-in-viewport/initializers/viewport-config"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}}),Object.defineProperty(e,"initialize",{enumerable:!0,get:function(){return t.initialize}})}),define("ghost-admin/instance-initializers/config",["exports","tracked-built-ins","@tryghost/timezone-data"],function(e,t,i){function r(e){const r=new t.TrackedObject({})
|
|
@@ -2325,22 +2360,25 @@ e.default={name:"patch-router-url-transitions",initialize:r}}),define("ghost-adm
|
|
|
2325
2360
|
e.default=Ember.Mixin.create({bodyElementSelector:"html",bodyClick:function(){return this},init(){return this._super(...arguments),Ember.run.next(this,this._setupDocumentHandlers)},willDestroy(){return this._super(...arguments),this._removeDocumentHandlers()},_setupDocumentHandlers(){if(!this._clickHandler)return this._clickHandler=e=>this.bodyClick(e),(0,t.default)(this.bodyElementSelector).on("click",this._clickHandler)},_removeDocumentHandlers(){(0,t.default)(this.bodyElementSelector).off("click",this._clickHandler),this._clickHandler=null},click:e=>e.stopPropagation()})}),define("ghost-admin/mixins/dropdown-mixin",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2326
2361
|
e.default=Ember.Mixin.create(Ember.Evented,{classNameBindings:["isOpen:open:closed"],isOpen:!1,click(e){return this._super(e),e.stopPropagation()}})}),define("ghost-admin/mixins/shortcuts-route",["exports","ghost-admin/mixins/shortcuts"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2327
2362
|
e.default=Ember.Mixin.create(t.default,{activate(){this._super(...arguments),this.registerShortcuts()},deactivate(){this._super(...arguments),this.removeShortcuts()}})}),define("ghost-admin/mixins/shortcuts",["exports","ghost-admin/utils/shortcuts"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,key.filter=function(){return!0},key.setScope("default")
|
|
2328
|
-
e.default=Ember.Mixin.create({registerShortcuts(){
|
|
2329
|
-
Object.keys(e).forEach(i=>{
|
|
2330
|
-
|
|
2331
|
-
|
|
2363
|
+
e.default=Ember.Mixin.create({registerShortcuts(){const e=this.shortcuts
|
|
2364
|
+
Object.keys(e).forEach(i=>{const r=e[i].scope||"default"
|
|
2365
|
+
let n,a=e[i]
|
|
2366
|
+
"string"!==Ember.typeOf(a)&&(n=a.options,a=a.action),t.register(i),key(i,r,e=>{e.preventDefault(),Ember.run(this,function(){this.send(a,n)})})})},removeShortcuts(){const e=this.shortcuts
|
|
2367
|
+
Object.keys(e).forEach(i=>{const r=e[i].scope||"default"
|
|
2332
2368
|
t.unregister(i),key.unbind(i,r)})},willDestroy(){this._super(...arguments),this.removeShortcuts()}})}),define("ghost-admin/mixins/text-input",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2333
2369
|
const t={13:"Enter",9:"Tab"}
|
|
2334
2370
|
e.default=Ember.Mixin.create({attributeBindings:["autofocus"],selectOnClick:!1,shouldFocus:!1,stopEnterKeyDownPropagation:!1,constructor(){this._super(...arguments),this._isIOS=/iPad|iPhone|iPod/.test(navigator.userAgent)&&!window.MSStream},autofocus:Ember.computed(function(){return!!this.shouldFocus&&(!this._isIOS&&"autofocus")}),didInsertElement(){this._super(...arguments),this._focus()},click(e){this.selectOnClick&&e.currentTarget.select()},input(e){this["on-input"]?.(e)},keyDown(e){if(13===e.keyCode&&this.stopEnterKeyDownPropagation)return e.stopPropagation(),!0
|
|
2335
|
-
9===e.keyCode&&"function"==typeof this.get("keyEvents.Tab")&&e.preventDefault(),this._super(...arguments)},keyPress(e){13===e.keyCode&&"function"==typeof this.get("keyEvents.Enter")&&e.preventDefault(),this._super(...arguments)},keyUp(e){if(e.keyCode){
|
|
2371
|
+
9===e.keyCode&&"function"==typeof this.get("keyEvents.Tab")&&e.preventDefault(),this._super(...arguments)},keyPress(e){13===e.keyCode&&"function"==typeof this.get("keyEvents.Enter")&&e.preventDefault(),this._super(...arguments)},keyUp(e){if(e.keyCode){const t=this._getMethodFromKeyCode(e.keyCode),i=this.get(`keyEvents.${t}`)
|
|
2336
2372
|
i&&i(e.target.value)}},_focus(){this.shouldFocus&&!this._isIOS&&this.element.focus()},_getMethodFromKeyCode:e=>t[e.toString()]})}),define("ghost-admin/mixins/validation-engine",["exports","ghost-admin/validators/custom-view","ember-data","ghost-admin/validators/integration","ghost-admin/validators/invite-user","ghost-admin/validators/label","ghost-admin/validators/member","@ember-data/model","ghost-admin/validators/nav-item","ghost-admin/validators/newsletter","ghost-admin/validators/post","ghost-admin/validators/reset","ghost-admin/validators/setting","ghost-admin/validators/setup","ghost-admin/validators/signin","ghost-admin/validators/signup","ghost-admin/validators/snippet","ghost-admin/validators/tag-settings","ghost-admin/validators/tier-benefit-item","ghost-admin/validators/tier","ghost-admin/validators/user","ghost-admin/validators/webhook"],function(e,t,i,r,n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2337
2373
|
const{Errors:P}=i.default
|
|
2338
|
-
e.default=Ember.Mixin.create({validators:null,errors:null,hasValidated:null,init(){this._super(...arguments),this.set("errors",P.create()),this.set("hasValidated",Ember.A()),this.validators={customView:t.default,inviteUser:n.default,navItem:l.default,tierBenefitItem:v.default,post:c.default,reset:d.default,setting:p.default,setup:m.default,signin:h.default,signup:b.default,tag:f.default,user:w.default,member:s.default,integration:r.default,webhook:E.default,label:a.default,snippet:g.default,tier:y.default,newsletter:u.default}},validate(e){let t
|
|
2339
|
-
|
|
2340
|
-
return
|
|
2374
|
+
e.default=Ember.Mixin.create({validators:null,errors:null,hasValidated:null,init(){this._super(...arguments),this.set("errors",P.create()),this.set("hasValidated",Ember.A()),this.validators={customView:t.default,inviteUser:n.default,navItem:l.default,tierBenefitItem:v.default,post:c.default,reset:d.default,setting:p.default,setup:m.default,signin:h.default,signup:b.default,tag:f.default,user:w.default,member:s.default,integration:r.default,webhook:E.default,label:a.default,snippet:g.default,tier:y.default,newsletter:u.default}},validate(e){let t=this;(e=e||{}).model?t=e.model:this instanceof o.default?t=this:this.model&&(t=this.model)
|
|
2375
|
+
const i=this.validationType||t.validationType,r=this.get(`validators.${i}`)||t.validators[i],n=this.hasValidated
|
|
2376
|
+
return e.validationType=i,new Ember.RSVP.Promise((a,s)=>{if(!i||!r)return s([`The validator specified, "${i}", did not exist!`])
|
|
2377
|
+
e.property?(n.addObject(e.property),t.errors.remove(e.property)):t.errors.clear()
|
|
2378
|
+
return r.check(t,e.property)?a():s()})},save(e){const{_super:t}=this
|
|
2341
2379
|
return(e=e||{}).wasSave=!0,this.isDeleted?this._super(...arguments):this.validate(e).then(()=>("function"==typeof this.beforeSave&&this.beforeSave(),t.call(this,e))).catch(e=>{if(e&&!Ember.isArray(e))throw e
|
|
2342
2380
|
return Ember.RSVP.reject(e)})},actions:{validate(e){this.validate({property:e})}}})}),define("ghost-admin/mixins/validation-state",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2343
|
-
e.default=Ember.Mixin.create({errors:null,property:"",hasValidated:Ember.A(),hasError:!1,setHasError(){
|
|
2381
|
+
e.default=Ember.Mixin.create({errors:null,property:"",hasValidated:Ember.A(),hasError:!1,setHasError(){const e=this.property,t=this.errors,i=this.hasValidated
|
|
2344
2382
|
e||!t||t.get("isEmpty")?i&&i.includes(e)?!t||Ember.isEmpty(t.errorsFor(e))?this.set("hasError",!1):this.set("hasError",!0):this.set("hasError",!1):this.set("hasError",!0)},hasErrorObserver:Ember.on("init",Ember.observer("errors.[]","property","hasValidated.[]",function(){Ember.run.once(this,"setHasError")}))})}),define("ghost-admin/models/action",["exports","@ember-data/model"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2345
2383
|
e.default=t.default.extend({resourceId:(0,t.attr)("string"),resourceType:(0,t.attr)("string"),actorId:(0,t.attr)("string"),actorType:(0,t.attr)("string"),event:(0,t.attr)("string"),context:(0,t.attr)("json-string"),createdAtUTC:(0,t.attr)("moment-utc")})})
|
|
2346
2384
|
define("ghost-admin/models/api-key",["exports","@ember-data/model"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -2349,20 +2387,20 @@ e.default=t.default.extend({get _meta(){return this._internalModel.type.___meta}
|
|
|
2349
2387
|
e.default=Ember.Object.extend(Ember.Evented,{objectMap:Ember.computed(function(){return t.default.create()}),getObject:function(e,t){t=t||{}
|
|
2350
2388
|
var i=this.get("objectMap").getObj(e)
|
|
2351
2389
|
return i.ops.source&&i.ops.source.sendAction("action",i.obj),i.ops.target&&i.ops.target.sendAction("action",i.obj),this.trigger("objectMoved",{obj:i.obj,source:i.ops.source,target:t.target}),i.obj},setObject:function(e,t){return t=t||{},this.get("objectMap").add({obj:e,ops:t})}})}),define("ghost-admin/models/email",["exports","@ember-data/model"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2352
|
-
e.default=t.default.extend({error:(0,t.attr)("string"),html:(0,t.attr)("string"),plaintext:(0,t.attr)("string"),stats:(0,t.attr)("json-string"),status:(0,t.attr)("string"),subject:(0,t.attr)("string"),submittedAtUTC:(0,t.attr)("moment-utc"),uuid:(0,t.attr)("string"),recipientFilter:(0,t.attr)("string"),emailCount:(0,t.attr)("number",{defaultValue:0}),deliveredCount:(0,t.attr)("number",{defaultValue:0}),openedCount:(0,t.attr)("number",{defaultValue:0}),failedCount:(0,t.attr)("number",{defaultValue:0}),trackOpens:(0,t.attr)("boolean"),trackClicks:(0,t.attr)("boolean"),feedbackEnabled:(0,t.attr)("boolean"),createdAtUTC:(0,t.attr)("moment-utc"),updatedAtUTC:(0,t.attr)("moment-utc"),post:(0,t.belongsTo)("post"),isSuccess:Ember.computed.equal("status","submitted"),isFailure:Ember.computed.equal("status","failed"),openRate:Ember.computed("emailCount","openedCount",function(){
|
|
2390
|
+
e.default=t.default.extend({error:(0,t.attr)("string"),html:(0,t.attr)("string"),plaintext:(0,t.attr)("string"),stats:(0,t.attr)("json-string"),status:(0,t.attr)("string"),subject:(0,t.attr)("string"),submittedAtUTC:(0,t.attr)("moment-utc"),uuid:(0,t.attr)("string"),recipientFilter:(0,t.attr)("string"),emailCount:(0,t.attr)("number",{defaultValue:0}),deliveredCount:(0,t.attr)("number",{defaultValue:0}),openedCount:(0,t.attr)("number",{defaultValue:0}),failedCount:(0,t.attr)("number",{defaultValue:0}),trackOpens:(0,t.attr)("boolean"),trackClicks:(0,t.attr)("boolean"),feedbackEnabled:(0,t.attr)("boolean"),createdAtUTC:(0,t.attr)("moment-utc"),updatedAtUTC:(0,t.attr)("moment-utc"),post:(0,t.belongsTo)("post"),isSuccess:Ember.computed.equal("status","submitted"),isFailure:Ember.computed.equal("status","failed"),openRate:Ember.computed("emailCount","openedCount",function(){const{emailCount:e,openedCount:t}=this
|
|
2353
2391
|
return 0===e?0:Math.round(t/e*100)}),retry(){return this.store.adapterFor("email").retry(this)}})}),define("ghost-admin/models/integration",["exports","@ember-data/model","ghost-admin/mixins/validation-engine"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2354
2392
|
e.default=t.default.extend(i.default,{validationType:"integration",name:(0,t.attr)("string"),slug:(0,t.attr)("string"),type:(0,t.attr)("string"),iconImage:(0,t.attr)("string"),description:(0,t.attr)("string"),createdAtUTC:(0,t.attr)("moment-utc"),updatedAtUTC:(0,t.attr)("moment-utc"),apiKeys:(0,t.hasMany)("api-key",{embedded:"always",async:!1}),webhooks:(0,t.hasMany)("webhook",{embedded:"always",async:!1}),adminKey:Ember.computed("apiKeys.[]",function(){return this.apiKeys.findBy("type","admin")}),contentKey:Ember.computed("apiKeys.[]",function(){return this.apiKeys.findBy("type","content")})})}),define("ghost-admin/models/invite",["exports","@ember-data/model"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2355
|
-
e.default=t.default.extend({token:(0,t.attr)("string"),email:(0,t.attr)("string"),expires:(0,t.attr)("number"),createdAtUTC:(0,t.attr)("moment-utc"),updatedAtUTC:(0,t.attr)("moment-utc"),status:(0,t.attr)("string"),role:(0,t.belongsTo)("role",{async:!1}),ajax:Ember.inject.service(),ghostPaths:Ember.inject.service(),resend(){
|
|
2393
|
+
e.default=t.default.extend({token:(0,t.attr)("string"),email:(0,t.attr)("string"),expires:(0,t.attr)("number"),createdAtUTC:(0,t.attr)("moment-utc"),updatedAtUTC:(0,t.attr)("moment-utc"),status:(0,t.attr)("string"),role:(0,t.belongsTo)("role",{async:!1}),ajax:Ember.inject.service(),ghostPaths:Ember.inject.service(),resend(){const e={email:this.email,role_id:this.role.id},t=this.get("ghostPaths.url").api("invites")
|
|
2356
2394
|
return this.ajax.del(`${t}${this.id}`).then(()=>this.ajax.post(t,{data:JSON.stringify({invites:[e]}),contentType:"application/json"}))}})}),define("ghost-admin/models/label",["exports","@ember-data/model","ghost-admin/mixins/validation-engine"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2357
2395
|
e.default=t.default.extend(i.default,{validationType:"label",name:(0,t.attr)("string"),slug:(0,t.attr)("string"),createdAtUTC:(0,t.attr)("moment-utc"),updatedAtUTC:(0,t.attr)("moment-utc"),count:(0,t.attr)("raw"),feature:Ember.inject.service()})}),define("ghost-admin/models/member-subscription",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2358
2396
|
e.default=Ember.Object.extend({customer:"customer_id",subscription:"subscription_id",plan:"plan_id",status:"subscription status",name:'plan nickname e.g. "Monthly"',interval:'how often plan charges e.g "month", "year"',amount:"amount in smallest denomination e.g. cents, so value for 5 dollars would be 500",currency:"e.g. usd",last4:"last four digits of card OR null",validUntil:"epoch timestamp of when current interval ends IN SECONDS"})}),define("ghost-admin/models/member-tier",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2359
2397
|
e.default=Ember.Object.extend({name:"Name of the tier",slug:"Slug for the tier"})}),define("ghost-admin/models/member",["exports","@ember-data/model","ghost-admin/mixins/validation-engine","ember-concurrency"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2360
|
-
e.default=t.default.extend(i.default,{validationType:"member",name:(0,t.attr)("trimmed-string"),email:(0,t.attr)("string"),note:(0,t.attr)("string"),status:(0,t.attr)("string"),createdAtUTC:(0,t.attr)("moment-utc"),lastSeenAtUTC:(0,t.attr)("moment-utc"),subscriptions:(0,t.attr)("member-subscription"),attribution:(0,t.attr)(),subscribed:(0,t.attr)("boolean",{defaultValue:!0}),comped:(0,t.attr)("boolean",{defaultValue:!1}),geolocation:(0,t.attr)("json-string"),emailCount:(0,t.attr)("number",{defaultValue:0}),emailOpenedCount:(0,t.attr)("number",{defaultValue:0}),emailOpenRate:(0,t.attr)("number"),avatarImage:(0,t.attr)("string"),tiers:(0,t.attr)("member-tier"),newsletters:(0,t.hasMany)("newsletter",{embedded:"always",async:!1}),emailSuppression:(0,t.attr)(),canComment:(0,t.attr)("boolean"),commenting:(0,t.attr)(),labels:(0,t.hasMany)("label",{embedded:"always",async:!1}),ghostPaths:Ember.inject.service(),ajax:Ember.inject.service(),updateLabels(){
|
|
2361
|
-
e.removeObjects(t),t.invoke("deleteRecord")},fetchSigninUrl:(0,r.task)(function*(){
|
|
2362
|
-
return(yield this.ajax.request(e)).member_signin_urls[0]}).drop(),logoutAllDevices:(0,r.task)(function*(){
|
|
2398
|
+
e.default=t.default.extend(i.default,{validationType:"member",name:(0,t.attr)("trimmed-string"),email:(0,t.attr)("string"),note:(0,t.attr)("string"),status:(0,t.attr)("string"),createdAtUTC:(0,t.attr)("moment-utc"),lastSeenAtUTC:(0,t.attr)("moment-utc"),subscriptions:(0,t.attr)("member-subscription"),attribution:(0,t.attr)(),subscribed:(0,t.attr)("boolean",{defaultValue:!0}),comped:(0,t.attr)("boolean",{defaultValue:!1}),geolocation:(0,t.attr)("json-string"),emailCount:(0,t.attr)("number",{defaultValue:0}),emailOpenedCount:(0,t.attr)("number",{defaultValue:0}),emailOpenRate:(0,t.attr)("number"),avatarImage:(0,t.attr)("string"),tiers:(0,t.attr)("member-tier"),newsletters:(0,t.hasMany)("newsletter",{embedded:"always",async:!1}),emailSuppression:(0,t.attr)(),canComment:(0,t.attr)("boolean"),commenting:(0,t.attr)(),labels:(0,t.hasMany)("label",{embedded:"always",async:!1}),ghostPaths:Ember.inject.service(),ajax:Ember.inject.service(),updateLabels(){const e=this.labels,t=e.filterBy("id",null)
|
|
2399
|
+
e.removeObjects(t),t.invoke("deleteRecord")},fetchSigninUrl:(0,r.task)(function*(){const e=this.get("ghostPaths.url").api("members",this.id,"signin_urls")
|
|
2400
|
+
return(yield this.ajax.request(e)).member_signin_urls[0]}).drop(),logoutAllDevices:(0,r.task)(function*(){const e=this.get("ghostPaths.url").api("members",this.id,"signout")
|
|
2363
2401
|
yield this.ajax.post(e)}).drop()})}),define("ghost-admin/models/navigation-item",["exports","ghost-admin/mixins/validation-engine"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2364
|
-
e.default=Ember.Object.extend(t.default,{label:"",url:"",icon:"",visibility:"public",isNew:!1,isSecondary:!1,validationType:"navItem",isComplete:Ember.computed("label","url","icon",function(){
|
|
2365
|
-
return!(Ember.isBlank(e)&&Ember.isBlank(i)||Ember.isBlank(t))}),isBlank:Ember.computed("label","url","icon",function(){
|
|
2402
|
+
e.default=Ember.Object.extend(t.default,{label:"",url:"",icon:"",visibility:"public",isNew:!1,isSecondary:!1,validationType:"navItem",isComplete:Ember.computed("label","url","icon",function(){const{label:e,url:t,icon:i}=this
|
|
2403
|
+
return!(Ember.isBlank(e)&&Ember.isBlank(i)||Ember.isBlank(t))}),isBlank:Ember.computed("label","url","icon",function(){const{label:e,url:t,icon:i}=this
|
|
2366
2404
|
return Ember.isBlank(e)&&Ember.isBlank(t)&&Ember.isBlank(i)})})}),define("ghost-admin/models/newsletter",["exports","@ember-data/model","ghost-admin/mixins/validation-engine"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U,F,B,H,V,q,$,Y,W,K,G,J,X,Q,Z,ee
|
|
2367
2405
|
function te(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 ie(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2368
2406
|
var i=e[Symbol.toPrimitive]
|
|
@@ -2388,22 +2426,25 @@ function _(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,config
|
|
|
2388
2426
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2389
2427
|
e.default=(i=(0,t.attr)("string"),r=(0,t.attr)("string"),n=(0,t.attr)("string"),a=(0,t.attr)("string"),s=(0,t.attr)("string"),o=(0,t.attr)("string"),l=(0,t.attr)("string"),u=(0,t.attr)("moment-utc"),c=(0,t.belongsTo)("user"),d=(0,t.attr)("string"),p=class extends t.default{constructor(...e){super(...e),_(this,"lexical",m,this),_(this,"title",h,this),_(this,"customExcerpt",b,this),_(this,"featureImage",g,this),_(this,"featureImageAlt",f,this),_(this,"featureImageCaption",v,this),_(this,"reason",y,this),_(this,"createdAt",w,this),_(this,"author",E,this),_(this,"postStatus",P,this)}},m=k(p.prototype,"lexical",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=k(p.prototype,"title",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=k(p.prototype,"customExcerpt",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=k(p.prototype,"featureImage",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=k(p.prototype,"featureImageAlt",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=k(p.prototype,"featureImageCaption",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=k(p.prototype,"reason",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=k(p.prototype,"createdAt",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=k(p.prototype,"author",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=k(p.prototype,"postStatus",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p)}),define("ghost-admin/models/post",["exports","@ember-data/model","ghost-admin/mixins/validation-engine","ghost-admin/utils/bound-one-way","moment-timezone","ghost-admin/decorators/inject"],function(e,t,i,r,n,a){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2390
2428
|
const s=["title","slug","status","visibility","publishedAtUTC"],{Comparable:o}=Ember
|
|
2391
|
-
e.default=t.default.extend(o,i.default,{session:Ember.inject.service(),feature:Ember.inject.service(),ghostPaths:Ember.inject.service(),clock:Ember.inject.service(),search:Ember.inject.service(),settings:Ember.inject.service(),membersUtils:Ember.inject.service(),config:(0,a.inject)(),displayName:"post",validationType:"post",count:(0,t.attr)(),sentiment:(0,t.attr)(),createdAtUTC:(0,t.attr)("moment-utc"),excerpt:(0,t.attr)("string"),customExcerpt:(0,t.attr)("string"),featured:(0,t.attr)("boolean",{defaultValue:!1}),canonicalUrl:(0,t.attr)("string"),codeinjectionFoot:(0,t.attr)("string",{defaultValue:""}),codeinjectionHead:(0,t.attr)("string",{defaultValue:""}),customTemplate:(0,t.attr)("string"),ogImage:(0,t.attr)("string"),ogTitle:(0,t.attr)("string"),ogDescription:(0,t.attr)("string"),twitterImage:(0,t.attr)("string"),twitterTitle:(0,t.attr)("string"),twitterDescription:(0,t.attr)("string"),emailSubject:(0,t.attr)("string"),html:(0,t.attr)("string"),visibility:(0,t.attr)("string"),metaDescription:(0,t.attr)("string"),metaTitle:(0,t.attr)("string"),mobiledoc:(0,t.attr)("json-string"),lexical:(0,t.attr)("string",{defaultValue:()=>'{"root":{"children":[{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"root","version":1}}'}),plaintext:(0,t.attr)("string"),publishedAtUTC:(0,t.attr)("moment-utc"),slug:(0,t.attr)("string"),status:(0,t.attr)("string",{defaultValue:"draft"}),title:(0,t.attr)("string",{defaultValue:""}),updatedAtUTC:(0,t.attr)("moment-utc"),url:(0,t.attr)("string"),uuid:(0,t.attr)("string"),emailSegment:(0,t.attr)("members-segment-string",{defaultValue:null}),emailOnly:(0,t.attr)("boolean",{defaultValue:!1}),featureImage:(0,t.attr)("string"),featureImageAlt:(0,t.attr)("string"),featureImageCaption:(0,t.attr)("string"),showTitleAndFeatureImage:(0,t.attr)("boolean",{defaultValue:!0}),authors:(0,t.hasMany)("user",{embedded:"always",async:!1}),email:(0,t.belongsTo)("email",{async:!1}),newsletter:(0,t.belongsTo)("newsletter",{embedded:"always",async:!1}),publishedBy:(0,t.belongsTo)("user",{async:!0}),tags:(0,t.hasMany)("tag",{embedded:"always",async:!1}),postRevisions:(0,t.hasMany)("post_revisions",{embedded:"always",async:!1}),primaryAuthor:Ember.computed.reads("authors.firstObject"),primaryTag:Ember.computed.reads("tags.firstObject"),scratch:null,lexicalScratch:null,titleScratch:null,secondaryLexicalState:null,publishedAtBlogDate:"",publishedAtBlogTime:"",canonicalUrlScratch:(0,r.default)("canonicalUrl"),customExcerptScratch:(0,r.default)("customExcerpt"),codeinjectionFootScratch:(0,r.default)("codeinjectionFoot"),codeinjectionHeadScratch:(0,r.default)("codeinjectionHead"),metaDescriptionScratch:(0,r.default)("metaDescription"),metaTitleScratch:(0,r.default)("metaTitle"),ogDescriptionScratch:(0,r.default)("ogDescription"),ogTitleScratch:(0,r.default)("ogTitle"),twitterDescriptionScratch:(0,r.default)("twitterDescription"),twitterTitleScratch:(0,r.default)("twitterTitle"),tiers:(0,t.attr)("member-tier"),emailSubjectScratch:(0,r.default)("emailSubject"),isPublished:Ember.computed.equal("status","published"),isDraft:Ember.computed.equal("status","draft"),internalTags:Ember.computed.filterBy("tags","isInternal",!0),isScheduled:Ember.computed.equal("status","scheduled"),isSent:Ember.computed.equal("status","sent"),isPost:Ember.computed.equal("displayName","post"),isPage:Ember.computed.equal("displayName","page"),hasEmail:Ember.computed("email","emailOnly",function(){return null!==this.email||this.emailOnly}),willEmail:Ember.computed("isScheduled","newsletter","email",function(){return this.isScheduled&&!!this.newsletter&&!this.email}),hasBeenEmailed:Ember.computed("isPost","isSent","isPublished","email",function(){return this.isPost&&(this.isSent||this.isPublished)&&this.email&&"failed"!==this.email.status}),didEmailFail:Ember.computed("isPost","isSent","isPublished","email.status",function(){return this.isPost&&(this.isSent||this.isPublished)&&this.email&&"failed"===this.email.status}),showAudienceFeedback:Ember.computed("sentiment",function(){return void 0!==this.sentiment}),showEmailOpenAnalytics:Ember.computed("hasBeenEmailed","isSent","isPublished",function(){return this.hasBeenEmailed&&!this.session.user.isContributor&&"none"!==this.settings.membersSignupAccess&&this.email.trackOpens&&this.settings.emailTrackOpens}),showEmailClickAnalytics:Ember.computed("hasBeenEmailed","isSent","isPublished","email",function(){return this.hasBeenEmailed&&!this.session.user.isContributor&&"none"!==this.settings.membersSignupAccess&&(this.isSent||this.isPublished)&&this.email.trackClicks&&this.settings.emailTrackClicks}),showAttributionAnalytics:Ember.computed("isPage","emailOnly","isPublished","membersUtils.isMembersInviteOnly","settings.membersTrackSources",function(){return(this.isPage||!this.emailOnly)&&this.isPublished&&this.settings.membersTrackSources&&!this.membersUtils.isMembersInviteOnly&&!this.session.user.isContributor}),showPaidAttributionAnalytics:Ember.computed.and("showAttributionAnalytics","membersUtils.paidMembersEnabled"),hasAnalyticsPage:Ember.computed("isPost","showEmailOpenAnalytics","showEmailClickAnalytics","showAttributionAnalytics",function(){return this.isPost&&this.session.user.isAdmin&&(this.showEmailOpenAnalytics||this.showEmailClickAnalytics||this.showAttributionAnalytics)}),previewUrl:Ember.computed("uuid","ghostPaths.url","config.blogUrl",function(){
|
|
2429
|
+
e.default=t.default.extend(o,i.default,{session:Ember.inject.service(),feature:Ember.inject.service(),ghostPaths:Ember.inject.service(),clock:Ember.inject.service(),search:Ember.inject.service(),settings:Ember.inject.service(),membersUtils:Ember.inject.service(),config:(0,a.inject)(),displayName:"post",validationType:"post",count:(0,t.attr)(),sentiment:(0,t.attr)(),createdAtUTC:(0,t.attr)("moment-utc"),excerpt:(0,t.attr)("string"),customExcerpt:(0,t.attr)("string"),featured:(0,t.attr)("boolean",{defaultValue:!1}),canonicalUrl:(0,t.attr)("string"),codeinjectionFoot:(0,t.attr)("string",{defaultValue:""}),codeinjectionHead:(0,t.attr)("string",{defaultValue:""}),customTemplate:(0,t.attr)("string"),ogImage:(0,t.attr)("string"),ogTitle:(0,t.attr)("string"),ogDescription:(0,t.attr)("string"),twitterImage:(0,t.attr)("string"),twitterTitle:(0,t.attr)("string"),twitterDescription:(0,t.attr)("string"),emailSubject:(0,t.attr)("string"),html:(0,t.attr)("string"),visibility:(0,t.attr)("string"),metaDescription:(0,t.attr)("string"),metaTitle:(0,t.attr)("string"),mobiledoc:(0,t.attr)("json-string"),lexical:(0,t.attr)("string",{defaultValue:()=>'{"root":{"children":[{"children":[],"direction":null,"format":"","indent":0,"type":"paragraph","version":1}],"direction":null,"format":"","indent":0,"type":"root","version":1}}'}),plaintext:(0,t.attr)("string"),publishedAtUTC:(0,t.attr)("moment-utc"),slug:(0,t.attr)("string"),status:(0,t.attr)("string",{defaultValue:"draft"}),title:(0,t.attr)("string",{defaultValue:""}),updatedAtUTC:(0,t.attr)("moment-utc"),url:(0,t.attr)("string"),uuid:(0,t.attr)("string"),emailSegment:(0,t.attr)("members-segment-string",{defaultValue:null}),emailOnly:(0,t.attr)("boolean",{defaultValue:!1}),featureImage:(0,t.attr)("string"),featureImageAlt:(0,t.attr)("string"),featureImageCaption:(0,t.attr)("string"),showTitleAndFeatureImage:(0,t.attr)("boolean",{defaultValue:!0}),authors:(0,t.hasMany)("user",{embedded:"always",async:!1}),email:(0,t.belongsTo)("email",{async:!1}),newsletter:(0,t.belongsTo)("newsletter",{embedded:"always",async:!1}),publishedBy:(0,t.belongsTo)("user",{async:!0}),tags:(0,t.hasMany)("tag",{embedded:"always",async:!1}),postRevisions:(0,t.hasMany)("post_revisions",{embedded:"always",async:!1}),primaryAuthor:Ember.computed.reads("authors.firstObject"),primaryTag:Ember.computed.reads("tags.firstObject"),scratch:null,lexicalScratch:null,titleScratch:null,secondaryLexicalState:null,publishedAtBlogDate:"",publishedAtBlogTime:"",canonicalUrlScratch:(0,r.default)("canonicalUrl"),customExcerptScratch:(0,r.default)("customExcerpt"),codeinjectionFootScratch:(0,r.default)("codeinjectionFoot"),codeinjectionHeadScratch:(0,r.default)("codeinjectionHead"),metaDescriptionScratch:(0,r.default)("metaDescription"),metaTitleScratch:(0,r.default)("metaTitle"),ogDescriptionScratch:(0,r.default)("ogDescription"),ogTitleScratch:(0,r.default)("ogTitle"),twitterDescriptionScratch:(0,r.default)("twitterDescription"),twitterTitleScratch:(0,r.default)("twitterTitle"),tiers:(0,t.attr)("member-tier"),emailSubjectScratch:(0,r.default)("emailSubject"),isPublished:Ember.computed.equal("status","published"),isDraft:Ember.computed.equal("status","draft"),internalTags:Ember.computed.filterBy("tags","isInternal",!0),isScheduled:Ember.computed.equal("status","scheduled"),isSent:Ember.computed.equal("status","sent"),isPost:Ember.computed.equal("displayName","post"),isPage:Ember.computed.equal("displayName","page"),hasEmail:Ember.computed("email","emailOnly",function(){return null!==this.email||this.emailOnly}),willEmail:Ember.computed("isScheduled","newsletter","email",function(){return this.isScheduled&&!!this.newsletter&&!this.email}),hasBeenEmailed:Ember.computed("isPost","isSent","isPublished","email",function(){return this.isPost&&(this.isSent||this.isPublished)&&this.email&&"failed"!==this.email.status}),didEmailFail:Ember.computed("isPost","isSent","isPublished","email.status",function(){return this.isPost&&(this.isSent||this.isPublished)&&this.email&&"failed"===this.email.status}),showAudienceFeedback:Ember.computed("sentiment",function(){return void 0!==this.sentiment}),showEmailOpenAnalytics:Ember.computed("hasBeenEmailed","isSent","isPublished",function(){return this.hasBeenEmailed&&!this.session.user.isContributor&&"none"!==this.settings.membersSignupAccess&&this.email.trackOpens&&this.settings.emailTrackOpens}),showEmailClickAnalytics:Ember.computed("hasBeenEmailed","isSent","isPublished","email",function(){return this.hasBeenEmailed&&!this.session.user.isContributor&&"none"!==this.settings.membersSignupAccess&&(this.isSent||this.isPublished)&&this.email.trackClicks&&this.settings.emailTrackClicks}),showAttributionAnalytics:Ember.computed("isPage","emailOnly","isPublished","membersUtils.isMembersInviteOnly","settings.membersTrackSources",function(){return(this.isPage||!this.emailOnly)&&this.isPublished&&this.settings.membersTrackSources&&!this.membersUtils.isMembersInviteOnly&&!this.session.user.isContributor}),showPaidAttributionAnalytics:Ember.computed.and("showAttributionAnalytics","membersUtils.paidMembersEnabled"),hasAnalyticsPage:Ember.computed("isPost","showEmailOpenAnalytics","showEmailClickAnalytics","showAttributionAnalytics",function(){return this.isPost&&this.session.user.isAdmin&&(this.showEmailOpenAnalytics||this.showEmailClickAnalytics||this.showAttributionAnalytics)}),previewUrl:Ember.computed("uuid","ghostPaths.url","config.blogUrl",function(){const e=this.config.blogUrl,t=this.uuid
|
|
2392
2430
|
return t?this.get("ghostPaths.url").join(e,"p",t):""}),isFeedbackEnabledForEmail:Ember.computed.reads("email.feedbackEnabled"),isPublic:Ember.computed("visibility",function(){return"public"===this.visibility}),visibilitySegment:Ember.computed("visibility","isPublic","tiers",function(){if(this.isPublic)return"paid"===this.settings.defaultContentVisibility?"status:-free":"status:free,status:-free"
|
|
2393
2431
|
if("members"===this.visibility)return"status:free,status:-free"
|
|
2394
2432
|
if("paid"===this.visibility)return"status:-free"
|
|
2395
|
-
if("tiers"===this.visibility&&this.tiers){return this.tiers.map(e=>`tier:${e.slug}`).join(",")}return this.visibility}),fullRecipientFilter:Ember.computed("newsletter.recipientFilter","emailSegment",function(){return this.newsletter?`${this.newsletter.recipientFilter}+(${this.emailSegment})`:this.emailSegment}),pastScheduledTime:Ember.computed("isScheduled","publishedAtUTC","clock.second",function(){if(this.isScheduled){
|
|
2396
|
-
return this.get("clock.second"),t}return!1}),publishedAtBlogTZ:Ember.computed("publishedAtBlogDate","publishedAtBlogTime","settings.timezone",{get(){return this._getPublishedAtBlogTZ()},set(e,t){
|
|
2397
|
-
return this._setPublishedAtBlogStrings(i),this._getPublishedAtBlogTZ()}}),clickRate:Ember.computed("email.emailCount","count.clicks",function(){return this.email&&this.email.emailCount&&this.count&&this.count.clicks?Math.round(this.count.clicks/this.email.emailCount*100):0}),_getPublishedAtBlogTZ(){
|
|
2433
|
+
if("tiers"===this.visibility&&this.tiers){return this.tiers.map(e=>`tier:${e.slug}`).join(",")}return this.visibility}),fullRecipientFilter:Ember.computed("newsletter.recipientFilter","emailSegment",function(){return this.newsletter?`${this.newsletter.recipientFilter}+(${this.emailSegment})`:this.emailSegment}),pastScheduledTime:Ember.computed("isScheduled","publishedAtUTC","clock.second",function(){if(this.isScheduled){const e=n.default.utc(),t=(this.publishedAtUTC||e).diff(e,"hours",!0)<0
|
|
2434
|
+
return this.get("clock.second"),t}return!1}),publishedAtBlogTZ:Ember.computed("publishedAtBlogDate","publishedAtBlogTime","settings.timezone",{get(){return this._getPublishedAtBlogTZ()},set(e,t){const i=t?(0,n.default)(t):null
|
|
2435
|
+
return this._setPublishedAtBlogStrings(i),this._getPublishedAtBlogTZ()}}),clickRate:Ember.computed("email.emailCount","count.clicks",function(){return this.email&&this.email.emailCount&&this.count&&this.count.clicks?Math.round(this.count.clicks/this.email.emailCount*100):0}),_getPublishedAtBlogTZ(){const e=this.publishedAtUTC,t=this.publishedAtBlogDate,i=this.publishedAtBlogTime,r=this.settings.timezone
|
|
2398
2436
|
if(!e&&Ember.isBlank(t)&&Ember.isBlank(i))return null
|
|
2399
|
-
if(t&&i){
|
|
2400
|
-
return e&&0===a.diff(e.clone().startOf("minutes"))?e:a}return n.default.tz(this.publishedAtUTC,r)},_setPublishedAtBlogTZ:Ember.on("init",Ember.observer("publishedAtUTC","settings.timezone",function(){
|
|
2401
|
-
this._setPublishedAtBlogStrings(e)})),_setPublishedAtBlogStrings(e){if(e){
|
|
2402
|
-
this.set("publishedAtBlogDate",i.format("YYYY-MM-DD")),this.set("publishedAtBlogTime",i.format("HH:mm"))}else this.set("publishedAtBlogDate",""),this.set("publishedAtBlogTime","")},updateTags(){
|
|
2403
|
-
e.removeObjects(t),t.invoke("deleteRecord")},isAuthoredByUser(e){return this.authors.includes(e)},compare(e,t){
|
|
2404
|
-
|
|
2405
|
-
|
|
2406
|
-
|
|
2437
|
+
if(t&&i){const a=n.default.tz(`${t} ${i}`,r)
|
|
2438
|
+
return e&&0===a.diff(e.clone().startOf("minutes"))?e:a}return n.default.tz(this.publishedAtUTC,r)},_setPublishedAtBlogTZ:Ember.on("init",Ember.observer("publishedAtUTC","settings.timezone",function(){const e=this.publishedAtUTC
|
|
2439
|
+
this._setPublishedAtBlogStrings(e)})),_setPublishedAtBlogStrings(e){if(e){const t=this.settings.timezone,i=n.default.tz(e,t)
|
|
2440
|
+
this.set("publishedAtBlogDate",i.format("YYYY-MM-DD")),this.set("publishedAtBlogTime",i.format("HH:mm"))}else this.set("publishedAtBlogDate",""),this.set("publishedAtBlogTime","")},updateTags(){const e=this.tags,t=e.filterBy("id",null)
|
|
2441
|
+
e.removeObjects(t),t.invoke("deleteRecord")},isAuthoredByUser(e){return this.authors.includes(e)},compare(e,t){const i=e.get("updatedAtUTC"),r=t.get("updatedAtUTC")
|
|
2442
|
+
if(e.get("isNew")||!i)return-1
|
|
2443
|
+
if(t.get("isNew")||!r)return 1
|
|
2444
|
+
const n=Ember.compare(e.get("id"),t.get("id")),a=function(e,t){const i=e.get("status"),r=t.get("status")
|
|
2445
|
+
return i||r?!i&&r?-1:!r&&i?1:"scheduled"!==i||"draft"!==r&&"published"!==r?"scheduled"!==r||"draft"!==i&&"published"!==i?Ember.compare(i.valueOf(),r.valueOf()):1:-1:0}(e,t),s=Ember.compare(i.valueOf(),r.valueOf()),o=function(e,t){const i=e.get("publishedAtUTC"),r=t.get("publishedAtUTC")
|
|
2446
|
+
return i||r?!i&&r?-1:!r&&i?1:Ember.compare(i.valueOf(),r.valueOf()):0}(e,t)
|
|
2447
|
+
return 0===a?0===o?0===s?-1*n:-1*s:-1*o:a},beforeSave(){const e=this.publishedAtBlogTZ,t=e?e.utc():null
|
|
2407
2448
|
this.set("publishedAtUTC",t)},save(){const e=this.changedAttributes(),t=this.url,i=this.publishedAtUTC?.valueOf(),r=s.some(t=>e[t])
|
|
2408
2449
|
return this._super(...arguments).then(e=>{const n=t!==this.url,a=i!==this.publishedAtUTC?.valueOf()
|
|
2409
2450
|
return(this.isDeleted||r||n||a)&&this.search.expireContent(),e})}})}),define("ghost-admin/models/role",["exports","@ember-data/model"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -2420,14 +2461,14 @@ return this.warnings.forEach(t=>{e[t.code]||(e[t.code]=[]),e[t.code].push(t)}),e
|
|
|
2420
2461
|
return this.gscanErrors.forEach(t=>{e[t.code]||(e[t.code]=[]),e[t.code].push(t)}),e}),codedErrorsAndWarnings:Ember.computed("codedErrors.[]","codedWarnings.[]",function(){const e={}
|
|
2421
2462
|
return Object.keys(this.codedErrors).forEach(t=>{e[t]||(e[t]=[]),e[t]=[...e[t],...this.codedErrors[t]]}),Object.keys(this.codedWarnings).forEach(t=>{e[t]||(e[t]=[]),e[t]=[...e[t],...this.codedWarnings[t]]}),e}),hasPageBuilderFeature(e){const t=this.codedErrorsAndWarnings
|
|
2422
2463
|
return!t["GS110-NO-MISSING-PAGE-BUILDER-USAGE"]||!t["GS110-NO-MISSING-PAGE-BUILDER-USAGE"].some(t=>t.failures.some(({message:t})=>t.includes(`@page.${e}`)))}})}),define("ghost-admin/models/tier-benefit-item",["exports","ghost-admin/mixins/validation-engine"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2423
|
-
e.default=Ember.Object.extend(t.default,{name:"",isNew:!1,validationType:"tierBenefitItem",isComplete:Ember.computed("name",function(){
|
|
2424
|
-
return!Ember.isBlank(e)}),isBlank:Ember.computed("name",function(){
|
|
2464
|
+
e.default=Ember.Object.extend(t.default,{name:"",isNew:!1,validationType:"tierBenefitItem",isComplete:Ember.computed("name",function(){const{name:e}=this
|
|
2465
|
+
return!Ember.isBlank(e)}),isBlank:Ember.computed("name",function(){const{name:e}=this
|
|
2425
2466
|
return Ember.isBlank(e)})})}),define("ghost-admin/models/tier",["exports","@ember-data/model","ghost-admin/mixins/validation-engine"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2426
2467
|
e.default=t.default.extend(i.default,{validationType:"tier",name:(0,t.attr)("string"),description:(0,t.attr)("string"),active:(0,t.attr)("boolean"),slug:(0,t.attr)("string"),welcomePageURL:(0,t.attr)("string"),visibility:(0,t.attr)("string",{defaultValue:"none"}),type:(0,t.attr)("string",{defaultValue:"paid"}),currency:(0,t.attr)("string"),monthlyPrice:(0,t.attr)("number"),yearlyPrice:(0,t.attr)("number"),trialDays:(0,t.attr)("number",{defaultValue:0}),benefits:(0,t.attr)("tier-benefits")})}),define("ghost-admin/models/user",["exports","ghost-admin/models/base","ghost-admin/mixins/validation-engine","@ember-data/model","ghost-admin/decorators/inject","ghost-admin/utils/asset-base","ember-concurrency"],function(e,t,i,r,n,a,s){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2427
|
-
e.default=t.default.extend(i.default,{ajax:Ember.inject.service(),ghostPaths:Ember.inject.service(),notifications:Ember.inject.service(),search:Ember.inject.service(),session:Ember.inject.service(),config:(0,n.inject)(),validationType:"user",name:(0,r.attr)("string"),slug:(0,r.attr)("string"),url:(0,r.attr)("string"),email:(0,r.attr)("string"),profileImage:(0,r.attr)("string"),coverImage:(0,r.attr)("string"),bio:(0,r.attr)("string"),website:(0,r.attr)("string"),location:(0,r.attr)("string"),accessibility:(0,r.attr)("string"),status:(0,r.attr)("string"),metaTitle:(0,r.attr)("string"),metaDescription:(0,r.attr)("string"),lastLoginUTC:(0,r.attr)("moment-utc"),createdAtUTC:(0,r.attr)("moment-utc"),updatedAtUTC:(0,r.attr)("moment-utc"),roles:(0,r.hasMany)("role",{embedded:"always",async:!1}),count:(0,r.attr)("raw"),facebook:(0,r.attr)("facebook-url-user"),twitter:(0,r.attr)("twitter-url-user"),tour:(0,r.attr)("json-string"),commentNotifications:(0,r.attr)(),freeMemberSignupNotification:(0,r.attr)(),paidSubscriptionStartedNotification:(0,r.attr)(),paidSubscriptionCanceledNotification:(0,r.attr)(),mentionNotifications:(0,r.attr)(),milestoneNotifications:(0,r.attr)(),donationNotifications:(0,r.attr)(),isContributor:Ember.computed.equal("role.name","Contributor"),isAuthor:Ember.computed.equal("role.name","Author"),isEditor:Ember.computed.equal("role.name","Editor"),isAdminOnly:Ember.computed.equal("role.name","Administrator"),isOwnerOnly:Ember.computed.equal("role.name","Owner"),isSuperEditor:Ember.computed.equal("role.name","Super Editor"),isEitherEditor:Ember.computed.or("isEditor","isSuperEditor"),isAdmin:Ember.computed.or("isOwnerOnly","isAdminOnly"),isAuthorOrContributor:Ember.computed.or("isAuthor","isContributor"),canManageMembers:Ember.computed.or("isAdmin","isSuperEditor"),canManageComments:Ember.computed.or("isAdmin","isSuperEditor"),isLoggedIn:Ember.computed("id","session.user.id",function(){return this.id===this.get("session.user.id")}),isActive:Ember.computed("status",function(){return["active","warn-1","warn-2","warn-3","warn-4","locked"].indexOf(this.status)>-1}),isSuspended:Ember.computed.equal("status","inactive"),isLocked:Ember.computed.equal("status","locked"),role:Ember.computed("roles",{get(){return this.get("roles.firstObject")},set(e,t){return this.roles.clear(),this.roles.pushObject(t),t}}),profileImageUrl:Ember.computed("profileImage",function(){
|
|
2428
|
-
return this.profileImage||e}),coverImageUrl:Ember.computed("coverImage",function(){
|
|
2468
|
+
e.default=t.default.extend(i.default,{ajax:Ember.inject.service(),ghostPaths:Ember.inject.service(),notifications:Ember.inject.service(),search:Ember.inject.service(),session:Ember.inject.service(),config:(0,n.inject)(),validationType:"user",name:(0,r.attr)("string"),slug:(0,r.attr)("string"),url:(0,r.attr)("string"),email:(0,r.attr)("string"),profileImage:(0,r.attr)("string"),coverImage:(0,r.attr)("string"),bio:(0,r.attr)("string"),website:(0,r.attr)("string"),location:(0,r.attr)("string"),accessibility:(0,r.attr)("string"),status:(0,r.attr)("string"),metaTitle:(0,r.attr)("string"),metaDescription:(0,r.attr)("string"),lastLoginUTC:(0,r.attr)("moment-utc"),createdAtUTC:(0,r.attr)("moment-utc"),updatedAtUTC:(0,r.attr)("moment-utc"),roles:(0,r.hasMany)("role",{embedded:"always",async:!1}),count:(0,r.attr)("raw"),facebook:(0,r.attr)("facebook-url-user"),twitter:(0,r.attr)("twitter-url-user"),tour:(0,r.attr)("json-string"),commentNotifications:(0,r.attr)(),freeMemberSignupNotification:(0,r.attr)(),paidSubscriptionStartedNotification:(0,r.attr)(),paidSubscriptionCanceledNotification:(0,r.attr)(),mentionNotifications:(0,r.attr)(),milestoneNotifications:(0,r.attr)(),donationNotifications:(0,r.attr)(),isContributor:Ember.computed.equal("role.name","Contributor"),isAuthor:Ember.computed.equal("role.name","Author"),isEditor:Ember.computed.equal("role.name","Editor"),isAdminOnly:Ember.computed.equal("role.name","Administrator"),isOwnerOnly:Ember.computed.equal("role.name","Owner"),isSuperEditor:Ember.computed.equal("role.name","Super Editor"),isEitherEditor:Ember.computed.or("isEditor","isSuperEditor"),isAdmin:Ember.computed.or("isOwnerOnly","isAdminOnly"),isAuthorOrContributor:Ember.computed.or("isAuthor","isContributor"),canManageMembers:Ember.computed.or("isAdmin","isSuperEditor"),canManageComments:Ember.computed.or("isAdmin","isSuperEditor"),isLoggedIn:Ember.computed("id","session.user.id",function(){return this.id===this.get("session.user.id")}),isActive:Ember.computed("status",function(){return["active","warn-1","warn-2","warn-3","warn-4","locked"].indexOf(this.status)>-1}),isSuspended:Ember.computed.equal("status","inactive"),isLocked:Ember.computed.equal("status","locked"),role:Ember.computed("roles",{get(){return this.get("roles.firstObject")},set(e,t){return this.roles.clear(),this.roles.pushObject(t),t}}),profileImageUrl:Ember.computed("profileImage",function(){const e=(0,a.prefixAssetUrl)("assets/img/user-image-2dd0bfa4cd2ce51a01b82984ce6bb924.png")
|
|
2469
|
+
return this.profileImage||e}),coverImageUrl:Ember.computed("coverImage",function(){const e=(0,a.prefixAssetUrl)("assets/img/user-cover-68bdfeef684a897ab9a9f894c40cbf50.png")
|
|
2429
2470
|
return this.coverImage||e}),saveNewPasswordTask:(0,s.task)(function*(){const e=this.isLoggedIn?"ownPasswordChange":"passwordChange"
|
|
2430
|
-
try{yield this.validate({property:e})}catch(t){return}try{
|
|
2471
|
+
try{yield this.validate({property:e})}catch(t){return}try{const e=this.ghostPaths.url.api("users","password")
|
|
2431
2472
|
return yield this.ajax.put(e,{data:{password:[{user_id:this.id,oldPassword:this.password,newPassword:this.newPassword,ne2Password:this.ne2Password}]}}),this.password="",this.newPassword="",this.ne2Password="",this.notifications.showNotification("Password updated",{type:"success",key:"user.change-password.success"}),this.errors.remove("ne2Password"),!0}catch(i){this.notifications.showAPIError(i,{key:"user.change-password"})}}).drop(),save(){const e=!!this.changedAttributes().name,{url:t}=this
|
|
2432
2473
|
return this._super(...arguments).then(i=>{const r=t!==i.url
|
|
2433
2474
|
return(e||r||this.isDeleted)&&this.search.expireContent(),i})}})}),define("ghost-admin/models/webhook",["exports","@ember-data/model","ghost-admin/mixins/validation-engine"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -2486,8 +2527,8 @@ throw new TypeError("@@toPrimitive must return a primitive value.")}return("stri
|
|
|
2486
2527
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2487
2528
|
class r extends t.default{constructor(e,t){super(e,t),i(this,"element",null),i(this,"ratio",1),i(this,"resizeHandler",null),i(this,"cleanup",()=>{this.removeResizeEventListener()}),Ember._registerDestructor(this,this.cleanup)}modify(e,t,{zoomed:i,ratio:r}){this.element=e,this.ratio=r,i&&this.setZoomedSize()}setZoomedSize(){const{element:e,ratio:t}=this
|
|
2488
2529
|
e.style.width="100%",e.style.height="100%"
|
|
2489
|
-
const i=e.getBoundingClientRect()
|
|
2490
|
-
let
|
|
2530
|
+
const i=e.getBoundingClientRect(),r={width:i.height/t,height:i.height},n={width:i.width,height:i.width*t}
|
|
2531
|
+
let a=null
|
|
2491
2532
|
a=t<=1?n.height>i.height?r:n:r.width>i.width?n:r,e.style.width=`${a.width}px`,e.style.height=`${a.height}px`,this.addResizeEventListener()}handleResize(){Ember.run.throttle(this,this.setZoomedSize,100)}addResizeEventListener(){this.resizeHandler||(this.resizeHandler=Ember.run.bind(this,this.handleResize),window.addEventListener("resize",this.resizeHandler))}removeResizeEventListener(){this.resizeHandler&&(window.removeEventListener("resize",this.resizeHandler),this.resizeHandler=null)}}e.default=r}),define("ghost-admin/modifiers/react-render",["exports","ember-modifier","react","react-dom/client"],function(e,t,i,r){function n(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2492
2533
|
var i=e[Symbol.toPrimitive]
|
|
2493
2534
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
@@ -2521,13 +2562,15 @@ e.default=(i=Ember.inject.service,r=class extends t.default{constructor(...e){va
|
|
|
2521
2562
|
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})}beforeModel(){if(super.beforeModel(...arguments),!this.session.user.isAdmin)return this.transitionTo("index")}},a=r.prototype,s="session",o=[i],l={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(l).forEach(function(e){c[e]=l[e]}),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=o.slice().reverse().reduce(function(e,t){return t(a,s,e)||e},c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),n=void 0===c.initializer?(Object.defineProperty(a,s,c),null):c,r)
|
|
2522
2563
|
var a,s,o,l,u,c}),define("ghost-admin/routes/application",["exports","@sentry/ember","react/jsx-runtime","ember-simple-auth/configuration","react","react-dom","ghost-admin/components/modals/search","ghost-admin/mixins/shortcuts-route","ghost-admin/utils/ctrl-or-cmd","ghost-admin/utils/window-proxy","ghost-admin/utils/sentry","ghost-admin/decorators/inject","ember-ajax/errors","ghost-admin/services/ajax"],function(e,t,i,r,n,a,s,o,l,u,c,d,p,m){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2523
2564
|
const h="data-sentry-automations-mask"
|
|
2524
|
-
function b(e,i){let r,n
|
|
2525
|
-
const
|
|
2565
|
+
function b(e,i){let r,n=!1
|
|
2566
|
+
const a=e=>{const t=function(e){const t=new URL(e).hash.replace(/^#/,"").split("?")[0].replace(/\/+$/,"")
|
|
2526
2567
|
return"/automations"===t||t.startsWith("/automations/")}(e)
|
|
2527
|
-
return t?document.body.setAttribute(h,"true"):document.body.removeAttribute(h),t},
|
|
2528
|
-
i&&
|
|
2529
|
-
if(window.navigation){const e=e=>
|
|
2530
|
-
window.navigation.addEventListener("navigate",e),
|
|
2568
|
+
return t?document.body.setAttribute(h,"true"):document.body.removeAttribute(h),t},s=r=>{const s=a(r)
|
|
2569
|
+
i&&s&&!n&&(n=!0,clearTimeout(o),e.stop().then(()=>{e.start(),t.setTag("replay_area","automations")}).catch(t=>{try{e.startBuffering()}catch(i){}console.error("Error starting Sentry Replay recording:",t)}))}
|
|
2570
|
+
if(window.navigation){const e=e=>s(e.destination.url)
|
|
2571
|
+
window.navigation.addEventListener("navigate",e),r=()=>window.navigation.removeEventListener("navigate",e)}a(window.location.href)
|
|
2572
|
+
const o=setTimeout(()=>s(window.location.href))
|
|
2573
|
+
return()=>{clearTimeout(o),r?.(),document.body.removeAttribute(h)}}const g={esc:{action:"closeMenus",scope:"default"}}
|
|
2531
2574
|
g[`${l.default}+s`]={action:"save",scope:"all"},g[`${l.default}+k`]={action:"openSearchModal"},g[`${l.default}+,`]={action:"openSettings"},window.React=n.default,window.React.jsx=i.jsx,window.React.jsxs=i.jsxs,window.React.Fragment=i.Fragment,window.ReactDOM=a.default
|
|
2532
2575
|
e.default=Ember.Route.extend(o.default,{ajax:Ember.inject.service(),configManager:Ember.inject.service(),ghostPaths:Ember.inject.service(),notifications:Ember.inject.service(),router:Ember.inject.service(),session:Ember.inject.service(),settings:Ember.inject.service(),stateBridge:Ember.inject.service(),ui:Ember.inject.service(),billing:Ember.inject.service(),modals:Ember.inject.service(),shortcuts:g,routeAfterAuthentication:"index",init(){this._super(...arguments),this.router.on("routeDidChange",()=>{this.notifications.displayDelayed()}),this.ui.initBodyDragHandlers()},config:(0,d.inject)(),async beforeModel(e){return await this.session.setup(),"index"!==e.to?.name||this.session.isAuthenticated?this.prepareApp():(e.abort(),this.transitionTo("signin"))},async afterModel(e,t){this._super(...arguments),this.get("session.isAuthenticated")&&(this.session.appLoadTransition=t),this._appLoaded=!0},actions:{closeMenus(){this.ui.closeMenus()},didTransition(){this.session.appLoadTransition=null,this.send("closeMenus"),Ember.run.later(()=>{t.setTag("route",this.router.currentRouteName)},2)},authorizationFailed(){u.default.replaceLocation(r.default.rootURL)},save:function(){return this},error(e,t){return!(0,p.isUnauthorizedError)(e)&&(!(!(0,p.isNotFoundError)(e)||!t)||(!(0,m.isVersionMismatchError)(e)||(t&&t.abort(),this.upgradeStatus.requireUpgrade(),!this._appLoaded))&&((!(0,m.isMaintenanceError)(e)||(t&&t.abort(),this.upgradeStatus.maintenanceAlert(),!this._appLoaded))&&!(((0,p.isAjaxError)(e)||e&&e.payload&&Ember.isArray(e.payload.errors))&&(this.notifications.showAPIError(e),!t))))},openSearchModal(){if(!this.ui.isFullScreen)return this.modals.open(s.default)},openSettings(){this.ui.isFullScreen||this.router.transitionTo("/settings")}},willDestroy(){this._cleanupAutomationsSessionReplay?.(),this.ui.cleanupBodyDragHandlers()},async prepareApp(){if(await this.configManager.fetchUnauthenticated(),this.config.sentry_dsn){const e=(0,c.getSentryConfig)(this.config.sentry_dsn,this.config.sentry_env,this.config.version)
|
|
2533
2576
|
t.init(e)
|
|
@@ -2540,15 +2583,15 @@ super(...e),t=this,i="session",n=this,(r=a)&&Object.defineProperty(t,i,{enumerab
|
|
|
2540
2583
|
else{const t=e.intent?.url
|
|
2541
2584
|
t&&window.sessionStorage.setItem("ghost-signin-redirect",t)}this.session.requireAuthentication(e,()=>{i.default.replaceLocation(t.default.rootURL)})}},s=n.prototype,o="session",l=[r],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),a=void 0===d.initializer?(Object.defineProperty(s,o,d),null):d,n)
|
|
2542
2585
|
var s,o,l,u,c,d}),define("ghost-admin/routes/index",["exports","ghost-admin/routes/authenticated"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2543
|
-
class i extends t.default{}e.default=i}),define("ghost-admin/routes/lexical-editor",["exports","jquery","ghost-admin/routes/authenticated"],function(e,t,i){function r(e,t){
|
|
2586
|
+
class i extends t.default{}e.default=i}),define("ghost-admin/routes/lexical-editor",["exports","jquery","ghost-admin/routes/authenticated"],function(e,t,i){function r(e,t){const i=e?.from?.params?.path,r=function(e={}){const t=new URLSearchParams
|
|
2544
2587
|
Object.entries(e).forEach(([e,i])=>{null!=i&&""!==i&&(Array.isArray(i)?i.forEach(i=>{t.append(e,`${i}`)}):t.append(e,`${i}`))})
|
|
2545
|
-
|
|
2588
|
+
const i=t.toString()
|
|
2546
2589
|
return i?`?${i}`:""}(e?.from?.queryParams),n=i?.match(/^posts\/analytics\/([^/]+)(?:\/(.+))?$/)
|
|
2547
|
-
if(n){
|
|
2590
|
+
if(n){const e=n[1]||t?.id
|
|
2548
2591
|
if(!e)return!1
|
|
2549
|
-
|
|
2550
|
-
return`${i?`/posts/analytics/${e}/${i}`:`/posts/analytics/${e}`}${r}`}
|
|
2551
|
-
if(a){
|
|
2592
|
+
const i=n[2]
|
|
2593
|
+
return`${i?`/posts/analytics/${e}/${i}`:`/posts/analytics/${e}`}${r}`}const a=i?.match(/^analytics(?:\/(.+))?$/)
|
|
2594
|
+
if(a){const e=a[1]
|
|
2552
2595
|
return`${e?`/analytics/${e}`:"/analytics"}${r}`}return!1}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2553
2596
|
e.default=i.default.extend({feature:Ember.inject.service(),notifications:Ember.inject.service(),router:Ember.inject.service(),ui:Ember.inject.service(),classNames:["editor"],beforeModel(e){if(this._super(...arguments),!0!==this.feature.editorReact)return
|
|
2554
2597
|
e.abort()
|
|
@@ -2558,14 +2601,14 @@ this.controller.willTransition(e)}},buildRouteInfoMetadata(){return{titleToken:(
|
|
|
2558
2601
|
return"lexical-editor.edit"===t&&i?.type&&i?.post_id?`/editor/${i.type}/${i.post_id}`:"lexical-editor.new"===t&&i?.type?`/editor/${i.type}`:"/editor"},_parkOnReactFallback(e){const t=e.replace(/^\//,"")
|
|
2559
2602
|
if(("react-fallback"===this.router.currentRouteName?this.router.currentRoute?.params?.path:null)===t)return
|
|
2560
2603
|
const i=window.location.hash,r=window.history.state
|
|
2561
|
-
this.router.replaceWith("react-fallback",t).finally(()=>this._restoreUrl(i,r))},_restoreUrl(e,t){window.history.replaceState(t,"",e)},_navigateToReactRoute(e){window.location.hash=e},_blurAndScheduleAction(e){
|
|
2604
|
+
this.router.replaceWith("react-fallback",t).finally(()=>this._restoreUrl(i,r))},_restoreUrl(e,t){window.history.replaceState(t,"",e)},_navigateToReactRoute(e){window.location.hash=e},_blurAndScheduleAction(e){const i=(0,t.default)(document.activeElement)
|
|
2562
2605
|
i.is('input[type="text"]')&&i.trigger("focusout"),Ember.run.scheduleOnce("actions",this,e)}})}),define("ghost-admin/routes/lexical-editor/edit",["exports","ghost-admin/routes/authenticated","ghost-admin/adapters/post","ember-ajax/errors","ember-inflector"],function(e,t,i,r,n){var a,s,o
|
|
2563
2606
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2564
2607
|
e.default=(a=Ember.inject.service,s=class extends t.default{constructor(...e){var t,i,r,n
|
|
2565
|
-
super(...e),t=this,i="feature",n=this,(r=o)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}beforeModel(e){if(super.beforeModel(...arguments),"replace"!==e.urlMethod){
|
|
2566
|
-
e.set("post",null),e.reset()}}async model(e){
|
|
2608
|
+
super(...e),t=this,i="feature",n=this,(r=o)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0})}beforeModel(e){if(super.beforeModel(...arguments),"replace"!==e.urlMethod){const e=this.controllerFor("lexical-editor")
|
|
2609
|
+
e.set("post",null),e.reset()}}async model(e){const{type:t,post_id:n}=e
|
|
2567
2610
|
if(!["post","page"].includes(t))throw new r.NotFoundError
|
|
2568
|
-
|
|
2611
|
+
const a={id:n,include:i.ALL_POST_INCLUDES}
|
|
2569
2612
|
let s=(await this.store.query(t,a)).firstObject
|
|
2570
2613
|
return s.mobiledoc&&(s=await s.save({adapterOptions:{convertToLexical:1}})),s}afterModel(e){super.afterModel(...arguments)
|
|
2571
2614
|
const t=this.session.user,i=(0,n.pluralize)(e.constructor.modelName)
|
|
@@ -2573,12 +2616,20 @@ return t.isAuthorOrContributor&&!e.isAuthoredByUser(t)||t.isContributor&&!e.isDr
|
|
|
2573
2616
|
var l,u,c,d,p,m}),define("ghost-admin/routes/lexical-editor/index",["exports","ghost-admin/routes/authenticated"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2574
2617
|
class i extends t.default{beforeModel(){super.beforeModel(...arguments),this.replaceWith("lexical-editor.new","post")}}e.default=i}),define("ghost-admin/routes/lexical-editor/new",["exports","@sentry/ember","ghost-admin/routes/authenticated","ghost-admin/utils/window-proxy","ember-ajax/errors"],function(e,t,i,r,n){var a,s
|
|
2575
2618
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2576
|
-
e.default=(a=Ember._action,s=class extends i.default{model(e){
|
|
2619
|
+
e.default=(a=Ember._action,s=class extends i.default{model(e){const{type:t}=e
|
|
2577
2620
|
if(!["post","page"].includes(t))throw new n.NotFoundError
|
|
2578
|
-
return this.store.createRecord(t,{authors:[this.session.user]})}setupController(e,t){t.isNew||console.error("New post route did not generate a new model")
|
|
2621
|
+
return this.store.createRecord(t,{authors:[this.session.user]})}setupController(e,t){t.isNew||console.error("New post route did not generate a new model")
|
|
2622
|
+
this.controllerFor("lexical-editor").setPost(t)}didTransition(){if(!this.controllerFor("lexical-editor").post.isNew){const e=this.store?.createRecord("post",{authors:[this.session.user]})
|
|
2579
2623
|
console.error("New post route transitioned with post.isNew=false",{recreatedPostIsGood:e.isNew}),t.captureMessage("New post route transitioned with post.isNew=false",{tags:{savePostTask:!0},extra:{recreatedPostIsGood:e.isNew}}),Ember.run.scheduleOnce("afterRender",this,r.default.reload)}}buildRouteInfoMetadata(){return{mainClasses:["editor-new"]}}},o=s.prototype,l="didTransition",u=[a],c=Object.getOwnPropertyDescriptor(s.prototype,"didTransition"),d=s.prototype,p={},Object.keys(c).forEach(function(e){p[e]=c[e]}),p.enumerable=!!p.enumerable,p.configurable=!!p.configurable,("value"in p||p.initializer)&&(p.writable=!0),p=u.slice().reverse().reduce(function(e,t){return t(o,l,e)||e},p),d&&void 0!==p.initializer&&(p.value=p.initializer?p.initializer.call(d):void 0,p.initializer=void 0),void 0===p.initializer&&Object.defineProperty(o,l,p),s)
|
|
2580
|
-
var o,l,u,c,d,p}),define("ghost-admin/routes/members-activity",["exports","ghost-admin/routes/members-management"],function(e,t){
|
|
2581
|
-
|
|
2624
|
+
var o,l,u,c,d,p}),define("ghost-admin/routes/members-activity",["exports","ghost-admin/routes/members-management"],function(e,t){var i,r,n,a,s
|
|
2625
|
+
function o(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function l(e,t,i,r,n){var a={}
|
|
2626
|
+
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2627
|
+
e.default=(i=Ember.inject.service,r=Ember.inject.service,n=class extends t.default{constructor(...e){super(...e),o(this,"feature",a,this),o(this,"router",s,this)}beforeModel(e){const t=super.beforeModel(...arguments)
|
|
2628
|
+
if(!this.session.user?.canManageMembers||!0!==this.feature.membersActivityReact)return t
|
|
2629
|
+
if(e.abort(),!e.intent?.url){const t=new URLSearchParams
|
|
2630
|
+
for(const[r,n]of Object.entries(e.to?.queryParams??{}))null!=n&&""!==n&&t.set(r,String(n))
|
|
2631
|
+
const i=t.toString()
|
|
2632
|
+
this._navigateToReactRoute("/members-activity"+(i?`?${i}`:""))}"members-activity"!==("react-fallback"===this.router.currentRouteName?this.router.currentRoute?.params?.path:null)&&this.router.replaceWith("react-fallback","members-activity").method(null)}_navigateToReactRoute(e){window.location.hash=e}buildRouteInfoMetadata(){return{titleToken:"Activity",mainClasses:["gh-main-fullwidth"]}}},a=l(n.prototype,"feature",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=l(n.prototype,"router",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n)}),define("ghost-admin/routes/members-management",["exports","ghost-admin/routes/authenticated"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2582
2633
|
class i extends t.default{beforeModel(){if(super.beforeModel(...arguments),!this.session.user||!this.session.user.canManageMembers)return this.transitionTo("index")}}e.default=i}),define("ghost-admin/routes/migrate",["exports","ghost-admin/routes/authenticated"],function(e,t){var i,r,n,a,s
|
|
2583
2634
|
function o(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function l(e,t,i,r,n){var a={}
|
|
2584
2635
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -2604,26 +2655,23 @@ let T=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=cl
|
|
|
2604
2655
|
if(0===t.length)return e
|
|
2605
2656
|
if(this.settings.webAnalyticsEnabled){const e=t.map(e=>e.uuid)
|
|
2606
2657
|
this.postAnalytics.loadVisitorCounts(e)}return this.settings.membersTrackSources&&this.postAnalytics.loadMemberCounts(t),e}},o=j(s.prototype,"postAnalytics",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=j(s.prototype,"feature",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=j(s.prototype,"settings",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s)
|
|
2607
|
-
e.default=(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._action,f=class extends t.default{constructor(){super(...arguments),k(this,"infinity",v,this),k(this,"router",y,this),k(this,"feature",w,this),k(this,"postAnalytics",E,this),k(this,"settings",P,this),k(this,"ui",_,this),O(this,"queryParams",{type:{refreshModel:!0},visibility:{refreshModel:!0},author:{refreshModel:!0},tag:{refreshModel:!0},order:{refreshModel:!0}}),O(this,"modelName","post"),O(this,"perPage",30),this.router.on("routeWillChange",e=>{if(e.to&&("posts"===this.routeName||"pages"===this.routeName)){
|
|
2658
|
+
e.default=(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._action,f=class extends t.default{constructor(){super(...arguments),k(this,"infinity",v,this),k(this,"router",y,this),k(this,"feature",w,this),k(this,"postAnalytics",E,this),k(this,"settings",P,this),k(this,"ui",_,this),O(this,"queryParams",{type:{refreshModel:!0},visibility:{refreshModel:!0},author:{refreshModel:!0},tag:{refreshModel:!0},order:{refreshModel:!0}}),O(this,"modelName","post"),O(this,"perPage",30),this.router.on("routeWillChange",e=>{if(e.to&&("posts"===this.routeName||"pages"===this.routeName)){const t=e.to.find(e=>e.name===this.routeName)
|
|
2608
2659
|
e.from&&e.from.name===this.routeName&&t&&e.method("replace")}})}beforeModel(e){super.beforeModel(...arguments),!0===this.feature.postsListReact&&(e.abort(),this.ui.set("isFullScreen",!1),e.intent?.url||this._navigateToReactRoute(this._reactRouteUrl(e)),this._parkOnReactFallback())}_parkOnReactFallback(){if(("react-fallback"===this.router.currentRouteName?this.router.currentRoute?.params?.path:null)===this.routeName)return
|
|
2609
2660
|
const e=window.location.hash,t=window.history.state
|
|
2610
2661
|
this.router.replaceWith("react-fallback",this.routeName).finally(()=>this._restoreUrl(e,t))}_restoreUrl(e,t){window.history.replaceState(t,"",e)}_reactRouteUrl(e){const t=e.to?.queryParams??{},i=Object.entries(t).filter(([,e])=>null!=e&&""!==e).map(([e,t])=>`${encodeURIComponent(e)}=${encodeURIComponent(t)}`).join("&")
|
|
2611
2662
|
return i?`/${this.routeName}?${i}`:`/${this.routeName}`}_navigateToReactRoute(e){window.location.hash=e}model(e){(this.settings.webAnalyticsEnabled||this.settings.membersTrackSources)&&this.postAnalytics.reset()
|
|
2612
|
-
const t=this.session.user
|
|
2613
|
-
let i={tag:e.tag,visibility:e.visibility},r={perPageParam:"limit",totalPagesParam:"meta.pagination.pages"}
|
|
2663
|
+
const t=this.session.user,i={tag:e.tag,visibility:e.visibility},r={perPageParam:"limit",totalPagesParam:"meta.pagination.pages"}
|
|
2614
2664
|
Ember.assign(i,this._getTypeFilters(e.type)),"featured"===e.type&&(i.featured=!0),t.isAuthor||t.isContributor?i.authors=t.slug:e.author&&(i.authors=e.author)
|
|
2615
|
-
|
|
2616
|
-
const
|
|
2617
|
-
|
|
2618
|
-
if(a.includes("scheduled")){let t={...s,order:e.order||"published_at desc",filter:this._filterString({...i,status:"scheduled"})}
|
|
2619
|
-
o.scheduledInfinityModel=this.infinity.model(this.modelName,Ember.assign({perPage:n,startingPage:1},r,t))}if(a.includes("draft")){let t={...s,order:e.order||"updated_at desc",filter:this._filterString({...i,status:"draft"})}
|
|
2665
|
+
const n=this.perPage,a=i.status,s={allFilter:this._filterString({...i})},o={}
|
|
2666
|
+
if(a.includes("scheduled")){const t={...s,order:e.order||"published_at desc",filter:this._filterString({...i,status:"scheduled"})}
|
|
2667
|
+
o.scheduledInfinityModel=this.infinity.model(this.modelName,Ember.assign({perPage:n,startingPage:1},r,t))}if(a.includes("draft")){const t={...s,order:e.order||"updated_at desc",filter:this._filterString({...i,status:"draft"})}
|
|
2620
2668
|
o.draftInfinityModel=this.infinity.model(this.modelName,Ember.assign({perPage:n,startingPage:1},r,t))}if(a.includes("published")||a.includes("sent")){let t
|
|
2621
2669
|
t=a.includes("published")&&a.includes("sent")?{...s,order:e.order||"published_at desc",filter:this._filterString({...i,status:"[published,sent]"})}:{...s,order:e.order||"published_at desc",filter:this._filterString({...i,status:a.includes("published")?"published":"sent"})},o.publishedAndSentInfinityModel=this.infinity.model(this.modelName,Ember.assign({perPage:n,startingPage:1},r,t),T)}return Ember.RSVP.hash(o)}setupController(e,t){super.setupController(...arguments),this.session.user.isAuthorOrContributor||"!unknown"!==e.selectedAuthor?.slug||this.store.queryRecord("user",{slug:e.author}),(e.tag&&!e.selectedTag?.slug||"!unknown"===e.selectedTag?.slug)&&this.store.queryRecord("tag",{slug:e.tag}),e.selectionList&&(this.session.user.isAuthorOrContributor&&(e.selectionList.enabled=!1),e.selectionList.infinityModel=t,e.selectionList.clearSelection()),this._fetchAnalyticsForPosts(t)}async _fetchAnalyticsForPosts(e){if(!this.settings.webAnalyticsEnabled&&!this.settings.membersTrackSources)return
|
|
2622
2670
|
const t=[]
|
|
2623
2671
|
if(e.publishedAndSentInfinityModel?.content&&t.push(...e.publishedAndSentInfinityModel.content),0===t.length)return
|
|
2624
2672
|
const i=[]
|
|
2625
2673
|
if(this.settings.webAnalyticsEnabled){const e=t.map(e=>e.uuid)
|
|
2626
|
-
i.push(this.postAnalytics.loadVisitorCounts(e))}this.settings.membersTrackSources&&i.push(this.postAnalytics.loadMemberCounts(t)),i.length>0&&await Promise.all(i)}queryParamsDidChange(){
|
|
2674
|
+
i.push(this.postAnalytics.loadVisitorCounts(e))}this.settings.membersTrackSources&&i.push(this.postAnalytics.loadMemberCounts(t)),i.length>0&&await Promise.all(i)}queryParamsDidChange(){const e=document.querySelector(".content-list")
|
|
2627
2675
|
e&&(e.scrollTop=0),super.actions.queryParamsDidChange.call(this,...arguments)}buildRouteInfoMetadata(){return{titleToken:"Posts"}}_getTypeFilters(e){let t="[draft,scheduled,published,sent]"
|
|
2628
2676
|
switch(e){case"draft":t="draft"
|
|
2629
2677
|
break
|
|
@@ -2631,9 +2679,9 @@ case"published":t="published"
|
|
|
2631
2679
|
break
|
|
2632
2680
|
case"scheduled":t="scheduled"
|
|
2633
2681
|
break
|
|
2634
|
-
case"sent":t="sent"}return{status:t}}_filterString(e){return Object.keys(e).map(t=>{
|
|
2682
|
+
case"sent":t="sent"}return{status:t}}_filterString(e){return Object.keys(e).map(t=>{const i=e[t]
|
|
2635
2683
|
if(!Ember.isBlank(i))return`${t}:${e[t]}`}).compact().join("+")}},v=j(f.prototype,"infinity",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=j(f.prototype,"router",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=j(f.prototype,"feature",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=j(f.prototype,"postAnalytics",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=j(f.prototype,"settings",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),_=j(f.prototype,"ui",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j(f.prototype,"queryParamsDidChange",[g],Object.getOwnPropertyDescriptor(f.prototype,"queryParamsDidChange"),f.prototype),f)}),define("ghost-admin/routes/posts/debug",["exports","ghost-admin/routes/authenticated","ember-inflector"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2636
|
-
class r extends t.default{model(e){
|
|
2684
|
+
class r extends t.default{model(e){const{post_id:t}=e,i={id:t,include:["tags","authors","authors.roles","email","tiers","newsletter"].join(",")}
|
|
2637
2685
|
return this.store.query("post",i).then(e=>e.get("firstObject"))}afterModel(e){super.afterModel(...arguments)
|
|
2638
2686
|
const t=this.session.user,r=(0,i.pluralize)(e.constructor.modelName)
|
|
2639
2687
|
return t.isAuthorOrContributor&&!e.isAuthoredByUser(t)||t.isContributor&&!e.isDraft?this.replaceWith(r):void 0}serialize(e){return{post_id:e.id}}}e.default=r}),define("ghost-admin/routes/pro",["exports","ghost-admin/routes/authenticated"],function(e,t){var i,r,n,a
|
|
@@ -2647,7 +2695,7 @@ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerabl
|
|
|
2647
2695
|
e.default=(i=Ember.inject.service,r=Ember._action,n=class extends t.default{constructor(...e){var t,i,r,n
|
|
2648
2696
|
super(...e),t=this,i="billing",n=this,(r=a)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),s(this,"queryParams",{action:{refreshModel:!0}})}beforeModel(e){if(super.beforeModel(...arguments),!this.billing.canAccessBilling)return this.transitionTo("index")
|
|
2649
2697
|
this.billing.previousTransition=e}model(e){e.action&&(this.billing.action=e.action),this.billing.toggleProWindow(!0)}willTransition(e){let t=!1
|
|
2650
|
-
if(e){
|
|
2698
|
+
if(e){const i="string"==typeof e.to?e.to:e.intent?e.intent.url:""
|
|
2651
2699
|
i?.includes("/pro")&&(t=!0)}this.billing.toggleProWindow(t)}buildRouteInfoMetadata(){return{titleToken:"Ghost(Pro)"}}},a=o(n.prototype,"billing",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o(n.prototype,"willTransition",[r],Object.getOwnPropertyDescriptor(n.prototype,"willTransition"),n.prototype),n)}),define("ghost-admin/routes/pro/index",["exports"],function(e){var t,i,r
|
|
2652
2700
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2653
2701
|
e.default=(t=Ember.inject.service,i=class extends Ember.Route{constructor(...e){var t,i,n,a
|
|
@@ -2669,10 +2717,10 @@ var a,s,o,l,u,c}),define("ghost-admin/routes/setup",["exports","ghost-admin/deco
|
|
|
2669
2717
|
function c(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function d(e,t,i,r,n){var a={}
|
|
2670
2718
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2671
2719
|
e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember.inject.service,a=class extends Ember.Route{constructor(...e){super(...e),c(this,"ghostPaths",s,this),c(this,"session",o,this),c(this,"ajax",l,this),c(this,"config",u,this)}beforeModel(){if(super.beforeModel(...arguments),this.session.isAuthenticated)return this.transitionTo("index")
|
|
2672
|
-
|
|
2673
|
-
return this.ajax.request(e).then(e=>{
|
|
2720
|
+
const e=this.ghostPaths.url.api("authentication","setup")
|
|
2721
|
+
return this.ajax.request(e).then(e=>{const[t]=e.setup
|
|
2674
2722
|
if(t.status)return this.transitionTo("signin")
|
|
2675
|
-
{
|
|
2723
|
+
{const e=this.controllerFor("setup")
|
|
2676
2724
|
t.title&&e.set("blogTitle",t.title.replace(/'/gim,"'")),t.name&&e.set("name",t.name.replace(/'/gim,"'")),t.email&&e.set("email",t.email)}})}deactivate(){super.deactivate(...arguments),this.controllerFor("setup").set("password","")}buildRouteInfoMetadata(){return{titleToken:"Setup",bodyClasses:["unauthenticated-route"],mainClasses:["gh-main-white"]}}},s=d(a.prototype,"ghostPaths",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=d(a.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=d(a.prototype,"ajax",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=d(a.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a)}),define("ghost-admin/routes/setup/index",["exports"],function(e){var t,i,r
|
|
2677
2725
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2678
2726
|
e.default=(t=Ember.inject.service,i=class extends Ember.Route{constructor(...e){var t,i,n,a
|
|
@@ -2702,12 +2750,13 @@ throw new TypeError("@@toPrimitive must return a primitive value.")}return("stri
|
|
|
2702
2750
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function _(e,t,i,r,n){var a={}
|
|
2703
2751
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2704
2752
|
let k=(n=Ember._tracked,a=Ember._tracked,s=Ember._tracked,o=class extends(Ember.Object.extend(i.default)){constructor(...e){super(...e),E(this,"name",l,this),E(this,"email",u,this),E(this,"password",c,this),P(this,"token",""),P(this,"blogTitle",""),P(this,"validationType","signup")}},l=_(o.prototype,"name",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),u=_(o.prototype,"email",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),c=_(o.prototype,"password",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),o)
|
|
2705
|
-
e.default=(d=Ember.inject.service,p=Ember.inject.service,m=Ember.inject.service,h=Ember.inject.service,b=class extends t.default{constructor(...e){super(...e),E(this,"ghostPaths",g,this),E(this,"notifications",f,this),E(this,"session",v,this),E(this,"ajax",y,this),E(this,"config",w,this)}beforeModel(){this.session.isAuthenticated&&this.notifications.showAlert("You need to sign out to register as a new user.",{type:"warn",delayed:!0,key:"signup.create.already-authenticated"}),super.beforeModel(...arguments)}model(e){
|
|
2706
|
-
|
|
2707
|
-
i
|
|
2708
|
-
|
|
2709
|
-
this.
|
|
2710
|
-
|
|
2753
|
+
e.default=(d=Ember.inject.service,p=Ember.inject.service,m=Ember.inject.service,h=Ember.inject.service,b=class extends t.default{constructor(...e){super(...e),E(this,"ghostPaths",g,this),E(this,"notifications",f,this),E(this,"session",v,this),E(this,"ajax",y,this),E(this,"config",w,this)}beforeModel(){this.session.isAuthenticated&&this.notifications.showAlert("You need to sign out to register as a new user.",{type:"warn",delayed:!0,key:"signup.create.already-authenticated"}),super.beforeModel(...arguments)}model(e){const t=k.create(),i=/^(?:[A-Za-z0-9_-]{4})*(?:[A-Za-z0-9_-]{2}|[A-Za-z0-9_-]{3})?$/
|
|
2754
|
+
let r,n
|
|
2755
|
+
return new Promise(a=>{if(!i.test(e.token))return this.notifications.showAlert("Invalid token.",{type:"error",delayed:!0,key:"signup.create.invalid-token"}),void a(this.transitionTo("signin"))
|
|
2756
|
+
n=atob(e.token),r=n.split("|")[1],t.email=r,t.token=e.token
|
|
2757
|
+
const s=this.ghostPaths.url.api("authentication","invitation")
|
|
2758
|
+
this.ajax.request(s,{dataType:"json",data:{email:r}}).then(e=>{if(e&&e.invitation&&!1===e.invitation[0].valid)return this.notifications.showAlert("The invitation does not exist or is no longer valid.",{type:"warn",delayed:!0,key:"signup.create.invalid-invitation"}),void a(this.transitionTo("signin"))
|
|
2759
|
+
t.blogTitle=this.config.blogTitle,a(t)}).catch(()=>{a(t)})})}deactivate(){super.deactivate(...arguments)
|
|
2711
2760
|
const e=this.controllerFor("signup").signupDetails
|
|
2712
2761
|
e.email="",e.password="",e.token=""}},g=_(b.prototype,"ghostPaths",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=_(b.prototype,"notifications",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=_(b.prototype,"session",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=_(b.prototype,"ajax",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=_(b.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b)}),define("ghost-admin/routes/site",["exports","ghost-admin/routes/authenticated"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2713
2762
|
class i extends t.default{model(){return(new Date).valueOf()}buildRouteInfoMetadata(){return{titleToken:"Site"}}}e.default=i}),define("ghost-admin/routes/tag",["exports","@sentry/ember","ghost-admin/routes/authenticated","ghost-admin/components/modals/confirm-unsaved-changes"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m,h,b
|
|
@@ -2737,8 +2786,8 @@ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enum
|
|
|
2737
2786
|
class r extends t.default{constructor(...e){super(...e),i(this,"controllerName","tag"),i(this,"templateName","tag")}}e.default=r}),define("ghost-admin/routes/unauthenticated",["exports"],function(e){var t,i,r,n,a,s,o
|
|
2738
2787
|
function l(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function u(e,t,i,r,n){var a={}
|
|
2739
2788
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2740
|
-
e.default=(t=Ember.inject.service,i=Ember.inject.service,r=Ember.inject.service,n=class extends Ember.Route{constructor(...e){super(...e),l(this,"ajax",a,this),l(this,"ghostPaths",s,this),l(this,"session",o,this)}beforeModel(){
|
|
2741
|
-
return this.ajax.request(e).then(e=>{
|
|
2789
|
+
e.default=(t=Ember.inject.service,i=Ember.inject.service,r=Ember.inject.service,n=class extends Ember.Route{constructor(...e){super(...e),l(this,"ajax",a,this),l(this,"ghostPaths",s,this),l(this,"session",o,this)}beforeModel(){const e=this.ghostPaths.url.api("authentication","setup")
|
|
2790
|
+
return this.ajax.request(e).then(e=>{const[t]=e.setup
|
|
2742
2791
|
if(!0===t.status)return this.session.prohibitAuthentication("index")
|
|
2743
2792
|
this.transitionTo("setup")})}buildRouteInfoMetadata(){return{bodyClasses:["unauthenticated-route"]}}},a=u(n.prototype,"ajax",[t],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=u(n.prototype,"ghostPaths",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=u(n.prototype,"session",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n)}),define("ghost-admin/serializers/-default",["exports","@ember-data/serializer/json"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/serializers/-json-api",["exports","@ember-data/serializer/json-api"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/serializers/-rest",["exports","@ember-data/serializer/rest"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/serializers/action",["exports","ghost-admin/serializers/application"],function(e,t){function i(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2744
2793
|
var i=e[Symbol.toPrimitive]
|
|
@@ -2753,10 +2802,10 @@ if("object"!=typeof r)return r
|
|
|
2753
2802
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2754
2803
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2755
2804
|
class r extends t.default{constructor(...e){super(...e),i(this,"attrs",{lastSeenAtUTC:{key:"last_seen_at"},createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}}e.default=r}),define("ghost-admin/serializers/application",["exports","@ember-data/serializer/rest","ember-inflector"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2756
|
-
class r extends t.default{extractMeta(e,t){
|
|
2805
|
+
class r extends t.default{extractMeta(e,t){const i=super.extractMeta(...arguments)
|
|
2757
2806
|
return t.___meta=i,i}serializeIntoHash(e,t,r,n){(n=n||{}).includeId=!0
|
|
2758
|
-
|
|
2759
|
-
e[a]=[s]}keyForAttribute(e){return Ember.String.decamelize(e)}keyForRelationship(e,t,i){
|
|
2807
|
+
const a=(0,i.pluralize)(t.modelName),s=this.serialize(r,n)
|
|
2808
|
+
e[a]=[s]}keyForAttribute(e){return Ember.String.decamelize(e)}keyForRelationship(e,t,i){const r="serialize"===i?Ember.String.underscore:Ember.String.camelize
|
|
2760
2809
|
if("belongsTo"===t&&!e.match(/(Id|By)$/)){return`${r(e)}_id`}return r(e)}normalizeQueryRecordResponse(e,t,r){const n=this.keyForAttribute(t.modelName),a=(0,i.pluralize)(n)
|
|
2761
2810
|
return r[a]&&"setting"!==n&&(r[n]=r[a][0],delete r[a]),super.normalizeQueryRecordResponse(...arguments)}}e.default=r}),define("ghost-admin/serializers/email",["exports","ghost-admin/serializers/application"],function(e,t){function i(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2762
2811
|
var i=e[Symbol.toPrimitive]
|
|
@@ -2782,15 +2831,15 @@ if(void 0!==i){var r=i.call(e,t||"default")
|
|
|
2782
2831
|
if("object"!=typeof r)return r
|
|
2783
2832
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2784
2833
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2785
|
-
class n extends t.default{constructor(...e){super(...e),r(this,"attrs",{createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}serialize(){
|
|
2786
|
-
return delete e.count,e}normalizeResponse(e,t,r,n,a){if("queryRecord"===a){
|
|
2834
|
+
class n extends t.default{constructor(...e){super(...e),r(this,"attrs",{createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}serialize(){const e=super.serialize(...arguments)
|
|
2835
|
+
return delete e.count,e}normalizeResponse(e,t,r,n,a){if("queryRecord"===a){const e=t.modelName,n=(0,i.pluralize)(e)
|
|
2787
2836
|
r[n]&&(r[e]=r[n][0],delete r[n])}return super.normalizeResponse(...arguments)}}e.default=n}),define("ghost-admin/serializers/member",["exports","ghost-admin/serializers/application","@ember-data/serializer/rest"],function(e,t,i){function r(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2788
2837
|
var i=e[Symbol.toPrimitive]
|
|
2789
2838
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
2790
2839
|
if("object"!=typeof r)return r
|
|
2791
2840
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2792
2841
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2793
|
-
class n extends(t.default.extend(i.EmbeddedRecordsMixin)){constructor(...e){super(...e),r(this,"attrs",{createdAtUTC:{key:"created_at"},lastSeenAtUTC:{key:"last_seen_at"},labels:{embedded:"always"},newsletters:{embedded:"always"}})}serialize(){
|
|
2842
|
+
class n extends(t.default.extend(i.EmbeddedRecordsMixin)){constructor(...e){super(...e),r(this,"attrs",{createdAtUTC:{key:"created_at"},lastSeenAtUTC:{key:"last_seen_at"},labels:{embedded:"always"},newsletters:{embedded:"always"}})}serialize(){const e=super.serialize(...arguments)
|
|
2794
2843
|
return delete e.stripe,delete e.geolocation,delete e.status,delete e.last_seen_at,delete e.comped,delete e.tiers,e.name=e.name||"",e.note=e.note||"",e}}e.default=n})
|
|
2795
2844
|
define("ghost-admin/serializers/newsletter",["exports","ghost-admin/serializers/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2796
2845
|
class i extends t.default{normalizeResponse(){const e=super.normalizeResponse(...arguments)
|
|
@@ -2802,7 +2851,7 @@ if("object"!=typeof r)return r
|
|
|
2802
2851
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2803
2852
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2804
2853
|
class r extends t.default{constructor(...e){super(...e),i(this,"attrs",{key:{key:"location"}})}}e.default=r}),define("ghost-admin/serializers/page",["exports","ghost-admin/serializers/post"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2805
|
-
class i extends t.default{serialize(){
|
|
2854
|
+
class i extends t.default{serialize(){const e=super.serialize(...arguments)
|
|
2806
2855
|
return delete e.email_subject,delete e.send_email_when_published,delete e.email_recipient_filter,delete e.email_only,delete e.email_id,delete e.email,null===e.visibility&&(delete e.visibility,delete e.visibility_filter,delete e.tiers),"tiers"===e.visibility&&delete e.visibility_filter,"tiers"!==e.visibility||e.tiers?.length||(delete e.visibility,delete e.tiers),e}}e.default=i}),define("ghost-admin/serializers/post-revision",["exports","ghost-admin/serializers/application","@ember-data/serializer/rest"],function(e,t,i){function r(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2807
2856
|
var i=e[Symbol.toPrimitive]
|
|
2808
2857
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
@@ -2815,7 +2864,7 @@ if(void 0!==i){var r=i.call(e,t||"default")
|
|
|
2815
2864
|
if("object"!=typeof r)return r
|
|
2816
2865
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2817
2866
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2818
|
-
class n extends(t.default.extend(i.EmbeddedRecordsMixin)){constructor(...e){super(...e),r(this,"attrs",{authors:{embedded:"always"},tags:{embedded:"always"},publishedAtUTC:{key:"published_at"},createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"},email:{embedded:"always"},newsletter:{embedded:"always"},postRevisions:{embedded:"always"}})}serialize(e){
|
|
2867
|
+
class n extends(t.default.extend(i.EmbeddedRecordsMixin)){constructor(...e){super(...e),r(this,"attrs",{authors:{embedded:"always"},tags:{embedded:"always"},publishedAtUTC:{key:"published_at"},createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"},email:{embedded:"always"},newsletter:{embedded:"always"},postRevisions:{embedded:"always"}})}serialize(e){const t=super.serialize(...arguments)
|
|
2819
2868
|
return delete t.author_id,delete t.uuid,delete t.url,delete t.send_email_when_published,delete t.email_recipient_filter,delete t.email,delete t.newsletter,delete t.post_revisions,delete t.author,"page"!==e.modelName&&delete t.show_title_and_feature_image,null===t.visibility&&(delete t.visibility,delete t.visibility_filter,delete t.tiers),"tiers"===t.visibility&&delete t.visibility_filter,"tiers"!==t.visibility||t.tiers?.length||(delete t.visibility,delete t.tiers),t}}e.default=n}),define("ghost-admin/serializers/role",["exports","ghost-admin/serializers/application"],function(e,t){function i(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2820
2869
|
var i=e[Symbol.toPrimitive]
|
|
2821
2870
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
@@ -2824,10 +2873,10 @@ throw new TypeError("@@toPrimitive must return a primitive value.")}return("stri
|
|
|
2824
2873
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2825
2874
|
class r extends t.default{constructor(...e){super(...e),i(this,"attrs",{createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}}e.default=r}),define("ghost-admin/serializers/setting",["exports","ghost-admin/serializers/application","ember-inflector"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2826
2875
|
class r extends t.default{serializeIntoHash(e,t,r,n){(n=n||{}).includeId=!1
|
|
2827
|
-
|
|
2828
|
-
delete s.id,delete s._meta,Object.keys(s).forEach(e=>{o.push({key:e,value:s[e]})}),e[a]=o}serializeAttribute(e,t,i,r){(e.record.get("isNew")||e.record.changedAttributes()[i])&&super.serializeAttribute(e,t,i,r)}normalizeArrayResponse(e,t,i,r,n){
|
|
2829
|
-
return super.normalizeArrayResponse(e,t,a,r,n)}normalizeSingleResponse(e,t,i,r,n){
|
|
2830
|
-
return super.normalizeSingleResponse(e,t,a,r,n)}_extractObjectFromArrayPayload(e){
|
|
2876
|
+
const a=(0,i.pluralize)(t.modelName),s=Object.keys(r.record.changedAttributes()).length>0?this.serialize(r,n):[],o=[]
|
|
2877
|
+
delete s.id,delete s._meta,Object.keys(s).forEach(e=>{o.push({key:e,value:s[e]})}),e[a]=o}serializeAttribute(e,t,i,r){(e.record.get("isNew")||e.record.changedAttributes()[i])&&super.serializeAttribute(e,t,i,r)}normalizeArrayResponse(e,t,i,r,n){const a={settings:[this._extractObjectFromArrayPayload(i)]}
|
|
2878
|
+
return super.normalizeArrayResponse(e,t,a,r,n)}normalizeSingleResponse(e,t,i,r,n){const a={setting:this._extractObjectFromArrayPayload(i)}
|
|
2879
|
+
return super.normalizeSingleResponse(e,t,a,r,n)}_extractObjectFromArrayPayload(e){const t={id:"0"}
|
|
2831
2880
|
return e.settings.forEach(e=>{t[e.key]=e.value}),e.meta&&(t._meta=e.meta),t}}e.default=r}),define("ghost-admin/serializers/snippet",["exports","ghost-admin/serializers/application"],function(e,t){function i(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2832
2881
|
var i=e[Symbol.toPrimitive]
|
|
2833
2882
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
@@ -2840,8 +2889,8 @@ if(void 0!==i){var r=i.call(e,t||"default")
|
|
|
2840
2889
|
if("object"!=typeof r)return r
|
|
2841
2890
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2842
2891
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2843
|
-
class n extends t.default{constructor(...e){super(...e),r(this,"attrs",{createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}serialize(){
|
|
2844
|
-
return delete e.count,delete e.url,e}normalizeResponse(e,t,r,n,a){if("queryRecord"===a){
|
|
2892
|
+
class n extends t.default{constructor(...e){super(...e),r(this,"attrs",{createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}serialize(){const e=super.serialize(...arguments)
|
|
2893
|
+
return delete e.count,delete e.url,e}normalizeResponse(e,t,r,n,a){if("queryRecord"===a){const e=t.modelName,n=(0,i.pluralize)(e)
|
|
2845
2894
|
r[n]&&(r[e]=r[n][0],delete r[n])}return super.normalizeResponse(...arguments)}}e.default=n}),define("ghost-admin/serializers/theme",["exports","ghost-admin/serializers/application"],function(e,t){function i(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2846
2895
|
var i=e[Symbol.toPrimitive]
|
|
2847
2896
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
@@ -2849,14 +2898,14 @@ if("object"!=typeof r)return r
|
|
|
2849
2898
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2850
2899
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2851
2900
|
class r extends t.default{constructor(...e){super(...e),i(this,"primaryKey","name"),i(this,"attrs",{gscanErrors:{key:"errors"}})}}e.default=r}),define("ghost-admin/serializers/tier",["exports","ghost-admin/serializers/application"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2852
|
-
class i extends t.default{serialize(){
|
|
2901
|
+
class i extends t.default{serialize(){const e=super.serialize(...arguments)
|
|
2853
2902
|
return e?.monthly_price&&(e.monthly_price=Math.round(e.monthly_price)),e?.yearly_price&&(e.yearly_price=Math.round(e.yearly_price)),e}}e.default=i}),define("ghost-admin/serializers/user",["exports","ghost-admin/serializers/application","@ember-data/serializer/rest","ember-inflector"],function(e,t,i,r){function n(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2854
2903
|
var i=e[Symbol.toPrimitive]
|
|
2855
2904
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
2856
2905
|
if("object"!=typeof r)return r
|
|
2857
2906
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2858
2907
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2859
|
-
class a extends(t.default.extend(i.EmbeddedRecordsMixin)){constructor(...e){super(...e),n(this,"attrs",{roles:{embedded:"always"},lastLoginUTC:{key:"last_seen"},createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}extractSingle(e,t,i){
|
|
2908
|
+
class a extends(t.default.extend(i.EmbeddedRecordsMixin)){constructor(...e){super(...e),n(this,"attrs",{roles:{embedded:"always"},lastLoginUTC:{key:"last_seen"},createdAtUTC:{key:"created_at"},updatedAtUTC:{key:"updated_at"}})}extractSingle(e,t,i){const n=this.keyForAttribute(t.modelName),a=(0,r.pluralize)(t.modelName)
|
|
2860
2909
|
return i[n]=i[a][0],delete i[a],super.extractSingle(...arguments)}serialize(){const e=super.serialize(...arguments)
|
|
2861
2910
|
return delete e.url,e}}e.default=a}),define("ghost-admin/serializers/webhook",["exports","ghost-admin/serializers/application"],function(e,t){function i(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2862
2911
|
var i=e[Symbol.toPrimitive]
|
|
@@ -2886,7 +2935,9 @@ class F extends a.AjaxError{constructor(e){super(e=w(e),"2nd factor verification
|
|
|
2886
2935
|
return(0,a.isAjaxError)(e)?e instanceof F||i.includes(C(e)):(t=w(t),i.includes(Ember.get(t||{},"errors.firstObject.code")))}e.TwoFactorTokenRequiredError=F
|
|
2887
2936
|
class H{constructor(e){this.data=e}}function V(e){return 202===e}e.AcceptedResponse=H
|
|
2888
2937
|
let q=(l=Ember.inject.service,u=Ember.inject.service,c=Ember.inject.service,d=class extends i.default{constructor(...e){super(...e),g(this,"feature",p,this),g(this,"session",m,this),g(this,"upgradeStatus",h,this),g(this,"config",b,this),f(this,"skipSessionDeletion",!1)}get headers(){return{"App-Pragma":"no-cache"}}init(){super.init(...arguments),void 0===this.isTesting&&(this.isTesting="test"===r.default.environment)}async _makeRequest(e){var i;(i=e.contentType)&&!Ember.isNone(i)&&0===i.indexOf("application/json")&&"GET"!==e.type&&"object"==typeof e.data&&(e.data=JSON.stringify(e.data)),e.withCredentials=!0,this.isTesting&&(e.headers["X-Test-User"]=this.session.user?.id)
|
|
2889
|
-
let r=!1,a=null,s=0
|
|
2938
|
+
let r=!1,a=null,s=0
|
|
2939
|
+
const l=new Date
|
|
2940
|
+
let u=0
|
|
2890
2941
|
const c=[500,1e3],d=[this.isServerUnreachableError,this.isMaintenanceError],p=()=>{const e={errorName:a,attempts:s,totalSeconds:(0,n.default)().diff((0,n.default)(l),"seconds")}
|
|
2891
2942
|
return this._responseServer&&(e.server=this._responseServer),e},m=super._makeRequest.bind(this)
|
|
2892
2943
|
for(;u<=15e3&&!r;)try{const i=await m(e)
|
|
@@ -2902,31 +2953,36 @@ if(this.isThemeValidationError(e,i,r))return new A(r)
|
|
|
2902
2953
|
if(this.isHostLimitError(e,i,r))return new L(r)
|
|
2903
2954
|
if(this.isEmailError(e,i,r))return new N(r)
|
|
2904
2955
|
if(this.isAcceptedResponse(e))return new H(r)
|
|
2905
|
-
|
|
2956
|
+
const s=y.test(n.url),o=this.get("session.isAuthenticated"),l=this.isUnauthorizedError(e,i,r),u=(0,a.isForbiddenError)(e,i,r)
|
|
2906
2957
|
return s&&(this._responseServer=i.server),o&&s&&(l||u&&"Authorization failed"===r.errors?.[0].message)&&(this.skipSessionDeletion=!0,this.session.invalidate()),super.handleResponse(...arguments)}normalizeErrorResponse(e,t,i){if(i&&"object"==typeof i){let e=i.error||i.errors||i.message||void 0
|
|
2907
2958
|
e&&(Ember.isArray(e)||(e=[e]),i.errors=e.map(function(e){return"string"==typeof e?{message:e}:e}))}return super.normalizeErrorResponse(e,t,i)}isTwoFactorTokenRequiredError(e,t,i){return B(e,i)}isVersionMismatchError(e,t,i){return P(e,i)}isServerUnreachableError(e){return j(e)}isRequestEntityTooLargeError(e){return z(e)}isUnsupportedMediaTypeError(e){return S(e)}isDataImportError(e){return k(e)}isMaintenanceError(e,t,i){return D(e)}isThemeValidationError(e,t,i){return I(e,i)}isHostLimitError(e,t,i){return R(e,i)}isEmailError(e,t,i){return U(e,i)}isAcceptedResponse(e){return V(e)}},p=v(d.prototype,"feature",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=v(d.prototype,"session",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),h=v(d.prototype,"upgradeStatus",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=v(d.prototype,"config",[s.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d)
|
|
2908
2959
|
q.reopen({contentType:"application/json; charset=UTF-8"})
|
|
2909
|
-
e.default=q}),define("ghost-admin/services/billing",["exports","@sentry/ember","ghost-admin/decorators/inject"],function(e,t,i){var
|
|
2910
|
-
function
|
|
2960
|
+
e.default=q}),define("ghost-admin/services/billing",["exports","@sentry/ember","@tryghost/admin-x-framework/api/dunning","ghost-admin/decorators/inject"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U,F,B
|
|
2961
|
+
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 V(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2911
2962
|
var i=e[Symbol.toPrimitive]
|
|
2912
2963
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
2913
2964
|
if("object"!=typeof r)return r
|
|
2914
2965
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2915
|
-
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function
|
|
2966
|
+
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function q(e,t,i,r,n){var a={}
|
|
2916
2967
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2917
|
-
const
|
|
2918
|
-
e.default=(
|
|
2919
|
-
|
|
2968
|
+
const $=[1e3],Y="preload",W="user_open",K=Object.freeze(Object.assign(Object.create(null),{theme:"/settings/design/change-theme",analytics:"/settings/analytics",staff:"/settings/staff",stripe:"/settings/stripe-connect",integrations:"/settings/integrations"}))
|
|
2969
|
+
e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=Ember._tracked,c=Ember._tracked,d=Ember._tracked,p=Ember._tracked,m=Ember._tracked,h=Ember._tracked,b=Ember._tracked,g=Ember._tracked,f=Ember._tracked,v=Ember._tracked,y=Ember._tracked,w=Ember._tracked,E=Ember._tracked,P=class extends Ember.Service{constructor(...e){super(...e),H(this,"feature",_,this),H(this,"ghostPaths",k,this),H(this,"router",O,this),H(this,"session",j,this),H(this,"store",T,this),H(this,"config",z,this),V(this,"billingRouteRoot","#/pro"),H(this,"billingWindowOpen",x,this),H(this,"subscription",S,this),H(this,"previousRoute",C,this),H(this,"action",M,this),H(this,"ownerUser",D,this),H(this,"billingAppLoaded",A,this),H(this,"billingAppLoadFailureReported",I,this),H(this,"billingAppPreReadyMessageCount",L,this),H(this,"billingAppPreReadyMessageTypes",R,this),H(this,"billingAppLastPreReadyMessageType",N,this),H(this,"billingAppReadyReceivedAt",U,this),H(this,"billingAppReadyPayload",F,this),H(this,"billingAppPreloadFailure",B,this),V(this,"billingAppLoadTimeout",null),V(this,"billingAppRetryTimeout",null),V(this,"billingAppLoadAttempts",0),V(this,"billingAppLoadTimeoutMs",1e4),V(this,"billingAppLoadRetryDelaysMs",$),V(this,"billingAppLoadAttemptId",null),V(this,"billingAppLoadAttemptSource",Y),V(this,"billingAppIframeReloadReason",null),V(this,"billingAppLoadAttemptSequence",0)
|
|
2970
|
+
V(this,"billingAppIframeSrcSetAt",null),V(this,"billingAppIframeLoadFired",!1),V(this,"billingAppIframeSrcSubRoute",null),V(this,"pendingSubRoute",null),V(this,"_loadListenerAttachedTo",null)}willDestroy(){super.willDestroy(...arguments),this.clearBillingAppLoadMonitor()}get canAccessBilling(){return!!this.config.hostSettings?.forceUpgrade||Boolean(this.config.hostSettings?.billing?.enabled)&&Boolean(this.session.user?.isOwnerOnly)}getAdminRouteForSubRoute(e){return this.billingRouteRoot.replace(/^#/,"")+("/"===e?"":e)}getBillingRouteFromHash(){const e=window.location.hash,t=this.billingRouteRoot
|
|
2920
2971
|
return e===t||e.startsWith(`${t}/`)||e.startsWith(`${t}?`)?e.replace(/^#/,""):null}handleRouteChangeInIframe(e){if(this.billingWindowOpen){let t=this.billingRouteRoot
|
|
2921
2972
|
"/"!==e&&(t+=e),window.location.hash!==t&&window.history.replaceState(window.history.state,"",t)}}navigateToAdminDestination(e){if("string"!=typeof e)return
|
|
2922
|
-
|
|
2923
|
-
|
|
2973
|
+
if("previousPage"===e){this._markDunningPaymentSettled()
|
|
2974
|
+
const e=this._takePayNowReturnRoute()
|
|
2975
|
+
if(e)try{return void this.router.transitionTo(e)}catch(i){}return void this.router.transitionTo("pro")}const t=this._resolveAdminDestinationRoute(e)
|
|
2976
|
+
t&&this.router.transitionTo(t)}_markDunningPaymentSettled(){if(!this.feature.dunningWarnings)return
|
|
2977
|
+
const e=(0,i.parseDunningConfig)(this.config.hostSettings?.billing?.dunning)
|
|
2978
|
+
if(e)try{window.sessionStorage.setItem(i.DUNNING_PAYMENT_SETTLED_STORAGE_KEY,e.paymentFailedAt.toISOString())}catch(t){}}_takePayNowReturnRoute(){try{const e=window.sessionStorage.getItem(i.DUNNING_PAY_RETURN_ROUTE_STORAGE_KEY)
|
|
2979
|
+
return window.sessionStorage.removeItem(i.DUNNING_PAY_RETURN_ROUTE_STORAGE_KEY),e&&e.startsWith("/")&&!e.startsWith("//")?e:null}catch(e){return null}}_resolveAdminDestinationRoute(e){return"newsletters"===e?this.feature.automations?"/settings/emails":"/settings/newsletters":K[e]??null}startBillingAppLoadMonitor(e={}){const{source:t=this.billingAppLoadAttemptSource}=e
|
|
2924
2980
|
this.billingAppLoadTimeout||this.billingAppRetryTimeout?this.billingAppLoadAttemptSource=t:((this.billingAppLoaded||this.billingAppLoadFailureReported)&&(this.billingAppLoaded=!1,this.billingAppLoadAttempts=0,this.billingAppLoadFailureReported=!1,this.resetBillingAppLoadDiagnostics()),this.billingAppLoadAttemptSource=t,this.billingAppLoadAttempts+=1,this.billingAppLoadTimeout=setTimeout(()=>{this.billingAppLoadTimeout=null,this.handleBillingAppLoadTimeout()},this.billingAppLoadTimeoutMs))}handleBillingAppLoadTimeout(){const e=this.billingAppLoadRetryDelaysMs[this.billingAppLoadAttempts-1]
|
|
2925
2981
|
void 0===e?this.reportBillingAppLoadFailure():this.billingAppRetryTimeout=setTimeout(()=>{this.billingAppRetryTimeout=null
|
|
2926
2982
|
const e=this.billingWindowOpen?"retry":this.billingAppLoadAttemptSource
|
|
2927
2983
|
this.reloadBillingIframe({source:e,reloadReason:"timeout_retry"}),this.startBillingAppLoadMonitor({source:e})},e)}setBillingIframeSrc(e={}){const t=this.getBillingIframe()
|
|
2928
2984
|
if(!t)return
|
|
2929
|
-
const{source:i=this.billingAppLoadAttemptSource
|
|
2985
|
+
const{source:i=this.billingAppLoadAttemptSource||Y,reloadReason:r="set_src"}=e
|
|
2930
2986
|
this._loadListenerAttachedTo!==t&&"function"==typeof t.addEventListener&&(t.addEventListener("load",()=>{this.billingAppIframeLoadFired=!0}),this._loadListenerAttachedTo=t),this.billingAppLoadAttemptSequence+=1,this.billingAppLoadAttemptId=`${Date.now()}-${this.billingAppLoadAttemptSequence}`,this.billingAppLoadAttemptSource=i,this.billingAppIframeReloadReason=r,this.billingAppIframeLoadFired=!1,this.billingAppIframeSrcSetAt=Date.now(),this.resetBillingAppLoadDiagnostics(),t.src=this.getIframeURL(),this.billingAppIframeSrcSubRoute=this.getIframeDestinationRoute(),this.pendingSubRoute=null}reloadBillingIframe(e={}){this.getBillingIframe()&&!this.billingAppLoaded&&this.setBillingIframeSrc(e)}markBillingAppLoaded(e=null){if(this.billingAppLoaded=!0,this.billingAppLoadFailureReported=!1,this.billingAppPreloadFailure=null,this.billingAppReadyReceivedAt=Date.now(),this.billingAppReadyPayload=e,this.clearBillingAppLoadMonitor(),this.pendingSubRoute){const e=this.pendingSubRoute
|
|
2931
2987
|
this.pendingSubRoute=null,this.navigateToSubRoute(e)}}resetBillingAppLoadDiagnostics(){this.billingAppPreReadyMessageCount=0,this.billingAppPreReadyMessageTypes=[],this.billingAppLastPreReadyMessageType=null,this.billingAppReadyReceivedAt=null,this.billingAppReadyPayload=null}recordBillingAppPreReadyMessage(e){if(this.billingAppLoaded||this.billingAppReadyReceivedAt||this.billingAppLoadFailureReported)return
|
|
2932
2988
|
if(!this.billingAppLoadTimeout&&!this.billingAppRetryTimeout)return
|
|
@@ -2942,8 +2998,8 @@ const e=!!this.billingAppPreloadFailure,t=this.billingAppLoadFailureReported
|
|
|
2942
2998
|
this.billingAppLoadFailureReported=!1,this.clearBillingAppLoadMonitor(),this.billingAppLoadAttempts=0
|
|
2943
2999
|
const i=e=>"/"===e?null:e,r=Boolean(this.pendingSubRoute)&&i(this.pendingSubRoute)!==i(this.billingAppIframeSrcSubRoute)
|
|
2944
3000
|
if(e||t||r){let i="visible_open_with_destination_route"
|
|
2945
|
-
e?i="visible_open_after_preload_failure":t&&(i="visible_open_after_load_failure"),this.reloadBillingIframe({source:
|
|
2946
|
-
this.startBillingAppLoadMonitor({source:
|
|
3001
|
+
e?i="visible_open_after_preload_failure":t&&(i="visible_open_after_load_failure"),this.reloadBillingIframe({source:W,reloadReason:i})}else this.billingAppLoadAttemptSource=W
|
|
3002
|
+
this.startBillingAppLoadMonitor({source:W})}recordBillingAppPreloadFailure(){this.billingAppPreloadFailure={attemptId:this.billingAppLoadAttemptId,attempts:this.billingAppLoadAttempts,elapsedMs:this.billingAppIframeSrcSetAt?Date.now()-this.billingAppIframeSrcSetAt:null,nonReadyMessageCount:this.billingAppPreReadyMessageCount,nonReadyMessageTypes:[...this.billingAppPreReadyMessageTypes],lastNonReadyMessageType:this.billingAppLastPreReadyMessageType}}reportBillingAppLoadFailure(){if(this.billingAppLoadFailureReported)return
|
|
2947
3003
|
if(!this.billingWindowOpen)return void this.recordBillingAppPreloadFailure()
|
|
2948
3004
|
if(this.billingAppLoadFailureReported=!0,!this.config.sentry_dsn)return
|
|
2949
3005
|
const e=this.getBillingIframe(),i=document.visibilityState,r=e?.src||null,n=this.getBillingAppOrigin()
|
|
@@ -2966,13 +3022,13 @@ e||(await this.store.findAll("user",{reload:!0}),e=this.store.peekAll("user").fi
|
|
|
2966
3022
|
return!(!t||!i)&&(t.postMessage(e,i),!0)}navigateToSubRoute(e){e&&(this.billingAppLoaded&&this.postMessageToBillingApp({query:"routeUpdate",response:e})||(this.pendingSubRoute=e,this.billingWindowOpen&&!this.billingAppLoaded&&this.ensureBillingAppReadyForVisibleUse()))}sendRouteUpdate(){const e=this.action
|
|
2967
3023
|
e&&("checkout"===e&&this.navigateToSubRoute(this.checkoutRoute),this.action=null)}sendUpdateLimits(){this.postMessageToBillingApp({query:"limitUpdate"})}toggleProWindow(e){if(this.billingWindowOpen&&e&&!this.action)return
|
|
2968
3024
|
const t=e&&!this.billingWindowOpen
|
|
2969
|
-
this.sendRouteUpdate(),this.billingWindowOpen=e,e?this.ensureBillingAppReadyForVisibleUse():this.pendingSubRoute=null,t&&this.sendUpdateLimits()}openBillingWindow(e,t){this.getOwnerUser(),this.billingWindowOpen||(this.previousRoute=e,window.location.hash=t||"/pro",this.sendRouteUpdate(),this.router.transitionTo(t||"/pro"))}getBillingIframe(){return document.getElementById("billing-frame")}},
|
|
3025
|
+
this.sendRouteUpdate(),this.billingWindowOpen=e,e?this.ensureBillingAppReadyForVisibleUse():this.pendingSubRoute=null,t&&this.sendUpdateLimits()}openBillingWindow(e,t){this.getOwnerUser(),this.billingWindowOpen||(this.previousRoute=e,window.location.hash=t||"/pro",this.sendRouteUpdate(),this.router.transitionTo(t||"/pro"))}getBillingIframe(){return document.getElementById("billing-frame")}},_=q(P.prototype,"feature",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=q(P.prototype,"ghostPaths",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=q(P.prototype,"router",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=q(P.prototype,"session",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=q(P.prototype,"store",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=q(P.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=q(P.prototype,"billingWindowOpen",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),S=q(P.prototype,"subscription",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),C=q(P.prototype,"previousRoute",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),M=q(P.prototype,"action",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),D=q(P.prototype,"ownerUser",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),A=q(P.prototype,"billingAppLoaded",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),I=q(P.prototype,"billingAppLoadFailureReported",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),L=q(P.prototype,"billingAppPreReadyMessageCount",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),R=q(P.prototype,"billingAppPreReadyMessageTypes",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),N=q(P.prototype,"billingAppLastPreReadyMessageType",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),U=q(P.prototype,"billingAppReadyReceivedAt",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),F=q(P.prototype,"billingAppReadyPayload",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),B=q(P.prototype,"billingAppPreloadFailure",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),P)}),define("ghost-admin/services/clock",["exports","ghost-admin/config/environment","moment-timezone"],function(e,t,i){function r(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2970
3026
|
var i=e[Symbol.toPrimitive]
|
|
2971
3027
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
2972
3028
|
if("object"!=typeof r)return r
|
|
2973
3029
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2974
3030
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2975
|
-
class n extends Ember.Service{constructor(...e){super(...e),r(this,"second",null),r(this,"minute",null),r(this,"hour",null)}init(){super.init(...arguments),this.tick()}tick(){
|
|
3031
|
+
class n extends Ember.Service{constructor(...e){super(...e),r(this,"second",null),r(this,"minute",null),r(this,"hour",null)}init(){super.init(...arguments),this.tick()}tick(){const e=(0,i.default)().utc()
|
|
2976
3032
|
this.setProperties({second:e.seconds(),minute:e.minutes(),hour:e.hours()}),"test"!==t.default.environment&&Ember.run.later(()=>{this.tick()},1e3)}}e.default=n}),define("ghost-admin/services/config-manager",["exports","ghost-admin/decorators/inject"],function(e,t){var i,r,n,a,s,o,l,u
|
|
2977
3033
|
function c(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function d(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
2978
3034
|
var i=e[Symbol.toPrimitive]
|
|
@@ -2981,19 +3037,18 @@ if("object"!=typeof r)return r
|
|
|
2981
3037
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
2982
3038
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function p(e,t,i,r,n){var a={}
|
|
2983
3039
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2984
|
-
e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember.inject.service,a=class extends Ember.Service{constructor(...e){super(...e),c(this,"ajax",s,this),c(this,"ghostPaths",o,this),c(this,"session",l,this),c(this,"config",u,this),d(this,"isConfigLoaded",!1)}fetch(){
|
|
3040
|
+
e.default=(i=Ember.inject.service,r=Ember.inject.service,n=Ember.inject.service,a=class extends Ember.Service{constructor(...e){super(...e),c(this,"ajax",s,this),c(this,"ghostPaths",o,this),c(this,"session",l,this),c(this,"config",u,this),d(this,"isConfigLoaded",!1)}fetch(){const e=[]
|
|
2985
3041
|
return e.push(this.fetchUnauthenticated()),this.session.isAuthenticated&&e.push(this.fetchAuthenticated()),Ember.RSVP.all(e)}async fetchUnauthenticated(){const e=this.ghostPaths.url.api("site"),{site:t}=await this.ajax.request(e)
|
|
2986
3042
|
t.blogUrl=t.url.replace(/\/$/,""),t.blogTitle=t.title,delete t.url,delete t.title,Ember.setProperties(this.config,t)}async fetchAuthenticated(){const e=this.ghostPaths.url.api("config"),{config:t}=await this.ajax.request(e)
|
|
2987
3043
|
Ember.setProperties(this.config,t),this.isConfigLoaded=!0}},s=p(a.prototype,"ajax",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),o=p(a.prototype,"ghostPaths",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=p(a.prototype,"session",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=p(a.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),a)}),define("ghost-admin/services/cookies",["exports","ember-cookies/services/cookies"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2988
3044
|
e.default=t.default}),define("ghost-admin/services/custom-views",["exports","ghost-admin/components/modals/custom-view-form","ghost-admin/mixins/validation-engine","ember-concurrency"],function(e,t,i,r){var n,a,s,o,l,u,c,d,p,m
|
|
2989
3045
|
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={}
|
|
2990
3046
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
2991
|
-
const g=["midgrey","blue","green","red","teal","purple","yellow","orange","pink"],f=Ember.Object.extend(i.default,{validationType:"customView",name:"",route:"",color:"",filter:null,isNew:!1,isDefault:!1,init(){this._super(...arguments),this.filter||(this.filter={}),this.color||(this.color=g[Math.floor(Math.random()*g.length)])},toJSON(){return{name:this.name,route:this.route,color:this.color,filter:this.filter}}}),v=[{route:"posts",name:"Drafts",color:"midgrey",icon:"pen",filter:{type:"draft"}},{route:"posts",name:"Scheduled",color:"midgrey",icon:"clock",filter:{type:"scheduled"}},{route:"posts",name:"Published",color:"midgray",icon:"published-post",filter:{type:"published"}}].map(e=>f.create(Object.assign({},e,{isDefault:!0})))
|
|
2992
|
-
let y=function(e,t){let i=Object.getOwnPropertyNames(e),r=Object.getOwnPropertyNames(t)
|
|
3047
|
+
const g=["midgrey","blue","green","red","teal","purple","yellow","orange","pink"],f=Ember.Object.extend(i.default,{validationType:"customView",name:"",route:"",color:"",filter:null,isNew:!1,isDefault:!1,init(){this._super(...arguments),this.filter||(this.filter={}),this.color||(this.color=g[Math.floor(Math.random()*g.length)])},toJSON(){return{name:this.name,route:this.route,color:this.color,filter:this.filter}}}),v=[{route:"posts",name:"Drafts",color:"midgrey",icon:"pen",filter:{type:"draft"}},{route:"posts",name:"Scheduled",color:"midgrey",icon:"clock",filter:{type:"scheduled"}},{route:"posts",name:"Published",color:"midgray",icon:"published-post",filter:{type:"published"}}].map(e=>f.create(Object.assign({},e,{isDefault:!0}))),y=function(e,t){const i=Object.getOwnPropertyNames(e),r=Object.getOwnPropertyNames(t)
|
|
2993
3048
|
if(i.length!==r.length)return!1
|
|
2994
|
-
for(let n=0;n<i.length;n++){
|
|
3049
|
+
for(let n=0;n<i.length;n++){const r=i[n]
|
|
2995
3050
|
if(e[r]!==t[r])return!1}return!0},w=function(e,t){return e.route===t.route&&y(e.filter,t.filter)}
|
|
2996
|
-
e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember._action,u=class extends Ember.Service{constructor(...e){super(...e),h(this,"modals",c,this),h(this,"router",d,this),h(this,"session",p,this),h(this,"settings",m,this)}get viewList(){
|
|
3051
|
+
e.default=(n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember._action,u=class extends Ember.Service{constructor(...e){super(...e),h(this,"modals",c,this),h(this,"router",d,this),h(this,"session",p,this),h(this,"settings",m,this)}get viewList(){const{settings:e,session:t}=this
|
|
2997
3052
|
if(!t.isAuthenticated||!t.user)return[]
|
|
2998
3053
|
let i=JSON.parse(e.sharedViews||"[]")
|
|
2999
3054
|
i=Ember.isArray(i)?i:[]
|
|
@@ -3001,14 +3056,13 @@ const r=[]
|
|
|
3001
3056
|
return t.user.isContributor||r.push(...v),r.push(...i.map(e=>f.create(e))),r}*saveViewTask(e){yield e.validate()
|
|
3002
3057
|
const{viewList:t}=this
|
|
3003
3058
|
if(t.find(t=>t.route===e.route&&t.name.trim().toLowerCase()===e.name.trim().toLowerCase()&&!y(t.filter,e.filter)))return e.errors.add("name","Has already been used"),e.hasValidated.pushObject("name"),e.invalidate(),!1
|
|
3004
|
-
|
|
3005
|
-
return i?t.replace(t.indexOf(i),1,[e]):t.push(e),yield this._saveViewSettings(t),e.set("isNew",!1),e}*deleteViewTask(e){const{viewList:t}=this
|
|
3006
|
-
let i=t.find(t=>w(t,e))
|
|
3059
|
+
const i=t.find(t=>w(t,e))
|
|
3060
|
+
return i?t.replace(t.indexOf(i),1,[e]):t.push(e),yield this._saveViewSettings(t),e.set("isNew",!1),e}*deleteViewTask(e){const{viewList:t}=this,i=t.find(t=>w(t,e))
|
|
3007
3061
|
if(i&&!i.isDefault)return t.removeObject(i),yield this._saveViewSettings(t),!0}get availableColors(){return g}get forPosts(){return this.viewList.filter(e=>"posts"===e.route)}get forPages(){return this.viewList.filter(e=>"pages"===e.route)}get activeView(){if(!this.router.currentRoute)return
|
|
3008
|
-
return this.findView(this.router.currentRouteName,this.router.currentRoute.queryParams)}findView(e,t){
|
|
3062
|
+
return this.findView(this.router.currentRouteName,this.router.currentRoute.queryParams)}findView(e,t){const i=e.replace(/_loading$/,"")
|
|
3009
3063
|
return this.viewList.find(e=>e.route===i&&y(this.cleanFilter(e.filter),t))}cleanFilter(e){return Object.fromEntries(Object.entries(e).filter(([,e])=>null!==e))}isFilterEqual(e,t){const i=Object.keys(e),r=Object.keys(t)
|
|
3010
3064
|
return i.length===r.length&&i.every(i=>e[i]===t[i])}newView(){return f.create({isNew:!0,route:this.router.currentRouteName,filter:this.router.currentRoute.queryParams})}editView(){const e=f.create(this.activeView||this.newView())
|
|
3011
|
-
return this.modals.open(t.default,{customView:e})}async _saveViewSettings(e){
|
|
3065
|
+
return this.modals.open(t.default,{customView:e})}async _saveViewSettings(e){const t=e.reject(e=>e.isDefault).map(e=>e.toJSON())
|
|
3012
3066
|
return this.settings.sharedViews=JSON.stringify(t),this.settings.save()}},c=b(u.prototype,"modals",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=b(u.prototype,"router",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=b(u.prototype,"session",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m=b(u.prototype,"settings",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b(u.prototype,"saveViewTask",[r.task],Object.getOwnPropertyDescriptor(u.prototype,"saveViewTask"),u.prototype),b(u.prototype,"deleteViewTask",[r.task],Object.getOwnPropertyDescriptor(u.prototype,"deleteViewTask"),u.prototype),b(u.prototype,"editView",[l],Object.getOwnPropertyDescriptor(u.prototype,"editView"),u.prototype),u)}),define("ghost-admin/services/data-cache",["exports"],function(e){function t(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
3013
3067
|
var i=e[Symbol.toPrimitive]
|
|
3014
3068
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
@@ -3040,31 +3094,31 @@ if(r?.html){const e=new Blob([r.html]).size,t=this._calculateLinkRewritingAdjust
|
|
|
3040
3094
|
let a=!1
|
|
3041
3095
|
return i>=102400&&(a=!0),{overLimit:a,emailSizeKb:n}}}catch(t){console.error("Email size check failed:",t)}return{overLimit:!1,emailSizeKb:null}}},o=m(s.prototype,"ajax",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=m(s.prototype,"ghostPaths",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=m(s.prototype,"store",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=m(s.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m(s.prototype,"_fetchTask",[i.task],Object.getOwnPropertyDescriptor(s.prototype,"_fetchTask"),s.prototype),s)}),define("ghost-admin/services/ember-load-config",["exports","ember-load/services/ember-load-config","ghost-admin/config/environment"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3042
3096
|
const r=i.default["ember-load"]||{}
|
|
3043
|
-
e.default=t.default.extend({loadingIndicatorClass:r.loadingIndicatorClass})}),define("ghost-admin/services/feature",["exports","jquery","ghost-admin/decorators/inject"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U,F,B,H,V,q,$,Y,W
|
|
3044
|
-
function
|
|
3097
|
+
e.default=t.default.extend({loadingIndicatorClass:r.loadingIndicatorClass})}),define("ghost-admin/services/feature",["exports","jquery","ghost-admin/decorators/inject"],function(e,t,i){var r,n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U,F,B,H,V,q,$,Y,W,K,G,J,X,Q,Z
|
|
3098
|
+
function ee(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 te(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
3045
3099
|
var i=e[Symbol.toPrimitive]
|
|
3046
3100
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
3047
3101
|
if("object"!=typeof r)return r
|
|
3048
3102
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
3049
|
-
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function
|
|
3050
|
-
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.feature=
|
|
3051
|
-
const
|
|
3052
|
-
function
|
|
3103
|
+
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}function ie(e,t,i,r,n){var a={}
|
|
3104
|
+
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.feature=ne
|
|
3105
|
+
const re="ghost-admin:labs-overrides"
|
|
3106
|
+
function ne(e,t={}){const{user:i,onChange:r}=t,n=i?[`accessibility.${e}`]:[`config.${e}`,`labs.${e}`,"_featureFlagOverridesRevision"]
|
|
3053
3107
|
return Ember.computed.apply(Ember,n.concat({get(){let t=!1
|
|
3054
|
-
return t=i?this.get(`accessibility.${e}`):!!function(){try{const e=JSON.parse(sessionStorage.getItem(
|
|
3055
|
-
return Array.isArray(e)?e.filter(e=>"string"==typeof e):[]}catch(e){return[]}}().includes(e)||("boolean"==typeof this.get(`config.${e}`)?this.get(`config.${e}`):this.get(`labs.${e}`)||!1),t},set(i,n){return this.update(e,n,t),r&&this.get(r).bind(this)(n),n}}))}e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=
|
|
3056
|
-
return"system"===e?this._osPrefersDark:"dark"===e||!0===e}refreshFeatureFlagOverrides(){this.incrementProperty("_featureFlagOverridesRevision")}get labs(){
|
|
3057
|
-
try{return JSON.parse(e)||{}}catch(t){return{}}}get accessibility(){
|
|
3058
|
-
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={}){
|
|
3108
|
+
return t=i?this.get(`accessibility.${e}`):!!function(){try{const e=JSON.parse(sessionStorage.getItem(re)||"[]")
|
|
3109
|
+
return Array.isArray(e)?e.filter(e=>"string"==typeof e):[]}catch(e){return[]}}().includes(e)||("boolean"==typeof this.get(`config.${e}`)?this.get(`config.${e}`):this.get(`labs.${e}`)||!1),t},set(i,n){return this.update(e,n,t),r&&this.get(r).bind(this)(n),n}}))}e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service,l=Ember.inject.service,u=ne("emailAnalytics"),c=ne("nightShift",{user:!0,onChange:"_setAdminTheme"}),d=Ember.computed("_nightShiftPref","_osPrefersDark"),p=ne("referralInviteDismissed",{user:!0}),m=ne("stripeAutomaticTax"),h=ne("importMemberTier"),b=ne("adminUIRefresh"),g=ne("editorExcerpt"),f=ne("tagDetailsReact"),v=ne("paywallImprovements"),y=ne("automations"),w=ne("csvContentImporter"),E=ne("postsListReact"),P=ne("membersActivityReact"),_=ne("membersCustomFields"),k=ne("editorReact"),O=ne("improveSendingUI"),j=ne("dunningWarnings"),T=Ember.computed("settings.labs"),z=Ember.computed("_user.accessibility"),x=class extends Ember.Service{constructor(...e){super(...e),ee(this,"ghostPaths",S,this),ee(this,"lazyLoader",C,this),ee(this,"notifications",M,this),ee(this,"session",D,this),ee(this,"settings",A,this),ee(this,"store",I,this),ee(this,"config",L,this),ee(this,"emailAnalytics",R,this),ee(this,"_nightShiftPref",N,this),te(this,"_osPrefersDark",!1),te(this,"_systemThemeMediaQuery",null),te(this,"_systemThemeListener",null),ee(this,"referralInviteDismissed",U,this),ee(this,"stripeAutomaticTax",F,this),ee(this,"importMemberTier",B,this),ee(this,"adminUIRefresh",H,this),ee(this,"editorExcerpt",V,this),ee(this,"tagDetailsReact",q,this),ee(this,"paywallImprovements",$,this),ee(this,"automations",Y,this),ee(this,"csvContentImporter",W,this),ee(this,"postsListReact",K,this),ee(this,"membersActivityReact",G,this),ee(this,"membersCustomFields",J,this),ee(this,"editorReact",X,this),ee(this,"improveSendingUI",Q,this),ee(this,"dunningWarnings",Z,this),te(this,"_user",null),te(this,"_featureFlagOverridesRevision",0)}get nightShift(){const e=this._nightShiftPref
|
|
3110
|
+
return"system"===e?this._osPrefersDark:"dark"===e||!0===e}refreshFeatureFlagOverrides(){this.incrementProperty("_featureFlagOverridesRevision")}get labs(){const e=this.settings.labs
|
|
3111
|
+
try{return JSON.parse(e)||{}}catch(t){return{}}}get accessibility(){const e=this.get("_user.accessibility")
|
|
3112
|
+
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={}){const r=i.user?"accessibility":"labs",n=this.get(i.user?"_user":"settings"),a=this.get(r)
|
|
3059
3113
|
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}.`)
|
|
3060
3114
|
return this.notifications.showAPIError(t),this.get(`${r}.${e}`)})}_loadAdminThemeStylesheet(){return this.lazyLoader.loadStyle("dark","assets/ghost-dark-cac0cb2d5bb78e9bd14d8d1c2768ed45.css",!0)}_setAdminTheme(e){let i=e
|
|
3061
3115
|
void 0===i&&(i=this._nightShiftPref),this._removeSystemThemeListener(),!0===i?i="dark":(!1===i||"dark"!==i&&"light"!==i&&"system"!==i)&&(i="light")
|
|
3062
3116
|
let r="dark"===i
|
|
3063
3117
|
const n=document.documentElement,a=()=>{requestAnimationFrame(()=>requestAnimationFrame(()=>{n.classList.remove("theme-switching")}))}
|
|
3064
|
-
if("system"===i){
|
|
3118
|
+
if("system"===i){const e=this._getSystemThemeMediaQuery()
|
|
3065
3119
|
r=e?.matches??!1,Ember.set(this,"_osPrefersDark",r),e&&(this._systemThemeMediaQuery=e,this._systemThemeListener=e=>{n.classList.add("theme-switching"),n.classList.toggle("dark",e.matches),(0,t.default)("link[title=dark]").prop("disabled",!e.matches),Ember.set(this,"_osPrefersDark",e.matches),a()},this._addSystemThemeListener())}else Ember.set(this,"_osPrefersDark",!1)
|
|
3066
3120
|
return n.classList.add("theme-switching"),n.classList.toggle("dark",r),(0,t.default)("link[title=dark]").prop("disabled",!r),this._loadAdminThemeStylesheet().then(()=>{const e="system"===i?this._osPrefersDark:r
|
|
3067
|
-
n.classList.toggle("dark",e),(0,t.default)("link[title=dark]").prop("disabled",!e),a()}).catch(()=>{(0,t.default)("link[title=dark]").prop("disabled",!0),n.classList.remove("dark"),a()})}_getSystemThemeMediaQuery(){return"undefined"==typeof window||"function"!=typeof window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}_addSystemThemeListener(){"function"==typeof this._systemThemeMediaQuery?.addEventListener?this._systemThemeMediaQuery.addEventListener("change",this._systemThemeListener):"function"==typeof this._systemThemeMediaQuery?.addListener&&this._systemThemeMediaQuery.addListener(this._systemThemeListener)}_removeSystemThemeListener(){this._systemThemeListener&&("function"==typeof this._systemThemeMediaQuery?.removeEventListener?this._systemThemeMediaQuery.removeEventListener("change",this._systemThemeListener):"function"==typeof this._systemThemeMediaQuery?.removeListener&&this._systemThemeMediaQuery.removeListener(this._systemThemeListener),this._systemThemeMediaQuery=null,this._systemThemeListener=null)}willDestroy(){super.willDestroy(...arguments),this._removeSystemThemeListener()}},
|
|
3121
|
+
n.classList.toggle("dark",e),(0,t.default)("link[title=dark]").prop("disabled",!e),a()}).catch(()=>{(0,t.default)("link[title=dark]").prop("disabled",!0),n.classList.remove("dark"),a()})}_getSystemThemeMediaQuery(){return"undefined"==typeof window||"function"!=typeof window.matchMedia?null:window.matchMedia("(prefers-color-scheme: dark)")}_addSystemThemeListener(){"function"==typeof this._systemThemeMediaQuery?.addEventListener?this._systemThemeMediaQuery.addEventListener("change",this._systemThemeListener):"function"==typeof this._systemThemeMediaQuery?.addListener&&this._systemThemeMediaQuery.addListener(this._systemThemeListener)}_removeSystemThemeListener(){this._systemThemeListener&&("function"==typeof this._systemThemeMediaQuery?.removeEventListener?this._systemThemeMediaQuery.removeEventListener("change",this._systemThemeListener):"function"==typeof this._systemThemeMediaQuery?.removeListener&&this._systemThemeMediaQuery.removeListener(this._systemThemeListener),this._systemThemeMediaQuery=null,this._systemThemeListener=null)}willDestroy(){super.willDestroy(...arguments),this._removeSystemThemeListener()}},S=ie(x.prototype,"ghostPaths",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=ie(x.prototype,"lazyLoader",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=ie(x.prototype,"notifications",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=ie(x.prototype,"session",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=ie(x.prototype,"settings",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=ie(x.prototype,"store",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=ie(x.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=ie(x.prototype,"emailAnalytics",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=ie(x.prototype,"_nightShiftPref",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ie(x.prototype,"nightShift",[d],Object.getOwnPropertyDescriptor(x.prototype,"nightShift"),x.prototype),U=ie(x.prototype,"referralInviteDismissed",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),F=ie(x.prototype,"stripeAutomaticTax",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B=ie(x.prototype,"importMemberTier",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),H=ie(x.prototype,"adminUIRefresh",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),V=ie(x.prototype,"editorExcerpt",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),q=ie(x.prototype,"tagDetailsReact",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),$=ie(x.prototype,"paywallImprovements",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Y=ie(x.prototype,"automations",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),W=ie(x.prototype,"csvContentImporter",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),K=ie(x.prototype,"postsListReact",[E],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),G=ie(x.prototype,"membersActivityReact",[P],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),J=ie(x.prototype,"membersCustomFields",[_],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),X=ie(x.prototype,"editorReact",[k],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Q=ie(x.prototype,"improveSendingUI",[O],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),Z=ie(x.prototype,"dunningWarnings",[j],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),ie(x.prototype,"labs",[T],Object.getOwnPropertyDescriptor(x.prototype,"labs"),x.prototype),ie(x.prototype,"accessibility",[z],Object.getOwnPropertyDescriptor(x.prototype,"accessibility"),x.prototype),x)}),define("ghost-admin/services/frontend",["exports","fetch","validator","ghost-admin/decorators/inject"],function(e,t,i,r){var n,a,s,o,l,u
|
|
3068
3122
|
function c(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function d(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
3069
3123
|
var i=e[Symbol.toPrimitive]
|
|
3070
3124
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
@@ -3103,11 +3157,11 @@ return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enum
|
|
|
3103
3157
|
e.default=(r=Ember.inject.service,n=class extends Ember.Service{constructor(...e){var t,i,r,n
|
|
3104
3158
|
super(...e),t=this,i="ajax",n=this,(r=a)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(n):void 0}),s(this,"testing",void 0),s(this,"scriptPromises",null)}init(){super.init(...arguments),this.scriptPromises={},void 0===this.testing&&(this.testing="test"===t.default.environment)}loadScript(e,t){if(this.testing)return Ember.RSVP.resolve()
|
|
3105
3159
|
if(this.scriptPromises[e])return this.scriptPromises[e]
|
|
3106
|
-
|
|
3160
|
+
const r=new Ember.RSVP.Promise((e,r)=>{const n=document.createElement("script")
|
|
3107
3161
|
n.type="text/javascript",n.async=!0,n.src=(0,i.prefixAssetUrl)(t)
|
|
3108
|
-
|
|
3162
|
+
const a=document.getElementsByTagName("script")[0]
|
|
3109
3163
|
a.parentNode.insertBefore(n,a),n.addEventListener("load",()=>{e()}),n.addEventListener("error",()=>{r(new Error(`${t} failed to load`))})})
|
|
3110
|
-
return this.scriptPromises[e]=r,r}loadStyle(e,t,r=!1){return this.testing||document.querySelector(`#${e}-styles`)?Ember.RSVP.resolve():new Ember.RSVP.Promise((n,a)=>{
|
|
3164
|
+
return this.scriptPromises[e]=r,r}loadStyle(e,t,r=!1){return this.testing||document.querySelector(`#${e}-styles`)?Ember.RSVP.resolve():new Ember.RSVP.Promise((n,a)=>{const s=document.createElement("link")
|
|
3111
3165
|
s.id=`${e}-styles`,s.rel=r?"alternate stylesheet":"stylesheet",s.href=(0,i.prefixAssetUrl)(t),s.onload=()=>{s.onload=null,r&&(s.disabled=!0),n()},s.onerror=a,r&&(s.title=e)
|
|
3112
3166
|
let o=document.querySelector('head link[rel="stylesheet"]:first-of-type')
|
|
3113
3167
|
if(o){for(;o.nextElementSibling&&"LINK"===o.nextElementSibling.tagName;)o=o.nextElementSibling
|
|
@@ -3115,8 +3169,10 @@ o.insertAdjacentElement("afterend",s)}else document.querySelector("head").append
|
|
|
3115
3169
|
var o,l,u,c,d,p}),define("ghost-admin/services/limit",["exports","@tryghost/limit-service","ghost-admin/decorators/inject"],function(e,t,i){var r,n,a,s,o,l,u,c
|
|
3116
3170
|
function d(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function p(e,t,i,r,n){var a={}
|
|
3117
3171
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3118
|
-
class m{constructor({errorType:e,errorDetails:t,message:i}){this.errorType=e,this.errorDetails=t,this.message=i}}class h extends m{constructor(e){super(Object.assign({errorType:"IncorrectUsageError"},e))}}class b extends m{constructor(e){super(Object.assign({errorType:"HostLimitError"},e))}}e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=class extends Ember.Service{constructor(){super(...arguments),d(this,"store",o,this),d(this,"membersStats",l,this),d(this,"membersCountCache",u,this),d(this,"config",c,this),this.limiter=new t.
|
|
3119
|
-
|
|
3172
|
+
class m{constructor({errorType:e,errorDetails:t,message:i}){this.errorType=e,this.errorDetails=t,this.message=i}}class h extends m{constructor(e){super(Object.assign({errorType:"IncorrectUsageError"},e))}}class b extends m{constructor(e){super(Object.assign({errorType:"HostLimitError"},e))}}e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=class extends Ember.Service{constructor(){super(...arguments),d(this,"store",o,this),d(this,"membersStats",l,this),d(this,"membersCountCache",u,this),d(this,"config",c,this),this.limiter=new t.LimitService,this.loadLimits()}async checkWouldGoOverLimit(e,t={}){return this.limiter.checkWouldGoOverLimit(e,t)}loadLimits(){const e=this.config.hostSettings?.limits
|
|
3173
|
+
if(!e)return
|
|
3174
|
+
let t,i
|
|
3175
|
+
t=!0===this.config.hostSettings?.billing?.enabled&&this.config.hostSettings?.billing?.url?this.config.hostSettings.billing?.url:"https://ghost.org/help/",this.config.hostSettings?.subscription?.start&&(i={startDate:this.config.hostSettings.subscription.start,interval:"month"}),this.limiter.loadLimits({limits:this.decorateWithCountQueries(this.usableLimits(e,i)),subscription:i,helpLink:t,errors:{HostLimitError:b,IncorrectUsageError:h}})}usableLimits(e,t){return t?e:Object.fromEntries(Object.entries(e).filter(([e,t])=>!t||!Object.prototype.hasOwnProperty.call(t,"maxPeriodic")||(console.warn(`Skipping ${e} limit: periodic limits need hostSettings.subscription`),!1)))}reload(){this.loadLimits()}decorateWithCountQueries(e){return e.staff&&(e.staff.currentCountQuery=Ember.run.bind(this,this.getStaffUsersCount)),e.members&&(e.members.currentCountQuery=Ember.run.bind(this,this.getMembersCount)),e.newsletters&&(e.newsletters.currentCountQuery=Ember.run.bind(this,this.getNewslettersCount)),e.emails&&(e.emails.currentCountQuery=Ember.run.bind(this,this.getEmailsCount)),e}async getStaffUsersCount(){return Ember.RSVP.hash({users:this.store.findAll("user",{reload:!0}),invites:this.store.findAll("invite",{reload:!0}),roles:this.store.findAll("role",{reload:!0})}).then(e=>{const t=e.users.filter(e=>"inactive"!==e.get("status")&&"Contributor"!==e.role.get("name")),i=e.invites.filter(e=>"Contributor"!==e.role.get("name"))
|
|
3120
3176
|
return t.length+i.length})}async getMembersCount(){return this.membersCountCache.count({})}async getNewslettersCount(){return(await this.store.query("newsletter",{filter:"status:active",limit:"all"})).length}async getEmailsCount(e,t){const i=new Date(t).toISOString()
|
|
3121
3177
|
return(await this.store.query("email",{filter:`created_at:>='${i}'`,fields:"id,email_count",limit:"all"})).reduce((e,t)=>e+(t.emailCount??0),0)}},o=p(s.prototype,"store",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),l=p(s.prototype,"membersStats",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),u=p(s.prototype,"membersCountCache",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=p(s.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s)}),define("ghost-admin/services/liquid-fire-transitions",["exports","liquid-wormhole/services/liquid-fire-transitions"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/services/liquid-wormhole",["exports","liquid-wormhole/services/liquid-wormhole"],function(e,t){var i,r
|
|
3122
3178
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -3148,10 +3204,9 @@ for(const[i,r]of Object.entries(e))t[r.title]||(t[r.title]=[]),t[r.title].push({
|
|
|
3148
3204
|
console.groupCollapsed("Local revisions")
|
|
3149
3205
|
for(const[i,r]of Object.entries(t)){console.groupCollapsed(`${i}`)
|
|
3150
3206
|
for(const e of r.sort((e,t)=>t.timestamp-e.timestamp))console.groupCollapsed(`${e.time}`),console.log("Revision ID: ",e.key),console.groupEnd()
|
|
3151
|
-
console.groupEnd()}console.groupEnd()}async restore(e){try{const t=this.find(e)
|
|
3152
|
-
let i=[]
|
|
3207
|
+
console.groupEnd()}console.groupEnd()}async restore(e){try{const t=this.find(e),i=[]
|
|
3153
3208
|
if(t.authors)for(const e of t.authors){const t=await this.store.queryRecord("user",{id:e.id})
|
|
3154
|
-
i.push(t)}
|
|
3209
|
+
i.push(t)}const r=this.store.createRecord("post",{title:`(Restored) ${t.title}`,lexical:t.lexical,authors:i,type:t.type,slug:t.slug||"untitled",status:"draft",tags:t.tags||[],post_revisions:[]})
|
|
3155
3210
|
await r.save()
|
|
3156
3211
|
const n=window.location,a=`${n.origin}${n.pathname}#/editor/${r.get("type")}/${r.id}`
|
|
3157
3212
|
return console.log("Post restored: ",a),r}catch(t){console.warn(t)}}filterRevisions(e){if("draft"===e)return
|
|
@@ -3177,43 +3232,40 @@ try{return(yield this.store.query("member",{...e,order:"id",limit:1,page:1})).me
|
|
|
3177
3232
|
function k(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function O(e,t,i,r,n){var a={}
|
|
3178
3233
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3179
3234
|
const j=6e4
|
|
3180
|
-
e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember._tracked,o=Ember._tracked,l=Ember._tracked,u=Ember._tracked,c=Ember._tracked,d=Ember._tracked,p=Ember._tracked,m=class extends Ember.Service{constructor(...e){super(...e),k(this,"ajax",h,this),k(this,"ghostPaths",b,this),k(this,"store",g,this),k(this,"days",f,this),k(this,"stats",v,this),k(this,"events",y,this),k(this,"countStats",w,this),k(this,"mrrStats",E,this),k(this,"newsletterStats",P,this),k(this,"totalMemberCount",_,this)}get memberCount(){
|
|
3235
|
+
e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember._tracked,o=Ember._tracked,l=Ember._tracked,u=Ember._tracked,c=Ember._tracked,d=Ember._tracked,p=Ember._tracked,m=class extends Ember.Service{constructor(...e){super(...e),k(this,"ajax",h,this),k(this,"ghostPaths",b,this),k(this,"store",g,this),k(this,"days",f,this),k(this,"stats",v,this),k(this,"events",y,this),k(this,"countStats",w,this),k(this,"mrrStats",E,this),k(this,"newsletterStats",P,this),k(this,"totalMemberCount",_,this)}get memberCount(){const e=this.totalMemberCount
|
|
3181
3236
|
if(!e)return 0
|
|
3182
3237
|
const{free:t,paid:i,comped:r,gift:n}=e.meta.totals
|
|
3183
|
-
return t+i+r+n||0}fetch(){
|
|
3184
|
-
return!this.stats||this._forceRefresh||e||t||!this._fetchTask.last?this._fetchTask.perform():this._fetchTask.last}fetchCounts(){
|
|
3238
|
+
return t+i+r+n||0}fetch(){const e=this._lastFetchedDays!==this.days,t=this._lastFetched&&new Date-this._lastFetched>j
|
|
3239
|
+
return!this.stats||this._forceRefresh||e||t||!this._fetchTask.last?this._fetchTask.perform():this._fetchTask.last}fetchCounts(){const e=this._lastFetchedCounts&&new Date-this._lastFetchedCounts>j
|
|
3185
3240
|
return this.countStats&&!this._forceRefresh&&!e&&this._fetchCountsTask.last?this._fetchCountsTask.last:this._fetchCountsTask.perform()}fetchMemberCount(){if(this._fetchMemberCountsTask.isRunning)return this._fetchMemberCountsTask.last
|
|
3186
|
-
|
|
3187
|
-
return this.totalMemberCount&&!this._forceRefresh&&!e&&this._fetchMemberCountsTask.last?this._fetchMemberCountsTask.last:this._fetchMemberCountsTask.perform()}fetchNewsletterStats(){
|
|
3188
|
-
return this.newsletterStats&&!this._forceRefresh&&!e&&this._fetchNewsletterStatsTask.last?this._fetchNewsletterStatsTask.last:this._fetchNewsletterStatsTask.perform()}fillDates(e=[]){let i=(0,t.default)().subtract(30,"days")
|
|
3189
|
-
const n={},a=e.findIndex(e=>(0,t.default)(e.date).isAfter(i))
|
|
3241
|
+
const e=this._lastFetchedMemberCounts&&new Date-this._lastFetchedMemberCounts>j
|
|
3242
|
+
return this.totalMemberCount&&!this._forceRefresh&&!e&&this._fetchMemberCountsTask.last?this._fetchMemberCountsTask.last:this._fetchMemberCountsTask.perform()}fetchNewsletterStats(){const e=this._lastFetchedNewsletterStats&&new Date-this._lastFetchedNewsletterStats>j
|
|
3243
|
+
return this.newsletterStats&&!this._forceRefresh&&!e&&this._fetchNewsletterStatsTask.last?this._fetchNewsletterStatsTask.last:this._fetchNewsletterStatsTask.perform()}fillDates(e=[]){let i=(0,t.default)().subtract(30,"days")
|
|
3244
|
+
const r=(0,t.default)().add(1,"hour"),n={},a=e.findIndex(e=>(0,t.default)(e.date).isAfter(i))
|
|
3190
3245
|
let s=a>0?e[a-1]:null
|
|
3191
3246
|
0!==a||s||(s=e[a]),e.length>0&&!s&&0!==a&&(s=e[e.length-1])
|
|
3192
3247
|
let o=s?s.value:0
|
|
3193
|
-
for(;i.isBefore(r);){
|
|
3194
|
-
|
|
3195
|
-
|
|
3196
|
-
const n={},a=e.findIndex(e=>(0,t.default)(e.date).isAfter(i))
|
|
3248
|
+
for(;i.isBefore(r);){const t=i.format("YYYY-MM-DD"),r=e.find(e=>e.date===t)
|
|
3249
|
+
n[t]=r?r.value:o,o=n[t],i=i.add(1,"day")}return n}fillCountDates(e={}){let i=(0,t.default)().subtract(30,"days")
|
|
3250
|
+
const r=(0,t.default)().add(1,"hour"),n={},a=e.findIndex(e=>(0,t.default)(e.date).isAfter(i))
|
|
3197
3251
|
let s=a>0?e[a-1]:null
|
|
3198
3252
|
0!==a||s||(s=e[a]),e.length>0&&!s&&0!==a&&(s=e[e.length-1])
|
|
3199
3253
|
let o={paid:s?s.paid:0,free:s?s.free:0,comped:s?s.comped:0,gift:s?s.gift:0,total:s?s.paid+s.free+s.comped+s.gift:0}
|
|
3200
|
-
for(;i.isBefore(r);){
|
|
3201
|
-
|
|
3202
|
-
|
|
3203
|
-
return this.mrrStats&&!this._forceRefresh&&!e&&this._fetchMRRTask?this._fetchMRRTask.last:this._fetchMRRTask.perform()}invalidate(){this._forceRefresh=!0}*_fetchNewsletterStatsTask(){let e={filter:"email_count:-0",order:"submitted_at desc",limit:5}
|
|
3204
|
-
const i=yield this.store.query("email",e),r=i.toArray()
|
|
3254
|
+
for(;i.isBefore(r);){const t=i.format("YYYY-MM-DD"),r=e.find(e=>e.date===t)
|
|
3255
|
+
n[t]=r?{paid:r.paid,free:r.free,comped:r.comped,gift:r.gift,total:r.paid+r.free+r.comped+r.gift}:o,o=n[t],i=i.add(1,"day")}return n}fetchMRR(){const e=this._lastFetchedMRR&&new Date-this._lastFetchedMRR>j
|
|
3256
|
+
return this.mrrStats&&!this._forceRefresh&&!e&&this._fetchMRRTask?this._fetchMRRTask.last:this._fetchMRRTask.perform()}invalidate(){this._forceRefresh=!0}*_fetchNewsletterStatsTask(){const e={filter:"email_count:-0",order:"submitted_at desc",limit:5},i=yield this.store.query("email",e),r=i.toArray()
|
|
3205
3257
|
let n=r.map(e=>({subject:e.subject,submittedAt:(0,t.default)(e.submittedAtUTC).format("YYYY-MM-DD"),openRate:e.openRate}))
|
|
3206
3258
|
const a=[]
|
|
3207
3259
|
if(r.length<5){const e=5-r.length,n=r.length>0?r[i.length-1].submittedAtUTC:(0,t.default)()
|
|
3208
3260
|
for(let i=0;i<e;i++)a.push({subject:"",submittedAt:(0,t.default)(n).subtract(i+1,"days").format("YYYY-MM-DD"),openRate:0})}return n=n.concat(a),n.reverse(),this.newsletterStats=n,n}*_fetchCountsTask(){this._lastFetchedCounts=new Date
|
|
3209
|
-
|
|
3261
|
+
const e=this.ghostPaths.url.api("members/stats/count"),t=yield this.ajax.request(e)
|
|
3210
3262
|
return this.countStats=t,t}*_fetchMemberCountsTask(){this._lastFetchedMemberCounts=new Date
|
|
3211
|
-
|
|
3263
|
+
const e=this.ghostPaths.url.api("stats/member_count/"),t=yield this.ajax.request(e)
|
|
3212
3264
|
return this.totalMemberCount=t,t}*_fetchMRRTask(){this._lastFetchedMRR=new Date
|
|
3213
|
-
|
|
3214
|
-
return this.mrrStats=t,t}*_fetchTask(){
|
|
3265
|
+
const e=this.ghostPaths.url.api("members/stats/mrr"),t=yield this.ajax.request(e)
|
|
3266
|
+
return this.mrrStats=t,t}*_fetchTask(){const{days:e}=this
|
|
3215
3267
|
this._lastFetchedDays=e,this._lastFetched=new Date,this._forceRefresh=!1
|
|
3216
|
-
|
|
3268
|
+
const t=this.ghostPaths.url.api("members/stats"),i=yield this.ajax.request(t,{data:{days:e}})
|
|
3217
3269
|
return this.stats=i,i}},h=O(m.prototype,"ajax",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=O(m.prototype,"ghostPaths",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),g=O(m.prototype,"store",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=O(m.prototype,"days",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return"30"}}),v=O(m.prototype,"stats",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),y=O(m.prototype,"events",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),w=O(m.prototype,"countStats",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),E=O(m.prototype,"mrrStats",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),P=O(m.prototype,"newsletterStats",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),_=O(m.prototype,"totalMemberCount",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),O(m.prototype,"_fetchNewsletterStatsTask",[i.task],Object.getOwnPropertyDescriptor(m.prototype,"_fetchNewsletterStatsTask"),m.prototype),O(m.prototype,"_fetchCountsTask",[i.task],Object.getOwnPropertyDescriptor(m.prototype,"_fetchCountsTask"),m.prototype),O(m.prototype,"_fetchMemberCountsTask",[i.task],Object.getOwnPropertyDescriptor(m.prototype,"_fetchMemberCountsTask"),m.prototype),O(m.prototype,"_fetchMRRTask",[i.task],Object.getOwnPropertyDescriptor(m.prototype,"_fetchMRRTask"),m.prototype),O(m.prototype,"_fetchTask",[i.task],Object.getOwnPropertyDescriptor(m.prototype,"_fetchTask"),m.prototype),m)}),define("ghost-admin/services/members-utils",["exports","ghost-admin/decorators/inject"],function(e,t){var i,r,n,a,s,o,l,u,c,d
|
|
3218
3270
|
function p(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function m(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
3219
3271
|
var i=e[Symbol.toPrimitive]
|
|
@@ -3259,14 +3311,14 @@ const b=["AggregateError","EvalError","RangeError","ReferenceError","SyntaxError
|
|
|
3259
3311
|
e.default=(a=Ember.inject.service,s=Ember._tracked,o=Ember._tracked,l=class extends Ember.Service{constructor(...e){super(...e),m(this,"upgradeStatus",u,this),m(this,"config",c,this),m(this,"delayedNotifications",d,this),m(this,"content",p,this)}get alerts(){return this.content.filter(e=>"alert"===e.status)}get notifications(){return this.content.filter(e=>"notification"===e.status)}handleNotification(e,t=!1){const r=(e.message.string||e.message).matchAll(/[a-z]+/gim)
|
|
3260
3312
|
for(const i of r)if(b.includes(i[0])){e.message=g
|
|
3261
3313
|
break}"notification"===e.constructor.modelName&&"alert"===e.status&&(e.message=Ember.String.htmlSafe(e.message)),e.status||(e.status="notification"),e.key&&this._removeItems(e.status,e.key)
|
|
3262
|
-
|
|
3314
|
+
const n=e.message.string||e.message
|
|
3263
3315
|
this.content=new i.TrackedArray(this.content.reject(e=>(e.message.string||e.message)===n)),t?this.delayedNotifications.push(e):this.content.push(e)}showAlert(e,i={}){if(!((i=i||{}).isApiError||i.type&&"error"!==i.type)&&this.config.sentry_dsn){const r=e.string||e,n={ghost:{displayed_message:r,ghost_error_code:i.ghostErrorCode,full_error:e}}
|
|
3264
3316
|
t.captureMessage(r,{contexts:n,tags:{shown_to_user:!0,source:"showAlert"}})}this.handleNotification({message:e,status:"alert",description:i.description,icon:i.icon,type:i.type,key:i.key,actions:i.actions},i.delayed)}showNotification(e,t){t=t||{},this.handleNotification({message:e,status:"notification",description:t.description,icon:t.icon,type:t.type,key:t.key,actions:t.actions},t.delayed)}showAPIError(e,t){return(0,n.isVersionMismatchError)(e)?this.upgradeStatus.requireUpgrade():(0,n.isMaintenanceError)(e)?this.upgradeStatus.maintenanceAlert():Ember.isArray(e?.payload?.errors)?e.payload.errors.forEach(e=>{this._showAPIError(e,t)}):void this._showAPIError(e,t)}_showAPIError(e,i){(i=i||{}).type=i.type||"error",i.key||Ember.isBlank(e?.title)||(i.key=Ember.String.dasherize(e?.title)),i.key=["api-error",i.key].compact().join(".")
|
|
3265
3317
|
let r=i.defaultErrorText||g
|
|
3266
3318
|
if(e?.name&&b.includes(e.name)||e?.constructor&&b.includes(e.constructor.name)?r=g:e instanceof String?r=e:Ember.isBlank(e?.message)||(r=e.message),Ember.isBlank(e?.context)||e?.context===r||(r=`${r} ${e.context}`),this.config.sentry_dsn){const i=e instanceof Error?e:r
|
|
3267
|
-
t.captureException(i,{contexts:{ghost:{ghost_error_code:e.ghostErrorCode,displayed_message:r,full_error:e}},tags:{shown_to_user:!0,source:"showAPIError"}})}i.isApiError=!0,this.showAlert(r,i)}displayDelayed(){this.delayedNotifications.forEach(e=>{this.content.push(e)}),this.delayedNotifications=new i.TrackedArray([])}closeNotification(e){
|
|
3268
|
-
"notification"===e.constructor.modelName?(e.deleteRecord(),e.save().finally(()=>{t.removeObject(e)})):t.removeObject(e)}closeNotifications(e){this._removeItems("notification",e)}closeAlerts(e){this._removeItems("alert",e)}clearAll(){this.content=new i.TrackedArray([])}_removeItems(e,t){if(t){
|
|
3269
|
-
this.content=new i.TrackedArray(this.content.reject(t=>{
|
|
3319
|
+
t.captureException(i,{contexts:{ghost:{ghost_error_code:e.ghostErrorCode,displayed_message:r,full_error:e}},tags:{shown_to_user:!0,source:"showAPIError"}})}i.isApiError=!0,this.showAlert(r,i)}displayDelayed(){this.delayedNotifications.forEach(e=>{this.content.push(e)}),this.delayedNotifications=new i.TrackedArray([])}closeNotification(e){const t=this.content
|
|
3320
|
+
"notification"===e.constructor.modelName?(e.deleteRecord(),e.save().finally(()=>{t.removeObject(e)})):t.removeObject(e)}closeNotifications(e){this._removeItems("notification",e)}closeAlerts(e){this._removeItems("alert",e)}clearAll(){this.content=new i.TrackedArray([])}_removeItems(e,t){if(t){const r=this._getKeyBase(t).replace(".","\\."),n=new RegExp(`^${r}`)
|
|
3321
|
+
this.content=new i.TrackedArray(this.content.reject(t=>{const i=t.key
|
|
3270
3322
|
return t.status===e&&i&&i.match(n)}))}else this.content=new i.TrackedArray(this.content.rejectBy("status",e))}_getKeyBase(e){return e.split(".").slice(0,2).join(".")}},u=h(l.prototype,"upgradeStatus",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),c=h(l.prototype,"config",[r.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),d=h(l.prototype,"delayedNotifications",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new i.TrackedArray([])}}),p=h(l.prototype,"content",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return new i.TrackedArray([])}}),l)}),define("ghost-admin/services/onboarding",["exports"],function(e){var t,i,r
|
|
3271
3323
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3272
3324
|
e.default=(t=Ember.inject.service,i=class extends Ember.Service{constructor(...e){var t,i,n,a
|
|
@@ -3352,7 +3404,7 @@ this.user=i}async postAuthPreparation(){const e=this.feature.fetch().finally(()=
|
|
|
3352
3404
|
await Ember.RSVP.all([this.configManager.fetchAuthenticated(),e,this.settings.fetch(),this.membersUtils.fetch()]),this.themeManagement.fetch().catch(console.error),await this.frontend.loginIfNeeded(),this.config.sentry_dsn&&t.configureScope(e=>{e.addEventProcessor(e=>new Promise(t=>{t({...e,release:`ghost@${this.config.version}`,user:{role:this.user.role.name}})}))}),this.loadServerNotifications(),this.koenig.fetch()}async ensurePostAuthPreparation(e){if(!this.configManager.isConfigLoaded){t.captureMessage("Ran postAuthPreparation after authentication bypassed it",{tags:{source:e,ref:"ONC-1774"}})
|
|
3353
3405
|
try{await this.postAuthPreparation()}catch(i){}}}async handleAuthentication(){return this.handleAuthenticationTask.isRunning?this.handleAuthenticationTask.last:this.handleAuthenticationTask.perform(()=>{if(this.stateBridge.triggerEmberAuthChange(),this.skipAuthSuccessHandler)return void(this.skipAuthSuccessHandler=!1)
|
|
3354
3406
|
const e=window.sessionStorage.getItem("ghost-signin-redirect")
|
|
3355
|
-
window.sessionStorage.removeItem("ghost-signin-redirect"),!e||e.startsWith("/signin")||e.startsWith("/signup")||e.startsWith("/setup")?super.handleAuthentication("index"):n.default.replaceLocation(`${i.default.rootURL}#${e}`)})}async requireAuthentication(e,t){this.isAuthenticated||(e.abort(),this.user&&(await this.setup(),this.isAuthenticated&&await this.ensurePostAuthPreparation("requireAuthentication"),this.notifications.clearAll(),e.retry())),super.requireAuthentication(e,t)}handleInvalidation(){
|
|
3407
|
+
window.sessionStorage.removeItem("ghost-signin-redirect"),!e||e.startsWith("/signin")||e.startsWith("/signup")||e.startsWith("/setup")?super.handleAuthentication("index"):n.default.replaceLocation(`${i.default.rootURL}#${e}`)})}async requireAuthentication(e,t){this.isAuthenticated||(e.abort(),this.user&&(await this.setup(),this.isAuthenticated&&await this.ensurePostAuthPreparation("requireAuthentication"),this.notifications.clearAll(),e.retry())),super.requireAuthentication(e,t)}handleInvalidation(){const e=this.appLoadTransition
|
|
3356
3408
|
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)yield this.ensurePostAuthPreparation("handleAuthentication")
|
|
3357
3409
|
else{try{yield this.populateUser()}catch(t){yield this.invalidate()}yield this.postAuthPreparation()}e()}},_=F(P.prototype,"configManager",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k=F(P.prototype,"dataStore",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),O=F(P.prototype,"feature",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),j=F(P.prototype,"koenig",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),T=F(P.prototype,"notifications",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),z=F(P.prototype,"router",[p],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),x=F(P.prototype,"frontend",[m],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=F(P.prototype,"settings",[h],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=F(P.prototype,"ui",[b],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=F(P.prototype,"upgradeStatus",[g],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=F(P.prototype,"membersUtils",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=F(P.prototype,"stateBridge",[v],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=F(P.prototype,"themeManagement",[y],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=F(P.prototype,"config",[a.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=F(P.prototype,"user",[w],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return null}}),F(P.prototype,"handleAuthenticationTask",[E],Object.getOwnPropertyDescriptor(P.prototype,"handleAuthenticationTask"),P.prototype),P)}),define("ghost-admin/services/settings",["exports","ghost-admin/models/setting","ghost-admin/mixins/validation-engine"],function(e,t,i){var r,n,a,s,o
|
|
3358
3410
|
function l(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function u(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
@@ -3372,8 +3424,8 @@ return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerabl
|
|
|
3372
3424
|
const{resolve:u}=Ember.RSVP
|
|
3373
3425
|
e.default=(i=Ember.inject.service,r=Ember.inject.service,n=class extends Ember.Service{constructor(...e){super(...e),o(this,"ghostPaths",a,this),o(this,"ajax",s,this)}generateSlug(e,i,r){let n
|
|
3374
3426
|
if(!i)return u("")
|
|
3375
|
-
|
|
3376
|
-
return n=r?this.get("ghostPaths.url").api("slugs",e,a,r):this.get("ghostPaths.url").api("slugs",e,a),this.ajax.request(n).then(e=>{
|
|
3427
|
+
const a=encodeURIComponent((0,t.slugify)(i))
|
|
3428
|
+
return n=r?this.get("ghostPaths.url").api("slugs",e,a,r):this.get("ghostPaths.url").api("slugs",e,a),this.ajax.request(n).then(e=>{const[t]=e.slugs,{slug:i}=t
|
|
3377
3429
|
return i})}},a=l(n.prototype,"ghostPaths",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),s=l(n.prototype,"ajax",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),n)}),define("ghost-admin/services/state-bridge",["exports","ghost-admin/decorators/inject"],function(e,t){var i,r,n,a,s,o,l,u,c,d,p,m,h,b,g,f,v,y,w,E,P,_,k,O,j,T,z,x,S,C,M,D,A,I,L,R,N,U
|
|
3378
3430
|
function F(e,t,i,r){i&&Object.defineProperty(e,t,{enumerable:i.enumerable,configurable:i.configurable,writable:i.writable,value:i.initializer?i.initializer.call(r):void 0})}function B(e,t,i,r,n){var a={}
|
|
3379
3431
|
return Object.keys(r).forEach(function(e){a[e]=r[e]}),a.enumerable=!!a.enumerable,a.configurable=!!a.configurable,("value"in a||a.initializer)&&(a.writable=!0),a=i.slice().reverse().reduce(function(i,r){return r(e,t,i)||i},a),n&&void 0!==a.initializer&&(a.value=a.initializer?a.initializer.call(n):void 0,a.initializer=void 0),void 0===a.initializer?(Object.defineProperty(e,t,a),null):a}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -3393,7 +3445,7 @@ r&&r.unloadRecord()}preloadAdminThemeStylesheet(){return this.feature._loadAdmin
|
|
|
3393
3445
|
const i=this.router.currentRouteName?.replace(/_loading$/,"")||""
|
|
3394
3446
|
if((i===e||i.startsWith(e+"."))&&!t)return this.router.urlFor(e,{queryParams:{}})
|
|
3395
3447
|
const r=t||this._getControllerQueryParams(e),n=Object.fromEntries(Object.entries(r).filter(([,e])=>null!=e&&""!==e)),a=Object.keys(n).length>0
|
|
3396
|
-
return!t&&a&&this.customViews.findView(e,n)?this.router.urlFor(e,{queryParams:{}}):this.router.urlFor(e,{queryParams:n})}isRouteActive(e,t){
|
|
3448
|
+
return!t&&a&&this.customViews.findView(e,n)?this.router.urlFor(e,{queryParams:{}}):this.router.urlFor(e,{queryParams:n})}isRouteActive(e,t){const i=this.router.currentRouteName?.replace(/_loading$/,"")||""
|
|
3397
3449
|
if(!(Array.isArray(e)?e:e.split(" ")).some(e=>i===e||i.startsWith(e+".")))return!1
|
|
3398
3450
|
const r=!t,n=this.customViews.activeView
|
|
3399
3451
|
if(r)return!n
|
|
@@ -3402,7 +3454,7 @@ const a=this.customViews.cleanFilter(n.filter)
|
|
|
3402
3454
|
return this.customViews.isFilterEqual(a,t)}_getControllerQueryParams(e){const t=Ember.getOwner(this).lookup(`controller:${e}`)
|
|
3403
3455
|
if(!t||!t.queryParams)return{}
|
|
3404
3456
|
const i={}
|
|
3405
|
-
for(
|
|
3457
|
+
for(const r of t.queryParams){let e,n
|
|
3406
3458
|
"string"==typeof r?(e=r,n=r):(e=Object.keys(r)[0],n=r[e])
|
|
3407
3459
|
const a=t[e]
|
|
3408
3460
|
null!=a&&(i[n]=a)}return i}},x=B(z.prototype,"customViews",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),S=B(z.prototype,"feature",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),C=B(z.prototype,"membersUtils",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),M=B(z.prototype,"router",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),D=B(z.prototype,"search",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),A=B(z.prototype,"session",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),I=B(z.prototype,"settings",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),L=B(z.prototype,"store",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),R=B(z.prototype,"themeManagement",[c],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),N=B(z.prototype,"ui",[d],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),U=B(z.prototype,"config",[t.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),B(z.prototype,"isFeatureEnabled",[p],Object.getOwnPropertyDescriptor(z.prototype,"isFeatureEnabled"),z.prototype),B(z.prototype,"triggerFeatureFlagsChange",[m],Object.getOwnPropertyDescriptor(z.prototype,"triggerFeatureFlagsChange"),z.prototype),B(z.prototype,"refreshFeatureFlagOverrides",[h],Object.getOwnPropertyDescriptor(z.prototype,"refreshFeatureFlagOverrides"),z.prototype),B(z.prototype,"handleRouteDidChange",[b],Object.getOwnPropertyDescriptor(z.prototype,"handleRouteDidChange"),z.prototype),B(z.prototype,"onUpdate",[g],Object.getOwnPropertyDescriptor(z.prototype,"onUpdate"),z.prototype),B(z.prototype,"onInvalidate",[f],Object.getOwnPropertyDescriptor(z.prototype,"onInvalidate"),z.prototype),B(z.prototype,"onDelete",[v],Object.getOwnPropertyDescriptor(z.prototype,"onDelete"),z.prototype),B(z.prototype,"preloadAdminThemeStylesheet",[y],Object.getOwnPropertyDescriptor(z.prototype,"preloadAdminThemeStylesheet"),z.prototype),B(z.prototype,"applyAdminThemePreference",[w],Object.getOwnPropertyDescriptor(z.prototype,"applyAdminThemePreference"),z.prototype),B(z.prototype,"triggerEmberDataChange",[E],Object.getOwnPropertyDescriptor(z.prototype,"triggerEmberDataChange"),z.prototype),B(z.prototype,"triggerEmberAuthChange",[P],Object.getOwnPropertyDescriptor(z.prototype,"triggerEmberAuthChange"),z.prototype),B(z.prototype,"triggerSubscriptionChange",[_],Object.getOwnPropertyDescriptor(z.prototype,"triggerSubscriptionChange"),z.prototype),B(z.prototype,"setSidebarVisible",[k],Object.getOwnPropertyDescriptor(z.prototype,"setSidebarVisible"),z.prototype),B(z.prototype,"triggerOpenGiftLinkModal",[O],Object.getOwnPropertyDescriptor(z.prototype,"triggerOpenGiftLinkModal"),z.prototype),B(z.prototype,"getRouteUrl",[j],Object.getOwnPropertyDescriptor(z.prototype,"getRouteUrl"),z.prototype),B(z.prototype,"isRouteActive",[T],Object.getOwnPropertyDescriptor(z.prototype,"isRouteActive"),z.prototype),z)}),define("ghost-admin/services/store",["exports","ember-data/store"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/services/tags-manager",["exports"],function(e){var t,i,r
|
|
@@ -3423,37 +3475,38 @@ return{oldClasses:i,newClasses:r}}Object.defineProperty(e,"__esModule",{value:!0
|
|
|
3423
3475
|
e.default=(r=Ember.inject.service,n=Ember.inject.service,a=Ember.inject.service,s=Ember.inject.service,o=Ember.inject.service("state-bridge"),l=Ember._tracked,u=Ember._tracked,c=Ember._action,d=Ember._action,p=Ember._action,m=Ember._action,h=Ember._action,b=class extends Ember.Service{get isFullScreen(){return this._isFullScreen}set isFullScreen(e){this._isFullScreen=e,this.stateBridge.setSidebarVisible(!e)}get backgroundColor(){return this.feature.nightShift?"#151719":"#ffffff"}get adjustedAccentColor(){const e=(0,t.Color)(this.settings.accentColor),i=(0,t.Color)(this.backgroundColor)
|
|
3424
3476
|
if(e.contrast(i)>2)return e.hex()
|
|
3425
3477
|
let r=e
|
|
3426
|
-
return r=this.feature.nightShift?(0,t.lightenToContrastThreshold)(e,i,2):(0,t.darkenToContrastThreshold)(e,i,2),r.hex()}constructor(){super(...arguments),k(this,"dropdown",g,this),k(this,"feature",f,this),k(this,"router",v,this),k(this,"settings",y,this),k(this,"stateBridge",w,this),k(this,"config",E,this),k(this,"_isFullScreen",P,this),k(this,"mainClass",_,this),this.router.on("routeDidChange",e=>{(function(e){
|
|
3478
|
+
return r=this.feature.nightShift?(0,t.lightenToContrastThreshold)(e,i,2):(0,t.darkenToContrastThreshold)(e,i,2),r.hex()}constructor(){super(...arguments),k(this,"dropdown",g,this),k(this,"feature",f,this),k(this,"router",v,this),k(this,"settings",y,this),k(this,"stateBridge",w,this),k(this,"config",E,this),k(this,"_isFullScreen",P,this),k(this,"mainClass",_,this),this.router.on("routeDidChange",e=>{(function(e){const{body:t}=document,{oldClasses:i,newClasses:r}=j(e,"bodyClasses")
|
|
3427
3479
|
i.forEach(e=>{t.classList.remove(e)}),r.forEach(e=>{t.classList.add(e)})})(e),this.updateDocumentTitle()
|
|
3428
|
-
|
|
3429
|
-
this.mainClass=t.join(" ")})}closeMenus(){this.dropdown.closeDropdowns()}setMainClass(e){this.mainClass=e}updateDocumentTitle(){let{currentRoute:e}=this.router
|
|
3480
|
+
const{newClasses:t}=j(e,"mainClasses")
|
|
3481
|
+
this.mainClass=t.join(" ")})}closeMenus(){this.dropdown.closeDropdowns()}setMainClass(e){this.mainClass=e}updateDocumentTitle(){let{currentRoute:e}=this.router
|
|
3482
|
+
const t=[]
|
|
3430
3483
|
for(;e;){let i=Ember.get(e,"metadata.titleToken")
|
|
3431
|
-
"function"==typeof i&&(i=i()),i&&t.unshift(i),e=e.parent}
|
|
3484
|
+
"function"==typeof i&&(i=i()),i&&t.unshift(i),e=e.parent}const i=this.config.blogTitle
|
|
3432
3485
|
window.document.title=`Ghost Admin - ${i}`}initBodyDragHandlers(){this.dragDepth=0,this.resetDragState=()=>{this.dragDepth=0,delete document.body.dataset.userIsDragging},this.bodyDragEnterHandler=()=>{this.dragDepth+=1,document.body.dataset.userIsDragging=!0},this.bodyDragLeaveHandler=()=>{this.dragDepth=Math.max(0,this.dragDepth-1),0===this.dragDepth&&delete document.body.dataset.userIsDragging},this.windowBlurHandler=()=>{this.resetDragState()},this.visibilityChangeHandler=()=>{document.hidden&&this.resetDragState()},document.body.addEventListener("dragenter",this.bodyDragEnterHandler,{capture:!0}),document.body.addEventListener("dragleave",this.bodyDragLeaveHandler,{capture:!0}),document.body.addEventListener("dragend",this.resetDragState,{capture:!0}),document.body.addEventListener("drop",this.resetDragState,{capture:!0}),window.addEventListener("blur",this.windowBlurHandler),document.addEventListener("visibilitychange",this.visibilityChangeHandler)}cleanupBodyDragHandlers(){document.body.removeEventListener("dragenter",this.bodyDragEnterHandler,{capture:!0}),document.body.removeEventListener("dragleave",this.bodyDragLeaveHandler,{capture:!0}),document.body.removeEventListener("dragend",this.resetDragState,{capture:!0}),document.body.removeEventListener("drop",this.resetDragState,{capture:!0}),window.removeEventListener("blur",this.windowBlurHandler),document.removeEventListener("visibilitychange",this.visibilityChangeHandler)}},g=O(b.prototype,"dropdown",[r],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),f=O(b.prototype,"feature",[n],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),v=O(b.prototype,"router",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),y=O(b.prototype,"settings",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w=O(b.prototype,"stateBridge",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),E=O(b.prototype,"config",[i.inject],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),P=O(b.prototype,"_isFullScreen",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),_=O(b.prototype,"mainClass",[u],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),O(b.prototype,"closeMenus",[c],Object.getOwnPropertyDescriptor(b.prototype,"closeMenus"),b.prototype),O(b.prototype,"setMainClass",[d],Object.getOwnPropertyDescriptor(b.prototype,"setMainClass"),b.prototype),O(b.prototype,"updateDocumentTitle",[p],Object.getOwnPropertyDescriptor(b.prototype,"updateDocumentTitle"),b.prototype),O(b.prototype,"initBodyDragHandlers",[m],Object.getOwnPropertyDescriptor(b.prototype,"initBodyDragHandlers"),b.prototype),O(b.prototype,"cleanupBodyDragHandlers",[h],Object.getOwnPropertyDescriptor(b.prototype,"cleanupBodyDragHandlers"),b.prototype),b)}),define("ghost-admin/services/unsaved-changes",["exports"],function(e){function t(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
3433
3486
|
var i=e[Symbol.toPrimitive]
|
|
3434
3487
|
if(void 0!==i){var r=i.call(e,t||"default")
|
|
3435
3488
|
if("object"!=typeof r)return r
|
|
3436
3489
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
3437
3490
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3438
|
-
class i extends Ember.Service{constructor(...e){super(...e),t(this,"_registration",null),t(this,"_confirmPromise",null),t(this,"_hasConfirmedLeave",!1)}get isDirty(){try{return this._registration?.isDirty?.()??!1}catch(e){return!1}}register({isDirty:e,confirmLeave:t}){
|
|
3491
|
+
class i extends Ember.Service{constructor(...e){super(...e),t(this,"_registration",null),t(this,"_confirmPromise",null),t(this,"_hasConfirmedLeave",!1)}get isDirty(){try{return this._registration?.isDirty?.()??!1}catch(e){return!1}}register({isDirty:e,confirmLeave:t}){const i=Symbol("unsaved-changes")
|
|
3439
3492
|
return this._registration={token:i,isDirty:e,confirmLeave:t},this._confirmPromise=null,this._hasConfirmedLeave=!1,()=>{this._registration?.token===i&&(this._registration=null,this._confirmPromise=null,this._hasConfirmedLeave=!1)}}async guardTransition(e){return!!this._hasConfirmedLeave||(!this.isDirty||(e.abort(),await this.confirmLeave()?(this._hasConfirmedLeave=!0,e.retry()):void 0))}confirmLeave(){if(!this._registration?.confirmLeave)return Promise.resolve(!0)
|
|
3440
3493
|
if(!this._confirmPromise){const e=Promise.resolve(this._registration.confirmLeave()).finally(()=>{this._confirmPromise===e&&(this._confirmPromise=null)})
|
|
3441
3494
|
this._confirmPromise=e}return this._confirmPromise}}e.default=i}),define("ghost-admin/services/unsplash",["exports","fetch","ember-concurrency"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3442
3495
|
const r="https://api.unsplash.com"
|
|
3443
|
-
e.default=Ember.Service.extend({settings:Ember.inject.service(),columnCount:3,columns:null,error:"",photos:null,searchTerm:"",_columnHeights:null,_pagination:null,applicationId:"8672af113b0a8573edae3aa3713886265d9bb741d707f6c01a486cde8c278980",isLoading:Ember.computed.or("_search.isRunning","_loadingTasks.isRunning"),init(){this._super(...arguments),this._reset(),this.loadNew()},loadNew(){return this._reset(),this._loadNew.perform()},loadNextPage(){if(!this.get("_search.isRunning"))return Ember.isEmpty(this.photos)?this._loadNew.perform():this._pagination.next?this._loadNextPage.perform():Ember.RSVP.reject()},updateSearch(e){if(e!==this.searchTerm)return this.set("searchTerm",e),this._reset(),e?this._search.perform(e):this._loadNew.perform()},retryLastRequest(){return this._retryLastRequest.perform()},changeColumnCount(e){e!==this.columnCount&&(this.set("columnCount",e),this._resetColumns())},triggerDownload(e){e.links.download_location&&this._makeRequest(e.links.download_location,{ignoreErrors:!0})},actions:{updateSearch(e){return this.updateSearch(e)}},_loadingTasks:(0,i.taskGroup)().drop(),_loadNew:(0,i.task)(function*(){
|
|
3496
|
+
e.default=Ember.Service.extend({settings:Ember.inject.service(),columnCount:3,columns:null,error:"",photos:null,searchTerm:"",_columnHeights:null,_pagination:null,applicationId:"8672af113b0a8573edae3aa3713886265d9bb741d707f6c01a486cde8c278980",isLoading:Ember.computed.or("_search.isRunning","_loadingTasks.isRunning"),init(){this._super(...arguments),this._reset(),this.loadNew()},loadNew(){return this._reset(),this._loadNew.perform()},loadNextPage(){if(!this.get("_search.isRunning"))return Ember.isEmpty(this.photos)?this._loadNew.perform():this._pagination.next?this._loadNextPage.perform():Ember.RSVP.reject()},updateSearch(e){if(e!==this.searchTerm)return this.set("searchTerm",e),this._reset(),e?this._search.perform(e):this._loadNew.perform()},retryLastRequest(){return this._retryLastRequest.perform()},changeColumnCount(e){e!==this.columnCount&&(this.set("columnCount",e),this._resetColumns())},triggerDownload(e){e.links.download_location&&this._makeRequest(e.links.download_location,{ignoreErrors:!0})},actions:{updateSearch(e){return this.updateSearch(e)}},_loadingTasks:(0,i.taskGroup)().drop(),_loadNew:(0,i.task)(function*(){const e=`${r}/photos?per_page=30`
|
|
3444
3497
|
yield this._makeRequest(e)}).group("_loadingTasks"),_loadNextPage:(0,i.task)(function*(){yield this._makeRequest(this._pagination.next)}).group("_loadingTasks"),_retryLastRequest:(0,i.task)(function*(){yield this._makeRequest(this._lastRequestUrl)}).group("_loadingTasks"),_search:(0,i.task)(function*(e){yield(0,i.timeout)(600)
|
|
3445
|
-
|
|
3446
|
-
yield this._makeRequest(t,{searchTermAtRequest:e})}).restartable(),_addPhotosFromResponse(e,t){if(t&&t!==this.searchTerm)return;(e.results||e).forEach(e=>this._addPhoto(e))},_addPhoto(e){e.ratio=e.height/e.width,this.photos.pushObject(e),this._addPhotoToColumns(e)},_addPhotoToColumns(e){
|
|
3447
|
-
this._columnHeights[i]+=300*e.ratio,this.columns[i].pushObject(e)},_reset(){this.set("photos",[]),this._pagination={},this._resetColumns()},_resetColumns(){
|
|
3498
|
+
const t=`${r}/search/photos?query=${e}&per_page=30`
|
|
3499
|
+
yield this._makeRequest(t,{searchTermAtRequest:e})}).restartable(),_addPhotosFromResponse(e,t){if(t&&t!==this.searchTerm)return;(e.results||e).forEach(e=>this._addPhoto(e))},_addPhoto(e){e.ratio=e.height/e.width,this.photos.pushObject(e),this._addPhotoToColumns(e)},_addPhotoToColumns(e){const t=Math.min(...this._columnHeights),i=this._columnHeights.indexOf(t)
|
|
3500
|
+
this._columnHeights[i]+=300*e.ratio,this.columns[i].pushObject(e)},_reset(){this.set("photos",[]),this._pagination={},this._resetColumns()},_resetColumns(){const e=[],t=[]
|
|
3448
3501
|
for(let i=0;i<this.columnCount;i+=1)e[i]=[],t[i]=0
|
|
3449
|
-
this.set("columns",e),this._columnHeights=t,Ember.isEmpty(this.photos)||this.photos.forEach(e=>{this._addPhotoToColumns(e)})},_makeRequest(e,i={}){
|
|
3502
|
+
this.set("columns",e),this._columnHeights=t,Ember.isEmpty(this.photos)||this.photos.forEach(e=>{this._addPhotoToColumns(e)})},_makeRequest(e,i={}){const r={},n={}
|
|
3450
3503
|
return Ember.assign(n,{ignoreErrors:!1},i),this.set("error",""),this._lastRequestUrl=e,r.Authorization=`Client-ID ${this.applicationId}`,r["Accept-Version"]="v1",r["App-Pragma"]="no-cache",r["X-Unsplash-Cache"]=!0,(0,t.default)(e,{headers:r}).then(e=>this._checkStatus(e)).then(e=>this._extractPagination(e,n.searchTermAtRequest)).then(e=>e.json()).then(e=>this._addPhotosFromResponse(e,n.searchTermAtRequest)).catch(()=>{n.ignoreErrors||this.error||this.set("error","Uh-oh! Trouble reaching the Unsplash API, please check your connection")})},_checkStatus(e){if(e.status>=200&&e.status<300)return Ember.RSVP.resolve(e)
|
|
3451
3504
|
let t="",i=Ember.RSVP.resolve()
|
|
3452
3505
|
return"application/json"===e.headers.map["content-type"]?i=e.json().then(e=>e.errors[0]):"text/xml"===e.headers.map["content-type"]&&(i=e.text()),i.then(i=>{403===e.status&&"0"===e.headers.map["x-ratelimit-remaining"]&&(t="Unsplash API rate limit reached, please try again later."),t=t||i||`Error ${e.status}: Uh-oh! Trouble reaching the Unsplash API`,this.set("error",t)
|
|
3453
|
-
|
|
3506
|
+
const r=new Error(t)
|
|
3454
3507
|
throw r.response=e,r})},_extractPagination(e,t){if(t&&t!==this.searchTerm)return e
|
|
3455
|
-
|
|
3456
|
-
return n&&n.split(",").forEach(e=>{
|
|
3508
|
+
const i={},r=new RegExp('<(.*)>; rel="(.*)"'),{link:n}=e.headers.map
|
|
3509
|
+
return n&&n.split(",").forEach(e=>{const[,t,n]=r.exec(e)
|
|
3457
3510
|
i[n]=t}),this._pagination=i,e}})}),define("ghost-admin/services/upgrade-status",["exports"],function(e){var t,i,r
|
|
3458
3511
|
function n(e,t,i){return(t=function(e){var t=function(e,t){if("object"!=typeof e||!e)return e
|
|
3459
3512
|
var i=e[Symbol.toPrimitive]
|
|
@@ -3462,7 +3515,7 @@ if("object"!=typeof r)return r
|
|
|
3462
3515
|
throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===t?String:Number)(e)}(e,"string")
|
|
3463
3516
|
return"symbol"==typeof t?t:t+""}(t))in e?Object.defineProperty(e,t,{value:i,enumerable:!0,configurable:!0,writable:!0}):e[t]=i,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3464
3517
|
e.default=(t=Ember.inject.service,i=class extends Ember.Service{constructor(...e){var t,i,a,s
|
|
3465
|
-
super(...e),t=this,i="notifications",s=this,(a=r)&&Object.defineProperty(t,i,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(s):void 0}),n(this,"isRequired",!1),n(this,"message","")}handleUpgradeNotification(e){
|
|
3518
|
+
super(...e),t=this,i="notifications",s=this,(a=r)&&Object.defineProperty(t,i,{enumerable:a.enumerable,configurable:a.configurable,writable:a.writable,value:a.initializer?a.initializer.call(s):void 0}),n(this,"isRequired",!1),n(this,"message","")}handleUpgradeNotification(e){const t=Ember.get(e,"message")
|
|
3466
3519
|
Ember.set(this,"message",Ember.String.htmlSafe(t))}maintenanceAlert(){this.notifications.showAlert("Sorry, Ghost is currently undergoing maintenance, please wait a moment then try again.",{type:"error",key:"api-error.under-maintenance"})}requireUpgrade(){Ember.set(this,"isRequired",!0),this.notifications.showAlert("Ghost has been upgraded, please copy any unsaved data and refresh the page to continue.",{type:"error",key:"api-error.upgrade-required"})}},a=i.prototype,s="notifications",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),r=void 0===c.initializer?(Object.defineProperty(a,s,c),null):c,i)
|
|
3467
3520
|
var a,s,o,l,u,c}),define("ghost-admin/services/utils",["exports","fetch"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3468
3521
|
class i extends Ember.Service{downloadFile(e){let t=document.getElementById("iframeDownload")
|
|
@@ -3473,7 +3526,7 @@ if(!t)return r.toString()
|
|
|
3473
3526
|
return(r.host+("/"!==r.pathname||r.search?r.pathname:"")+(r.search?r.search:"")+(r.hash?r.hash:"")).replace(/^www\./,"")}}e.default=i}),define("ghost-admin/session-stores/application",["exports","ember-simple-auth/session-stores/ephemeral"],function(e,t){var i,r,n
|
|
3474
3527
|
Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3475
3528
|
e.default=(i=Ember.inject.service,r=class extends t.default{constructor(...e){var t,i,r,a
|
|
3476
|
-
super(...e),t=this,i="session",a=this,(r=n)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}restore(){return this.session.populateUser().then(()=>{
|
|
3529
|
+
super(...e),t=this,i="session",a=this,(r=n)&&Object.defineProperty(t,i,{enumerable:r.enumerable,configurable:r.configurable,writable:r.writable,value:r.initializer?r.initializer.call(a):void 0})}restore(){return this.session.populateUser().then(()=>{const e={authenticated:{authenticator:"authenticator:cookie"}}
|
|
3477
3530
|
return this.persist(e),e}).catch(()=>Ember.RSVP.reject())}},a=r.prototype,s="session",o=[i],l={configurable:!0,enumerable:!0,writable:!0,initializer:null},c={},Object.keys(l).forEach(function(e){c[e]=l[e]}),c.enumerable=!!c.enumerable,c.configurable=!!c.configurable,("value"in c||c.initializer)&&(c.writable=!0),c=o.slice().reverse().reduce(function(e,t){return t(a,s,e)||e},c),u&&void 0!==c.initializer&&(c.value=c.initializer?c.initializer.call(u):void 0,c.initializer=void 0),n=void 0===c.initializer?(Object.defineProperty(a,s,c),null):c,r)
|
|
3478
3531
|
var a,s,o,l,u,c}),define("ghost-admin/templates/application-error",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3479
3532
|
e.default=Ember.HTMLBars.template({id:"16FPhYap",block:'{"symbols":[],"statements":[[10,"div"],[14,0,"gh-view"],[12],[2,"\\n "],[10,"section"],[14,0,"error-content error-404 js-error-container"],[12],[2,"\\n "],[10,"section"],[14,0,"error-details"],[12],[2,"\\n "],[10,"section"],[14,0,"error-message"],[12],[2,"\\n "],[10,"h1"],[14,0,"error-code"],[12],[1,[30,[36,0],[[32,0,["model","status"]],[32,0,["model","code"]]],null]],[13],[2,"\\n"],[6,[37,1],[[30,[36,0],[[32,0,["model","status"]],[32,0,["model","code"]]],null]],null,[["default"],[{"statements":[[2," "],[10,"span"],[12],[2,"|"],[13],[2,"\\n"]],"parameters":[]}]]],[2," "],[10,"h2"],[14,0,"error-description"],[12],[2,"\\n "],[1,[30,[36,0],[[30,[36,2],[[32,0,["model","payload","errors"]],"0.message"],null],[32,0,["model","message"]]],null]],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"],[13],[2,"\\n\\n"],[8,"ember-load-remover",[],[[],[]],null],[2,"\\n"]],"hasEval":false,"upvars":["or","if","get"]}',moduleName:"ghost-admin/templates/application-error.hbs"})}),define("ghost-admin/templates/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
@@ -3501,38 +3554,39 @@ e.default=Ember.HTMLBars.template({id:"ETe8UpmA",block:'{"symbols":[],"statement
|
|
|
3501
3554
|
e.default=Ember.HTMLBars.template({id:"jD02xsFL",block:'{"symbols":[],"statements":[[8,"gh-site-iframe",[[24,"data-view-site-preview",""]],[["@guid"],[[32,0,["guid"]]]],[["default"],[{"statements":[],"parameters":[]}]]],[2,"\\n"]],"hasEval":false,"upvars":[]}',moduleName:"ghost-admin/templates/site.hbs"})}),define("ghost-admin/templates/tag",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3502
3555
|
e.default=Ember.HTMLBars.template({id:"RhbAkGjV",block:'{"symbols":[],"statements":[[10,"section"],[14,0,"gh-canvas"],[12],[2,"\\n "],[10,"form"],[14,0,"mb15"],[12],[2,"\\n "],[8,"gh-canvas-header",[[24,0,"gh-canvas-header gh-tag-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 "],[10,"a"],[14,6,"#/tags"],[14,"data-test-link","tags-back"],[12],[2,"\\n Tags\\n "],[13],[2,"\\n "],[1,[30,[36,1],["arrow-right-small"],null]],[2,"\\n "],[10,"span"],[14,"data-test-screen-title",""],[12],[1,[30,[36,2],[[32,0,["tag","isNew"]],"New tag",[32,0,["tag","name"]]],null]],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n\\n "],[10,"section"],[14,0,"view-actions"],[12],[2,"\\n "],[10,"div"],[14,0,"view-actions-bottom-row"],[12],[2,"\\n "],[10,"a"],[15,6,[32,0,["tagURL"]]],[14,"target","_blank"],[14,"rel","noopener noreferrer"],[14,0,"gh-btn gh-btn-icon-right gh-btn-action-icon"],[12],[10,"span"],[12],[2,"View"],[1,[30,[36,1],["arrow-top-right"],null]],[13],[13],[2,"\\n "],[8,"gh-task-button",[[4,[38,3],["cmd+s"],null]],[["@task","@type","@class","@data-test-button"],[[32,0,["saveTask"]],"button","gh-btn gh-btn-primary gh-btn-icon","save"]],null],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n "]],"parameters":[]}]]],[2,"\\n\\n "],[8,"tags/tag-form",[],[["@tag"],[[32,0,["model"]]]],null],[2,"\\n "],[13],[2,"\\n\\n"],[6,[37,4],[[32,0,["tag","isNew"]]],null,[["default"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n "],[11,"button"],[24,0,"gh-btn gh-btn-red gh-btn-icon"],[24,"data-test-button","delete-tag"],[24,4,"button"],[4,[38,0],["click",[32,0,["confirmDeleteTag"]]],null],[12],[2,"\\n "],[10,"span"],[12],[2,"Delete tag"],[13],[2,"\\n "],[13],[2,"\\n "],[13],[2,"\\n"]],"parameters":[]}]]],[13],[2,"\\n"]],"hasEval":false,"upvars":["on","svg-jar","if","on-key","unless"]}',moduleName:"ghost-admin/templates/tag.hbs"})})
|
|
3503
3556
|
define("ghost-admin/transforms/boolean",["exports","@ember-data/serializer/-private"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.BooleanTransform}})}),define("ghost-admin/transforms/date",["exports","@ember-data/serializer/-private"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.DateTransform}})}),define("ghost-admin/transforms/facebook-url-user",["exports","@ember-data/serializer/transform"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3504
|
-
class i extends t.default{deserialize(e){if(e){
|
|
3505
|
-
return`https://www.facebook.com/${t}`}return e}serialize(e){if(e){
|
|
3557
|
+
class i extends t.default{deserialize(e){if(e){const[,t]=e.match(/(\S+)/)||[]
|
|
3558
|
+
return`https://www.facebook.com/${t}`}return e}serialize(e){if(e){const[,t]=e.match(/(?:https:\/\/)(?:www\.)(?:facebook\.com)\/(?:#!\/)?(\w+\/?\S+)/im)||[]
|
|
3506
3559
|
return t}return e}}e.default=i}),define("ghost-admin/transforms/json-string",["exports","@ember-data/serializer/transform"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3507
|
-
class i extends t.default{deserialize(e){
|
|
3560
|
+
class i extends t.default{deserialize(e){const t=""===e?null:e
|
|
3508
3561
|
return JSON.parse(t)}serialize(e){return e?JSON.stringify(e):null}}e.default=i}),define("ghost-admin/transforms/member-subscription",["exports","ghost-admin/models/member-subscription","@ember-data/serializer/transform"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3509
|
-
class r extends i.default{deserialize(e){
|
|
3510
|
-
return
|
|
3562
|
+
class r extends i.default{deserialize(e){const i=(e||[]).map(e=>t.default.create(e))
|
|
3563
|
+
return Ember.A(i)}serialize(e){let t
|
|
3511
3564
|
return t=Ember.isArray(e)?e.map(e=>e).compact():[],t}}e.default=r}),define("ghost-admin/transforms/member-tier",["exports","ghost-admin/models/member-tier","@ember-data/serializer/transform"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3512
|
-
class r extends i.default{deserialize(e){
|
|
3513
|
-
return
|
|
3565
|
+
class r extends i.default{deserialize(e){const i=(e||[]).map(e=>t.default.create(e))
|
|
3566
|
+
return Ember.A(i)}serialize(e){let t
|
|
3514
3567
|
return t=Ember.isArray(e)?e.map(e=>e).compact():[],t}}e.default=r}),define("ghost-admin/transforms/members-segment-string",["exports","@ember-data/serializer/transform"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3515
3568
|
class i extends t.default{deserialize(e){return"all"===e?"status:free,status:-free":"none"===e?null:e}serialize(e){return"status:free,status:-free"===e?"all":e||"none"}}e.default=i}),define("ghost-admin/transforms/moment-date",["exports","@ember-data/serializer/transform","moment-timezone"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3516
3569
|
class r extends t.default{deserialize(e){return e?(0,i.default)(e):e}serialize(e){return e?(0,i.default)(e).toDate():e}}e.default=r}),define("ghost-admin/transforms/moment-utc",["exports","@ember-data/serializer/transform","moment-timezone"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3517
3570
|
class r extends t.default{deserialize(e){return e?i.default.utc(e):e}serialize(e){if(e)try{return e.toJSON()}catch(t){return e}return e}}e.default=r}),define("ghost-admin/transforms/navigation-settings",["exports","ghost-admin/models/navigation-item","@ember-data/serializer/transform"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3518
|
-
class r extends i.default{deserialize(e,i){let r
|
|
3519
|
-
try{
|
|
3520
|
-
return
|
|
3571
|
+
class r extends i.default{deserialize(e,i){let r
|
|
3572
|
+
try{r=JSON.parse(e)||[]}catch(a){r=[]}const n=r.map(e=>(e.isSecondary=i&&i.isSecondary||!1,t.default.create(e)))
|
|
3573
|
+
return Ember.A(n)}serialize(e){let t
|
|
3574
|
+
return t=Ember.isArray(e)?e.map(e=>{const t=e.label.trim(),i=e.url.trim(),r=e.icon&&e.icon.trim(),n=e.visibility||"public"
|
|
3521
3575
|
return{label:t,url:i,...r?{icon:r}:{},..."public"!==n?{visibility:n}:{}}}).compact():[],JSON.stringify(t)}}e.default=r}),define("ghost-admin/transforms/number",["exports","@ember-data/serializer/-private"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.NumberTransform}})}),define("ghost-admin/transforms/raw",["exports","@ember-data/serializer/transform"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3522
3576
|
class i extends t.default{deserialize(e){return e}serialize(e){return e}}e.default=i}),define("ghost-admin/transforms/string",["exports","@ember-data/serializer/-private"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.StringTransform}})}),define("ghost-admin/transforms/tier-benefits",["exports","ghost-admin/models/tier-benefit-item","@ember-data/serializer/transform"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3523
|
-
class r extends i.default{deserialize(e){
|
|
3524
|
-
return
|
|
3577
|
+
class r extends i.default{deserialize(e){const i=(e||[]).map(e=>t.default.create({name:e}))
|
|
3578
|
+
return Ember.A(i)}serialize(e){let t
|
|
3525
3579
|
return t=Ember.isArray(e)?e.map(e=>e.get("name").trim()).compact():[],t}}e.default=r}),define("ghost-admin/transforms/trimmed-string",["exports","@ember-data/serializer/transform"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3526
3580
|
class i extends t.default{deserialize(e){if(!e&&0!==e)return null
|
|
3527
3581
|
return String(e).trim()||null}serialize(e){if(!e&&0!==e)return null
|
|
3528
3582
|
return String(e).trim()||null}}e.default=i}),define("ghost-admin/transforms/twitter-url-user",["exports","@ember-data/serializer/transform"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3529
|
-
class i extends t.default{deserialize(e){if(e){
|
|
3530
|
-
return`https://twitter.com/${t}`}return e}serialize(e){if(e){
|
|
3583
|
+
class i extends t.default{deserialize(e){if(e){const[,t]=e.match(/@?([^/]*)/)||[]
|
|
3584
|
+
return`https://twitter.com/${t}`}return e}serialize(e){if(e){const[,t]=e.match(/(?:https:\/\/)(?:twitter\.com)\/(?:#!\/)?@?([^/]*)/)||[]
|
|
3531
3585
|
return`@${t}`}return e}}e.default=i}),define("ghost-admin/transforms/visibility-string",["exports","@ember-data/serializer/transform"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3532
3586
|
class i extends t.default{deserialize(e){return"members"===e?"status:free,status:-free":"paid"===e?"status:-free":e}serialize(e){return"status:free,status:-free"===e?"members":"status:-free"===e?"paid":e}}e.default=i}),define("ghost-admin/transitions",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){this.transition(this.hasClass("fullscreen-modal-container"),this.toValue(!0),this.use("fade",{duration:150}),this.reverse("fade",{duration:150})),this.transition(this.hasClass("fade-transition"),this.use("crossFade",{duration:100}))}}),define("ghost-admin/transitions/cross-fade",["exports","liquid-fire/transitions/cross-fade"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/default",["exports","liquid-fire/transitions/default"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/explode",["exports","liquid-fire/transitions/explode"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/fade",["exports","liquid-fire/transitions/fade"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/flex-grow",["exports","liquid-fire/transitions/flex-grow"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/fly-to",["exports","liquid-fire/transitions/fly-to"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/move-over",["exports","liquid-fire/transitions/move-over"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/scale",["exports","liquid-fire/transitions/scale"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/scroll-then",["exports","liquid-fire/transitions/scroll-then"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/to-down",["exports","liquid-fire/transitions/to-down"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/to-left",["exports","liquid-fire/transitions/to-left"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/to-right",["exports","liquid-fire/transitions/to-right"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})
|
|
3533
3587
|
define("ghost-admin/transitions/to-up",["exports","liquid-fire/transitions/to-up"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/wait",["exports","liquid-fire/transitions/wait"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/transitions/wormhole",["exports","liquid-wormhole/transitions/wormhole"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){let e
|
|
3534
3588
|
this.newElement&&(e=this.newElement.find(".liquid-wormhole-element:last-child"))
|
|
3535
|
-
return t.default.apply(this,arguments).finally(()=>{if(this.newElement&&e){
|
|
3589
|
+
return t.default.apply(this,arguments).finally(()=>{if(this.newElement&&e){const t=e[0].querySelector("[autofocus]")
|
|
3536
3590
|
t&&t.focus()}})}}),define("ghost-admin/utils/analytics",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.trackEvent=function(e,t={}){window.plausible=window.plausible||function(){(window.plausible.q=window.plausible.q||[]).push(arguments)},window.plausible(e,{props:t})}}),define("ghost-admin/utils/asset-base",["exports","ghost-admin/utils/ghost-paths"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.prefixAssetUrl=function(e){if(e.startsWith("http://")||e.startsWith("https://"))return e
|
|
3537
3591
|
return`${function(){if(null!==i)return i
|
|
3538
3592
|
return i=r(document),i}()}${e}`},e.resolveAssetBase=r
|
|
@@ -3540,8 +3594,7 @@ let i=null
|
|
|
3540
3594
|
function r(e){const i=e.querySelector('script[src*="assets/ghost"]')
|
|
3541
3595
|
if(i&&i.src)try{const e=new URL(i.src),t=e.pathname.indexOf("/assets/")
|
|
3542
3596
|
if(t>0)return`${e.origin}${e.pathname.substring(0,t)}/`}catch(r){}return`${window.location.origin}${(0,t.default)().adminRoot}`}}),define("ghost-admin/utils/bound-one-way",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){"function"!=typeof t&&(t=function(e){return e})
|
|
3543
|
-
return Ember.computed(e,{get(){return t(this.get(e))},set:(e,t)=>t})}}),define("ghost-admin/utils/
|
|
3544
|
-
e.default={url:function(e){if(e=e.toString().replace(/['"]+/g,""),/^https?:\/\//.test(e)||/^\//.test(e))return e},id:function(e){return e}}}),define("ghost-admin/utils/calculate-position",["exports","ember-basic-dropdown/utils/calculate-position"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/utils/copy-text-to-clipboard",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){navigator.clipboard.writeText(e)}}),define("ghost-admin/utils/ctrl-or-cmd",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3597
|
+
return Ember.computed(e,{get(){return t(this.get(e))},set:(e,t)=>t})}}),define("ghost-admin/utils/calculate-position",["exports","ember-basic-dropdown/utils/calculate-position"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/utils/copy-text-to-clipboard",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){navigator.clipboard.writeText(e)}}),define("ghost-admin/utils/ctrl-or-cmd",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3545
3598
|
e.default=-1!==navigator.userAgent.indexOf("Mac")?"command":"ctrl"}),define("ghost-admin/utils/currency",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.currencies=void 0,e.getCurrencyOptions=function(){const e=t.slice(0,5).map(e=>({value:e.isoCode.toLowerCase(),label:`${e.isoCode} - ${e.name}`,isoCode:e.isoCode})),i=t.slice(5,t.length).map(e=>({value:e.isoCode.toLowerCase(),label:`${e.isoCode} - ${e.name}`,isoCode:e.isoCode}))
|
|
3546
3599
|
return[{groupName:"—",options:e},{groupName:"—",options:i}]},e.getNonDecimal=function(e){return e/100},e.getSymbol=function(e){if(!e)return""
|
|
3547
3600
|
return Intl.NumberFormat("en",{currency:e,style:"currency"}).format(0).replace(/[\d\s.]/g,"")},e.minimumAmountForCurrency=function(e){const t=e?.toUpperCase()
|
|
@@ -3563,16 +3616,17 @@ return e.forEach(function e(i){if(i.options)return i.options.forEach(e)
|
|
|
3563
3616
|
t.push(i)}),t}}),define("ghost-admin/utils/get-scroll-parent",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function e(t){const i=t instanceof HTMLElement&&window.getComputedStyle(t).overflowY,r="visible"!==i&&"hidden"!==i
|
|
3564
3617
|
if(!t)return null
|
|
3565
3618
|
if(r&&t.scrollHeight>=t.clientHeight)return t
|
|
3566
|
-
return e(t.parentNode)||document.body}}),define("ghost-admin/utils/ghost-paths",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){
|
|
3619
|
+
return e(t.parentNode)||document.body}}),define("ghost-admin/utils/ghost-paths",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(){const e=window.location.pathname,i=e.substr(0,e.search("/ghost/")),r=`${i}/ghost/`,n=`${i}/ghost/assets/`,a=`${i}/ghost/api/admin`
|
|
3567
3620
|
return{assetRootWithHost:`${window.location.protocol}//${window.location.host}${n}`,adminRoot:r,assetRoot:n,apiRoot:a,subdir:i,blogRoot:`${i}/`,url:{admin(){return t(r,arguments)},api(){return t(a,arguments)},join(){if(arguments.length>1)return t(arguments[0],Array.prototype.slice.call(arguments,1))
|
|
3568
|
-
if(1===arguments.length){
|
|
3621
|
+
if(1===arguments.length){const[e]=arguments
|
|
3569
3622
|
return"/"===e.slice(-1)?e:`${e}/`}return"/"}}}}
|
|
3570
|
-
|
|
3623
|
+
const t=function(e,t){const i=/^\//,r=/\/$/,n=Array.prototype.slice.call(t,0)
|
|
3624
|
+
let a=e.replace(r,"")
|
|
3571
3625
|
return n.forEach(e=>{e&&(a=[a,e.replace(i,"").replace(r,"")].join("/"))}),a+="/"}}),define("ghost-admin/utils/gift-link",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.canCopyGiftLink=function({user:e,post:t}={}){if(!t)return!1
|
|
3572
3626
|
const i=Boolean(e&&(e.isAdmin||e.isEitherEditor)),r=Boolean(t.isPublished&&t.visibility&&"public"!==t.visibility)
|
|
3573
3627
|
return i&&r}}),define("ghost-admin/utils/group-tiers",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.groupTiersByActive=function(e,t=e=>e){const i={groupName:"Active tiers",options:[]},r={groupName:"Archived tiers",options:[]}
|
|
3574
3628
|
return e.forEach(e=>{(e.active?i:r).options.push(t(e))}),[i,r]}}),define("ghost-admin/utils/is-number",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){return"number"==typeof e||e&&"object"==typeof e&&"[object Number]"===t.call(e)||!1}
|
|
3575
|
-
const{toString:t}=Object.prototype}),define("ghost-admin/utils/link-component",[],function(){Ember.LinkComponent.reopen({attributeBindings:["ariaCurrent:aria-current"],active:Ember.computed("attrs.params","_routing.currentState",function(){
|
|
3629
|
+
const{toString:t}=Object.prototype}),define("ghost-admin/utils/link-component",[],function(){Ember.LinkComponent.reopen({attributeBindings:["ariaCurrent:aria-current"],active:Ember.computed("attrs.params","_routing.currentState",function(){const e=this._super(...arguments)
|
|
3576
3630
|
return"function"==typeof this.alternateActive&&this.alternateActive(e),e}),activeClass:Ember.computed("tagName",function(){return"button"===this.tagName?"":"active"}),ariaCurrent:Ember.computed("active",function(){return this.active?"page":null})})}),define("ghost-admin/utils/member-event-types",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.ALL_EVENT_TYPES=void 0,e.getAvailableEventTypes=function(e,i=[]){const r=[...t]
|
|
3577
3631
|
"off"!==e.commentsEnabled&&r.push({event:"comment_event",icon:"filter-dropdown-comments",name:"Comments",group:"others"})
|
|
3578
3632
|
e.emailTrackClicks&&r.push({event:"click_event",icon:"filter-dropdown-clicked-in-email",name:"Clicked link in email",group:"others"})
|
|
@@ -3580,7 +3634,7 @@ return r.filter(e=>!i.includes(e.event))},e.needDivider=function(e,t){if(!e?.gro
|
|
|
3580
3634
|
return e.group!==t.group},e.toggleEventType=function(e,t=[]){const i=new Set(Array.isArray(t)?t:(t||"").split(",").filter(Boolean))
|
|
3581
3635
|
"subscription_event"===e?i.has("subscription_event")?(i.delete("subscription_event"),i.delete("gift_redemption_event"),i.delete("gift_ended_event")):(i.add("subscription_event"),i.add("gift_redemption_event"),i.add("gift_ended_event")):"payment_event"===e?i.has("payment_event")?(i.delete("payment_event"),i.delete("donation_event"),i.delete("gift_purchase_event")):(i.add("payment_event"),i.add("donation_event"),i.add("gift_purchase_event")):i.has(e)?i.delete(e):i.add(e)
|
|
3582
3636
|
return Array.from(i).join(",")}
|
|
3583
|
-
const t=e.ALL_EVENT_TYPES=[{event:"signup_event",icon:"filter-dropdown-signups",name:"Signups",group:"auth"},{event:"login_event",icon:"filter-dropdown-logins",name:"Logins",group:"auth"},{event:"subscription_event",icon:"filter-dropdown-paid-subscriptions",name:"Paid subscriptions",group:"payments"},{event:"payment_event",icon:"filter-dropdown-payments",name:"Payments",group:"payments"},{event:"newsletter_event",icon:"filter-dropdown-email-subscriptions",name:"Email subscriptions",group:"emails"},{event:"email_opened_event",icon:"filter-dropdown-email-opened",name:"Email opened",group:"emails"},{event:"email_delivered_event",icon:"filter-dropdown-email-received",name:"Email received",group:"emails"},{event:"email_complaint_event",icon:"filter-dropdown-email-flagged-as-spam",name:"Email flagged as spam",group:"emails"},{event:"email_failed_event",icon:"filter-dropdown-email-bounced",name:"Email bounced",group:"emails"},{event:"email_change_event",icon:"filter-dropdown-email-address-changed",name:"Email address changed",group:"emails"},{event:"automated_email_sent_event",icon:"filter-dropdown-email-received",name:"Welcome email received",group:"emails"},{event:"feedback_event",icon:"filter-dropdown-feedback",name:"Feedback",group:"others"}]}),define("ghost-admin/utils/merge-stats-by-date",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){const t=e.reduce((e,t)=>{const i=t.date
|
|
3637
|
+
const t=e.ALL_EVENT_TYPES=[{event:"signup_event",icon:"filter-dropdown-signups",name:"Signups",group:"auth"},{event:"login_event",icon:"filter-dropdown-logins",name:"Logins",group:"auth"},{event:"subscription_event",icon:"filter-dropdown-paid-subscriptions",name:"Paid subscriptions",group:"payments"},{event:"payment_event",icon:"filter-dropdown-payments",name:"Payments",group:"payments"},{event:"newsletter_event",icon:"filter-dropdown-email-subscriptions",name:"Email subscriptions",group:"emails"},{event:"email_opened_event",icon:"filter-dropdown-email-opened",name:"Email opened",group:"emails"},{event:"email_delivered_event",icon:"filter-dropdown-email-received",name:"Email received",group:"emails"},{event:"email_complaint_event",icon:"filter-dropdown-email-flagged-as-spam",name:"Email flagged as spam",group:"emails"},{event:"email_failed_event",icon:"filter-dropdown-email-bounced",name:"Email bounced",group:"emails"},{event:"email_change_event",icon:"filter-dropdown-email-address-changed",name:"Email address changed",group:"emails"},{event:"automated_email_sent_event",icon:"filter-dropdown-email-received",name:"Welcome email received",group:"emails"},{event:"metafield_change_event",icon:"filter-dropdown-custom-fields-updated",name:"Custom fields updated",group:"others"},{event:"feedback_event",icon:"filter-dropdown-feedback",name:"Feedback",group:"others"}]}),define("ghost-admin/utils/merge-stats-by-date",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){const t=e.reduce((e,t)=>{const i=t.date
|
|
3584
3638
|
return e[i]||(e[i]={date:i,count:0,positiveDelta:0,negativeDelta:0,signups:0,cancellations:0}),e[i].count+=t.count,e[i].positiveDelta+=t.positive_delta,e[i].negativeDelta+=t.negative_delta,e[i].signups+=t.signups,e[i].cancellations+=t.cancellations,e},{})
|
|
3585
3639
|
return Object.values(t)}}),define("ghost-admin/utils/password-generator",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,n,a,s){var o,l,u="",c=[]
|
|
3586
3640
|
null==e&&(e=10)
|
|
@@ -3650,83 +3704,86 @@ const n=t[i.join("+")]
|
|
|
3650
3704
|
if(!n&&r)return t[i.join("+").replace("ctrl","cmd")]
|
|
3651
3705
|
return n},e.register=function(e){t[e.toLowerCase()]=!0},e.unregister=function(e){delete t[e]}
|
|
3652
3706
|
const t={}}),define("ghost-admin/utils/slug-url",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,t){t&&!Ember.isBlank(t.slug)&&(e+=`slug/${t.slug}/`,delete t.slug)
|
|
3653
|
-
return e}}),define("ghost-admin/utils/titleize",["exports","ember-cli-string-helpers/utils/titleize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})})
|
|
3654
|
-
define("ghost-admin/utils/upgrade-url",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,r=t){const n=e?.hostSettings?.billing?.upgradeUrl
|
|
3707
|
+
return e}}),define("ghost-admin/utils/titleize",["exports","ember-cli-string-helpers/utils/titleize"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"default",{enumerable:!0,get:function(){return t.default}})}),define("ghost-admin/utils/upgrade-url",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e,r=t){const n=e?.hostSettings?.billing?.upgradeUrl
|
|
3655
3708
|
if(!n)return r
|
|
3656
3709
|
if(/^[a-z]+:/i.test(n))try{return i.includes(new URL(n).protocol)?n:r}catch(a){return r}return n.startsWith("#")?n:`#/${n.replace(/^\/+/,"")}`}
|
|
3657
|
-
const t="#/pro",i=["http:","https:"]})
|
|
3710
|
+
const t="#/pro",i=["http:","https:"]})
|
|
3711
|
+
define("ghost-admin/utils/window-proxy",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3658
3712
|
e.default={changeLocation(e){window.location=e},replaceLocation(e){window.location.replace(e)},replaceState(e,t,i){window.history.replaceState(e,t,i)},reload(){window.location.reload()}}}),define("ghost-admin/validators/base",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3659
3713
|
e.default=Ember.Object.extend({passed:!1,init(){this._super(...arguments),this.properties=this.properties||[]},check(e,t){return this.set("passed",!0),t&&this[t]?this[t](e):this.properties.forEach(t=>{this[t]&&this[t](e)}),this.passed},invalidate(){this.set("passed",!1)}})}),define("ghost-admin/validators/custom-view",["exports","ghost-admin/validators/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3660
3714
|
e.default=t.default.create({properties:["name"],name(e){Ember.isBlank(e.name)&&(e.errors.add("name","Please enter a name"),e.hasValidated.pushObject("name"),this.invalidate())}})}),define("ghost-admin/validators/integration",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3661
3715
|
e.default=t.default.create({properties:["name"],name(e){Ember.isBlank(e.name)?(e.errors.add("name","Please enter a name"),e.hasValidated.pushObject("name"),this.invalidate()):i.default.isLength(e.name,{max:191})||(e.errors.add("name","Name is too long, max 191 chars"),e.hasValidated.pushObject("name"),this.invalidate())}})}),define("ghost-admin/validators/invite-user",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3662
|
-
e.default=t.default.create({properties:["email","role"],email(e){
|
|
3663
|
-
Ember.isBlank(t)?(e.errors.add("email","Please enter an email."),this.invalidate()):i.default.isEmail(t)||(e.errors.add("email","Invalid Email."),this.invalidate())},role(e){
|
|
3716
|
+
e.default=t.default.create({properties:["email","role"],email(e){const t=e.email
|
|
3717
|
+
Ember.isBlank(t)?(e.errors.add("email","Please enter an email."),this.invalidate()):i.default.isEmail(t)||(e.errors.add("email","Invalid Email."),this.invalidate())},role(e){const t=e.role
|
|
3664
3718
|
Ember.isBlank(t)&&(e.errors.add("role","Please select a role."),e.hasValidated.pushObject("role"),this.invalidate())}})}),define("ghost-admin/validators/label",["exports","ghost-admin/validators/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3665
3719
|
e.default=t.default.create({properties:["name"],name(e){Ember.isBlank(e.name)&&(e.errors.add("name","Please enter a name"),e.hasValidated.pushObject("name"),this.invalidate())}})}),define("ghost-admin/validators/member",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3666
|
-
e.default=t.default.create({properties:["name","email","note"],name(e){i.default.isLength(e.name||"",{max:191})||(e.errors.add("name","Name cannot be longer than 191 characters."),this.invalidate())},email(e){
|
|
3667
|
-
Ember.isBlank(t)?(e.errors.add("email","Please enter an email."),this.invalidate()):i.default.isEmail(t)||(e.errors.add("email","Invalid Email."),this.invalidate()),i.default.isLength(e.email||"",{max:191})||(e.errors.add("email","Email cannot be longer than 191 characters."),this.invalidate()),e.hasValidated.addObject("email")},note(e){
|
|
3720
|
+
e.default=t.default.create({properties:["name","email","note"],name(e){i.default.isLength(e.name||"",{max:191})||(e.errors.add("name","Name cannot be longer than 191 characters."),this.invalidate())},email(e){const t=e.email
|
|
3721
|
+
Ember.isBlank(t)?(e.errors.add("email","Please enter an email."),this.invalidate()):i.default.isEmail(t)||(e.errors.add("email","Invalid Email."),this.invalidate()),i.default.isLength(e.email||"",{max:191})||(e.errors.add("email","Email cannot be longer than 191 characters."),this.invalidate()),e.hasValidated.addObject("email")},note(e){const t=e.note
|
|
3668
3722
|
i.default.isLength(t||"",{max:500})||(e.errors.add("note","Note is too long."),this.invalidate()),e.hasValidated.addObject("note")}})}),define("ghost-admin/validators/mixins/password",["exports","validator"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3669
3723
|
const i=["1234567890","qwertyuiop","qwertzuiop","asdfghjkl;","abcdefghij","0987654321","1q2w3e4r5t","12345asdfg"],r=["ghost","password","passw0rd"]
|
|
3670
|
-
e.default=Ember.Mixin.create({_characterOccurance(e){
|
|
3671
|
-
|
|
3672
|
-
|
|
3673
|
-
for(let n
|
|
3674
|
-
|
|
3675
|
-
|
|
3676
|
-
n=n
|
|
3677
|
-
|
|
3678
|
-
|
|
3724
|
+
e.default=Ember.Mixin.create({_characterOccurance(e){const t={}
|
|
3725
|
+
let i=!0
|
|
3726
|
+
const r=e.length/2
|
|
3727
|
+
for(let n=0;n<e.length;n+=1)t[e[n]]?t[e[n]]+=1:t[e[n]]=1
|
|
3728
|
+
for(const n in t)if(t[n]>=r)return i=!1,i
|
|
3729
|
+
return i},passwordValidation(e,n,a){let s=e.config?.blogUrl||window.location.host,o=e.blogTitle||e.config?.blogTitle
|
|
3730
|
+
n=n||e.password,a=a||"password",s=s.replace(/^http(s?):\/\//,"")
|
|
3731
|
+
const l=s.match(/\/$/)?s:`${s}/`
|
|
3732
|
+
if(o=o?o.trim().toLowerCase():o,!t.default.isLength(n||"",{min:10}))return e.errors.add(a,"Password must be at least 10 characters long."),this.invalidate()
|
|
3733
|
+
n=n.toString(),i.forEach(t=>{t===n&&(e.errors.add(a,"Sorry, you cannot use an insecure password."),this.invalidate())}),n.toLowerCase()===e.email.toLowerCase()&&(e.errors.add(a,"Sorry, you cannot use the email as your password."),this.invalidate()),r.forEach(t=>{n.toLowerCase().indexOf(t)>=0&&(e.errors.add(a,"Sorry, you cannot use a password including common phrases."),this.invalidate())}),n.toLowerCase()===o&&(e.errors.add(a,"Sorry, you cannot use the blog title as your password."),this.invalidate()),n.toLowerCase()!==s&&n.toLowerCase()!==l||(e.errors.add(a,"Sorry, you cannot use the blog URL as your password."),this.invalidate()),this._characterOccurance(n)||(e.errors.add(a,"Sorry, you cannot use an insecure password."),this.invalidate())}})}),define("ghost-admin/validators/nav-item",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3734
|
+
e.default=t.default.create({properties:["label","url"],label(e){const t=e.label,i=e.icon,r=e.hasValidated
|
|
3735
|
+
Ember.isBlank(t)&&Ember.isBlank(i)&&(e.errors.add("label","You must specify a label or icon"),this.invalidate()),r.addObject("label")},url(e){const t=e.url,r=e.hasValidated,n=new RegExp(/^(\/|#|[a-zA-Z0-9-]+:)/)
|
|
3679
3736
|
Ember.isBlank(t)?(e.errors.add("url","You must specify a URL or relative path"),this.invalidate()):(t.match(/\s/)||!i.default.isURL(t,{require_protocol:!0})&&!t.match(n))&&(e.errors.add("url","You must specify a valid URL or relative path"),this.invalidate()),r.addObject("url")}})}),define("ghost-admin/validators/new-user",["exports","ghost-admin/validators/base","ghost-admin/validators/mixins/password","validator"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3680
|
-
e.default=t.default.extend(i.default,{init(){this.properties=this.properties||["name","email","password"],this._super(...arguments)},name(e){
|
|
3681
|
-
r.default.isLength(t||"",{min:1})||(e.errors.add("name","Please enter a name."),e.hasValidated.addObject("email"),this.invalidate())},email(e){
|
|
3737
|
+
e.default=t.default.extend(i.default,{init(){this.properties=this.properties||["name","email","password"],this._super(...arguments)},name(e){const t=e.name
|
|
3738
|
+
r.default.isLength(t||"",{min:1})||(e.errors.add("name","Please enter a name."),e.hasValidated.addObject("email"),this.invalidate())},email(e){const t=e.email
|
|
3682
3739
|
Ember.isBlank(t)?(e.errors.add("email","Please enter an email."),this.invalidate()):r.default.isEmail(t)||(e.errors.add("email","Invalid Email."),this.invalidate()),e.hasValidated.addObject("email")},password(e){this.passwordValidation(e)}})}),define("ghost-admin/validators/newsletter",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3683
3740
|
e.default=t.default.create({properties:["name","senderName","senderEmail","senderReplyTo"],name(e){Ember.isBlank(e.name)&&(e.errors.add("name","Please enter a name."),this.invalidate()),i.default.isLength(e.name||"",{max:191})||(e.errors.add("name","Cannot be longer than 191 characters."),this.invalidate()),e.hasValidated.addObject("name")},senderName(e){i.default.isLength(e.senderName||"",{max:191})||(e.errors.add("senderName","Cannot be longer than 191 characters."),this.invalidate()),e.hasValidated.addObject("senderName")},senderEmail(e){e.senderEmail&&!i.default.isEmail(e.senderEmail)&&(e.errors.add("senderEmail","Invalid email."),this.invalidate()),i.default.isLength(e.senderEmail||"",{max:191})||(e.errors.add("senderEmail","Cannot be longer than 191 characters."),this.invalidate()),e.hasValidated.addObject("senderEmail")},senderReplyTo(e){Ember.isBlank(e.senderReplyTo)&&(e.errors.add("senderReplyTo","Please enter a reply-to email address."),this.invalidate()),i.default.isIn(e.senderReplyTo,["newsletter","support"])||(e.errors.add("senderReplyTo",'Can only be set to "newsletter" or "support".'),this.invalidate()),e.hasValidated.addObject("senderReplyTo")},visibility(e){Ember.isBlank(e.visibility)&&(e.errors.add("visibility","Please enter visibility."),this.invalidate()),i.default.isIn(e.senderReplyTo,["members","paid"])||(e.errors.add("visibility",'Can only be set to "members" or "paid".'),this.invalidate()),e.hasValidated.addObject("visibility")}})}),define("ghost-admin/validators/post",["exports","ghost-admin/validators/base","moment-timezone","validator"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3684
|
-
e.default=t.default.create({properties:["title","authors","customExcerpt","canonicalUrl","codeinjectionHead","codeinjectionFoot","metaTitle","metaDescription","ogtitle","ogDescription","twitterTitle","twitterDescription","publishedAtBlogTime","publishedAtBlogDate","emailSubject","featureImageAlt"],title(e){Ember.isBlank(e.title)&&(e.errors.add("title","You must specify a title for the post."),this.invalidate()),r.default.isLength(e.title||"",{max:255})||(e.errors.add("title","Title cannot be longer than 255 characters."),this.invalidate())},authors(e){Ember.isEmpty(e.authors)&&(e.errors.add("authors","At least one author is required."),this.invalidate())},canonicalUrl(e){
|
|
3741
|
+
e.default=t.default.create({properties:["title","authors","customExcerpt","canonicalUrl","codeinjectionHead","codeinjectionFoot","metaTitle","metaDescription","ogtitle","ogDescription","twitterTitle","twitterDescription","publishedAtBlogTime","publishedAtBlogDate","emailSubject","featureImageAlt"],title(e){Ember.isBlank(e.title)&&(e.errors.add("title","You must specify a title for the post."),this.invalidate()),r.default.isLength(e.title||"",{max:255})||(e.errors.add("title","Title cannot be longer than 255 characters."),this.invalidate())},authors(e){Ember.isEmpty(e.authors)&&(e.errors.add("authors","At least one author is required."),this.invalidate())},canonicalUrl(e){const t=new RegExp(/^(\/|[a-zA-Z0-9-]+:)/),i=e.canonicalUrl
|
|
3685
3742
|
Ember.isBlank(i)||(i.match(/\s/)||!r.default.isURL(i,{require_protocol:!0})&&!i.match(t)?(e.errors.add("canonicalUrl","Please enter a valid URL"),this.invalidate()):r.default.isLength(e.canonicalUrl,{max:2e3})||(e.errors.add("canonicalUrl","Canonical URL is too long, max 2000 chars"),this.invalidate()))},customExcerpt(e){if(r.default.isLength(e.customExcerpt||"",{max:300}))e.errors.remove("customExcerpt")
|
|
3686
3743
|
else{const t="Excerpt cannot be longer than 300 characters."
|
|
3687
|
-
e.errors.add("customExcerpt",t),this.invalidate()}},visibility(e){Ember.isBlank(e.visibility)&&!e.isNew&&(e.errors.add("visibility","Please select at least one tier"),this.invalidate())},tiers(e){"tiers"===e.visibility&&!e.isNew&&Ember.isEmpty(e.tiers)&&(e.errors.add("tiers","Please select at least one tier"),this.invalidate())},codeinjectionFoot(e){r.default.isLength(e.codeinjectionFoot||"",{max:65535})||(e.errors.add("codeinjectionFoot","Footer code cannot be longer than 65535 characters."),this.invalidate())},codeinjectionHead(e){r.default.isLength(e.codeinjectionHead||"",{max:65535})||(e.errors.add("codeinjectionHead","Header code cannot be longer than 65535 characters."),this.invalidate())},metaTitle(e){r.default.isLength(e.metaTitle||"",{max:300})||(e.errors.add("metaTitle","Meta Title cannot be longer than 300 characters."),this.invalidate())},metaDescription(e){r.default.isLength(e.metaDescription||"",{max:500})||(e.errors.add("metaDescription","Meta Description cannot be longer than 500 characters."),this.invalidate())},ogTitle(e){r.default.isLength(e.ogTitle||"",{max:300})||(e.errors.add("ogTitle","Facebook Title cannot be longer than 300 characters."),this.invalidate())},ogDescription(e){r.default.isLength(e.ogDescription||"",{max:500})||(e.errors.add("ogDescription","Facebook Description cannot be longer than 500 characters."),this.invalidate())},twitterTitle(e){r.default.isLength(e.twitterTitle||"",{max:300})||(e.errors.add("twitterTitle","Twitter Title cannot be longer than 300 characters."),this.invalidate())},twitterDescription(e){r.default.isLength(e.twitterDescription||"",{max:500})||(e.errors.add("twitterDescription","Twitter Description cannot be longer than 500 characters."),this.invalidate())},emailSubject(e){r.default.isLength(e.emailSubject||"",{max:300})||(e.errors.add("emailSubject","Email Subject cannot be longer than 300 characters."),this.invalidate())},_shouldValidatePublishedAtBlog:e=>Ember.isPresent(e.publishedAtUTC)||Ember.isPresent(e.publishedAtBlogDate)||Ember.isPresent(e.publishedAtBlogTime),publishedAtBlog(e){this.publishedAtBlogTime(e),this.publishedAtBlogDate(e)},publishedAtBlogTime(e){!/^(([0-1]?[0-9])|([2][0-3])):([0-5][0-9])$/.test(e.publishedAtBlogTime)&&this._shouldValidatePublishedAtBlog(e)&&(e.errors.add("publishedAtBlogTime",'Must be in format: "15:00"'),this.invalidate())},publishedAtBlogDate(e){
|
|
3744
|
+
e.errors.add("customExcerpt",t),this.invalidate()}},visibility(e){Ember.isBlank(e.visibility)&&!e.isNew&&(e.errors.add("visibility","Please select at least one tier"),this.invalidate())},tiers(e){"tiers"===e.visibility&&!e.isNew&&Ember.isEmpty(e.tiers)&&(e.errors.add("tiers","Please select at least one tier"),this.invalidate())},codeinjectionFoot(e){r.default.isLength(e.codeinjectionFoot||"",{max:65535})||(e.errors.add("codeinjectionFoot","Footer code cannot be longer than 65535 characters."),this.invalidate())},codeinjectionHead(e){r.default.isLength(e.codeinjectionHead||"",{max:65535})||(e.errors.add("codeinjectionHead","Header code cannot be longer than 65535 characters."),this.invalidate())},metaTitle(e){r.default.isLength(e.metaTitle||"",{max:300})||(e.errors.add("metaTitle","Meta Title cannot be longer than 300 characters."),this.invalidate())},metaDescription(e){r.default.isLength(e.metaDescription||"",{max:500})||(e.errors.add("metaDescription","Meta Description cannot be longer than 500 characters."),this.invalidate())},ogTitle(e){r.default.isLength(e.ogTitle||"",{max:300})||(e.errors.add("ogTitle","Facebook Title cannot be longer than 300 characters."),this.invalidate())},ogDescription(e){r.default.isLength(e.ogDescription||"",{max:500})||(e.errors.add("ogDescription","Facebook Description cannot be longer than 500 characters."),this.invalidate())},twitterTitle(e){r.default.isLength(e.twitterTitle||"",{max:300})||(e.errors.add("twitterTitle","Twitter Title cannot be longer than 300 characters."),this.invalidate())},twitterDescription(e){r.default.isLength(e.twitterDescription||"",{max:500})||(e.errors.add("twitterDescription","Twitter Description cannot be longer than 500 characters."),this.invalidate())},emailSubject(e){r.default.isLength(e.emailSubject||"",{max:300})||(e.errors.add("emailSubject","Email Subject cannot be longer than 300 characters."),this.invalidate())},_shouldValidatePublishedAtBlog:e=>Ember.isPresent(e.publishedAtUTC)||Ember.isPresent(e.publishedAtBlogDate)||Ember.isPresent(e.publishedAtBlogTime),publishedAtBlog(e){this.publishedAtBlogTime(e),this.publishedAtBlogDate(e)},publishedAtBlogTime(e){!/^(([0-1]?[0-9])|([2][0-3])):([0-5][0-9])$/.test(e.publishedAtBlogTime)&&this._shouldValidatePublishedAtBlog(e)&&(e.errors.add("publishedAtBlogTime",'Must be in format: "15:00"'),this.invalidate())},publishedAtBlogDate(e){const t=e.publishedAtBlogDate,r=e.publishedAtBlogTime
|
|
3688
3745
|
if(this._shouldValidatePublishedAtBlog(e)){if(Ember.isBlank(t)&&!Ember.isBlank(r))return e.errors.add("publishedAtBlogDate","Can't be blank"),this.invalidate()
|
|
3689
|
-
if(Ember.isEmpty(e.errors.errorsFor("publishedAtBlogTime"))){
|
|
3746
|
+
if(Ember.isEmpty(e.errors.errorsFor("publishedAtBlogTime"))){const t=e.status,r=(0,i.default)(),n=e.publishedAtBlogTZ,a=n.isSameOrAfter(r)
|
|
3690
3747
|
"draft"!==t&&"published"!==t||!n.isSameOrAfter(r)?!e.changedAttributes().status&&!e.changedAttributes().publishedAtUTC||"scheduled"!==t||a||(e.errors.add("publishedAtBlogDate","Please choose a future date and time."),this.invalidate()):(e.errors.add("publishedAtBlogDate","Please choose a past date and time."),this.invalidate())}}},featureImageAlt(e){r.default.isLength(e.featureImageAlt||"",{max:191})||(e.errors.add("featureImageAlt","Feature image alt text cannot be longer than 191 characters."),this.invalidate())}})}),define("ghost-admin/validators/reset",["exports","ghost-admin/validators/base","ghost-admin/validators/mixins/password","validator"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3691
|
-
const n=t.default.extend(i.default,{init(){this.properties=this.properties||["newPassword"],this._super(...arguments)},newPassword(e){
|
|
3748
|
+
const n=t.default.extend(i.default,{init(){this.properties=this.properties||["newPassword"],this._super(...arguments)},newPassword(e){const t=e.newPassword,i=e.ne2Password
|
|
3692
3749
|
Ember.isBlank(t)?(e.errors.add("newPassword","Please enter a password."),this.invalidate()):r.default.equals(t,i||"")||(e.errors.add("ne2Password","The two new passwords don't match."),this.invalidate()),this.passwordValidation(e,t,"newPassword")}})
|
|
3693
3750
|
e.default=n.create()}),define("ghost-admin/validators/setting",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3694
|
-
e.default=t.default.create({properties:["title","description","password","slackUrl"],title(e){
|
|
3695
|
-
i.default.isLength(t||"",{max:150})||(e.errors.add("title","Title is too long"),this.invalidate())},description(e){
|
|
3696
|
-
i.default.isLength(t||"",{max:200})||(e.errors.add("description","Description is too long"),this.invalidate())},password(e){
|
|
3697
|
-
t&&""===i&&(e.errors.add("password","Password must be supplied"),this.invalidate())},slackUrl(e){
|
|
3751
|
+
e.default=t.default.create({properties:["title","description","password","slackUrl"],title(e){const t=e.title
|
|
3752
|
+
i.default.isLength(t||"",{max:150})||(e.errors.add("title","Title is too long"),this.invalidate())},description(e){const t=e.description
|
|
3753
|
+
i.default.isLength(t||"",{max:200})||(e.errors.add("description","Description is too long"),this.invalidate())},password(e){const t=e.isPrivate,i=e.password
|
|
3754
|
+
t&&""===i&&(e.errors.add("password","Password must be supplied"),this.invalidate())},slackUrl(e){const t=e.slackUrl
|
|
3698
3755
|
Ember.isBlank(t)||i.default.isURL(t,{require_protocol:!0})||(e.errors.add("slackUrl","The URL must be in a format like https://hooks.slack.com/services/<your personal key>"),this.invalidate())}})}),define("ghost-admin/validators/setup",["exports","ghost-admin/validators/new-user","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3699
|
-
e.default=t.default.create({properties:["name","email","password","blogTitle"],blogTitle(e){
|
|
3756
|
+
e.default=t.default.create({properties:["name","email","password","blogTitle"],blogTitle(e){const t=e.blogTitle
|
|
3700
3757
|
i.default.isLength(t||"",{min:1})||(e.errors.add("blogTitle","Please enter a site title."),this.invalidate()),i.default.isLength(t||"",{max:150})||(e.errors.add("blogTitle","Title is too long"),this.invalidate())}})}),define("ghost-admin/validators/signin",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3701
|
-
e.default=t.default.create({properties:["identification","signin","forgotPassword"],invalidMessage:"Email address is not valid",identification(e){
|
|
3702
|
-
Ember.isBlank(t)||i.default.isEmail(t)||(e.errors.add("identification",this.invalidMessage),this.invalidate())},signin(e){
|
|
3703
|
-
e.errors.clear(),Ember.isBlank(t)&&(e.errors.add("identification","Please enter an email"),this.invalidate()),Ember.isBlank(t)||i.default.isEmail(t)||(e.errors.add("identification",this.invalidMessage),this.invalidate()),Ember.isBlank(r)&&(e.errors.add("password","Please enter a password"),this.invalidate())},forgotPassword(e){
|
|
3758
|
+
e.default=t.default.create({properties:["identification","signin","forgotPassword"],invalidMessage:"Email address is not valid",identification(e){const t=e.identification
|
|
3759
|
+
Ember.isBlank(t)||i.default.isEmail(t)||(e.errors.add("identification",this.invalidMessage),this.invalidate())},signin(e){const t=e.identification,r=e.password
|
|
3760
|
+
e.errors.clear(),Ember.isBlank(t)&&(e.errors.add("identification","Please enter an email"),this.invalidate()),Ember.isBlank(t)||i.default.isEmail(t)||(e.errors.add("identification",this.invalidMessage),this.invalidate()),Ember.isBlank(r)&&(e.errors.add("password","Please enter a password"),this.invalidate())},forgotPassword(e){const t=e.identification
|
|
3704
3761
|
e.errors.clear(),!Ember.isBlank(t)&&i.default.isEmail(t)||(e.errors.add("identification",this.invalidMessage),this.invalidate())}})}),define("ghost-admin/validators/signup",["exports","ghost-admin/validators/new-user"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3705
3762
|
e.default=t.default.create()}),define("ghost-admin/validators/snippet",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3706
|
-
e.default=t.default.create({properties:["name","mobiledoc"],name(e){
|
|
3763
|
+
e.default=t.default.create({properties:["name","mobiledoc"],name(e){const{name:t}=e
|
|
3707
3764
|
i.default.isLength(t||"",{max:191})||(e.errors.add("name","Name cannot be longer than 191 characters"),this.invalidate()),Ember.isBlank(t)&&(e.errors.add("name","Name cannot be blank"),this.invalidate()),e.hasValidated.addObject("name")},mobiledoc(e){Ember.isBlank(e.mobiledoc)&&(e.errors.add("mobiledoc","Content cannot be blank."),this.invalidate()),e.hasValidated.addObject("mobiledoc")}})}),define("ghost-admin/validators/subscriber",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3708
|
-
e.default=t.default.create({properties:["email"],email(e){
|
|
3765
|
+
e.default=t.default.create({properties:["email"],email(e){const t=e.email
|
|
3709
3766
|
Ember.isBlank(t)?(e.errors.add("email","Please enter an email."),e.hasValidated.pushObject("email"),this.invalidate()):i.default.isEmail(t)?i.default.isLength(t,{max:191})||(e.errors.add("email","Email is too long"),e.hasValidated.pushObject("email"),this.invalidate()):(e.errors.add("email","Invalid email."),e.hasValidated.pushObject("email"),this.invalidate())}})}),define("ghost-admin/validators/tag-settings",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3710
|
-
e.default=t.default.create({properties:["name","slug","description","metaTitle","metaDescription"],name(e){
|
|
3711
|
-
Ember.isBlank(t)?(e.errors.add("name","You must specify a name for the tag."),this.invalidate()):t.match(/^,/)?(e.errors.add("name","Tag names can't start with commas."),this.invalidate()):i.default.isLength(t,{max:191})||(e.errors.add("name","Tag names cannot be longer than 191 characters."),this.invalidate())},slug(e){
|
|
3712
|
-
i.default.isLength(t||"",{max:191})||(e.errors.add("slug","URL cannot be longer than 191 characters."),this.invalidate())},description(e){
|
|
3713
|
-
i.default.isLength(t||"",{max:500})||(e.errors.add("description","Description cannot be longer than 500 characters."),this.invalidate())},metaTitle(e){
|
|
3714
|
-
i.default.isLength(t||"",{max:300})||(e.errors.add("metaTitle","Meta Title cannot be longer than 300 characters."),this.invalidate())},metaDescription(e){
|
|
3767
|
+
e.default=t.default.create({properties:["name","slug","description","metaTitle","metaDescription"],name(e){const t=e.name
|
|
3768
|
+
Ember.isBlank(t)?(e.errors.add("name","You must specify a name for the tag."),this.invalidate()):t.match(/^,/)?(e.errors.add("name","Tag names can't start with commas."),this.invalidate()):i.default.isLength(t,{max:191})||(e.errors.add("name","Tag names cannot be longer than 191 characters."),this.invalidate())},slug(e){const t=e.slug
|
|
3769
|
+
i.default.isLength(t||"",{max:191})||(e.errors.add("slug","URL cannot be longer than 191 characters."),this.invalidate())},description(e){const t=e.description
|
|
3770
|
+
i.default.isLength(t||"",{max:500})||(e.errors.add("description","Description cannot be longer than 500 characters."),this.invalidate())},metaTitle(e){const t=e.metaTitle
|
|
3771
|
+
i.default.isLength(t||"",{max:300})||(e.errors.add("metaTitle","Meta Title cannot be longer than 300 characters."),this.invalidate())},metaDescription(e){const t=e.metaDescription
|
|
3715
3772
|
i.default.isLength(t||"",{max:500})||(e.errors.add("metaDescription","Meta Description cannot be longer than 500 characters."),this.invalidate())}})}),define("ghost-admin/validators/tier-benefit-item",["exports","ghost-admin/validators/base"],function(e,t){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3716
|
-
e.default=t.default.create({properties:["name"],name(e){
|
|
3773
|
+
e.default=t.default.create({properties:["name"],name(e){const t=e.name,i=e.hasValidated
|
|
3717
3774
|
Ember.isBlank(t)&&(e.errors.add("name","Please enter a benefit"),this.invalidate()),i.addObject("name")}})}),define("ghost-admin/validators/tier",["exports","ghost-admin/validators/base","validator"],function(e,t,i){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3718
3775
|
e.default=t.default.create({properties:["name"],name(e){e.name||(e.errors.add("name","Please enter Name."),e.hasValidated.addObject("name"),this.invalidate()),i.default.isLength(e.name||"",{max:191})||(e.errors.add("name","Name cannot be longer than 191 characters."),e.hasValidated.addObject("name"),this.invalidate())}})}),define("ghost-admin/validators/user",["exports","ghost-admin/validators/base","ghost-admin/validators/mixins/password","validator"],function(e,t,i,r){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3719
|
-
const n=t.default.extend(i.default,{init(){this.properties=this.properties||["name","bio","email","location","website","roles"],this._super(...arguments)},isActive:e=>"active"===e.status,name(e){
|
|
3720
|
-
this.isActive(e)&&(Ember.isBlank(t)?(e.errors.add("name","Please enter a name."),this.invalidate()):r.default.isLength(t,{max:191})||(e.errors.add("name","Name is too long"),this.invalidate()))},bio(e){
|
|
3721
|
-
this.isActive(e)&&(r.default.isLength(t||"",{max:250})||(e.errors.add("bio","Bio is too long"),this.invalidate()))},email(e){
|
|
3722
|
-
r.default.isEmail(t||"")||(e.errors.add("email","Please supply a valid email address"),this.invalidate()),r.default.isLength(t||"",{max:191})||(e.errors.add("email","Email is too long"),this.invalidate())},location(e){
|
|
3723
|
-
this.isActive(e)&&(r.default.isLength(t||"",{max:150})||(e.errors.add("location","Location is too long"),this.invalidate()))},website(e){
|
|
3724
|
-
this.isActive(e)&&!Ember.isBlank(t)&&i&&(e.errors.add("website","Website is not a valid url"),this.invalidate())},roles(e){if(!this.isActive(e)){e.roles.length<1&&(e.errors.add("role","Please select a role"),this.invalidate())}},passwordChange(e){
|
|
3725
|
-
e.hasValidated.addObject("newPassword"),e.hasValidated.addObject("ne2Password"),Ember.isBlank(t)&&Ember.isBlank(i)?(e.errors.add("newPassword","Sorry, passwords can't be blank"),this.invalidate()):(r.default.equals(t,i||"")||(e.errors.add("ne2Password","Your new passwords do not match"),this.invalidate()),this.passwordValidation(e,t,"newPassword"))},ownPasswordChange(e){
|
|
3776
|
+
const n=t.default.extend(i.default,{init(){this.properties=this.properties||["name","bio","email","location","website","roles"],this._super(...arguments)},isActive:e=>"active"===e.status,name(e){const t=e.name
|
|
3777
|
+
this.isActive(e)&&(Ember.isBlank(t)?(e.errors.add("name","Please enter a name."),this.invalidate()):r.default.isLength(t,{max:191})||(e.errors.add("name","Name is too long"),this.invalidate()))},bio(e){const t=e.bio
|
|
3778
|
+
this.isActive(e)&&(r.default.isLength(t||"",{max:250})||(e.errors.add("bio","Bio is too long"),this.invalidate()))},email(e){const t=e.email
|
|
3779
|
+
r.default.isEmail(t||"")||(e.errors.add("email","Please supply a valid email address"),this.invalidate()),r.default.isLength(t||"",{max:191})||(e.errors.add("email","Email is too long"),this.invalidate())},location(e){const t=e.location
|
|
3780
|
+
this.isActive(e)&&(r.default.isLength(t||"",{max:150})||(e.errors.add("location","Location is too long"),this.invalidate()))},website(e){const t=e.website,i=!r.default.isURL(t||"",{require_protocol:!1})||!r.default.isLength(t||"",{max:2e3})
|
|
3781
|
+
this.isActive(e)&&!Ember.isBlank(t)&&i&&(e.errors.add("website","Website is not a valid url"),this.invalidate())},roles(e){if(!this.isActive(e)){e.roles.length<1&&(e.errors.add("role","Please select a role"),this.invalidate())}},passwordChange(e){const t=e.newPassword,i=e.ne2Password
|
|
3782
|
+
e.hasValidated.addObject("newPassword"),e.hasValidated.addObject("ne2Password"),Ember.isBlank(t)&&Ember.isBlank(i)?(e.errors.add("newPassword","Sorry, passwords can't be blank"),this.invalidate()):(r.default.equals(t,i||"")||(e.errors.add("ne2Password","Your new passwords do not match"),this.invalidate()),this.passwordValidation(e,t,"newPassword"))},ownPasswordChange(e){const t=e.password
|
|
3726
3783
|
this.passwordChange(e),e.hasValidated.addObject("password"),Ember.isBlank(t)&&(e.errors.add("password","Your current password is required to set a new one"),this.invalidate())}})
|
|
3727
3784
|
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
|
|
3728
3785
|
e.default=t.default.create({properties:["name","event","targetUrl","secret"],name(e){Ember.isBlank(e.name)?(e.errors.add("name","Please enter a name"),e.hasValidated.pushObject("name"),this.invalidate()):i.default.isLength(e.name,{max:191})||(e.errors.add("name","Name is too long, max 191 chars"),e.hasValidated.pushObject("name"),this.invalidate())},event(e){Ember.isBlank(e.event)&&(e.errors.add("event","Please select an event"),e.hasValidated.pushObject("event"),this.invalidate())},targetUrl(e){Ember.isBlank(e.targetUrl)?e.errors.add("targetUrl","Please enter a target URL"):i.default.isURL(e.targetUrl||"",{require_protocol:!1})?i.default.isLength(e.targetUrl,{max:2e3})||e.errors.add("targetUrl","Target URL is too long, max 2000 chars"):e.errors.add("targetUrl","Please enter a valid URL"),e.hasValidated.pushObject("targetUrl"),e.errors.has("targetUrl")&&this.invalidate()},secret(e){Ember.isBlank(e.secret)||i.default.isLength(e.secret,{max:191})||(e.errors.add("secret","Secret is too long, max 191 chars"),e.hasValidated.pushObject("secret"),this.invalidate())}})}),define("ghost-admin/views/application",["exports"],function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
|
|
3729
3786
|
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))}
|
|
3730
|
-
return Object.defineProperty(i,"__esModule",{value:!0}),i}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("ghost-admin/app").default.create({version:"6.
|
|
3787
|
+
return Object.defineProperty(i,"__esModule",{value:!0}),i}catch(r){throw new Error('Could not read config from meta tag with name "'+e+'".')}}),runningTests||require("ghost-admin/app").default.create({version:"6.65",name:"ghost-admin"})
|
|
3731
3788
|
|
|
3732
|
-
//# sourceMappingURL=ghost-
|
|
3789
|
+
//# sourceMappingURL=ghost-0f96fc2995b827125f47b0d010e1d875.map
|