ghost 4.36.2 → 4.38.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (97) hide show
  1. package/.c8rc.json +10 -0
  2. package/content/themes/casper/LICENSE +1 -1
  3. package/content/themes/casper/README.md +1 -1
  4. package/content/themes/casper/assets/built/global.css +1 -1
  5. package/content/themes/casper/assets/built/global.css.map +1 -1
  6. package/content/themes/casper/assets/built/screen.css +1 -1
  7. package/content/themes/casper/assets/built/screen.css.map +1 -1
  8. package/content/themes/casper/assets/css/global.css +14 -6
  9. package/content/themes/casper/assets/css/screen.css +9 -1
  10. package/content/themes/casper/package.json +2 -2
  11. package/content/themes/casper/partials/post-card.hbs +1 -1
  12. package/content/themes/casper/post.hbs +18 -19
  13. package/content/themes/casper/yarn.lock +186 -217
  14. package/core/built/assets/ghost-dark-9f760f16230b8bc52e188d6ce28516b0.css +1 -0
  15. package/core/built/assets/{ghost.min-7bb27e53841408f542d9b0b5135ca1cb.js → ghost.min-6386b02480494a69c3bfe66206754836.js} +376 -312
  16. package/core/built/assets/ghost.min-f4c59dd57a2136df8b0a34f87c099034.css +1 -0
  17. package/core/built/assets/icons/eye.svg +4 -1
  18. package/core/built/assets/icons/member-add.svg +3 -0
  19. package/core/built/assets/icons/pin.svg +4 -1
  20. package/core/built/assets/{vendor.min-2313642ee897688be83924a38d5e62f1.js → vendor.min-c814d3c4b3f543c4cd5ef3aacd0fc645.js} +40 -36
  21. package/core/frontend/helpers/excerpt.js +7 -4
  22. package/core/frontend/helpers/get.js +4 -0
  23. package/core/frontend/helpers/match.js +12 -0
  24. package/core/frontend/helpers/prev_post.js +11 -1
  25. package/core/frontend/helpers/tiers.js +59 -0
  26. package/core/frontend/helpers/tpl/content-cta.hbs +1 -1
  27. package/core/frontend/services/routing/router-manager.js +1 -1
  28. package/core/frontend/web/site.js +10 -0
  29. package/core/server/api/canary/authentication.js +2 -0
  30. package/core/server/api/canary/index.js +8 -0
  31. package/core/server/api/canary/members.js +2 -1
  32. package/core/server/api/canary/products.js +3 -6
  33. package/core/server/api/canary/tiers-public.js +34 -0
  34. package/core/server/api/canary/tiers.js +120 -0
  35. package/core/server/api/canary/utils/serializers/input/index.js +4 -0
  36. package/core/server/api/canary/utils/serializers/input/tiers.js +36 -0
  37. package/core/server/api/canary/utils/serializers/output/email-posts.js +7 -1
  38. package/core/server/api/canary/utils/serializers/output/index.js +4 -0
  39. package/core/server/api/canary/utils/serializers/output/members.js +5 -0
  40. package/core/server/api/canary/utils/serializers/output/pages.js +9 -2
  41. package/core/server/api/canary/utils/serializers/output/posts.js +8 -2
  42. package/core/server/api/canary/utils/serializers/output/preview.js +7 -1
  43. package/core/server/api/canary/utils/serializers/output/products.js +3 -1
  44. package/core/server/api/canary/utils/serializers/output/tiers.js +212 -0
  45. package/core/server/api/canary/utils/serializers/output/utils/mapper.js +17 -7
  46. package/core/server/api/canary/utils/validators/input/index.js +4 -0
  47. package/core/server/api/canary/utils/validators/input/tiers.js +6 -0
  48. package/core/server/api/v2/settings.js +2 -1
  49. package/core/server/data/db/connection.js +3 -2
  50. package/core/server/data/migrations/init/1-create-tables.js +4 -1
  51. package/core/server/data/migrations/versions/3.29/01-remove-duplicate-subscriptions.js +2 -1
  52. package/core/server/data/migrations/versions/3.29/02-remove-duplicate-customers.js +2 -1
  53. package/core/server/data/migrations/versions/3.29/03-remove-orphaned-customers.js +2 -1
  54. package/core/server/data/migrations/versions/3.29/04-remove-orphaned-subscriptions.js +2 -1
  55. package/core/server/data/migrations/versions/3.29/05-add-member-constraints.js +3 -2
  56. package/core/server/data/migrations/versions/3.39/06-add-email-recipient-index.js +4 -3
  57. package/core/server/data/migrations/versions/4.0/14-remove-orphaned-stripe-records.js +2 -1
  58. package/core/server/data/migrations/versions/4.0/26-add-cascade-on-delete.js +2 -1
  59. package/core/server/data/migrations/versions/4.0/29-fix-foreign-key-for-members-stripe-customers-subscriptions.js +2 -1
  60. package/core/server/data/migrations/versions/4.1/02-add-unique-constraint-for-member-stripe-tables.js +2 -1
  61. package/core/server/data/migrations/versions/4.20/05-remove-not-null-constraint-from-portal-title.js +3 -2
  62. package/core/server/data/migrations/versions/4.33/2022-01-18-09-07-remove-duplicate-offer-redemptions.js +2 -2
  63. package/core/server/data/migrations/versions/4.35/2022-02-01-11-48-update-email-recipient-filter-column-type.js +2 -1
  64. package/core/server/data/migrations/versions/4.35/2022-02-01-12-03-update-recipient-filter-column-type.js +2 -1
  65. package/core/server/data/migrations/versions/4.37/2022-02-21-09-53-backfill-members-last-seen-at-column.js +32 -0
  66. package/core/server/data/migrations/versions/4.38/2022-03-01-08-46-add-visibility-to-tiers.js +11 -0
  67. package/core/server/data/migrations/versions/4.38/2022-03-03-16-12-add-visibility-to-tiers.js +8 -0
  68. package/core/server/data/migrations/versions/4.38/2022-03-03-16-17-drop-tiers-visible-column.js +7 -0
  69. package/core/server/data/schema/clients/index.js +1 -1
  70. package/core/server/data/schema/clients/mysql.js +4 -4
  71. package/core/server/data/schema/commands.js +61 -70
  72. package/core/server/data/schema/{default-settings.json → default-settings/default-settings.json} +0 -0
  73. package/core/server/data/schema/default-settings/index.js +6 -0
  74. package/core/server/data/schema/fixtures/fixtures.json +4 -2
  75. package/core/server/data/schema/schema.js +7 -0
  76. package/core/server/models/product.js +2 -1
  77. package/core/server/services/auth/api-key/admin.js +15 -6
  78. package/core/server/services/auth/setup.js +13 -1
  79. package/core/server/services/email-analytics/lib/event-processor.js +18 -1
  80. package/core/server/services/members/middleware.js +4 -1
  81. package/core/server/services/members/service.js +21 -8
  82. package/core/server/services/route-settings/index.js +1 -1
  83. package/core/server/web/admin/views/default-prod.html +4 -4
  84. package/core/server/web/admin/views/default.html +4 -4
  85. package/core/server/web/api/app.js +3 -0
  86. package/core/server/web/api/canary/admin/middleware.js +2 -0
  87. package/core/server/web/api/canary/admin/routes.js +7 -0
  88. package/core/server/web/api/canary/content/routes.js +1 -0
  89. package/core/server/web/members/app.js +1 -1
  90. package/core/shared/config/defaults.json +3 -2
  91. package/core/shared/config/overrides.json +1 -1
  92. package/core/shared/config/utils.js +5 -1
  93. package/core/shared/labs.js +4 -1
  94. package/package.json +62 -61
  95. package/yarn.lock +729 -614
  96. package/core/built/assets/ghost-dark-25e568b14d76f6754fa8279cceb265ba.css +0 -1
  97. package/core/built/assets/ghost.min-75ed7451ca633bae1b345eb57e2c28e0.css +0 -1
@@ -1 +1,4 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px;}</style></defs><title>view-1</title><path class="a" d="M12,5.251C7.969,5.183,3.8,8,1.179,10.885a1.663,1.663,0,0,0,0,2.226C3.743,15.935,7.9,18.817,12,18.748c4.1.069,8.258-2.813,10.824-5.637a1.663,1.663,0,0,0,0-2.226C20.2,8,16.031,5.183,12,5.251Z"/><path class="a" d="M15.75,12A3.75,3.75,0,1,1,12,8.249,3.749,3.749,0,0,1,15.75,12Z"/></svg>
1
+ <svg width="26" height="24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M13 5.001c-4.03-.078-8.2 3.157-10.82 6.47-.276.35-.428.805-.428 1.277 0 .472.152.928.427 1.278C4.743 17.27 8.9 20.578 13 20.5c4.1.079 8.258-3.23 10.824-6.473.275-.35.428-.806.428-1.278s-.153-.927-.428-1.278C21.2 8.158 17.031 4.923 13 5.001Z" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M16.75 12.751a3.75 3.75 0 1 1-7.5-.002 3.75 3.75 0 0 1 7.5.002Z" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.5 12c-2.824 0-2.83.024-4.5.53-3.5 1.058-5 3.176-5 6.386V21h10M19 16v6M16 19h6M11.5 12a5.5 5.5 0 1 0 0-11 5.5 5.5 0 0 0 0 11Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ </svg>
@@ -1 +1,4 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><defs><style>.a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}</style></defs><title>pin</title><circle class="a" cx="12" cy="8.25" r="3.75"/><path class="a" d="M12 .75a7.5 7.5 0 0 1 7.5 7.5c0 3.407-5.074 11.95-6.875 14.665a.75.75 0 0 1-1.25 0C9.574 20.2 4.5 11.657 4.5 8.25A7.5 7.5 0 0 1 12 .75z"/></svg>
1
+ <svg width="24" height="26" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M12 14.75a4 4 0 1 0 0-8 4 4 0 0 0 0 8Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
3
+ <path d="M21 10.75c0 7.9-6.932 12.331-8.629 13.3a.751.751 0 0 1-.743 0C9.931 23.08 3 18.648 3 10.75a9 9 0 1 1 18 0Z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
4
+ </svg>
@@ -10153,10 +10153,12 @@ function n(){}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,
10153
10153
  var r={initialize:n}
10154
10154
  e.default=r})),define("ember-css-transitions/modifiers/css-transition",["exports","ember-modifier","ember-css-transitions/utils/transition-utils"],(function(e,t,n){"use strict"
10155
10155
  function r(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
10156
- class i extends t.default{constructor(){super(...arguments),r(this,"clone",null),r(this,"parentElement",null),r(this,"nextElementSibling",null),r(this,"installed",!1)}get el(){return this.clone||this.element}get transitionName(){return this.args.positional[0]||this.args.named.name}get enterClass(){return this.args.named.enterClass||this.transitionName&&`${this.transitionName}-enter`}get enterActiveClass(){return this.args.named.enterActiveClass||this.transitionName&&`${this.transitionName}-enter-active`}get enterToClass(){return this.args.named.enterToClass||this.transitionName&&`${this.transitionName}-enter-to`}get leaveClass(){return this.args.named.leaveClass||this.transitionName&&`${this.transitionName}-leave`}get leaveActiveClass(){return this.args.named.leaveActiveClass||this.transitionName&&`${this.transitionName}-leave-active`}get leaveToClass(){return this.args.named.leaveToClass||this.transitionName&&`${this.transitionName}-leave-to`}didInstall(){!1!==this.args.named.isEnabled&&(this.parentElement=this.element.parentElement,this.nextElementSibling=this.element.nextElementSibling,this.guardedRun(this.transitionIn))}willRemove(){!1!==this.args.named.isEnabled&&this.installed&&this.guardedRun(this.transitionOut)}addClone(){let e=this.element,t=e.parentElement||this.parentElement,n=e.nextElementSibling||this.nextElementSibling
10156
+ class i extends t.default{constructor(){super(...arguments),r(this,"clone",null),r(this,"parentElement",null),r(this,"nextElementSibling",null),r(this,"installed",!1)}get el(){return this.clone||this.element}get transitionName(){return this.args.positional[0]||this.args.named.name}get enterClass(){return this.args.named.enterClass||this.transitionName&&`${this.transitionName}-enter`}get enterActiveClass(){return this.args.named.enterActiveClass||this.transitionName&&`${this.transitionName}-enter-active`}get enterToClass(){return this.args.named.enterToClass||this.transitionName&&`${this.transitionName}-enter-to`}get leaveClass(){return this.args.named.leaveClass||this.transitionName&&`${this.transitionName}-leave`}get leaveActiveClass(){return this.args.named.leaveActiveClass||this.transitionName&&`${this.transitionName}-leave-active`}get leaveToClass(){return this.args.named.leaveToClass||this.transitionName&&`${this.transitionName}-leave-to`}didInstall(){if(!1===this.args.named.isEnabled)return
10157
+ let e=this.getElementToClone()
10158
+ this.parentElement=e.parentElement,this.nextElementSibling=e.nextElementSibling,this.guardedRun(this.transitionIn)}willRemove(){!1!==this.args.named.isEnabled&&this.installed&&this.guardedRun(this.transitionOut)}addClone(){let e=this.getElementToClone(),t=e.parentElement||this.parentElement,n=e.nextElementSibling||this.nextElementSibling
10157
10159
  n&&n.parentElement!==t&&(n=null)
10158
10160
  let r=e.cloneNode(!0)
10159
- r.setAttribute("id",`${e.id}_clone`),t.insertBefore(r,n),this.clone=r}removeClone(){this.clone.isConnected&&null!==this.clone.parentNode&&this.clone.parentNode.removeChild(this.clone)}*transitionIn(){this.enterClass&&(yield*this.transition({className:this.enterClass,activeClassName:this.enterActiveClass,toClassName:this.enterToClass}),this.args.named.didTransitionIn&&this.args.named.didTransitionIn()),this.installed=!0}*transitionOut(){this.leaveClass&&(this.addClone(),yield(0,n.nextTick)(),yield*this.transition({className:this.leaveClass,activeClassName:this.leaveActiveClass,toClassName:this.leaveToClass}),this.removeClone(),this.args.named.didTransitionOut&&this.args.named.didTransitionOut(),this.clone=null)}*transition(e){let{className:t,activeClassName:r,toClassName:i}=e,o=this.el
10161
+ r.setAttribute("id",`${e.id}_clone`),t.insertBefore(r,n),this.clone=r}getElementToClone(){return this.args.named.parentSelector?this.element.closest(this.args.named.parentSelector):this.element}removeClone(){this.clone.isConnected&&null!==this.clone.parentNode&&this.clone.parentNode.removeChild(this.clone)}*transitionIn(){this.enterClass&&(yield*this.transition({className:this.enterClass,activeClassName:this.enterActiveClass,toClassName:this.enterToClass}),this.args.named.didTransitionIn&&this.args.named.didTransitionIn()),this.installed=!0}*transitionOut(){this.leaveClass&&(this.addClone(),yield(0,n.nextTick)(),yield*this.transition({className:this.leaveClass,activeClassName:this.leaveActiveClass,toClassName:this.leaveToClass}),this.removeClone(),this.args.named.didTransitionOut&&this.args.named.didTransitionOut(),this.clone=null)}*transition(e){let{className:t,activeClassName:r,toClassName:i}=e,o=this.el
10160
10162
  this.addClass(t),this.addClass(r),yield(0,n.nextTick)(),o.scrollTop,this.addClass(i),this.removeClass(t),yield(0,n.sleep)((0,n.computeTimeout)(o)||0),this.removeClass(i),this.removeClass(r)}addClass(e){this.el.classList.add(...e.trim().split(/\s+/))}removeClass(e){this.el.classList.remove(...e.trim().split(/\s+/))}async guardedRun(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r]
10161
10163
  let i=e.call(this,...n),o=!1
10162
10164
  for(;!o&&this.el;){let{value:e,done:t}=i.next()
@@ -11705,7 +11707,7 @@ e.default={content:'<path d="M5.5 20c-.827 0-1.5-.673-1.5-1.5v-10C4 7.673 4.673
11705
11707
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11706
11708
  e.default={content:'<path fill-rule="evenodd" clip-rule="evenodd" d="M22.707 1.293a1 1 0 010 1.414l-11 11a1 1 0 01-1.414-1.414l11-11a1 1 0 011.414 0z"/><path fill-rule="evenodd" clip-rule="evenodd" d="M13 2a1 1 0 011-1h8a1 1 0 011 1v8a1 1 0 11-2 0V3h-7a1 1 0 01-1-1zM1 2a1 1 0 011-1h7a1 1 0 010 2H3v18h18v-6a1 1 0 112 0v7a1 1 0 01-1 1H2a1 1 0 01-1-1V2z"/>',attrs:{fill:"none",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/eye",["exports"],(function(e){"use strict"
11707
11709
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11708
- e.default={content:'<defs><style>.eye_svg__a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}</style></defs><path class="eye_svg__a" d="M12 5.251C7.969 5.183 3.8 8 1.179 10.885a1.663 1.663 0 000 2.226C3.743 15.935 7.9 18.817 12 18.748c4.1.069 8.258-2.813 10.824-5.637a1.663 1.663 0 000-2.226C20.2 8 16.031 5.183 12 5.251z"/><path class="eye_svg__a" d="M15.75 12A3.75 3.75 0 1112 8.249 3.749 3.749 0 0115.75 12z"/>',attrs:{viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/facebook-heart",["exports"],(function(e){"use strict"
11710
+ e.default={content:'<path d="M13 5.001c-4.03-.078-8.2 3.157-10.82 6.47-.276.35-.428.805-.428 1.277 0 .472.152.928.427 1.278C4.743 17.27 8.9 20.578 13 20.5c4.1.079 8.258-3.23 10.824-6.473.275-.35.428-.806.428-1.278s-.153-.927-.428-1.278C21.2 8.158 17.031 4.923 13 5.001z" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M16.75 12.751a3.75 3.75 0 11-7.5-.002 3.75 3.75 0 017.5.002z" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',attrs:{fill:"none",viewBox:"0 0 26 24"}}})),define("ember-svg-jar/inlined/facebook-heart",["exports"],(function(e){"use strict"
11709
11711
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11710
11712
  e.default={content:'<path d="M15 27c6.627 0 12-5.373 12-12S21.627 3 15 3 3 8.373 3 15s5.373 12 12 12z" fill="#FF4F67"/><path fill-rule="evenodd" clip-rule="evenodd" d="M30 15c0 8.284-6.716 15-15 15-8.284 0-15-6.716-15-15C0 6.716 6.716 0 15 0c8.284 0 15 6.716 15 15zm-3 0c0 6.627-5.373 12-12 12S3 21.627 3 15 8.373 3 15 3s12 5.373 12 12z" fill="#fff"/><path d="M14.5 11.441C15.434 9.811 16.375 9 18.25 9 20.317 9 22 11.49 22 13.28c0 3.252-4.484 6.777-7.5 8.72-2.713-1.678-7.5-5.468-7.5-8.72C7 11.49 8.684 9 10.75 9c1.875 0 2.809.811 3.75 2.441z" fill="#FEFEFE"/>',attrs:{fill:"none",viewBox:"0 0 30 30"}}})),define("ember-svg-jar/inlined/facebook-like",["exports"],(function(e){"use strict"
11711
11713
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -11953,7 +11955,9 @@ e.default={content:'<g fill="none" stroke="#000" stroke-linecap="round" stroke-l
11953
11955
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11954
11956
  e.default={content:'<path d="M21.098 13.951c1.201-2.187 1.505-4.565 1.522-4.705a.5.5 0 00-.357-.54c-.07-.02-1.597-.444-3.451-.281a15.204 15.204 0 00-.602-3.935.502.502 0 00-.613-.329c-.07.02-1.569.46-3.122 1.586-.896-1.817-2.036-3.014-2.115-3.095a.518.518 0 00-.718 0c-.078.081-1.217 1.278-2.113 3.093-1.555-1.126-3.054-1.564-3.125-1.584a.503.503 0 00-.613.329c-.037.115-.564 1.818-.602 3.934-1.855-.163-3.381.262-3.451.282a.501.501 0 00-.358.54c.017.138.307 2.433 1.454 4.587C1.33 14.81.5 16.03.5 17.312c0 3.26 4.836 5.718 11.25 5.718 2.104 0 4.836-.324 5.987-.943a.5.5 0 00.263-.441V19h4.875a.5.5 0 00.499-.463c.136-1.836-.657-3.41-2.276-4.586zm-2.309-4.524a9.635 9.635 0 012.767.141c-.214 1.179-.979 4.42-3.093 6.06-1.465 1.137-3.314 1.28-4.634 1.193 1.36-.699 3.197-1.98 4.188-4.123.488-1.055.705-2.19.772-3.271zM17.39 5.291c.298 1.217.899 4.434-.282 6.988-.809 1.752-2.315 2.87-3.506 3.523.898-1.342 1.95-3.416 1.95-5.782 0-1.205-.276-2.332-.663-3.329a10.603 10.603 0 012.501-1.4zM12 3.761c.779.947 2.553 3.419 2.553 6.26 0 2.842-1.774 5.313-2.553 6.261-.779-.947-2.553-3.419-2.553-6.261 0-2.841 1.774-5.313 2.553-6.26zm-5.39 1.53c.561.216 1.537.672 2.499 1.402-.386.997-.662 2.123-.662 3.328 0 2.369 1.055 4.444 1.953 5.786-1.191-.651-2.696-1.769-3.509-3.528-1.18-2.553-.579-5.771-.281-6.988zM5.211 9.426c.067 1.08.284 2.216.772 3.273.992 2.145 2.83 3.426 4.191 4.125-1.319.088-3.167-.053-4.637-1.194-2.109-1.638-2.876-4.882-3.092-6.061a9.641 9.641 0 012.766-.143zM17.5 18a.5.5 0 00-.5.5v2.826c-1.023.403-3.215.704-5.25.704-5.652 0-10.25-2.116-10.25-4.718 0-.925.656-1.845 1.85-2.626.431.643.946 1.246 1.574 1.733 1.468 1.139 3.211 1.432 4.616 1.432 1.185 0 2.121-.207 2.46-.293.339.086 1.275.293 2.46.293 1.405 0 3.148-.293 4.616-1.433a7.251 7.251 0 001.498-1.619c1.162.862 1.773 1.934 1.812 3.2H17.5z"/>',attrs:{version:"1",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/markdown",["exports"],(function(e){"use strict"
11955
11957
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11956
- e.default={content:'<g fill="none" fill-rule="evenodd"><rect stroke="#000" stroke-width="2" x="2" y="2" width="39" height="30" rx="2"/><path fill="#000" d="M19.566 12.613l-.049-.01L14.917 24h-1.279l-4.6-11.387-.048.01.195 5.752v4.121l1.592.274V24H5.669v-1.23l1.592-.274V11.295L5.67 11.02v-1.24h4.053l4.531 11.553h.059l4.521-11.553h4.063v1.24l-1.592.274v11.201l1.592.274V24h-5.107v-1.23l1.591-.274v-4.121z"/><path d="M36.077 18.501l-5.039 5.039L26 18.5m5.038 5.039v-13.1" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g>',attrs:{viewBox:"0 0 43 34"}}})),define("ember-svg-jar/inlined/members-all",["exports"],(function(e){"use strict"
11958
+ e.default={content:'<g fill="none" fill-rule="evenodd"><rect stroke="#000" stroke-width="2" x="2" y="2" width="39" height="30" rx="2"/><path fill="#000" d="M19.566 12.613l-.049-.01L14.917 24h-1.279l-4.6-11.387-.048.01.195 5.752v4.121l1.592.274V24H5.669v-1.23l1.592-.274V11.295L5.67 11.02v-1.24h4.053l4.531 11.553h.059l4.521-11.553h4.063v1.24l-1.592.274v11.201l1.592.274V24h-5.107v-1.23l1.591-.274v-4.121z"/><path d="M36.077 18.501l-5.039 5.039L26 18.5m5.038 5.039v-13.1" stroke="#000" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/></g>',attrs:{viewBox:"0 0 43 34"}}})),define("ember-svg-jar/inlined/member-add",["exports"],(function(e){"use strict"
11959
+ Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11960
+ e.default={content:'<path d="M11.5 12c-2.824 0-2.83.024-4.5.53-3.5 1.058-5 3.176-5 6.386V21h10m7-5v6m-3-3h6m-10.5-7a5.5 5.5 0 100-11 5.5 5.5 0 000 11z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',attrs:{fill:"none",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/members-all",["exports"],(function(e){"use strict"
11957
11961
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11958
11962
  e.default={content:'<path fill-rule="evenodd" clip-rule="evenodd" d="M6 1.25a2.5 2.5 0 100 5 2.5 2.5 0 000-5zm-3.5 2.5a3.5 3.5 0 117 0 3.5 3.5 0 01-7 0z" fill="#000"/><path fill-rule="evenodd" clip-rule="evenodd" d="M1.934 9.434A5.75 5.75 0 0111.75 13.5v2.25a.5.5 0 01-.5.5H9.452l-.704 7.05a.5.5 0 01-.498.45h-4.5a.5.5 0 01-.498-.45l-.704-7.05H.75a.5.5 0 01-.5-.5V13.5a5.75 5.75 0 011.684-4.066zM6 8.75a4.75 4.75 0 00-4.75 4.75v1.75H3a.5.5 0 01.498.45l.704 7.05h3.596l.704-7.05A.5.5 0 019 15.25h1.75V13.5A4.75 4.75 0 006 8.75zm12-7.5a2.5 2.5 0 100 5 2.5 2.5 0 000-5zm-3.5 2.5a3.5 3.5 0 117 0 3.5 3.5 0 01-7 0z" fill="#000"/><path fill-rule="evenodd" clip-rule="evenodd" d="M15.868 8.164A5.75 5.75 0 0123.75 13.5v2.25a.5.5 0 01-.5.5h-1.798l-.705 7.05a.5.5 0 01-.497.45h-4.5a.5.5 0 01-.498-.45l-.705-7.05H13.5a.5.5 0 110-1H15a.5.5 0 01.498.45l.704 7.05h3.595l.705-7.05a.5.5 0 01.498-.45h1.75V13.5a4.75 4.75 0 00-8.822-2.443.5.5 0 11-.857-.514 5.75 5.75 0 012.797-2.38z" fill="#000"/>',attrs:{fill:"none",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/members-bold",["exports"],(function(e){"use strict"
11959
11963
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -11969,10 +11973,10 @@ e.default={content:'<path fill-rule="evenodd" clip-rule="evenodd" d="M12.75 11.7
11969
11973
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11970
11974
  e.default={content:'<path d="M3.5 24a.502.502 0 01-.498-.458L2.54 18H.5a.5.5 0 01-.5-.5V14a5.497 5.497 0 013.724-5.208 5.514 5.514 0 011.781-.297c.841 0 1.655.19 2.42.566a5.467 5.467 0 012.781 3.16.497.497 0 01-.311.635.5.5 0 01-.635-.312 4.472 4.472 0 00-2.275-2.586 4.461 4.461 0 00-3.438-.219A4.497 4.497 0 001 14v3h2c.258 0 .477.201.498.458L3.96 23h3.08l.462-5.542A.502.502 0 018 17h1a.5.5 0 010 1h-.54l-.462 5.542A.502.502 0 017.5 24h-4zM5.5 8c-2.206 0-4-1.794-4-4s1.794-4 4-4 4 1.794 4 4-1.794 4-4 4zm0-7c-1.654 0-3 1.346-3 3s1.346 3 3 3 3-1.346 3-3-1.346-3-3-3zM17.5 24c-3.584 0-6.5-2.916-6.5-6.5s2.916-6.5 6.5-6.5 6.5 2.916 6.5 6.5-2.916 6.5-6.5 6.5zm0-12c-3.033 0-5.5 2.467-5.5 5.5s2.467 5.5 5.5 5.5 5.5-2.467 5.5-5.5-2.467-5.5-5.5-5.5z"/><path d="M16.667 20.428a1.24 1.24 0 01-.882-.365l-1.5-1.5a.5.5 0 01.708-.707l1.5 1.5a.244.244 0 00.176.072.252.252 0 00.202-.1l2.905-3.872a.501.501 0 01.8.6l-2.905 3.872c-.237.314-.612.5-1.004.5z"/>',attrs:{viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/members",["exports"],(function(e){"use strict"
11971
11975
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11972
- e.default={content:'<defs><style>.members_svg__cls-1{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}</style></defs><circle class="members_svg__cls-1" cx="7.5" cy="7.875" r="4.125"/><path class="members_svg__cls-1" d="M.75 20.25a6.75 6.75 0 0113.5 0"/><circle class="members_svg__cls-1" cx="17.727" cy="10.125" r="3.375"/><path class="members_svg__cls-1" d="M15.813 15.068a5.526 5.526 0 017.437 5.182"/>',attrs:{id:"members_svg__Regular",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/mobile-phone-heart",["exports"],(function(e){"use strict"
11976
+ e.default={content:'<defs><style>.members_svg__cls-1{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}</style></defs><circle class="members_svg__cls-1" cx="7.5" cy="7.875" r="4.125"/><path class="members_svg__cls-1" d="M.75 20.25a6.75 6.75 0 0113.5 0"/><circle class="members_svg__cls-1" cx="17.727" cy="10.125" r="3.375"/><path class="members_svg__cls-1" d="M15.813 15.068a5.526 5.526 0 017.437 5.182"/>',attrs:{id:"members_svg__Regular",viewBox:"0 0 24 24"}}}))
11977
+ define("ember-svg-jar/inlined/mobile-phone-heart",["exports"],(function(e){"use strict"
11973
11978
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11974
- e.default={content:'<path d="M16.5 0h-9A2.503 2.503 0 005 2.5v19C5 22.879 6.122 24 7.5 24h9c1.378 0 2.5-1.121 2.5-2.5v-19C19 1.121 17.878 0 16.5 0zM6 5h12v14H6V5zm1.5-4h9c.827 0 1.5.673 1.5 1.5V4H6V2.5C6 1.673 6.673 1 7.5 1zm9 22h-9c-.827 0-1.5-.673-1.5-1.5V20h12v1.5c0 .827-.673 1.5-1.5 1.5zm-7-20h5a.5.5 0 000-1h-5a.5.5 0 000 1z"/><circle cx="12" cy="21.5" r="1"/><path d="M14.272 7.502c-.772 0-1.673.376-2.272 1.356-.599-.981-1.5-1.356-2.272-1.356C8.387 7.502 7 8.609 7 10.462c0 2.581 4.226 5.698 4.708 6.046a.503.503 0 00.584 0C12.774 16.16 17 13.043 17 10.462c0-1.853-1.387-2.96-2.728-2.96zM12 15.479c-1.34-1.023-4-3.39-4-5.017 0-1.226.878-1.96 1.728-1.96.844 0 1.512.673 1.786 1.802.108.447.863.447.972 0 .274-1.129.942-1.802 1.786-1.802.85 0 1.728.733 1.728 1.96 0 1.627-2.66 3.993-4 5.017z"/>',attrs:{version:"1",viewBox:"0 0 24 24"}}}))
11975
- define("ember-svg-jar/inlined/mobile-phone",["exports"],(function(e){"use strict"
11979
+ e.default={content:'<path d="M16.5 0h-9A2.503 2.503 0 005 2.5v19C5 22.879 6.122 24 7.5 24h9c1.378 0 2.5-1.121 2.5-2.5v-19C19 1.121 17.878 0 16.5 0zM6 5h12v14H6V5zm1.5-4h9c.827 0 1.5.673 1.5 1.5V4H6V2.5C6 1.673 6.673 1 7.5 1zm9 22h-9c-.827 0-1.5-.673-1.5-1.5V20h12v1.5c0 .827-.673 1.5-1.5 1.5zm-7-20h5a.5.5 0 000-1h-5a.5.5 0 000 1z"/><circle cx="12" cy="21.5" r="1"/><path d="M14.272 7.502c-.772 0-1.673.376-2.272 1.356-.599-.981-1.5-1.356-2.272-1.356C8.387 7.502 7 8.609 7 10.462c0 2.581 4.226 5.698 4.708 6.046a.503.503 0 00.584 0C12.774 16.16 17 13.043 17 10.462c0-1.853-1.387-2.96-2.728-2.96zM12 15.479c-1.34-1.023-4-3.39-4-5.017 0-1.226.878-1.96 1.728-1.96.844 0 1.512.673 1.786 1.802.108.447.863.447.972 0 .274-1.129.942-1.802 1.786-1.802.85 0 1.728.733 1.728 1.96 0 1.627-2.66 3.993-4 5.017z"/>',attrs:{version:"1",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/mobile-phone",["exports"],(function(e){"use strict"
11976
11980
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
11977
11981
  e.default={content:'<path d="M3.166 14a.5.5 0 01.5-.5h8.667a.5.5 0 010 1H3.666a.5.5 0 01-.5-.5z"/><path d="M5 1.833a.833.833 0 00-.834.834v12.666c0 .46.373.834.833.834h6c.46 0 .834-.373.834-.834V2.668a.833.833 0 00-.834-.833H5zm-1.834.834c0-1.013.82-1.834 1.833-1.834h6c1.013 0 1.834.821 1.834 1.834v12.666a1.834 1.834 0 01-1.834 1.834H5a1.833 1.833 0 01-1.833-1.834V2.668z"/>',attrs:{fill:"none",viewBox:"0 0 16 18"}}})),define("ember-svg-jar/inlined/module",["exports"],(function(e){"use strict"
11978
11982
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -12030,12 +12034,12 @@ e.default={content:'<defs><style>.percentage_svg__a{fill:none;stroke:currentColo
12030
12034
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12031
12035
  e.default={content:'<path d="M19 18.5v-17a.5.5 0 00-.5-.5h-17a.5.5 0 00-.5.5v17a.5.5 0 00.5.5h17a.5.5 0 00.5-.5zM18 2v13h-2.56a5.382 5.382 0 00-3.352-4.5 3.555 3.555 0 10-3.979.002A5.377 5.377 0 004.759 15H2V2h16zM7.541 7.555A2.56 2.56 0 0110.098 5a2.558 2.558 0 012.555 2.555 2.558 2.558 0 01-2.555 2.556 2.559 2.559 0 01-2.557-2.556zM14.458 15H5.736a4.395 4.395 0 014.361-3.889A4.395 4.395 0 0114.458 15zM2 18v-2h16v2H2zM22.884 7.242a.5.5 0 00-.339-.178l-1.992-.182a.501.501 0 00-.09.996l1.494.136-1.272 13.942-14.44-1.317a.502.502 0 00-.09.997l14.937 1.363.045.001a.501.501 0 00.498-.455l1.363-14.939a.497.497 0 00-.114-.364z"/>',attrs:{version:"1",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/photos",["exports"],(function(e){"use strict"
12032
12036
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12033
- e.default={content:'<path d="M19 18.5v-17a.5.5 0 00-.5-.5h-17a.5.5 0 00-.5.5v17a.5.5 0 00.5.5h17a.5.5 0 00.5-.5zM18 2v13h-2.161l-2.874-7.186a.5.5 0 00-.453-.314.529.529 0 00-.467.293l-2.17 4.775-1.99-2.389a.502.502 0 00-.813.063L4.217 15H2V2h16zm-3.238 13H5.383l2.183-3.639 2.049 2.46a.5.5 0 00.839-.114l2.016-4.434L14.762 15zM2 18v-2h16v2H2zM22.884 7.242a.5.5 0 00-.339-.178l-1.992-.181a.5.5 0 00-.09.996l1.494.135-1.272 13.942-14.44-1.317a.502.502 0 00-.09.997l14.937 1.363.045.001a.501.501 0 00.498-.455l1.363-14.939a.497.497 0 00-.114-.364zM6 8c1.103 0 2-.897 2-2s-.897-2-2-2-2 .897-2 2 .897 2 2 2zm0-3c.551 0 1 .449 1 1s-.449 1-1 1-1-.449-1-1 .449-1 1-1z"/>',attrs:{version:"1",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/piggy-bank",["exports"],(function(e){"use strict"
12037
+ e.default={content:'<path d="M19 18.5v-17a.5.5 0 00-.5-.5h-17a.5.5 0 00-.5.5v17a.5.5 0 00.5.5h17a.5.5 0 00.5-.5zM18 2v13h-2.161l-2.874-7.186a.5.5 0 00-.453-.314.529.529 0 00-.467.293l-2.17 4.775-1.99-2.389a.502.502 0 00-.813.063L4.217 15H2V2h16zm-3.238 13H5.383l2.183-3.639 2.049 2.46a.5.5 0 00.839-.114l2.016-4.434L14.762 15zM2 18v-2h16v2H2zM22.884 7.242a.5.5 0 00-.339-.178l-1.992-.181a.5.5 0 00-.09.996l1.494.135-1.272 13.942-14.44-1.317a.502.502 0 00-.09.997l14.937 1.363.045.001a.501.501 0 00.498-.455l1.363-14.939a.497.497 0 00-.114-.364zM6 8c1.103 0 2-.897 2-2s-.897-2-2-2-2 .897-2 2 .897 2 2 2zm0-3c.551 0 1 .449 1 1s-.449 1-1 1-1-.449-1-1 .449-1 1-1z"/>',attrs:{version:"1",viewBox:"0 0 24 24"}}}))
12038
+ define("ember-svg-jar/inlined/piggy-bank",["exports"],(function(e){"use strict"
12034
12039
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12035
- e.default={content:'<defs><style>.piggy-bank_svg__a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}</style></defs><path class="piggy-bank_svg__a" d="M23.25 9.5a3 3 0 01-3 3M8.25 8a6.763 6.763 0 016 0M6.375 11a.375.375 0 10.375.375.375.375 0 00-.375-.375"/><path class="piggy-bank_svg__a" d="M7.9 4.883C6.726 2.756 3.75 2.75 3.75 2.75l.626 4.384A8.058 8.058 0 002.6 10.25H.75v6h2.49a8.467 8.467 0 002.01 2.372V21.5a.75.75 0 00.75.75h1.5a.75.75 0 00.75-.75v-1.241a9.512 9.512 0 006 .011v1.23a.75.75 0 00.75.75h1.5a.75.75 0 00.75-.75v-2.863a7.941 7.941 0 003-6.137c0-6.494-7.05-9.389-12.35-7.617z"/>',attrs:{viewBox:"0 0 24 24"}}}))
12036
- define("ember-svg-jar/inlined/pin",["exports"],(function(e){"use strict"
12040
+ e.default={content:'<defs><style>.piggy-bank_svg__a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}</style></defs><path class="piggy-bank_svg__a" d="M23.25 9.5a3 3 0 01-3 3M8.25 8a6.763 6.763 0 016 0M6.375 11a.375.375 0 10.375.375.375.375 0 00-.375-.375"/><path class="piggy-bank_svg__a" d="M7.9 4.883C6.726 2.756 3.75 2.75 3.75 2.75l.626 4.384A8.058 8.058 0 002.6 10.25H.75v6h2.49a8.467 8.467 0 002.01 2.372V21.5a.75.75 0 00.75.75h1.5a.75.75 0 00.75-.75v-1.241a9.512 9.512 0 006 .011v1.23a.75.75 0 00.75.75h1.5a.75.75 0 00.75-.75v-2.863a7.941 7.941 0 003-6.137c0-6.494-7.05-9.389-12.35-7.617z"/>',attrs:{viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/pin",["exports"],(function(e){"use strict"
12037
12041
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12038
- e.default={content:'<defs><style>.pin_svg__a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}</style></defs><circle class="pin_svg__a" cx="12" cy="8.25" r="3.75"/><path class="pin_svg__a" d="M12 .75a7.5 7.5 0 017.5 7.5c0 3.407-5.074 11.95-6.875 14.665a.75.75 0 01-1.25 0C9.574 20.2 4.5 11.657 4.5 8.25A7.5 7.5 0 0112 .75z"/>',attrs:{viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/plane",["exports"],(function(e){"use strict"
12042
+ e.default={content:'<path d="M12 14.75a4 4 0 100-8 4 4 0 000 8z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/><path d="M21 10.75c0 7.9-6.932 12.331-8.629 13.3a.751.751 0 01-.743 0C9.931 23.08 3 18.648 3 10.75a9 9 0 1118 0z" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>',attrs:{fill:"none",viewBox:"0 0 24 26"}}})),define("ember-svg-jar/inlined/plane",["exports"],(function(e){"use strict"
12039
12043
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12040
12044
  e.default={content:'<path d="M22.854 1.146c-1.132-1.132-3.073-1.133-4.207 0L15.793 4c-1.566-.001-2.984-.01-4.268-.018-1.1-.007-2.101-.013-3.01-.013C2.92 3.969 0 4.103 0 7c0 2.326 2.079 2.41 5.225 2.536 1.307.052 2.884.116 4.704.329L4.793 15H2.5A2.503 2.503 0 000 17.5c0 1.87 1.374 2.258 2.829 2.67l.774.227.213.731C4.214 22.54 4.626 24 6.5 24 7.878 24 9 22.878 9 21.5v-2.293l5.135-5.135c.214 1.826.278 3.407.331 4.715C14.592 21.926 14.675 24 17 24c.931 0 1.584-.224 2.056-.703 1.13-1.148 1.09-3.629 1.004-9.066A385.498 385.498 0 0120 8.207l2.854-2.853a2.947 2.947 0 000-4.208zm-.708 3.501l-3 3A.5.5 0 0019 8c0 2.421.033 4.488.06 6.246.077 4.836.119 7.5-.717 8.349-.275.28-.689.405-1.343.405-1.238 0-1.396-.806-1.535-4.253-.063-1.565-.142-3.513-.47-5.818a.497.497 0 00-.337-.403L14.5 12.5a.504.504 0 00-.354.146l-6 6A.504.504 0 008 19v2.5c0 .827-.673 1.5-1.5 1.5-1.072 0-1.302-.657-1.722-2.143-.092-.326-.188-.667-.304-1.015a.5.5 0 00-.316-.316 22.197 22.197 0 00-1.058-.317C1.606 18.785 1 18.571 1 17.5c0-.827.673-1.5 1.5-1.5H5a.5.5 0 00.353-.146l6-6a.5.5 0 00-.282-.849c-2.298-.328-4.243-.406-5.806-.468C1.808 8.398 1 8.24 1 7c0-1.67 1.335-2.031 7.516-2.031.907 0 1.906.006 3.003.013C12.861 4.991 14.35 5 16 5a.5.5 0 00.354-.147l3-3c.755-.755 2.038-.755 2.793 0 .782.783.782 2.01-.001 2.794z"/>',attrs:{version:"1",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/play",["exports"],(function(e){"use strict"
12041
12045
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -12091,10 +12095,10 @@ e.default={content:'<defs><style>.settings_svg__a{fill:none;stroke:currentColor;
12091
12095
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12092
12096
  e.default={content:'<defs><style>.shield-lock_svg__a{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.5px}</style></defs><path class="shield-lock_svg__a" d="M2.25 3.923v7.614A11.907 11.907 0 009.882 22.65l1.041.4a3 3 0 002.154 0l1.041-.4a11.907 11.907 0 007.632-11.113V3.923a1.487 1.487 0 00-.868-1.362A21.7 21.7 0 0012 .75a21.7 21.7 0 00-8.882 1.811 1.487 1.487 0 00-.868 1.362z"/><rect class="shield-lock_svg__a" x="7.5" y="9.75" width="9" height="7.5" rx="1.5" ry="1.5"/><path class="shield-lock_svg__a" d="M12 5.25a3 3 0 00-3 3v1.5h6v-1.5a3 3 0 00-3-3zM12 13.154a.375.375 0 11-.375.375.375.375 0 01.375-.375"/>',attrs:{viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/shield",["exports"],(function(e){"use strict"
12093
12097
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12094
- e.default={content:'<path d="M21.63 4.537c-.073-.019-7.399-2.017-9.769-4.39a.532.532 0 00-.723 0C8.769 2.52 1.443 4.518 1.37 4.537A.5.5 0 001 5.02c0 8.569.761 15.405 10.326 18.949L11.5 24l.174-.031C21.239 20.425 22 13.589 22 5.02a.5.5 0 00-.37-.483zM11.5 22.966C2.817 19.674 2.023 13.601 2.001 5.4c1.497-.429 7.022-2.109 9.499-4.228 2.477 2.119 8.002 3.798 9.499 4.227-.021 8.202-.816 14.275-9.499 17.567zm-.464-16.223L9.732 10H6.5a.5.5 0 00-.332.873l2.626 2.337-.99 3.672a.497.497 0 00.482.63.51.51 0 00.308-.105l2.907-2.267 2.907 2.251a.5.5 0 00.788-.526l-.99-3.651 2.627-2.34A.5.5 0 0016.5 10h-3.232l-1.304-3.257c-.15-.38-.778-.38-.928 0zm1.429 3.943a.5.5 0 00.464.314h2.259l-1.878 1.672a.5.5 0 00-.149.504l.681 2.51-2.035-1.576a.498.498 0 00-.613.001L9.16 15.697l.682-2.526a.5.5 0 00-.15-.504L7.814 11h2.257a.5.5 0 00.464-.314l.965-2.411.965 2.411z"/>',attrs:{version:"1",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/sidemenu-open",["exports"],(function(e){"use strict"
12098
+ e.default={content:'<path d="M21.63 4.537c-.073-.019-7.399-2.017-9.769-4.39a.532.532 0 00-.723 0C8.769 2.52 1.443 4.518 1.37 4.537A.5.5 0 001 5.02c0 8.569.761 15.405 10.326 18.949L11.5 24l.174-.031C21.239 20.425 22 13.589 22 5.02a.5.5 0 00-.37-.483zM11.5 22.966C2.817 19.674 2.023 13.601 2.001 5.4c1.497-.429 7.022-2.109 9.499-4.228 2.477 2.119 8.002 3.798 9.499 4.227-.021 8.202-.816 14.275-9.499 17.567zm-.464-16.223L9.732 10H6.5a.5.5 0 00-.332.873l2.626 2.337-.99 3.672a.497.497 0 00.482.63.51.51 0 00.308-.105l2.907-2.267 2.907 2.251a.5.5 0 00.788-.526l-.99-3.651 2.627-2.34A.5.5 0 0016.5 10h-3.232l-1.304-3.257c-.15-.38-.778-.38-.928 0zm1.429 3.943a.5.5 0 00.464.314h2.259l-1.878 1.672a.5.5 0 00-.149.504l.681 2.51-2.035-1.576a.498.498 0 00-.613.001L9.16 15.697l.682-2.526a.5.5 0 00-.15-.504L7.814 11h2.257a.5.5 0 00.464-.314l.965-2.411.965 2.411z"/>',attrs:{version:"1",viewBox:"0 0 24 24"}}}))
12099
+ define("ember-svg-jar/inlined/sidemenu-open",["exports"],(function(e){"use strict"
12095
12100
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12096
- e.default={content:'<path d="M21 2.5H3c-.828 0-1.5.608-1.5 1.357v16.286c0 .75.672 1.357 1.5 1.357h18c.828 0 1.5-.608 1.5-1.357V3.857c0-.75-.672-1.357-1.5-1.357zm-4.5 0v19" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M16.5 2.5v19h6v-19h-6z" fill="#15171A"/>',attrs:{fill:"none",viewBox:"0 0 24 24"}}}))
12097
- define("ember-svg-jar/inlined/sidemenu",["exports"],(function(e){"use strict"
12101
+ e.default={content:'<path d="M21 2.5H3c-.828 0-1.5.608-1.5 1.357v16.286c0 .75.672 1.357 1.5 1.357h18c.828 0 1.5-.608 1.5-1.357V3.857c0-.75-.672-1.357-1.5-1.357zm-4.5 0v19" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/><path d="M16.5 2.5v19h6v-19h-6z" fill="#15171A"/>',attrs:{fill:"none",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/sidemenu",["exports"],(function(e){"use strict"
12098
12102
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12099
12103
  e.default={content:'<path d="M21 2.5H3c-.828 0-1.5.608-1.5 1.357v16.286c0 .75.672 1.357 1.5 1.357h18c.828 0 1.5-.608 1.5-1.357V3.857c0-.75-.672-1.357-1.5-1.357zm-4.5 0v19" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>',attrs:{fill:"none",viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/signal-tower",["exports"],(function(e){"use strict"
12100
12104
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -12152,10 +12156,10 @@ e.default={content:'<path d="M20.62.107c-3.947.473-7.5 1.922-10.453 4.264-.82.65
12152
12156
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12153
12157
  e.default={content:'<path d="M14.046 2.242l-4.148-.01h-.002c-4.374 0-7.8 3.427-7.8 7.802 0 4.098 3.186 7.206 7.465 7.37v3.828a.85.85 0 00.12.403.744.744 0 001.034.229c.264-.168 6.473-4.14 8.088-5.506 1.902-1.61 3.04-3.97 3.043-6.312v-.017c-.006-4.367-3.43-7.787-7.8-7.788zm3.787 12.972c-1.134.96-4.862 3.405-6.772 4.643V16.67a.75.75 0 00-.75-.75h-.396c-3.66 0-6.318-2.476-6.318-5.886 0-3.534 2.768-6.302 6.3-6.302l4.147.01h.002c3.532 0 6.3 2.766 6.302 6.296-.003 1.91-.942 3.844-2.514 5.176z"/>',attrs:{viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/twitter-like",["exports"],(function(e){"use strict"
12154
12158
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12155
- e.default={content:'<path d="M12 21.638h-.014C9.403 21.59 1.95 14.856 1.95 8.478c0-3.064 2.525-5.754 5.403-5.754 2.29 0 3.83 1.58 4.646 2.73.814-1.148 2.354-2.73 4.645-2.73 2.88 0 5.404 2.69 5.404 5.755 0 6.376-7.454 13.11-10.037 13.157H12zM7.354 4.225c-2.08 0-3.903 1.988-3.903 4.255 0 5.74 7.034 11.596 8.55 11.658 1.518-.062 8.55-5.917 8.55-11.658 0-2.267-1.823-4.255-3.903-4.255-2.528 0-3.94 2.936-3.952 2.965-.23.562-1.156.562-1.387 0-.014-.03-1.425-2.965-3.954-2.965z"/>',attrs:{viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/twitter-link",["exports"],(function(e){"use strict"
12159
+ e.default={content:'<path d="M12 21.638h-.014C9.403 21.59 1.95 14.856 1.95 8.478c0-3.064 2.525-5.754 5.403-5.754 2.29 0 3.83 1.58 4.646 2.73.814-1.148 2.354-2.73 4.645-2.73 2.88 0 5.404 2.69 5.404 5.755 0 6.376-7.454 13.11-10.037 13.157H12zM7.354 4.225c-2.08 0-3.903 1.988-3.903 4.255 0 5.74 7.034 11.596 8.55 11.658 1.518-.062 8.55-5.917 8.55-11.658 0-2.267-1.823-4.255-3.903-4.255-2.528 0-3.94 2.936-3.952 2.965-.23.562-1.156.562-1.387 0-.014-.03-1.425-2.965-3.954-2.965z"/>',attrs:{viewBox:"0 0 24 24"}}}))
12160
+ define("ember-svg-jar/inlined/twitter-link",["exports"],(function(e){"use strict"
12156
12161
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12157
- e.default={content:'<g fill="#5b7083"><path d="M11.96 14.945a.833.833 0 01-.203-.027 5.192 5.192 0 01-2.795-1.932c-.832-1.125-1.176-2.508-.968-3.893s.942-2.605 2.068-3.438l3.53-2.608a5.25 5.25 0 017.33 1.1c.83 1.127 1.175 2.51.967 3.895s-.943 2.605-2.07 3.438l-1.48 1.094a.752.752 0 01-.892-1.208l1.48-1.095a3.713 3.713 0 001.476-2.45 3.724 3.724 0 00-.69-2.778 3.745 3.745 0 00-5.23-.784l-3.53 2.608a3.72 3.72 0 00-1.475 2.45c-.15.99.097 1.975.69 2.778a3.701 3.701 0 001.992 1.377.752.752 0 01-.202 1.475z"/><path d="M7.27 22.054a5.24 5.24 0 01-5.193-6.019 5.21 5.21 0 012.07-3.438l1.478-1.094a.752.752 0 01.893 1.208l-1.48 1.095a3.716 3.716 0 00-1.475 2.45c-.148.99.097 1.975.69 2.778a3.745 3.745 0 005.23.785l3.528-2.608a3.744 3.744 0 00.785-5.23 3.7 3.7 0 00-1.992-1.376.75.75 0 01-.52-.927c.112-.4.528-.63.926-.522a5.19 5.19 0 012.794 1.932 5.248 5.248 0 01-1.1 7.33l-3.53 2.608a5.189 5.189 0 01-3.105 1.026z"/></g>',attrs:{viewBox:"0 0 24 24"}}}))
12158
- define("ember-svg-jar/inlined/twitter-retweet",["exports"],(function(e){"use strict"
12162
+ e.default={content:'<g fill="#5b7083"><path d="M11.96 14.945a.833.833 0 01-.203-.027 5.192 5.192 0 01-2.795-1.932c-.832-1.125-1.176-2.508-.968-3.893s.942-2.605 2.068-3.438l3.53-2.608a5.25 5.25 0 017.33 1.1c.83 1.127 1.175 2.51.967 3.895s-.943 2.605-2.07 3.438l-1.48 1.094a.752.752 0 01-.892-1.208l1.48-1.095a3.713 3.713 0 001.476-2.45 3.724 3.724 0 00-.69-2.778 3.745 3.745 0 00-5.23-.784l-3.53 2.608a3.72 3.72 0 00-1.475 2.45c-.15.99.097 1.975.69 2.778a3.701 3.701 0 001.992 1.377.752.752 0 01-.202 1.475z"/><path d="M7.27 22.054a5.24 5.24 0 01-5.193-6.019 5.21 5.21 0 012.07-3.438l1.478-1.094a.752.752 0 01.893 1.208l-1.48 1.095a3.716 3.716 0 00-1.475 2.45c-.148.99.097 1.975.69 2.778a3.745 3.745 0 005.23.785l3.528-2.608a3.744 3.744 0 00.785-5.23 3.7 3.7 0 00-1.992-1.376.75.75 0 01-.52-.927c.112-.4.528-.63.926-.522a5.19 5.19 0 012.794 1.932 5.248 5.248 0 01-1.1 7.33l-3.53 2.608a5.189 5.189 0 01-3.105 1.026z"/></g>',attrs:{viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/twitter-retweet",["exports"],(function(e){"use strict"
12159
12163
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12160
12164
  e.default={content:'<path d="M23.77 15.67a.749.749 0 00-1.06 0l-2.22 2.22V7.65a3.755 3.755 0 00-3.75-3.75h-5.85a.75.75 0 000 1.5h5.85c1.24 0 2.25 1.01 2.25 2.25v10.24l-2.22-2.22a.749.749 0 10-1.06 1.06l3.5 3.5c.145.147.337.22.53.22s.383-.072.53-.22l3.5-3.5a.747.747 0 000-1.06zm-10.66 3.28H7.26c-1.24 0-2.25-1.01-2.25-2.25V6.46l2.22 2.22a.752.752 0 001.062 0 .749.749 0 000-1.06l-3.5-3.5a.747.747 0 00-1.06 0l-3.5 3.5a.749.749 0 101.06 1.06l2.22-2.22V16.7a3.755 3.755 0 003.75 3.75h5.85a.75.75 0 000-1.5z"/>',attrs:{viewBox:"0 0 24 24"}}})),define("ember-svg-jar/inlined/twitter-share",["exports"],(function(e){"use strict"
12161
12165
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -12298,10 +12302,10 @@ var n=t.default.extend({_tooltipVariantClass:"ember-tooltip"})
12298
12302
  e.default=n})),define("ember-tooltips/templates/components/ember-tooltip-base",["exports"],(function(e){"use strict"
12299
12303
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
12300
12304
  var t=Ember.HTMLBars.template({id:"wPl1S7tp",block:'{"symbols":["&default"],"statements":[[6,[37,0],[[32,0,["_awaitingTooltipElementRendered"]]],null,[["default","else"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n"],[6,[37,0],[[32,0,["_shouldRenderContent"]]],null,[["default"],[{"statements":[[6,[37,0],[[27,[32,1]]],null,[["default","else"],[{"statements":[[2," "],[18,1,[[32,0]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,0,["text"]]],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]},{"statements":[[6,[37,2],[[30,[36,1],[[32,0,["_renderElement"]]],null]],[["guid","insertBefore"],["%cursor:0%",[29]]],[["default"],[{"statements":[[2," "],[10,"div"],[12],[2,"\\n"],[6,[37,0],[[27,[32,1]]],null,[["default","else"],[{"statements":[[2," "],[18,1,[[32,0]]],[2,"\\n"]],"parameters":[]},{"statements":[[2," "],[1,[32,0,["text"]]],[2,"\\n"]],"parameters":[]}]]],[2," "],[13],[2,"\\n"]],"parameters":[]}]]]],"parameters":[]}]]]],"hasEval":false,"upvars":["if","-in-el-null","in-element"]}',moduleName:"ember-tooltips/templates/components/ember-tooltip-base.hbs"})
12301
- e.default=t})),define("ember-tooltips/utils/ember-popover",["exports"],(function(e){"use strict"
12305
+ e.default=t}))
12306
+ define("ember-tooltips/utils/ember-popover",["exports"],(function(e){"use strict"
12302
12307
  function t(e,t){return!!t&&(t===e||!!t.querySelectorAll(e).length)}function n(e,n,r){return!(!n||!r)&&(!!n.is(e)||!!n.querySelectorAll(e).length&&!t(e,r))}Object.defineProperty(e,"__esModule",{value:!0}),e.isElementElsewhere=function(e,r,i){const o=!t(e,i)
12303
- return!n(e,r,i)&&o},e.isElementInPopover=t,e.isElementInTargetAndNotInPopover=n}))
12304
- define("ember-tracked-storage-polyfill/index",["exports"],(function(e){"use strict"
12308
+ return!n(e,r,i)&&o},e.isElementInPopover=t,e.isElementInTargetAndNotInPopover=n})),define("ember-tracked-storage-polyfill/index",["exports"],(function(e){"use strict"
12305
12309
  Object.defineProperty(e,"__esModule",{value:!0}),e.createStorage=function(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:r
12306
12310
  return new n(e,t)},e.getValue=function(e){return e._value},e.setValue=function(e,t){const{_isEqual:n,_lastValue:r}=e
12307
12311
  n(t,r)||(e._value=e._lastValue=t)}
@@ -12537,7 +12541,8 @@ r.addEventListener("load",(()=>{let e=this.selectingFile
12537
12541
  this.selectingFile=!1,t({id:e})})),r.src=n}))}uploadSuccess(e,t){let n=new Image
12538
12542
  n.addEventListener("load",(()=>{let r={src:e.url,width:n.naturalWidth,height:n.naturalHeight},i=`${t.id}Image`
12539
12543
  this.args.payload[i]=r,this.updateImageDimensions()})),n.src=e.url}setLayoutWide(){this.args.payload.cardWidth="wide",Ember.run.scheduleOnce("afterRender",this,this.updateImageDimensions)}setLayoutFull(){this.args.payload.cardWidth="full",Ember.run.scheduleOnce("afterRender",this,this.updateImageDimensions)}setStartingPosition(e){this.args.payload.startingPosition=Math.min(100,Math.max(0,parseInt(e.target.value)))}selectBeforeImage(){this.selectingFile="before",this._triggerFileDialog()}selectAfterImage(){this.selectingFile="after",this._triggerFileDialog()}uploadFailed(){}handleErrors(){}setCaption(e){this.args.payload.caption=e}leaveEditMode(){this.isEmpty&&Ember.run.scheduleOnce("afterRender",this,this.args.deleteCard)}},w=k(_.prototype,"imageWidth",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),k(_.prototype,"preventDefault",[o],Object.getOwnPropertyDescriptor(_.prototype,"preventDefault"),_.prototype),k(_.prototype,"stopPropagation",[a],Object.getOwnPropertyDescriptor(_.prototype,"stopPropagation"),_.prototype),k(_.prototype,"removeFocus",[s],Object.getOwnPropertyDescriptor(_.prototype,"removeFocus"),_.prototype),k(_.prototype,"registerElement",[l],Object.getOwnPropertyDescriptor(_.prototype,"registerElement"),_.prototype),k(_.prototype,"uploadStart",[u],Object.getOwnPropertyDescriptor(_.prototype,"uploadStart"),_.prototype),k(_.prototype,"uploadSuccess",[c],Object.getOwnPropertyDescriptor(_.prototype,"uploadSuccess"),_.prototype),k(_.prototype,"setLayoutWide",[d],Object.getOwnPropertyDescriptor(_.prototype,"setLayoutWide"),_.prototype),k(_.prototype,"setLayoutFull",[h],Object.getOwnPropertyDescriptor(_.prototype,"setLayoutFull"),_.prototype),k(_.prototype,"setStartingPosition",[p],Object.getOwnPropertyDescriptor(_.prototype,"setStartingPosition"),_.prototype),k(_.prototype,"selectBeforeImage",[f],Object.getOwnPropertyDescriptor(_.prototype,"selectBeforeImage"),_.prototype),k(_.prototype,"selectAfterImage",[m],Object.getOwnPropertyDescriptor(_.prototype,"selectAfterImage"),_.prototype),k(_.prototype,"uploadFailed",[g],Object.getOwnPropertyDescriptor(_.prototype,"uploadFailed"),_.prototype),k(_.prototype,"handleErrors",[b],Object.getOwnPropertyDescriptor(_.prototype,"handleErrors"),_.prototype),k(_.prototype,"setCaption",[v],Object.getOwnPropertyDescriptor(_.prototype,"setCaption"),_.prototype),k(_.prototype,"leaveEditMode",[y],Object.getOwnPropertyDescriptor(_.prototype,"leaveEditMode"),_.prototype),_)
12540
- e.default=A,Ember._setComponentTemplate(E,A)})),define("koenig-editor/components/koenig-card-bookmark",["exports","koenig-editor/components/koenig-editor","@tryghost/helpers","ember-concurrency"],(function(e,t,n,r){"use strict"
12544
+ e.default=A,Ember._setComponentTemplate(E,A)}))
12545
+ define("koenig-editor/components/koenig-card-bookmark",["exports","koenig-editor/components/koenig-editor","@tryghost/helpers","ember-concurrency"],(function(e,t,n,r){"use strict"
12541
12546
  var i,o,a,s,l,u,c,d,h,p,f,m,g,b,v
12542
12547
  function y(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function _(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function w(e,t,n,r,i){var o={}
12543
12548
  return Object.keys(r).forEach((function(e){o[e]=r[e]})),o.enumerable=!!o.enumerable,o.configurable=!!o.configurable,("value"in o||o.initializer)&&(o.writable=!0),o=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),o),i&&void 0!==o.initializer&&(o.value=o.initializer?o.initializer.call(i):void 0,o.initializer=void 0),void 0===o.initializer&&(Object.defineProperty(e,t,o),o=null),o}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -12555,8 +12560,7 @@ Ember.set(this.payload,"url",t)}urlKeydown(e){"Enter"===e.key&&(e.preventDefault
12555
12560
  this.editor.run((n=>{let{builder:r}=n,i=this.env.postModel,o=r.createMarkupSection("p"),a=r.createMarkup("a",{href:this.payload.url})
12556
12561
  n.replaceSection(i,o),n.insertTextWithMarkup(o.toRange().head,this.payload.url,[a]),t.headSection!==i&&n.setRange(t),e.linkOnError&&n.cancelSnapshot()}))}_focusInput(){let e=this.element.querySelector('[name="url"]')
12557
12562
  e&&e.focus()}},g=w(m.prototype,"ajax",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),b=w(m.prototype,"ghostPaths",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),w(m.prototype,"isEmpty",[a],Object.getOwnPropertyDescriptor(m.prototype,"isEmpty"),m.prototype),w(m.prototype,"counts",[s],Object.getOwnPropertyDescriptor(m.prototype,"counts"),m.prototype),w(m.prototype,"onDeselect",[l],Object.getOwnPropertyDescriptor(m.prototype,"onDeselect"),m.prototype),w(m.prototype,"updateUrl",[u],Object.getOwnPropertyDescriptor(m.prototype,"updateUrl"),m.prototype),w(m.prototype,"urlKeydown",[c],Object.getOwnPropertyDescriptor(m.prototype,"urlKeydown"),m.prototype),w(m.prototype,"updateCaption",[d],Object.getOwnPropertyDescriptor(m.prototype,"updateCaption"),m.prototype),w(m.prototype,"retry",[h],Object.getOwnPropertyDescriptor(m.prototype,"retry"),m.prototype),w(m.prototype,"insertAsLink",[p],Object.getOwnPropertyDescriptor(m.prototype,"insertAsLink"),m.prototype),v=w(m.prototype,"convertUrl",[f],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),m)
12558
- e.default=E,Ember._setComponentTemplate(M,E)}))
12559
- define("koenig-editor/components/koenig-card-button",["exports","@glimmer/component","ember-concurrency"],(function(e,t,n){"use strict"
12563
+ e.default=E,Ember._setComponentTemplate(M,E)})),define("koenig-editor/components/koenig-card-button",["exports","@glimmer/component","ember-concurrency"],(function(e,t,n){"use strict"
12560
12564
  var r,i,o,a,s,l,u,c,d,h,p,f,m,g,b,v,y,_,w,M,k,E,A,j
12561
12565
  function O(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function x(e,t,n,r,i){var o={}
12562
12566
  return Object.keys(r).forEach((function(e){o[e]=r[e]})),o.enumerable=!!o.enumerable,o.configurable=!!o.configurable,("value"in o||o.initializer)&&(o.writable=!0),o=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),o),i&&void 0!==o.initializer&&(o.value=o.initializer?o.initializer.call(i):void 0,o.initializer=void 0),void 0===o.initializer&&(Object.defineProperty(e,t,o),o=null),o}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -13224,7 +13228,8 @@ if(Ember.isEmpty(t))return
13224
13228
  let i=t.length-1,o=t[n].length-1
13225
13229
  "right"===e?(r+=1,r>o&&(n<i?n+=1:n=0,r=0)):"left"===e?(r-=1,r<0&&(n>0?n-=1:n=t.length-1,r=t[n].length-1)):"up"===e?(n-=1,n<0&&(n=i)):"down"===e&&(n+=1,n>i&&(n=0)),r>t[n].length-1&&(r=t[n].length-1),this.selectedRowIndex=n,this.selectedColumnIndex=r}_performAction(){this.selectedItem&&this.itemClicked(this.selectedItem)}_handleWindowMousedown(e){e.target.closest(`#${this.containerElement.id}, .fullscreen-modal-container`)?e.target.closest('[data-kg="cardmenu-card"]')||e.preventDefault():this._hideMenu()}_registerEditorKeyboardNavHandlers(){let{editor:e}=this.args
13226
13230
  e.registerKeyCommand({str:"ESC",name:"slash-menu",run:Ember.run.bind(this,this._hideMenu)}),e.registerKeyCommand({str:"ENTER",name:"slash-menu",run:Ember.run.bind(this,this._performAction)}),e.registerKeyCommand({str:"UP",name:"slash-menu",run:Ember.run.bind(this,this._moveSelection,"up")}),e.registerKeyCommand({str:"DOWN",name:"slash-menu",run:Ember.run.bind(this,this._moveSelection,"down")}),e.registerKeyCommand({str:"LEFT",name:"slash-menu",run:Ember.run.bind(this,this._moveSelection,"left")}),e.registerKeyCommand({str:"RIGHT",name:"slash-menu",run:Ember.run.bind(this,this._moveSelection,"right")})}_unregisterEditorKeyboardNavHandlers(){this.args.editor.unregisterKeyCommands("slash-menu")}},m=_(f.prototype,"itemSections",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return[]}}),g=_(f.prototype,"showMenu",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return!1}}),b=_(f.prototype,"selectedRowIndex",[s],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),v=_(f.prototype,"selectedColumnIndex",[l],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return 0}}),_(f.prototype,"updateItemSections",[u],Object.getOwnPropertyDescriptor(f.prototype,"updateItemSections"),f.prototype),_(f.prototype,"registerContainerElement",[c],Object.getOwnPropertyDescriptor(f.prototype,"registerContainerElement"),f.prototype),_(f.prototype,"registerEditor",[d],Object.getOwnPropertyDescriptor(f.prototype,"registerEditor"),f.prototype),_(f.prototype,"handleCursorChange",[h],Object.getOwnPropertyDescriptor(f.prototype,"handleCursorChange"),f.prototype),_(f.prototype,"itemClicked",[p],Object.getOwnPropertyDescriptor(f.prototype,"itemClicked"),f.prototype),f)
13227
- e.default=M,Ember._setComponentTemplate(w,M)})),define("koenig-editor/components/koenig-snippet-input",["exports","@glimmer/component","koenig-editor/utils/get-scroll-parent","koenig-editor/components/koenig-toolbar"],(function(e,t,n,r){"use strict"
13231
+ e.default=M,Ember._setComponentTemplate(w,M)}))
13232
+ define("koenig-editor/components/koenig-snippet-input",["exports","@glimmer/component","koenig-editor/utils/get-scroll-parent","koenig-editor/components/koenig-toolbar"],(function(e,t,n,r){"use strict"
13228
13233
  var i,o,a,s,l,u,c,d,h,p,f
13229
13234
  function m(e,t,n,r){n&&Object.defineProperty(e,t,{enumerable:n.enumerable,configurable:n.configurable,writable:n.writable,value:n.initializer?n.initializer.call(r):void 0})}function g(e,t,n,r,i){var o={}
13230
13235
  return Object.keys(r).forEach((function(e){o[e]=r[e]})),o.enumerable=!!o.enumerable,o.configurable=!!o.configurable,("value"in o||o.initializer)&&(o.writable=!0),o=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),o),i&&void 0!==o.initializer&&(o.value=o.initializer?o.initializer.call(i):void 0,o.initializer=void 0),void 0===o.initializer&&(Object.defineProperty(e,t,o),o=null),o}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
@@ -13243,8 +13248,7 @@ if(a.left<0){a.left=0,s=(n.left-t.left+n.width/2)/i*100,s<5&&(s=5)}if(a.left+i>t
13243
13248
  t&&n&&this.args.cancel()}_handleKeydown(e){"Escape"===e.key&&this._cancelAndReselect()}_cancelAndReselect(){this.args.cancel(),this._snippetRange&&this.args.editor.selectRange(this._snippetRange)}_addStyleElement(e){let t=document.createElement("style")
13244
13249
  t.id=`${this.element.id}-style`,t.innerHTML=`#${this.element.id}:before, #${this.element.id}:after { ${e} }`,document.head.appendChild(t)}_removeStyleElement(){let e=document.querySelector(`#${this.element.id}-style`)
13245
13250
  e&&e.remove()}},h=g(d.prototype,"koenigUi",[i],{configurable:!0,enumerable:!0,writable:!0,initializer:null}),p=g(d.prototype,"name",[o],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return""}}),f=g(d.prototype,"style",[a],{configurable:!0,enumerable:!0,writable:!0,initializer:function(){return Ember.String.htmlSafe("")}}),g(d.prototype,"selectSnippet",[s],Object.getOwnPropertyDescriptor(d.prototype,"selectSnippet"),d.prototype),g(d.prototype,"nameKeydown",[l],Object.getOwnPropertyDescriptor(d.prototype,"nameKeydown"),d.prototype),g(d.prototype,"nameInput",[u],Object.getOwnPropertyDescriptor(d.prototype,"nameInput"),d.prototype),g(d.prototype,"registerAndPositionElement",[c],Object.getOwnPropertyDescriptor(d.prototype,"registerAndPositionElement"),d.prototype),d)
13246
- e.default=v,Ember._setComponentTemplate(b,v)}))
13247
- define("koenig-editor/components/koenig-text-replacement-html-input",["exports","mobiledoc-kit/editor/editor","koenig-editor/lib/clean-text-replacement-html","koenig-editor/options/atoms","koenig-editor/options/key-commands","validator","koenig-editor/components/koenig-editor","koenig-editor/lib/dnd/constants","mobiledoc-kit/utils/parse-utils","koenig-editor/utils/markup-utils","koenig-editor/options/text-expansions"],(function(e,t,n,r,i,o,a,s,l,u,c){"use strict"
13251
+ e.default=v,Ember._setComponentTemplate(b,v)})),define("koenig-editor/components/koenig-text-replacement-html-input",["exports","mobiledoc-kit/editor/editor","koenig-editor/lib/clean-text-replacement-html","koenig-editor/options/atoms","koenig-editor/options/key-commands","validator","koenig-editor/components/koenig-editor","koenig-editor/lib/dnd/constants","mobiledoc-kit/utils/parse-utils","koenig-editor/utils/markup-utils","koenig-editor/options/text-expansions"],(function(e,t,n,r,i,o,a,s,l,u,c){"use strict"
13248
13252
  var d,h,p,f,m,g
13249
13253
  function b(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function v(e,t,n,r,i){var o={}
13250
13254
  return Object.keys(r).forEach((function(e){o[e]=r[e]})),o.enumerable=!!o.enumerable,o.configurable=!!o.configurable,("value"in o||o.initializer)&&(o.writable=!0),o=n.slice().reverse().reduce((function(n,r){return r(e,t,n)||n}),o),i&&void 0!==o.initializer&&(o.value=o.initializer?o.initializer.call(i):void 0,o.initializer=void 0),void 0===o.initializer&&(Object.defineProperty(e,t,o),o=null),o}Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0,e.formatTextReplacementHtml=_
@@ -13653,12 +13657,12 @@ return e.match(n)})):e.includes(r)}))
13653
13657
  return t.length>0?t[0]:null}})),define("koenig-editor/utils/prettify-file-name",["exports"],(function(e){"use strict"
13654
13658
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){if(!e||"string"!=typeof e)return""
13655
13659
  let t=e.split(".").slice(0,-1).join(".").replace(/[-_]/g," ").replace(/[^\w\s]+/g,"").replace(/\s\s+/g," ")
13656
- return t.charAt(0).toUpperCase()+t.slice(1)}})),define("koenig-editor/utils/reading-time",["exports"],(function(e){"use strict"
13660
+ return t.charAt(0).toUpperCase()+t.slice(1)}}))
13661
+ define("koenig-editor/utils/reading-time",["exports"],(function(e){"use strict"
13657
13662
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){let{wordCount:t,imageCount:n}=e,r=t/(275/60)
13658
13663
  for(var i=12;i>12-n;i-=1)r+=Math.max(i,3)
13659
13664
  let o=Math.round(r/60)
13660
- return o<1?"1 min read":"% min read".replace("%",o)}}))
13661
- define("koenig-editor/utils/snippet-icon",["exports"],(function(e){"use strict"
13665
+ return o<1?"1 min read":"% min read".replace("%",o)}})),define("koenig-editor/utils/snippet-icon",["exports"],(function(e){"use strict"
13662
13666
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=function(e){let{mobiledoc:t}=e
13663
13667
  if(0===t.cards.length)return"koenig/kg-card-type-snippet-text"
13664
13668
  if(t.sections.some((e=>10!==e[0])))return"koenig/kg-card-type-snippet-combination"
@@ -13856,14 +13860,14 @@ var o=n
13856
13860
  e.default=o})),define("liquid-fire/promise",["exports"],(function(e){"use strict"
13857
13861
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
13858
13862
  var t=Ember.RSVP.Promise
13859
- e.default=t})),define("liquid-fire/rule",["exports","liquid-fire/action","liquid-fire/constraint"],(function(e,t,n){"use strict"
13863
+ e.default=t}))
13864
+ define("liquid-fire/rule",["exports","liquid-fire/action","liquid-fire/constraint"],(function(e,t,n){"use strict"
13860
13865
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
13861
13866
  e.default=class{constructor(){this.constraints=Ember.A(),this.use=null,this.reverse=null}add(e){if(e instanceof t.default){let t="use"
13862
13867
  if(e.reversed&&(t="reverse"),this[t])throw new Error(`More than one "${t}" statement in the same transition rule is not allowed`)
13863
13868
  this[t]=e}else"debug"===e?this.debug=!0:this.constraints.push(e)}validate(e){if(!this.use)throw new Error('Every transition rule must include a "use" statement')
13864
13869
  this.use.validateHandler(e),this.reverse&&this.reverse.validateHandler(e),this.constraints.find((e=>"firstTime"===e.target))||this.constraints.push(new n.default("firstTime","no"))}invert(){let e=new this.constructor
13865
- return e.use=this.reverse,e.reverse=this.use,e.constraints=this.constraints.map((e=>e.invert())),e.debug=this.debug,e}}}))
13866
- define("liquid-fire/running-transition",["exports","jquery"],(function(e,t){"use strict"
13870
+ return e.use=this.reverse,e.reverse=this.use,e.constraints=this.constraints.map((e=>e.invert())),e.debug=this.debug,e}}})),define("liquid-fire/running-transition",["exports","jquery"],(function(e,t){"use strict"
13867
13871
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=void 0
13868
13872
  function n(e,n,r){let i=null
13869
13873
  r.view&&(i=(0,t.default)(r.view.element))
@@ -14004,7 +14008,8 @@ case"inject":return parseFloat(i)-n(e,r)+"px"}}}
14004
14008
  t.Normalizations.registered.outerWidth=r("width"),t.Normalizations.registered.outerHeight=r("height")}})),define("liquid-wormhole/components/liquid-append",["exports"],(function(e){"use strict"
14005
14009
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({didUpdateAttrs(){if(this.get("replaceNodes")){const e=this.get("nodes")
14006
14010
  this.$().children().remove(),this.$().append(e)}},didInsertElement(){const e=this.get("notify"),t=this.get("nodes")
14007
- e&&e.willAppendNodes&&e.willAppendNodes(this.element),this.$().append(t),e&&e.didAppendNodes&&e.didAppendNodes(this.element)}})})),define("liquid-wormhole/components/liquid-destination",["exports","perf-primitives/hash-map","liquid-wormhole/templates/components/liquid-destination"],(function(e,t,n){"use strict"
14011
+ e&&e.willAppendNodes&&e.willAppendNodes(this.element),this.$().append(t),e&&e.didAppendNodes&&e.didAppendNodes(this.element)}})}))
14012
+ define("liquid-wormhole/components/liquid-destination",["exports","perf-primitives/hash-map","liquid-wormhole/templates/components/liquid-destination"],(function(e,t,n){"use strict"
14008
14013
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({layout:n.default,classNames:["liquid-destination"],classNameBindings:["hasWormholes"],name:"default",liquidWormholeService:Ember.inject.service("liquidWormhole"),matchContext:Ember.computed((()=>({helperName:"liquid-wormhole"}))),hasWormholes:Ember.computed.gt("stacks.length",0),init(){this._super(...arguments),this.stackMap=new t.default,this.set("stacks",Ember.A()),this.wormholeQueue=Ember.A()
14009
14014
  const e=this.get("name")
14010
14015
  this.get("liquidWormholeService").registerDestination(e,this)},willDestroyElement(){this._super(...arguments)
@@ -14014,8 +14019,7 @@ if(!e.element.contains(n))break}this.wormholeQueue.insertAt(t+1,e),Ember.run.sch
14014
14019
  r.set("nodes",i),r.set("_replaceNodes",!0),Ember.run.next((()=>n.removeObject(r)))},flushWormholeQueue(){this.wormholeQueue.forEach((e=>{const t=e.get("stack"),n=this.stackMap.get(t)||this.createStack(e),r=e.get("nodes"),i=e.get("value"),o=Ember.Object.create({nodes:r,wormhole:e,value:i})
14015
14020
  r.css({visibility:"hidden"}),n.pushObject(o)})),this.wormholeQueue.clear()},createStack(e){const t=e.get("stack"),n=Ember.A([null])
14016
14021
  return n.set("name",t),this.stackMap.set(t,n),this.stacks.pushObject(n),n},actions:{willTransition(){},afterChildInsertion(){},afterTransition([{value:e,view:t}]){if(!this.isDestroying&&!this.isDestroyed&&(this.$(t.element).find(".liquid-wormhole-element").css({visibility:"visible"}),null===e)){const e=this.get("stacks"),n=t.get("parentView.stackName"),r=this.stackMap.get(n)
14017
- e.removeObject(r),this.stackMap.delete(n)}}}})}))
14018
- define("liquid-wormhole/components/liquid-wormhole",["exports","liquid-wormhole/templates/components/liquid-wormhole"],(function(e,t){"use strict"
14022
+ e.removeObject(r),this.stackMap.delete(n)}}}})})),define("liquid-wormhole/components/liquid-wormhole",["exports","liquid-wormhole/templates/components/liquid-wormhole"],(function(e,t){"use strict"
14019
14023
  Object.defineProperty(e,"__esModule",{value:!0}),e.default=Ember.Component.extend({layout:t.default,to:Ember.computed.reads("destination"),liquidWormholeService:Ember.inject.service("liquid-wormhole"),stack:Ember.computed((function(){return Ember.guidFor(this)})),value:!0,init(){const e=this.get("class"),t=this.get("stack")||this.get("id")
14020
14024
  this.set("wormholeClass",e),this.set("wormholeId",t),"function"!==Ember.typeOf(this.get("send"))&&this.set("hasSend",!0),this._super(...arguments)},didUpdateAttrs(){this._super(...arguments),this.get("liquidWormholeService").removeWormhole(this,this.get("to")),this.get("liquidWormholeService").appendWormhole(this,this.get("to"))},didInsertElement(){const e=this.$().children()
14021
14025
  this.set("nodes",e),this.element.className="liquid-wormhole-container",this.element.id="",this.get("liquidWormholeService").appendWormhole(this,this.get("to")),this._super.apply(this,arguments)},willDestroyElement(){this.get("liquidWormholeService").removeWormhole(this,this.get("to")),this._super.apply(this,arguments)}})})),define("liquid-wormhole/index",["exports","liquid-fire/constraint"],(function(e,t){"use strict"
@@ -19586,4 +19590,4 @@ if(!i)return v(e)
19586
19590
  if(!b(i)||v(i).isOlderThan(4)){var o=v(e).getStackTop()
19587
19591
  y(i,new p(o.client,c.a.clone(o.scope)))}return v(i)}catch(t){return v(e)}}(e):v(e)}function b(e){return!!(e&&e.__SENTRY__&&e.__SENTRY__.hub)}function v(e){return e&&e.__SENTRY__&&e.__SENTRY__.hub||(e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.hub=new p),e.__SENTRY__.hub}function y(e,t){return!!e&&(e.__SENTRY__=e.__SENTRY__||{},e.__SENTRY__.hub=t,!0)}}]])
19588
19592
 
19589
- //# sourceMappingURL=vendor.min-2313642ee897688be83924a38d5e62f1.map
19593
+ //# sourceMappingURL=vendor.min-c814d3c4b3f543c4cd5ef3aacd0fc645.map
@@ -12,6 +12,7 @@ const getMetaDataExcerpt = metaData.getMetaDataExcerpt;
12
12
 
13
13
  module.exports = function excerpt(options) {
14
14
  let truncateOptions = (options || {}).hash || {};
15
+
15
16
  let excerptText;
16
17
 
17
18
  if (this.custom_excerpt) {
@@ -24,10 +25,12 @@ module.exports = function excerpt(options) {
24
25
  excerptText = '';
25
26
  }
26
27
 
27
- truncateOptions = _.pick(truncateOptions, ['words', 'characters']);
28
- _.keys(truncateOptions).map(function (key) {
29
- truncateOptions[key] = parseInt(truncateOptions[key], 10);
30
- });
28
+ truncateOptions = _.reduce(truncateOptions, (_truncateOptions, value, key) => {
29
+ if (['words', 'characters'].includes(key)) {
30
+ _truncateOptions[key] = parseInt(value, 10);
31
+ }
32
+ return _truncateOptions;
33
+ }, {});
31
34
 
32
35
  if (!_.isEmpty(this.custom_excerpt)) {
33
36
  truncateOptions.characters = this.custom_excerpt.length;
@@ -31,6 +31,9 @@ const RESOURCES = {
31
31
  },
32
32
  authors: {
33
33
  alias: 'authorsPublic'
34
+ },
35
+ tiers: {
36
+ alias: 'tiersPublic'
34
37
  }
35
38
  };
36
39
 
@@ -153,6 +156,7 @@ module.exports = function get(resource, options) {
153
156
 
154
157
  // Parse the options we're going to pass to the API
155
158
  apiOptions = parseOptions(ghostGlobals, this, apiOptions);
159
+ apiOptions.context = {member: data.member};
156
160
 
157
161
  // @TODO: https://github.com/TryGhost/Ghost/issues/10548
158
162
  return controller[action](apiOptions).then(function success(result) {
@@ -45,6 +45,18 @@ const handleMatch = (data, operator, value) => {
45
45
  case '!=':
46
46
  result = data !== value;
47
47
  break;
48
+ case '<':
49
+ result = data < value;
50
+ break;
51
+ case '>':
52
+ result = data > value;
53
+ break;
54
+ case '>=':
55
+ result = data >= value;
56
+ break;
57
+ case '<=':
58
+ result = data <= value;
59
+ break;
48
60
  default:
49
61
  result = data === value;
50
62
  }
@@ -32,7 +32,8 @@ const buildApiOptions = function buildApiOptions(options, post) {
32
32
  limit: 1,
33
33
  // This line deliberately uses double quotes because GQL cannot handle either double quotes
34
34
  // or escaped singles, see TryGhost/GQL#34
35
- filter: "slug:-" + slug + "+published_at:" + op + "'" + publishedAt + "'" // eslint-disable-line quotes
35
+ filter: "slug:-" + slug + "+published_at:" + op + "'" + publishedAt + "'", // eslint-disable-line quotes
36
+ context: {member: options.data.member}
36
37
  };
37
38
 
38
39
  if (get(options, 'hash.in')) {
@@ -48,6 +49,11 @@ const buildApiOptions = function buildApiOptions(options, post) {
48
49
  return apiOptions;
49
50
  };
50
51
 
52
+ /**
53
+ * @param {*} options
54
+ * @param {*} data
55
+ * @returns {Promise<any>}
56
+ */
51
57
  const fetch = function fetch(options, data) {
52
58
  const self = this;
53
59
  const apiOptions = buildApiOptions(options, this);
@@ -77,6 +83,10 @@ const fetch = function fetch(options, data) {
77
83
  // If prevNext method is called without valid post data then we must return a promise, if there is valid post data
78
84
  // then the promise is handled in the api call.
79
85
 
86
+ /**
87
+ * @param {*} options
88
+ * @returns {Promise<any>}
89
+ */
80
90
  module.exports = function prevNext(options) {
81
91
  options = options || {};
82
92
 
@@ -0,0 +1,59 @@
1
+ // # Tiers Helper
2
+ // Usage: `{{tiers}}`, `{{tiers separator=' - ' prefix=' : ' suffix=''}}`
3
+ //
4
+ // Returns a string of the tiers with access to the post.
5
+ // By default, tiers are separated by commas.
6
+ const {labs} = require('../services/proxy');
7
+ const {SafeString, escapeExpression} = require('../services/rendering');
8
+
9
+ const isString = require('lodash/isString');
10
+
11
+ function tiers(options = {}) {
12
+ options = options || {};
13
+ options.hash = options.hash || {};
14
+
15
+ const separator = isString(options.hash.separator) ? options.hash.separator : ', ';
16
+ const lastSeparator = isString(options.hash.lastSeparator) ? options.hash.lastSeparator : ' and ';
17
+ const prefix = isString(options.hash.prefix) ? options.hash.prefix : '';
18
+ let suffix = isString(options.hash.suffix) ? options.hash.suffix : '';
19
+
20
+ let output = '';
21
+
22
+ let accessProductsList = this.tiers;
23
+
24
+ if (accessProductsList && accessProductsList.length > 0) {
25
+ const tierNames = accessProductsList.map((tier) => {
26
+ return escapeExpression(tier.name);
27
+ });
28
+
29
+ if (tierNames.length === 1) {
30
+ output = tierNames[0];
31
+ suffix = isString(options.hash.suffix) ? options.hash.suffix : ' tier';
32
+ } else {
33
+ suffix = isString(options.hash.suffix) ? options.hash.suffix : ' tiers';
34
+ const firsts = tierNames.slice(0, tierNames.length - 1);
35
+ const last = tierNames[tierNames.length - 1];
36
+ output = firsts.join(separator) + lastSeparator + last;
37
+ }
38
+ }
39
+
40
+ if (output) {
41
+ output = prefix + output + suffix;
42
+ }
43
+
44
+ return new SafeString(output);
45
+ }
46
+
47
+ module.exports = function productsLabsWrapper() {
48
+ let self = this;
49
+ let args = arguments;
50
+
51
+ return labs.enabledHelper({
52
+ flagKey: 'multipleProducts',
53
+ flagName: 'Tiers',
54
+ helperName: 'tiers',
55
+ helpUrl: 'https://ghost.org/docs/themes/'
56
+ }, () => {
57
+ return tiers.apply(self, args);
58
+ });
59
+ };
@@ -8,7 +8,7 @@
8
8
  <h2>This post is for subscribers only</h2>
9
9
  {{/has}}
10
10
  {{#has visibility="tiers"}}
11
- <h2>This post is for subscribers on the {{products}} only </h2>
11
+ <h2>This post is for subscribers on the {{tiers}} only </h2>
12
12
  {{/has}}
13
13
  {{#if @member}}
14
14
  <a class="gh-btn" data-portal="account/plans" style="color:{{accentColor}}">Upgrade your account</a>
@@ -35,7 +35,7 @@ class RouterManager {
35
35
  routerCreated(router) {
36
36
  // NOTE: this event should be become an "internal frontend even"
37
37
  // and should not be consumed by the modules outside the frontend
38
- events.emit('router.created', this);
38
+ events.emit('router.created', router);
39
39
 
40
40
  // CASE: there are router types which do not generate resource urls
41
41
  // e.g. static route router, in this case we don't want ot notify the URL service
@@ -4,6 +4,8 @@ const express = require('../../shared/express');
4
4
  const cors = require('cors');
5
5
  const {URL} = require('url');
6
6
  const errors = require('@tryghost/errors');
7
+ const DomainEvents = require('@tryghost/domain-events');
8
+ const {MemberPageViewEvent} = require('@tryghost/member-events');
7
9
 
8
10
  // App requires
9
11
  const config = require('../../shared/config');
@@ -171,6 +173,14 @@ module.exports = function setupSiteApp(options = {}) {
171
173
  }
172
174
  });
173
175
 
176
+ siteApp.use(function (req, res, next) {
177
+ if (req.member) {
178
+ // This event needs memberLastSeenAt to avoid doing un-necessary database queries when updating `last_seen_at`
179
+ DomainEvents.dispatch(MemberPageViewEvent.create({url: req.url, memberId: req.member.id, memberLastSeenAt: req.member.last_seen_at}, new Date()));
180
+ }
181
+ next();
182
+ });
183
+
174
184
  debug('General middleware done');
175
185
 
176
186
  router = siteRoutes(options);
@@ -42,6 +42,8 @@ module.exports = {
42
42
  password: frame.data.setup[0].password,
43
43
  blogTitle: frame.data.setup[0].blogTitle,
44
44
  theme: frame.data.setup[0].theme,
45
+ accentColor: frame.data.setup[0].accentColor,
46
+ description: frame.data.setup[0].description,
45
47
  status: 'active'
46
48
  };
47
49
 
@@ -93,6 +93,10 @@ module.exports = {
93
93
  return shared.pipeline(require('./products'), localUtils);
94
94
  },
95
95
 
96
+ get tiers() {
97
+ return shared.pipeline(require('./tiers'), localUtils);
98
+ },
99
+
96
100
  get memberSigninUrls() {
97
101
  return shared.pipeline(require('./memberSigninUrls.js'), localUtils);
98
102
  },
@@ -203,5 +207,9 @@ module.exports = {
203
207
 
204
208
  get productsPublic() {
205
209
  return shared.pipeline(require('./products-public'), localUtils, 'content');
210
+ },
211
+
212
+ get tiersPublic() {
213
+ return shared.pipeline(require('./tiers-public'), localUtils, 'content');
206
214
  }
207
215
  };
@@ -54,7 +54,8 @@ module.exports = {
54
54
  'order',
55
55
  'debug',
56
56
  'page',
57
- 'search'
57
+ 'search',
58
+ 'include'
58
59
  ],
59
60
  permissions: true,
60
61
  validation: {},
@@ -93,7 +93,9 @@ module.exports = {
93
93
  options: [
94
94
  'id'
95
95
  ],
96
- headers: {},
96
+ headers: {
97
+ cacheInvalidate: true
98
+ },
97
99
  validation: {
98
100
  options: {
99
101
  id: {
@@ -108,11 +110,6 @@ module.exports = {
108
110
  frame.options
109
111
  );
110
112
 
111
- if (model.wasChanged()) {
112
- this.headers.cacheInvalidate = true;
113
- } else {
114
- this.headers.cacheInvalidate = false;
115
- }
116
113
  return model;
117
114
  }
118
115
  }