@cratis/showrunner.boxoffice.react 0.0.0-stage → 1.9.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/Banners/NoLicense.tsx +36 -0
- package/Banners/SuspensionBanner.tsx +54 -0
- package/Banners/TrialBanner.tsx +30 -0
- package/Banners/bannerModels.ts +117 -0
- package/Banners/index.ts +7 -0
- package/Entitlements/EntitlementsContext.ts +17 -0
- package/Entitlements/RequiresModule.tsx +68 -0
- package/Entitlements/entitlementModel.ts +175 -0
- package/Entitlements/index.ts +9 -0
- package/Entitlements/moduleFilter.ts +23 -0
- package/Entitlements/requiresModuleModel.ts +44 -0
- package/Entitlements/useEntitlements.ts +25 -0
- package/Labels/BoxOfficeLabels.ts +239 -0
- package/Labels/defaultBoxOfficeLabels.ts +119 -0
- package/Labels/format.ts +13 -0
- package/Labels/index.ts +7 -0
- package/Labels/resolveLabels.ts +36 -0
- package/Plan/PlanPage.tsx +24 -0
- package/Plan/PlanView.tsx +80 -0
- package/Plan/index.ts +6 -0
- package/Plan/planModels.ts +127 -0
- package/Portal/PortalButton.tsx +48 -0
- package/Portal/index.ts +5 -0
- package/Portal/portalLinks.ts +32 -0
- package/Provider/BoxOfficeContext.ts +67 -0
- package/Provider/BoxOfficeProvider.tsx +96 -0
- package/Provider/index.ts +5 -0
- package/README.md +71 -2
- package/Seats/AssignSeatDialog.tsx +73 -0
- package/Seats/SeatsPage.tsx +85 -0
- package/Seats/SeatsView.tsx +108 -0
- package/Seats/index.ts +7 -0
- package/Seats/seatModels.ts +97 -0
- package/Usage/UsagePage.tsx +26 -0
- package/Usage/UsageView.tsx +94 -0
- package/Usage/index.ts +6 -0
- package/Usage/usageModels.ts +92 -0
- package/dist/cjs/Banners/NoLicense.d.ts +2 -0
- package/dist/cjs/Banners/NoLicense.d.ts.map +1 -0
- package/dist/cjs/Banners/NoLicense.js +50 -0
- package/dist/cjs/Banners/NoLicense.js.map +1 -0
- package/dist/cjs/Banners/SuspensionBanner.d.ts +7 -0
- package/dist/cjs/Banners/SuspensionBanner.d.ts.map +1 -0
- package/dist/cjs/Banners/SuspensionBanner.js +62 -0
- package/dist/cjs/Banners/SuspensionBanner.js.map +1 -0
- package/dist/cjs/Banners/TrialBanner.d.ts +2 -0
- package/dist/cjs/Banners/TrialBanner.d.ts.map +1 -0
- package/dist/cjs/Banners/TrialBanner.js +38 -0
- package/dist/cjs/Banners/TrialBanner.js.map +1 -0
- package/dist/cjs/Banners/bannerModels.d.ts +19 -0
- package/dist/cjs/Banners/bannerModels.d.ts.map +1 -0
- package/dist/cjs/Banners/bannerModels.js +101 -0
- package/dist/cjs/Banners/bannerModels.js.map +1 -0
- package/dist/cjs/Banners/index.d.ts +5 -0
- package/dist/cjs/Banners/index.d.ts.map +1 -0
- package/dist/cjs/Entitlements/EntitlementsContext.d.ts +4 -0
- package/dist/cjs/Entitlements/EntitlementsContext.d.ts.map +1 -0
- package/dist/cjs/Entitlements/EntitlementsContext.js +19 -0
- package/dist/cjs/Entitlements/EntitlementsContext.js.map +1 -0
- package/dist/cjs/Entitlements/RequiresModule.d.ts +9 -0
- package/dist/cjs/Entitlements/RequiresModule.d.ts.map +1 -0
- package/dist/cjs/Entitlements/RequiresModule.js +68 -0
- package/dist/cjs/Entitlements/RequiresModule.js.map +1 -0
- package/dist/cjs/Entitlements/entitlementModel.d.ts +25 -0
- package/dist/cjs/Entitlements/entitlementModel.d.ts.map +1 -0
- package/dist/cjs/Entitlements/entitlementModel.js +93 -0
- package/dist/cjs/Entitlements/entitlementModel.js.map +1 -0
- package/dist/cjs/Entitlements/index.d.ts +7 -0
- package/dist/cjs/Entitlements/index.d.ts.map +1 -0
- package/dist/cjs/Entitlements/moduleFilter.d.ts +6 -0
- package/dist/cjs/Entitlements/moduleFilter.d.ts.map +1 -0
- package/dist/cjs/Entitlements/moduleFilter.js +16 -0
- package/dist/cjs/Entitlements/moduleFilter.js.map +1 -0
- package/dist/cjs/Entitlements/requiresModuleModel.d.ts +10 -0
- package/dist/cjs/Entitlements/requiresModuleModel.d.ts.map +1 -0
- package/dist/cjs/Entitlements/requiresModuleModel.js +32 -0
- package/dist/cjs/Entitlements/requiresModuleModel.js.map +1 -0
- package/dist/cjs/Entitlements/useEntitlements.d.ts +5 -0
- package/dist/cjs/Entitlements/useEntitlements.d.ts.map +1 -0
- package/dist/cjs/Entitlements/useEntitlements.js +26 -0
- package/dist/cjs/Entitlements/useEntitlements.js.map +1 -0
- package/dist/cjs/Labels/BoxOfficeLabels.d.ts +116 -0
- package/dist/cjs/Labels/BoxOfficeLabels.d.ts.map +1 -0
- package/dist/cjs/Labels/defaultBoxOfficeLabels.d.ts +3 -0
- package/dist/cjs/Labels/defaultBoxOfficeLabels.d.ts.map +1 -0
- package/dist/cjs/Labels/defaultBoxOfficeLabels.js +120 -0
- package/dist/cjs/Labels/defaultBoxOfficeLabels.js.map +1 -0
- package/dist/cjs/Labels/format.d.ts +2 -0
- package/dist/cjs/Labels/format.d.ts.map +1 -0
- package/dist/cjs/Labels/format.js +15 -0
- package/dist/cjs/Labels/format.js.map +1 -0
- package/dist/cjs/Labels/index.d.ts +5 -0
- package/dist/cjs/Labels/index.d.ts.map +1 -0
- package/dist/cjs/Labels/resolveLabels.d.ts +3 -0
- package/dist/cjs/Labels/resolveLabels.d.ts.map +1 -0
- package/dist/cjs/Labels/resolveLabels.js +35 -0
- package/dist/cjs/Labels/resolveLabels.js.map +1 -0
- package/dist/cjs/Plan/PlanPage.d.ts +2 -0
- package/dist/cjs/Plan/PlanPage.d.ts.map +1 -0
- package/dist/cjs/Plan/PlanPage.js +24 -0
- package/dist/cjs/Plan/PlanPage.js.map +1 -0
- package/dist/cjs/Plan/PlanView.d.ts +10 -0
- package/dist/cjs/Plan/PlanView.d.ts.map +1 -0
- package/dist/cjs/Plan/PlanView.js +123 -0
- package/dist/cjs/Plan/PlanView.js.map +1 -0
- package/dist/cjs/Plan/index.d.ts +4 -0
- package/dist/cjs/Plan/index.d.ts.map +1 -0
- package/dist/cjs/Plan/planModels.d.ts +24 -0
- package/dist/cjs/Plan/planModels.d.ts.map +1 -0
- package/dist/cjs/Plan/planModels.js +83 -0
- package/dist/cjs/Plan/planModels.js.map +1 -0
- package/dist/cjs/Portal/PortalButton.d.ts +10 -0
- package/dist/cjs/Portal/PortalButton.d.ts.map +1 -0
- package/dist/cjs/Portal/PortalButton.js +37 -0
- package/dist/cjs/Portal/PortalButton.js.map +1 -0
- package/dist/cjs/Portal/index.d.ts +3 -0
- package/dist/cjs/Portal/index.d.ts.map +1 -0
- package/dist/cjs/Portal/portalLinks.d.ts +6 -0
- package/dist/cjs/Portal/portalLinks.d.ts.map +1 -0
- package/dist/cjs/Portal/portalLinks.js +34 -0
- package/dist/cjs/Portal/portalLinks.js.map +1 -0
- package/dist/cjs/Provider/BoxOfficeContext.d.ts +16 -0
- package/dist/cjs/Provider/BoxOfficeContext.d.ts.map +1 -0
- package/dist/cjs/Provider/BoxOfficeContext.js +34 -0
- package/dist/cjs/Provider/BoxOfficeContext.js.map +1 -0
- package/dist/cjs/Provider/BoxOfficeProvider.d.ts +15 -0
- package/dist/cjs/Provider/BoxOfficeProvider.d.ts.map +1 -0
- package/dist/cjs/Provider/BoxOfficeProvider.js +72 -0
- package/dist/cjs/Provider/BoxOfficeProvider.js.map +1 -0
- package/dist/cjs/Provider/index.d.ts +3 -0
- package/dist/cjs/Provider/index.d.ts.map +1 -0
- package/dist/cjs/Seats/AssignSeatDialog.d.ts +9 -0
- package/dist/cjs/Seats/AssignSeatDialog.d.ts.map +1 -0
- package/dist/cjs/Seats/AssignSeatDialog.js +99 -0
- package/dist/cjs/Seats/AssignSeatDialog.js.map +1 -0
- package/dist/cjs/Seats/SeatsPage.d.ts +2 -0
- package/dist/cjs/Seats/SeatsPage.d.ts.map +1 -0
- package/dist/cjs/Seats/SeatsPage.js +87 -0
- package/dist/cjs/Seats/SeatsPage.js.map +1 -0
- package/dist/cjs/Seats/SeatsView.d.ts +14 -0
- package/dist/cjs/Seats/SeatsView.d.ts.map +1 -0
- package/dist/cjs/Seats/SeatsView.js +111 -0
- package/dist/cjs/Seats/SeatsView.js.map +1 -0
- package/dist/cjs/Seats/index.d.ts +5 -0
- package/dist/cjs/Seats/index.d.ts.map +1 -0
- package/dist/cjs/Seats/seatModels.d.ts +23 -0
- package/dist/cjs/Seats/seatModels.d.ts.map +1 -0
- package/dist/cjs/Seats/seatModels.js +65 -0
- package/dist/cjs/Seats/seatModels.js.map +1 -0
- package/dist/cjs/Usage/UsagePage.d.ts +2 -0
- package/dist/cjs/Usage/UsagePage.d.ts.map +1 -0
- package/dist/cjs/Usage/UsagePage.js +26 -0
- package/dist/cjs/Usage/UsagePage.js.map +1 -0
- package/dist/cjs/Usage/UsageView.d.ts +9 -0
- package/dist/cjs/Usage/UsageView.d.ts.map +1 -0
- package/dist/cjs/Usage/UsageView.js +108 -0
- package/dist/cjs/Usage/UsageView.js.map +1 -0
- package/dist/cjs/Usage/index.d.ts +4 -0
- package/dist/cjs/Usage/index.d.ts.map +1 -0
- package/dist/cjs/Usage/usageModels.d.ts +17 -0
- package/dist/cjs/Usage/usageModels.d.ts.map +1 -0
- package/dist/cjs/Usage/usageModels.js +57 -0
- package/dist/cjs/Usage/usageModels.js.map +1 -0
- package/dist/cjs/formatting.d.ts +5 -0
- package/dist/cjs/formatting.d.ts.map +1 -0
- package/dist/cjs/formatting.js +46 -0
- package/dist/cjs/formatting.js.map +1 -0
- package/dist/cjs/index.d.ts +10 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +85 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +3 -0
- package/dist/esm/Banners/NoLicense.d.ts +2 -0
- package/dist/esm/Banners/NoLicense.d.ts.map +1 -0
- package/dist/esm/Banners/NoLicense.js +48 -0
- package/dist/esm/Banners/NoLicense.js.map +1 -0
- package/dist/esm/Banners/SuspensionBanner.d.ts +7 -0
- package/dist/esm/Banners/SuspensionBanner.d.ts.map +1 -0
- package/dist/esm/Banners/SuspensionBanner.js +59 -0
- package/dist/esm/Banners/SuspensionBanner.js.map +1 -0
- package/dist/esm/Banners/TrialBanner.d.ts +2 -0
- package/dist/esm/Banners/TrialBanner.d.ts.map +1 -0
- package/dist/esm/Banners/TrialBanner.js +36 -0
- package/dist/esm/Banners/TrialBanner.js.map +1 -0
- package/dist/esm/Banners/bannerModels.d.ts +19 -0
- package/dist/esm/Banners/bannerModels.d.ts.map +1 -0
- package/dist/esm/Banners/bannerModels.js +96 -0
- package/dist/esm/Banners/bannerModels.js.map +1 -0
- package/dist/esm/Banners/index.d.ts +5 -0
- package/dist/esm/Banners/index.d.ts.map +1 -0
- package/dist/esm/Banners/index.js +5 -0
- package/dist/esm/Banners/index.js.map +1 -0
- package/dist/esm/Entitlements/EntitlementsContext.d.ts +4 -0
- package/dist/esm/Entitlements/EntitlementsContext.d.ts.map +1 -0
- package/dist/esm/Entitlements/EntitlementsContext.js +16 -0
- package/dist/esm/Entitlements/EntitlementsContext.js.map +1 -0
- package/dist/esm/Entitlements/RequiresModule.d.ts +9 -0
- package/dist/esm/Entitlements/RequiresModule.d.ts.map +1 -0
- package/dist/esm/Entitlements/RequiresModule.js +66 -0
- package/dist/esm/Entitlements/RequiresModule.js.map +1 -0
- package/dist/esm/Entitlements/entitlementModel.d.ts +25 -0
- package/dist/esm/Entitlements/entitlementModel.d.ts.map +1 -0
- package/dist/esm/Entitlements/entitlementModel.js +89 -0
- package/dist/esm/Entitlements/entitlementModel.js.map +1 -0
- package/dist/esm/Entitlements/index.d.ts +7 -0
- package/dist/esm/Entitlements/index.d.ts.map +1 -0
- package/dist/esm/Entitlements/index.js +7 -0
- package/dist/esm/Entitlements/index.js.map +1 -0
- package/dist/esm/Entitlements/moduleFilter.d.ts +6 -0
- package/dist/esm/Entitlements/moduleFilter.d.ts.map +1 -0
- package/dist/esm/Entitlements/moduleFilter.js +14 -0
- package/dist/esm/Entitlements/moduleFilter.js.map +1 -0
- package/dist/esm/Entitlements/requiresModuleModel.d.ts +10 -0
- package/dist/esm/Entitlements/requiresModuleModel.d.ts.map +1 -0
- package/dist/esm/Entitlements/requiresModuleModel.js +30 -0
- package/dist/esm/Entitlements/requiresModuleModel.js.map +1 -0
- package/dist/esm/Entitlements/useEntitlements.d.ts +5 -0
- package/dist/esm/Entitlements/useEntitlements.d.ts.map +1 -0
- package/dist/esm/Entitlements/useEntitlements.js +23 -0
- package/dist/esm/Entitlements/useEntitlements.js.map +1 -0
- package/dist/esm/Labels/BoxOfficeLabels.d.ts +116 -0
- package/dist/esm/Labels/BoxOfficeLabels.d.ts.map +1 -0
- package/dist/esm/Labels/BoxOfficeLabels.js +2 -0
- package/dist/esm/Labels/BoxOfficeLabels.js.map +1 -0
- package/dist/esm/Labels/defaultBoxOfficeLabels.d.ts +3 -0
- package/dist/esm/Labels/defaultBoxOfficeLabels.d.ts.map +1 -0
- package/dist/esm/Labels/defaultBoxOfficeLabels.js +118 -0
- package/dist/esm/Labels/defaultBoxOfficeLabels.js.map +1 -0
- package/dist/esm/Labels/format.d.ts +2 -0
- package/dist/esm/Labels/format.d.ts.map +1 -0
- package/dist/esm/Labels/format.js +13 -0
- package/dist/esm/Labels/format.js.map +1 -0
- package/dist/esm/Labels/index.d.ts +5 -0
- package/dist/esm/Labels/index.d.ts.map +1 -0
- package/dist/esm/Labels/index.js +5 -0
- package/dist/esm/Labels/index.js.map +1 -0
- package/dist/esm/Labels/resolveLabels.d.ts +3 -0
- package/dist/esm/Labels/resolveLabels.d.ts.map +1 -0
- package/dist/esm/Labels/resolveLabels.js +33 -0
- package/dist/esm/Labels/resolveLabels.js.map +1 -0
- package/dist/esm/Plan/PlanPage.d.ts +2 -0
- package/dist/esm/Plan/PlanPage.d.ts.map +1 -0
- package/dist/esm/Plan/PlanPage.js +22 -0
- package/dist/esm/Plan/PlanPage.js.map +1 -0
- package/dist/esm/Plan/PlanView.d.ts +10 -0
- package/dist/esm/Plan/PlanView.d.ts.map +1 -0
- package/dist/esm/Plan/PlanView.js +121 -0
- package/dist/esm/Plan/PlanView.js.map +1 -0
- package/dist/esm/Plan/index.d.ts +4 -0
- package/dist/esm/Plan/index.d.ts.map +1 -0
- package/dist/esm/Plan/index.js +4 -0
- package/dist/esm/Plan/index.js.map +1 -0
- package/dist/esm/Plan/planModels.d.ts +24 -0
- package/dist/esm/Plan/planModels.d.ts.map +1 -0
- package/dist/esm/Plan/planModels.js +78 -0
- package/dist/esm/Plan/planModels.js.map +1 -0
- package/dist/esm/Portal/PortalButton.d.ts +10 -0
- package/dist/esm/Portal/PortalButton.d.ts.map +1 -0
- package/dist/esm/Portal/PortalButton.js +35 -0
- package/dist/esm/Portal/PortalButton.js.map +1 -0
- package/dist/esm/Portal/index.d.ts +3 -0
- package/dist/esm/Portal/index.d.ts.map +1 -0
- package/dist/esm/Portal/index.js +3 -0
- package/dist/esm/Portal/index.js.map +1 -0
- package/dist/esm/Portal/portalLinks.d.ts +6 -0
- package/dist/esm/Portal/portalLinks.d.ts.map +1 -0
- package/dist/esm/Portal/portalLinks.js +31 -0
- package/dist/esm/Portal/portalLinks.js.map +1 -0
- package/dist/esm/Provider/BoxOfficeContext.d.ts +16 -0
- package/dist/esm/Provider/BoxOfficeContext.d.ts.map +1 -0
- package/dist/esm/Provider/BoxOfficeContext.js +29 -0
- package/dist/esm/Provider/BoxOfficeContext.js.map +1 -0
- package/dist/esm/Provider/BoxOfficeProvider.d.ts +15 -0
- package/dist/esm/Provider/BoxOfficeProvider.d.ts.map +1 -0
- package/dist/esm/Provider/BoxOfficeProvider.js +70 -0
- package/dist/esm/Provider/BoxOfficeProvider.js.map +1 -0
- package/dist/esm/Provider/index.d.ts +3 -0
- package/dist/esm/Provider/index.d.ts.map +1 -0
- package/dist/esm/Provider/index.js +3 -0
- package/dist/esm/Provider/index.js.map +1 -0
- package/dist/esm/Seats/AssignSeatDialog.d.ts +9 -0
- package/dist/esm/Seats/AssignSeatDialog.d.ts.map +1 -0
- package/dist/esm/Seats/AssignSeatDialog.js +97 -0
- package/dist/esm/Seats/AssignSeatDialog.js.map +1 -0
- package/dist/esm/Seats/SeatsPage.d.ts +2 -0
- package/dist/esm/Seats/SeatsPage.d.ts.map +1 -0
- package/dist/esm/Seats/SeatsPage.js +85 -0
- package/dist/esm/Seats/SeatsPage.js.map +1 -0
- package/dist/esm/Seats/SeatsView.d.ts +14 -0
- package/dist/esm/Seats/SeatsView.d.ts.map +1 -0
- package/dist/esm/Seats/SeatsView.js +109 -0
- package/dist/esm/Seats/SeatsView.js.map +1 -0
- package/dist/esm/Seats/index.d.ts +5 -0
- package/dist/esm/Seats/index.d.ts.map +1 -0
- package/dist/esm/Seats/index.js +5 -0
- package/dist/esm/Seats/index.js.map +1 -0
- package/dist/esm/Seats/seatModels.d.ts +23 -0
- package/dist/esm/Seats/seatModels.d.ts.map +1 -0
- package/dist/esm/Seats/seatModels.js +59 -0
- package/dist/esm/Seats/seatModels.js.map +1 -0
- package/dist/esm/Usage/UsagePage.d.ts +2 -0
- package/dist/esm/Usage/UsagePage.d.ts.map +1 -0
- package/dist/esm/Usage/UsagePage.js +24 -0
- package/dist/esm/Usage/UsagePage.js.map +1 -0
- package/dist/esm/Usage/UsageView.d.ts +9 -0
- package/dist/esm/Usage/UsageView.d.ts.map +1 -0
- package/dist/esm/Usage/UsageView.js +106 -0
- package/dist/esm/Usage/UsageView.js.map +1 -0
- package/dist/esm/Usage/index.d.ts +4 -0
- package/dist/esm/Usage/index.d.ts.map +1 -0
- package/dist/esm/Usage/index.js +4 -0
- package/dist/esm/Usage/index.js.map +1 -0
- package/dist/esm/Usage/usageModels.d.ts +17 -0
- package/dist/esm/Usage/usageModels.d.ts.map +1 -0
- package/dist/esm/Usage/usageModels.js +53 -0
- package/dist/esm/Usage/usageModels.js.map +1 -0
- package/dist/esm/formatting.d.ts +5 -0
- package/dist/esm/formatting.d.ts.map +1 -0
- package/dist/esm/formatting.js +42 -0
- package/dist/esm/formatting.js.map +1 -0
- package/dist/esm/index.d.ts +10 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +29 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/package.json +3 -0
- package/formatting.ts +41 -0
- package/index.ts +12 -0
- package/package.json +84 -4
- package/styles.css +166 -0
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
4
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
5
|
+
/**
|
|
6
|
+
* The English labels of the Box Office components.
|
|
7
|
+
*/ const defaultBoxOfficeLabels = {
|
|
8
|
+
common: {
|
|
9
|
+
cancel: 'Cancel',
|
|
10
|
+
close: 'Close',
|
|
11
|
+
loading: 'Loading…',
|
|
12
|
+
failed: 'This could not be loaded.',
|
|
13
|
+
unauthorized: 'You are not allowed to see this.',
|
|
14
|
+
portalFailed: 'The customer portal could not be opened. Try again in a moment.',
|
|
15
|
+
noPortal: 'Contact the people who run this product to change your plan.'
|
|
16
|
+
},
|
|
17
|
+
moduleAccess: {
|
|
18
|
+
none: 'Not included',
|
|
19
|
+
preview: 'Preview',
|
|
20
|
+
trial: 'Trial',
|
|
21
|
+
full: 'Included',
|
|
22
|
+
until: 'until {date}'
|
|
23
|
+
},
|
|
24
|
+
trialBanner: {
|
|
25
|
+
running: 'Your trial ends in {days} days.',
|
|
26
|
+
lastDay: 'Your trial ends today.',
|
|
27
|
+
closed: 'Your trial has ended. Your data is kept, and you can read it, but nothing can be changed until you buy.',
|
|
28
|
+
buy: 'Buy'
|
|
29
|
+
},
|
|
30
|
+
suspension: {
|
|
31
|
+
title: 'Your organization is suspended',
|
|
32
|
+
trialEndedWithoutSeats: 'Your trial ended without any seats being bought.',
|
|
33
|
+
paymentOverdue: 'A payment is overdue.',
|
|
34
|
+
administratorDecision: 'The people who run this product suspended it.',
|
|
35
|
+
resolve: 'You can read everything, but nothing can be changed until the suspension is lifted.',
|
|
36
|
+
openPortal: 'Open the customer portal'
|
|
37
|
+
},
|
|
38
|
+
noLicense: {
|
|
39
|
+
noSeatTitle: 'You do not have a seat',
|
|
40
|
+
noSeat: 'Ask an administrator of your organization to give you a seat.',
|
|
41
|
+
overCapacityTitle: 'Your seat is not covered',
|
|
42
|
+
overCapacity: 'Your organization has more people with seats than it has bought. Ask an administrator to buy more seats or release some.',
|
|
43
|
+
trialClosedTitle: 'The trial has ended',
|
|
44
|
+
trialClosed: 'Your organization can read what it has, but nothing can be changed until it buys.',
|
|
45
|
+
suspendedTitle: 'Your organization is suspended',
|
|
46
|
+
suspended: 'Your organization can read what it has, but nothing can be changed until the suspension is lifted.',
|
|
47
|
+
openPortal: 'Open the customer portal'
|
|
48
|
+
},
|
|
49
|
+
requiresModule: {
|
|
50
|
+
title: '{module} is not part of your plan',
|
|
51
|
+
none: 'Your organization does not have {module}.',
|
|
52
|
+
preview: 'Your organization can look at {module}, but not use it yet.',
|
|
53
|
+
try: 'Try it',
|
|
54
|
+
buy: 'Buy'
|
|
55
|
+
},
|
|
56
|
+
seats: {
|
|
57
|
+
title: 'Seats',
|
|
58
|
+
summary: '{held} of {capacity} seats in use',
|
|
59
|
+
overCapacity: 'Your organization has {over} more people with seats than it has bought.',
|
|
60
|
+
noCapacity: 'Your organization has no seats.',
|
|
61
|
+
empty: 'Nobody holds a seat yet.',
|
|
62
|
+
holderColumn: 'Name',
|
|
63
|
+
emailColumn: 'Email',
|
|
64
|
+
assignedColumn: 'Assigned',
|
|
65
|
+
statusColumn: 'Status',
|
|
66
|
+
licensed: 'Licensed',
|
|
67
|
+
overCapacityStatus: 'Not covered',
|
|
68
|
+
assign: 'Assign a seat',
|
|
69
|
+
releaseShort: 'Release',
|
|
70
|
+
release: 'Release the seat of {name}',
|
|
71
|
+
assignTitle: 'Assign a seat',
|
|
72
|
+
assignConfirm: 'Assign',
|
|
73
|
+
name: 'Name',
|
|
74
|
+
email: 'Email',
|
|
75
|
+
identityProvider: 'Identity provider',
|
|
76
|
+
subject: 'Subject at the identity provider',
|
|
77
|
+
releaseTitle: 'Release the seat',
|
|
78
|
+
releaseMessage: '{name} can no longer use the product until they are given a seat again. Release the seat?',
|
|
79
|
+
readOnly: 'Seats cannot be changed while your organization is read-only.'
|
|
80
|
+
},
|
|
81
|
+
usage: {
|
|
82
|
+
title: 'Usage',
|
|
83
|
+
empty: 'This product measures nothing.',
|
|
84
|
+
meterColumn: 'Meter',
|
|
85
|
+
usedColumn: 'Used',
|
|
86
|
+
allowanceColumn: 'Allowance',
|
|
87
|
+
budgetColumn: 'Budget',
|
|
88
|
+
concurrencyColumn: 'At the same time',
|
|
89
|
+
usedOfAllowance: '{used} of {allowance} {unit}',
|
|
90
|
+
noAllowance: '{used} {unit}, with no allowance',
|
|
91
|
+
day: 'per day',
|
|
92
|
+
month: 'per month',
|
|
93
|
+
resets: 'starts over {date}',
|
|
94
|
+
atAllowance: 'Allowance used up',
|
|
95
|
+
atBudget: 'Budget reached',
|
|
96
|
+
block: 'Work beyond the allowance is turned away.',
|
|
97
|
+
park: 'Work beyond the allowance waits for the next period.',
|
|
98
|
+
notSet: 'Not set',
|
|
99
|
+
progress: 'Use of {meter}'
|
|
100
|
+
},
|
|
101
|
+
plan: {
|
|
102
|
+
title: 'Plan and modules',
|
|
103
|
+
modulesTitle: 'Modules',
|
|
104
|
+
offersTitle: 'Plans and offers',
|
|
105
|
+
noModules: 'This product has no modules.',
|
|
106
|
+
noOffers: 'Nothing is on sale right now.',
|
|
107
|
+
includedSeats: '{count} seats included',
|
|
108
|
+
includedModules: 'Includes',
|
|
109
|
+
perMonth: '{price} per month',
|
|
110
|
+
perYear: '{price} per year',
|
|
111
|
+
buy: 'Buy',
|
|
112
|
+
try: 'Try',
|
|
113
|
+
changePlan: 'Change plan',
|
|
114
|
+
onTrial: 'You are on a trial with {days} days left.',
|
|
115
|
+
withSeats: 'Your plan has {seats} seats.'
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
exports.defaultBoxOfficeLabels = defaultBoxOfficeLabels;
|
|
120
|
+
//# sourceMappingURL=defaultBoxOfficeLabels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaultBoxOfficeLabels.js","sources":["../../../Labels/defaultBoxOfficeLabels.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { BoxOfficeLabels } from './BoxOfficeLabels.js';\n\n/**\n * The English labels of the Box Office components.\n */\nexport const defaultBoxOfficeLabels: BoxOfficeLabels = {\n common: {\n cancel: 'Cancel',\n close: 'Close',\n loading: 'Loading…',\n failed: 'This could not be loaded.',\n unauthorized: 'You are not allowed to see this.',\n portalFailed: 'The customer portal could not be opened. Try again in a moment.',\n noPortal: 'Contact the people who run this product to change your plan.'\n },\n moduleAccess: {\n none: 'Not included',\n preview: 'Preview',\n trial: 'Trial',\n full: 'Included',\n until: 'until {date}'\n },\n trialBanner: {\n running: 'Your trial ends in {days} days.',\n lastDay: 'Your trial ends today.',\n closed: 'Your trial has ended. Your data is kept, and you can read it, but nothing can be changed until you buy.',\n buy: 'Buy'\n },\n suspension: {\n title: 'Your organization is suspended',\n trialEndedWithoutSeats: 'Your trial ended without any seats being bought.',\n paymentOverdue: 'A payment is overdue.',\n administratorDecision: 'The people who run this product suspended it.',\n resolve: 'You can read everything, but nothing can be changed until the suspension is lifted.',\n openPortal: 'Open the customer portal'\n },\n noLicense: {\n noSeatTitle: 'You do not have a seat',\n noSeat: 'Ask an administrator of your organization to give you a seat.',\n overCapacityTitle: 'Your seat is not covered',\n overCapacity: 'Your organization has more people with seats than it has bought. Ask an administrator to buy more seats or release some.',\n trialClosedTitle: 'The trial has ended',\n trialClosed: 'Your organization can read what it has, but nothing can be changed until it buys.',\n suspendedTitle: 'Your organization is suspended',\n suspended: 'Your organization can read what it has, but nothing can be changed until the suspension is lifted.',\n openPortal: 'Open the customer portal'\n },\n requiresModule: {\n title: '{module} is not part of your plan',\n none: 'Your organization does not have {module}.',\n preview: 'Your organization can look at {module}, but not use it yet.',\n try: 'Try it',\n buy: 'Buy'\n },\n seats: {\n title: 'Seats',\n summary: '{held} of {capacity} seats in use',\n overCapacity: 'Your organization has {over} more people with seats than it has bought.',\n noCapacity: 'Your organization has no seats.',\n empty: 'Nobody holds a seat yet.',\n holderColumn: 'Name',\n emailColumn: 'Email',\n assignedColumn: 'Assigned',\n statusColumn: 'Status',\n licensed: 'Licensed',\n overCapacityStatus: 'Not covered',\n assign: 'Assign a seat',\n releaseShort: 'Release',\n release: 'Release the seat of {name}',\n assignTitle: 'Assign a seat',\n assignConfirm: 'Assign',\n name: 'Name',\n email: 'Email',\n identityProvider: 'Identity provider',\n subject: 'Subject at the identity provider',\n releaseTitle: 'Release the seat',\n releaseMessage: '{name} can no longer use the product until they are given a seat again. Release the seat?',\n readOnly: 'Seats cannot be changed while your organization is read-only.'\n },\n usage: {\n title: 'Usage',\n empty: 'This product measures nothing.',\n meterColumn: 'Meter',\n usedColumn: 'Used',\n allowanceColumn: 'Allowance',\n budgetColumn: 'Budget',\n concurrencyColumn: 'At the same time',\n usedOfAllowance: '{used} of {allowance} {unit}',\n noAllowance: '{used} {unit}, with no allowance',\n day: 'per day',\n month: 'per month',\n resets: 'starts over {date}',\n atAllowance: 'Allowance used up',\n atBudget: 'Budget reached',\n block: 'Work beyond the allowance is turned away.',\n park: 'Work beyond the allowance waits for the next period.',\n notSet: 'Not set',\n progress: 'Use of {meter}'\n },\n plan: {\n title: 'Plan and modules',\n modulesTitle: 'Modules',\n offersTitle: 'Plans and offers',\n noModules: 'This product has no modules.',\n noOffers: 'Nothing is on sale right now.',\n includedSeats: '{count} seats included',\n includedModules: 'Includes',\n perMonth: '{price} per month',\n perYear: '{price} per year',\n buy: 'Buy',\n try: 'Try',\n changePlan: 'Change plan',\n onTrial: 'You are on a trial with {days} days left.',\n withSeats: 'Your plan has {seats} seats.'\n }\n};\n"],"names":["defaultBoxOfficeLabels","common","cancel","close","loading","failed","unauthorized","portalFailed","noPortal","moduleAccess","none","preview","trial","full","until","trialBanner","running","lastDay","closed","buy","suspension","title","trialEndedWithoutSeats","paymentOverdue","administratorDecision","resolve","openPortal","noLicense","noSeatTitle","noSeat","overCapacityTitle","overCapacity","trialClosedTitle","trialClosed","suspendedTitle","suspended","requiresModule","try","seats","summary","noCapacity","empty","holderColumn","emailColumn","assignedColumn","statusColumn","licensed","overCapacityStatus","assign","releaseShort","release","assignTitle","assignConfirm","name","email","identityProvider","subject","releaseTitle","releaseMessage","readOnly","usage","meterColumn","usedColumn","allowanceColumn","budgetColumn","concurrencyColumn","usedOfAllowance","noAllowance","day","month","resets","atAllowance","atBudget","block","park","notSet","progress","plan","modulesTitle","offersTitle","noModules","noOffers","includedSeats","includedModules","perMonth","perYear","changePlan","onTrial","withSeats"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../../Labels/format.ts"],"names":[],"mappings":"AASA,wBAAgB,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,GAAG,MAAM,CAGxF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
4
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
5
|
+
/**
|
|
6
|
+
* Fills the placeholders of a label, such as `{count}`, with values. A placeholder without a value is left as it is.
|
|
7
|
+
* @param template The label.
|
|
8
|
+
* @param values The values by placeholder name.
|
|
9
|
+
* @returns The label with its placeholders filled in.
|
|
10
|
+
*/ function format(template, values) {
|
|
11
|
+
return template.replace(/\{(\w+)\}/g, (placeholder, name)=>Object.hasOwn(values, name) ? String(values[name]) : placeholder);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
exports.format = format;
|
|
15
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"format.js","sources":["../../../Labels/format.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\n/**\n * Fills the placeholders of a label, such as `{count}`, with values. A placeholder without a value is left as it is.\n * @param template The label.\n * @param values The values by placeholder name.\n * @returns The label with its placeholders filled in.\n */\nexport function format(template: string, values: Record<string, string | number>): string {\n return template.replace(/\\{(\\w+)\\}/g, (placeholder, name: string) =>\n Object.hasOwn(values, name) ? String(values[name]) : placeholder);\n}\n"],"names":["format","template","values","replace","placeholder","name","Object","hasOwn","String"],"mappings":";;AAAA;AACA;AAEA;;;;;AAKC,IACM,SAASA,MAAAA,CAAOC,QAAgB,EAAEC,MAAuC,EAAA;AAC5E,IAAA,OAAOD,SAASE,OAAO,CAAC,YAAA,EAAc,CAACC,aAAaC,IAAAA,GAChDC,MAAAA,CAAOC,MAAM,CAACL,QAAQG,IAAAA,CAAAA,GAAQG,MAAAA,CAAON,MAAM,CAACG,KAAK,CAAA,GAAID,WAAAA,CAAAA;AAC7D;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Labels/index.ts"],"names":[],"mappings":"AAGA,cAAc,sBAAsB,CAAC;AACrC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveLabels.d.ts","sourceRoot":"","sources":["../../../Labels/resolveLabels.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOhF,wBAAgB,aAAa,CAAC,SAAS,CAAC,EAAE,uBAAuB,GAAG,eAAe,CAElF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var defaultBoxOfficeLabels = require('./defaultBoxOfficeLabels.js');
|
|
4
|
+
|
|
5
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
6
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
7
|
+
/**
|
|
8
|
+
* Resolves the labels to show: the overrides given, and the English default for every label left out.
|
|
9
|
+
* @param overrides The labels a solution replaces.
|
|
10
|
+
* @returns The {@link BoxOfficeLabels}.
|
|
11
|
+
*/ function resolveLabels(overrides) {
|
|
12
|
+
return merge(defaultBoxOfficeLabels.defaultBoxOfficeLabels, overrides);
|
|
13
|
+
}
|
|
14
|
+
function merge(defaults, overrides) {
|
|
15
|
+
if (!overrides) {
|
|
16
|
+
return defaults;
|
|
17
|
+
}
|
|
18
|
+
const merged = {
|
|
19
|
+
...defaults
|
|
20
|
+
};
|
|
21
|
+
for (const [key, value] of Object.entries(overrides)){
|
|
22
|
+
if (value === undefined) {
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
const defaultValue = defaults[key];
|
|
26
|
+
merged[key] = isObject(defaultValue) && isObject(value) ? merge(defaultValue, value) : value;
|
|
27
|
+
}
|
|
28
|
+
return merged;
|
|
29
|
+
}
|
|
30
|
+
function isObject(value) {
|
|
31
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
exports.resolveLabels = resolveLabels;
|
|
35
|
+
//# sourceMappingURL=resolveLabels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolveLabels.js","sources":["../../../Labels/resolveLabels.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { defaultBoxOfficeLabels } from './defaultBoxOfficeLabels.js';\nimport { BoxOfficeLabelOverrides, BoxOfficeLabels } from './BoxOfficeLabels.js';\n\n/**\n * Resolves the labels to show: the overrides given, and the English default for every label left out.\n * @param overrides The labels a solution replaces.\n * @returns The {@link BoxOfficeLabels}.\n */\nexport function resolveLabels(overrides?: BoxOfficeLabelOverrides): BoxOfficeLabels {\n return merge(defaultBoxOfficeLabels, overrides) as BoxOfficeLabels;\n}\n\nfunction merge(defaults: object, overrides?: object): object {\n if (!overrides) {\n return defaults;\n }\n\n const merged: Record<string, unknown> = { ...defaults };\n for (const [key, value] of Object.entries(overrides)) {\n if (value === undefined) {\n continue;\n }\n\n const defaultValue = (defaults as Record<string, unknown>)[key];\n merged[key] = isObject(defaultValue) && isObject(value) ? merge(defaultValue, value) : value;\n }\n\n return merged;\n}\n\nfunction isObject(value: unknown): value is object {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n"],"names":["resolveLabels","overrides","merge","defaultBoxOfficeLabels","defaults","merged","key","value","Object","entries","undefined","defaultValue","isObject","Array","isArray"],"mappings":";;;;AAAA;AACA;AAKA;;;;IAKO,SAASA,aAAAA,CAAcC,SAAmC,EAAA;AAC7D,IAAA,OAAOC,MAAMC,6CAAAA,EAAwBF,SAAAA,CAAAA;AACzC;AAEA,SAASC,KAAAA,CAAME,QAAgB,EAAEH,SAAkB,EAAA;AAC/C,IAAA,IAAI,CAACA,SAAAA,EAAW;QACZ,OAAOG,QAAAA;AACX,IAAA;AAEA,IAAA,MAAMC,MAAAA,GAAkC;AAAE,QAAA,GAAGD;AAAS,KAAA;IACtD,KAAK,MAAM,CAACE,GAAAA,EAAKC,KAAAA,CAAM,IAAIC,MAAAA,CAAOC,OAAO,CAACR,SAAAA,CAAAA,CAAY;AAClD,QAAA,IAAIM,UAAUG,SAAAA,EAAW;AACrB,YAAA;AACJ,QAAA;AAEA,QAAA,MAAMC,YAAAA,GAAgBP,QAAoC,CAACE,GAAAA,CAAI;QAC/DD,MAAM,CAACC,IAAI,GAAGM,QAAAA,CAASD,iBAAiBC,QAAAA,CAASL,KAAAA,CAAAA,GAASL,KAAAA,CAAMS,YAAAA,EAAcJ,KAAAA,CAAAA,GAASA,KAAAA;AAC3F,IAAA;IAEA,OAAOF,MAAAA;AACX;AAEA,SAASO,SAASL,KAAc,EAAA;IAC5B,OAAO,OAAOA,UAAU,QAAA,IAAYA,KAAAA,KAAU,QAAQ,CAACM,KAAAA,CAAMC,OAAO,CAACP,KAAAA,CAAAA;AACzE;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanPage.d.ts","sourceRoot":"","sources":["../../../Plan/PlanPage.tsx"],"names":[],"mappings":"AAYA,eAAO,MAAM,QAAQ,mCAWpB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var showrunner_boxoffice = require('@cratis/showrunner.boxoffice');
|
|
5
|
+
var EntitlementsContext = require('../Entitlements/EntitlementsContext.js');
|
|
6
|
+
var PlanView = require('./PlanView.js');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* The plan and modules page: where the tenant stands with its plan, which modules it has, and the offers the operator
|
|
10
|
+
* sells, with buttons that open the customer portal to buy, try or change plan. Render it inside a
|
|
11
|
+
* {@link BoxOfficeProvider}.
|
|
12
|
+
*/ const PlanPage = ()=>{
|
|
13
|
+
const entitlements = EntitlementsContext.useEntitlementsContext();
|
|
14
|
+
const [offers] = showrunner_boxoffice.OnSale.use();
|
|
15
|
+
return /*#__PURE__*/ jsxRuntime.jsx(PlanView.PlanView, {
|
|
16
|
+
entitlements: entitlements,
|
|
17
|
+
offers: offers.isSuccess ? offers.data ?? [] : [],
|
|
18
|
+
isLoading: offers.isPerforming && !offers.isSuccess,
|
|
19
|
+
hasFailed: !offers.isPerforming && !offers.isSuccess
|
|
20
|
+
});
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
exports.PlanPage = PlanPage;
|
|
24
|
+
//# sourceMappingURL=PlanPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanPage.js","sources":["../../../Plan/PlanPage.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { OnSale } from '@cratis/showrunner.boxoffice';\nimport { useEntitlementsContext } from '../Entitlements/EntitlementsContext.js';\nimport { PlanView } from './PlanView.js';\n\n/**\n * The plan and modules page: where the tenant stands with its plan, which modules it has, and the offers the operator\n * sells, with buttons that open the customer portal to buy, try or change plan. Render it inside a\n * {@link BoxOfficeProvider}.\n */\nexport const PlanPage = () => {\n const entitlements = useEntitlementsContext();\n const [offers] = OnSale.use();\n\n return (\n <PlanView\n entitlements={entitlements}\n offers={offers.isSuccess ? (offers.data ?? []) : []}\n isLoading={offers.isPerforming && !offers.isSuccess}\n hasFailed={!offers.isPerforming && !offers.isSuccess} />\n );\n};\n"],"names":["PlanPage","entitlements","useEntitlementsContext","offers","OnSale","use","_jsx","PlanView","isSuccess","data","isLoading","isPerforming","hasFailed"],"mappings":";;;;;;;AAOA;;;;UAKaA,QAAAA,GAAW,IAAA;AACpB,IAAA,MAAMC,YAAAA,GAAeC,0CAAAA,EAAAA;AACrB,IAAA,MAAM,CAACC,MAAAA,CAAO,GAAGC,2BAAAA,CAAOC,GAAG,EAAA;AAE3B,IAAA,qBACIC,cAAA,CAACC,iBAAAA,EAAAA;QACGN,YAAAA,EAAcA,YAAAA;QACdE,MAAAA,EAAQA,MAAAA,CAAOK,SAAS,GAAIL,MAAAA,CAAOM,IAAI,IAAI,EAAE,GAAI,EAAE;AACnDC,QAAAA,SAAAA,EAAWP,MAAAA,CAAOQ,YAAY,IAAI,CAACR,OAAOK,SAAS;AACnDI,QAAAA,SAAAA,EAAW,CAACT,MAAAA,CAAOQ,YAAY,IAAI,CAACR,OAAOK;;AAEvD;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Offer } from '@cratis/showrunner.boxoffice';
|
|
2
|
+
import { Entitlements } from '../Entitlements/entitlementModel.js';
|
|
3
|
+
export interface PlanViewProps {
|
|
4
|
+
entitlements: Entitlements;
|
|
5
|
+
offers: readonly Offer[];
|
|
6
|
+
isLoading?: boolean;
|
|
7
|
+
hasFailed?: boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const PlanView: ({ entitlements, offers, isLoading, hasFailed }: PlanViewProps) => import("react").JSX.Element;
|
|
10
|
+
//# sourceMappingURL=PlanView.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanView.d.ts","sourceRoot":"","sources":["../../../Plan/PlanView.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAgB,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAQnE,MAAM,WAAW,aAAa;IAE1B,YAAY,EAAE,YAAY,CAAC;IAG3B,MAAM,EAAE,SAAS,KAAK,EAAE,CAAC;IAGzB,SAAS,CAAC,EAAE,OAAO,CAAC;IAGpB,SAAS,CAAC,EAAE,OAAO,CAAC;CACvB;AAMD,eAAO,MAAM,QAAQ,GAAI,gDAAgD,aAAa,gCAgDrF,CAAC"}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var Display = require('@cratis/components/Display');
|
|
5
|
+
var showrunner_boxoffice = require('@cratis/showrunner.boxoffice');
|
|
6
|
+
var PortalButton = require('../Portal/PortalButton.js');
|
|
7
|
+
var BoxOfficeContext = require('../Provider/BoxOfficeContext.js');
|
|
8
|
+
var planModels = require('./planModels.js');
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* The plan and modules of the tenant: where it stands, which modules it has, and what it can buy, with buttons that
|
|
12
|
+
* open the customer portal.
|
|
13
|
+
*/ const PlanView = ({ entitlements, offers, isLoading, hasFailed })=>{
|
|
14
|
+
const { labels, locale } = BoxOfficeContext.useBoxOfficeContext();
|
|
15
|
+
const modules = planModels.moduleRows(entitlements, labels, locale);
|
|
16
|
+
const offerList = planModels.offerRows(offers, entitlements, labels, locale);
|
|
17
|
+
const summary = planModels.planSummary(entitlements, labels);
|
|
18
|
+
return /*#__PURE__*/ jsxRuntime.jsxs("section", {
|
|
19
|
+
className: "boxoffice-plan",
|
|
20
|
+
"aria-labelledby": "boxoffice-plan-title",
|
|
21
|
+
children: [
|
|
22
|
+
/*#__PURE__*/ jsxRuntime.jsx("header", {
|
|
23
|
+
className: "boxoffice-page__header",
|
|
24
|
+
children: /*#__PURE__*/ jsxRuntime.jsx("h2", {
|
|
25
|
+
id: "boxoffice-plan-title",
|
|
26
|
+
className: "boxoffice-page__title",
|
|
27
|
+
children: labels.plan.title
|
|
28
|
+
})
|
|
29
|
+
}),
|
|
30
|
+
summary && /*#__PURE__*/ jsxRuntime.jsx("p", {
|
|
31
|
+
className: "boxoffice-plan__summary",
|
|
32
|
+
children: summary
|
|
33
|
+
}),
|
|
34
|
+
!entitlements.isLoading && !entitlements.canOpenPortal && /*#__PURE__*/ jsxRuntime.jsx(Display.Message, {
|
|
35
|
+
severity: "info",
|
|
36
|
+
children: labels.common.noPortal
|
|
37
|
+
}),
|
|
38
|
+
/*#__PURE__*/ jsxRuntime.jsx("h3", {
|
|
39
|
+
className: "boxoffice-plan__heading",
|
|
40
|
+
children: labels.plan.modulesTitle
|
|
41
|
+
}),
|
|
42
|
+
modules.length === 0 ? /*#__PURE__*/ jsxRuntime.jsx("p", {
|
|
43
|
+
className: "boxoffice-plan__empty",
|
|
44
|
+
children: entitlements.isLoading ? labels.common.loading : labels.plan.noModules
|
|
45
|
+
}) : /*#__PURE__*/ jsxRuntime.jsx("ul", {
|
|
46
|
+
className: "boxoffice-plan__modules",
|
|
47
|
+
children: modules.map((module)=>/*#__PURE__*/ jsxRuntime.jsxs("li", {
|
|
48
|
+
className: "boxoffice-plan__module",
|
|
49
|
+
children: [
|
|
50
|
+
/*#__PURE__*/ jsxRuntime.jsx("span", {
|
|
51
|
+
className: "boxoffice-plan__name",
|
|
52
|
+
children: module.standing.name
|
|
53
|
+
}),
|
|
54
|
+
/*#__PURE__*/ jsxRuntime.jsx(Display.Tag, {
|
|
55
|
+
severity: module.severity,
|
|
56
|
+
value: module.accessText
|
|
57
|
+
}),
|
|
58
|
+
module.untilText && /*#__PURE__*/ jsxRuntime.jsx("span", {
|
|
59
|
+
className: "boxoffice-plan__until",
|
|
60
|
+
children: module.untilText
|
|
61
|
+
}),
|
|
62
|
+
module.canTry && /*#__PURE__*/ jsxRuntime.jsx(PortalButton.PortalButton, {
|
|
63
|
+
intent: showrunner_boxoffice.PortalIntent.try,
|
|
64
|
+
label: labels.plan.try,
|
|
65
|
+
variant: "outline",
|
|
66
|
+
size: "small"
|
|
67
|
+
})
|
|
68
|
+
]
|
|
69
|
+
}, module.standing.module))
|
|
70
|
+
}),
|
|
71
|
+
/*#__PURE__*/ jsxRuntime.jsx("h3", {
|
|
72
|
+
className: "boxoffice-plan__heading",
|
|
73
|
+
children: labels.plan.offersTitle
|
|
74
|
+
}),
|
|
75
|
+
hasFailed && /*#__PURE__*/ jsxRuntime.jsx(Display.Message, {
|
|
76
|
+
severity: "error",
|
|
77
|
+
children: labels.common.failed
|
|
78
|
+
}),
|
|
79
|
+
!hasFailed && offerList.length === 0 && /*#__PURE__*/ jsxRuntime.jsx("p", {
|
|
80
|
+
className: "boxoffice-plan__empty",
|
|
81
|
+
children: isLoading ? labels.common.loading : labels.plan.noOffers
|
|
82
|
+
}),
|
|
83
|
+
/*#__PURE__*/ jsxRuntime.jsx("ul", {
|
|
84
|
+
className: "boxoffice-plan__offers",
|
|
85
|
+
children: offerList.map((row)=>/*#__PURE__*/ jsxRuntime.jsxs("li", {
|
|
86
|
+
className: "boxoffice-plan__offer",
|
|
87
|
+
children: [
|
|
88
|
+
/*#__PURE__*/ jsxRuntime.jsxs("div", {
|
|
89
|
+
className: "boxoffice-plan__offer-text",
|
|
90
|
+
children: [
|
|
91
|
+
/*#__PURE__*/ jsxRuntime.jsx("strong", {
|
|
92
|
+
children: row.offer.name
|
|
93
|
+
}),
|
|
94
|
+
row.seatsText && /*#__PURE__*/ jsxRuntime.jsx("span", {
|
|
95
|
+
children: row.seatsText
|
|
96
|
+
}),
|
|
97
|
+
row.moduleNames.length > 0 && /*#__PURE__*/ jsxRuntime.jsxs("span", {
|
|
98
|
+
children: [
|
|
99
|
+
labels.plan.includedModules,
|
|
100
|
+
": ",
|
|
101
|
+
row.moduleNames.join(', ')
|
|
102
|
+
]
|
|
103
|
+
}),
|
|
104
|
+
row.prices.map((price)=>/*#__PURE__*/ jsxRuntime.jsx("span", {
|
|
105
|
+
className: "boxoffice-plan__price",
|
|
106
|
+
children: price
|
|
107
|
+
}, price))
|
|
108
|
+
]
|
|
109
|
+
}),
|
|
110
|
+
/*#__PURE__*/ jsxRuntime.jsx(PortalButton.PortalButton, {
|
|
111
|
+
intent: row.intent,
|
|
112
|
+
offer: row.offer.id,
|
|
113
|
+
label: row.buttonLabel
|
|
114
|
+
})
|
|
115
|
+
]
|
|
116
|
+
}, row.offer.id.toString()))
|
|
117
|
+
})
|
|
118
|
+
]
|
|
119
|
+
});
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
exports.PlanView = PlanView;
|
|
123
|
+
//# sourceMappingURL=PlanView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanView.js","sources":["../../../Plan/PlanView.tsx"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { Message, Tag } from '@cratis/components/Display';\nimport { Offer, PortalIntent } from '@cratis/showrunner.boxoffice';\nimport { Entitlements } from '../Entitlements/entitlementModel.js';\nimport { PortalButton } from '../Portal/PortalButton.js';\nimport { useBoxOfficeContext } from '../Provider/BoxOfficeContext.js';\nimport { moduleRows, offerRows, planSummary } from './planModels.js';\n\n/**\n * Props for {@link PlanView}.\n */\nexport interface PlanViewProps {\n /** What the tenant may do. */\n entitlements: Entitlements;\n\n /** The offers on sale. */\n offers: readonly Offer[];\n\n /** Whether the offers are still loading. */\n isLoading?: boolean;\n\n /** Whether the offers could not be loaded. */\n hasFailed?: boolean;\n}\n\n/**\n * The plan and modules of the tenant: where it stands, which modules it has, and what it can buy, with buttons that\n * open the customer portal.\n */\nexport const PlanView = ({ entitlements, offers, isLoading, hasFailed }: PlanViewProps) => {\n const { labels, locale } = useBoxOfficeContext();\n const modules = moduleRows(entitlements, labels, locale);\n const offerList = offerRows(offers, entitlements, labels, locale);\n const summary = planSummary(entitlements, labels);\n\n return (\n <section className='boxoffice-plan' aria-labelledby='boxoffice-plan-title'>\n <header className='boxoffice-page__header'>\n <h2 id='boxoffice-plan-title' className='boxoffice-page__title'>{labels.plan.title}</h2>\n </header>\n {summary && <p className='boxoffice-plan__summary'>{summary}</p>}\n {!entitlements.isLoading && !entitlements.canOpenPortal && <Message severity='info'>{labels.common.noPortal}</Message>}\n\n <h3 className='boxoffice-plan__heading'>{labels.plan.modulesTitle}</h3>\n {modules.length === 0\n ? <p className='boxoffice-plan__empty'>{entitlements.isLoading ? labels.common.loading : labels.plan.noModules}</p>\n : (\n <ul className='boxoffice-plan__modules'>\n {modules.map(module => (\n <li key={module.standing.module} className='boxoffice-plan__module'>\n <span className='boxoffice-plan__name'>{module.standing.name}</span>\n <Tag severity={module.severity} value={module.accessText} />\n {module.untilText && <span className='boxoffice-plan__until'>{module.untilText}</span>}\n {module.canTry && <PortalButton intent={PortalIntent.try} label={labels.plan.try} variant='outline' size='small' />}\n </li>\n ))}\n </ul>\n )}\n\n <h3 className='boxoffice-plan__heading'>{labels.plan.offersTitle}</h3>\n {hasFailed && <Message severity='error'>{labels.common.failed}</Message>}\n {!hasFailed && offerList.length === 0 && <p className='boxoffice-plan__empty'>{isLoading ? labels.common.loading : labels.plan.noOffers}</p>}\n <ul className='boxoffice-plan__offers'>\n {offerList.map(row => (\n <li key={row.offer.id.toString()} className='boxoffice-plan__offer'>\n <div className='boxoffice-plan__offer-text'>\n <strong>{row.offer.name}</strong>\n {row.seatsText && <span>{row.seatsText}</span>}\n {row.moduleNames.length > 0 && <span>{labels.plan.includedModules}: {row.moduleNames.join(', ')}</span>}\n {row.prices.map(price => <span key={price} className='boxoffice-plan__price'>{price}</span>)}\n </div>\n <PortalButton intent={row.intent} offer={row.offer.id} label={row.buttonLabel} />\n </li>\n ))}\n </ul>\n </section>\n );\n};\n"],"names":["PlanView","entitlements","offers","isLoading","hasFailed","labels","locale","useBoxOfficeContext","modules","moduleRows","offerList","offerRows","summary","planSummary","_jsxs","section","className","aria-labelledby","_jsx","header","h2","id","plan","title","p","canOpenPortal","Message","severity","common","noPortal","h3","modulesTitle","length","loading","noModules","ul","map","module","li","span","standing","name","Tag","value","accessText","untilText","canTry","PortalButton","intent","PortalIntent","try","label","variant","size","offersTitle","failed","noOffers","row","div","strong","offer","seatsText","moduleNames","includedModules","join","prices","price","buttonLabel","toString"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../Plan/index.ts"],"names":[],"mappings":"AAGA,cAAc,iBAAiB,CAAC;AAChC,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ModuleStanding, Offer, OfferPrice, PortalIntent } from '@cratis/showrunner.boxoffice';
|
|
2
|
+
import { Entitlements } from '../Entitlements/entitlementModel.js';
|
|
3
|
+
import { BoxOfficeLabels } from '../Labels/index.js';
|
|
4
|
+
export type AccessSeverity = 'success' | 'info' | 'warn' | 'secondary';
|
|
5
|
+
export interface ModuleRowModel {
|
|
6
|
+
readonly standing: ModuleStanding;
|
|
7
|
+
readonly accessText: string;
|
|
8
|
+
readonly untilText: string;
|
|
9
|
+
readonly severity: AccessSeverity;
|
|
10
|
+
readonly canTry: boolean;
|
|
11
|
+
}
|
|
12
|
+
export interface OfferRowModel {
|
|
13
|
+
readonly offer: Offer;
|
|
14
|
+
readonly prices: readonly string[];
|
|
15
|
+
readonly seatsText: string;
|
|
16
|
+
readonly moduleNames: readonly string[];
|
|
17
|
+
readonly intent: PortalIntent;
|
|
18
|
+
readonly buttonLabel: string;
|
|
19
|
+
}
|
|
20
|
+
export declare function moduleRows(entitlements: Entitlements, labels: BoxOfficeLabels, locale?: string): ModuleRowModel[];
|
|
21
|
+
export declare function priceText(price: OfferPrice, labels: BoxOfficeLabels, locale?: string): string;
|
|
22
|
+
export declare function offerRows(offers: readonly Offer[], entitlements: Entitlements, labels: BoxOfficeLabels, locale?: string): OfferRowModel[];
|
|
23
|
+
export declare function planSummary(entitlements: Entitlements, labels: BoxOfficeLabels): string;
|
|
24
|
+
//# sourceMappingURL=planModels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planModels.d.ts","sourceRoot":"","sources":["../../../Plan/planModels.ts"],"names":[],"mappings":"AAGA,OAAO,EAAiC,cAAc,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC9H,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAU,MAAM,oBAAoB,CAAC;AAG7D,MAAM,MAAM,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;AAKvE,MAAM,WAAW,cAAc;IAE3B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAGlC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAG5B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAG3B,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAGlC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;CAC5B;AAKD,MAAM,WAAW,aAAa;IAE1B,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC;IAGtB,QAAQ,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC;IAGnC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAG3B,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IAGxC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAG9B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;CAChC;AASD,wBAAgB,UAAU,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,cAAc,EAAE,CAiBjH;AASD,wBAAgB,SAAS,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAG7F;AAUD,wBAAgB,SAAS,CAAC,MAAM,EAAE,SAAS,KAAK,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,aAAa,EAAE,CAYzI;AAQD,wBAAgB,WAAW,CAAC,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,eAAe,GAAG,MAAM,CAMvF"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var showrunner_boxoffice = require('@cratis/showrunner.boxoffice');
|
|
4
|
+
var formatting = require('../formatting.js');
|
|
5
|
+
var format = require('../Labels/format.js');
|
|
6
|
+
|
|
7
|
+
// Copyright (c) Cratis. All rights reserved.
|
|
8
|
+
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
|
|
9
|
+
/**
|
|
10
|
+
* Lays out the modules of the plan page.
|
|
11
|
+
* @param entitlements What the tenant may do.
|
|
12
|
+
* @param labels The labels to show.
|
|
13
|
+
* @param locale The locale to format for; the browser's when not given.
|
|
14
|
+
* @returns A row for every module the product declares.
|
|
15
|
+
*/ function moduleRows(entitlements, labels, locale) {
|
|
16
|
+
return entitlements.modules.map((standing)=>{
|
|
17
|
+
const access = standing.access;
|
|
18
|
+
return {
|
|
19
|
+
standing,
|
|
20
|
+
accessText: access === showrunner_boxoffice.ModuleAccess.full ? labels.moduleAccess.full : access === showrunner_boxoffice.ModuleAccess.trial ? labels.moduleAccess.trial : access === showrunner_boxoffice.ModuleAccess.preview ? labels.moduleAccess.preview : labels.moduleAccess.none,
|
|
21
|
+
untilText: standing.until && access !== showrunner_boxoffice.ModuleAccess.none ? format.format(labels.moduleAccess.until, {
|
|
22
|
+
date: formatting.formatDay(standing.until, locale)
|
|
23
|
+
}) : '',
|
|
24
|
+
severity: access === showrunner_boxoffice.ModuleAccess.full ? 'success' : access === showrunner_boxoffice.ModuleAccess.trial ? 'info' : access === showrunner_boxoffice.ModuleAccess.preview ? 'warn' : 'secondary',
|
|
25
|
+
canTry: access === showrunner_boxoffice.ModuleAccess.none || access === showrunner_boxoffice.ModuleAccess.preview
|
|
26
|
+
};
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Says what an offer's price is.
|
|
31
|
+
* @param price The price.
|
|
32
|
+
* @param labels The labels to show.
|
|
33
|
+
* @param locale The locale to format for; the browser's when not given.
|
|
34
|
+
* @returns The price, such as "$12.00 per month".
|
|
35
|
+
*/ function priceText(price, labels, locale) {
|
|
36
|
+
const money = formatting.formatMoney(price.amount, price.currency, locale);
|
|
37
|
+
return format.format(price.interval === showrunner_boxoffice.BillingInterval.yearly ? labels.plan.perYear : labels.plan.perMonth, {
|
|
38
|
+
price: money
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Lays out the offers of the plan page.
|
|
43
|
+
* @param offers The offers on sale.
|
|
44
|
+
* @param entitlements What the tenant may do.
|
|
45
|
+
* @param labels The labels to show.
|
|
46
|
+
* @param locale The locale to format for; the browser's when not given.
|
|
47
|
+
* @returns A row for every offer.
|
|
48
|
+
*/ function offerRows(offers, entitlements, labels, locale) {
|
|
49
|
+
const changes = entitlements.state === 'licensed';
|
|
50
|
+
return offers.map((offer)=>({
|
|
51
|
+
offer,
|
|
52
|
+
prices: [
|
|
53
|
+
...offer.prices
|
|
54
|
+
].sort((a, b)=>a.interval - b.interval).map((price)=>priceText(price, labels, locale)),
|
|
55
|
+
seatsText: offer.includedSeats > 0 ? format.format(labels.plan.includedSeats, {
|
|
56
|
+
count: offer.includedSeats
|
|
57
|
+
}) : '',
|
|
58
|
+
moduleNames: offer.modules.map((module)=>entitlements.standingOf(module)?.name ?? module),
|
|
59
|
+
intent: changes ? showrunner_boxoffice.PortalIntent.changePlan : showrunner_boxoffice.PortalIntent.buy,
|
|
60
|
+
buttonLabel: changes ? labels.plan.changePlan : labels.plan.buy
|
|
61
|
+
}));
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Says where the tenant stands with its plan.
|
|
65
|
+
* @param entitlements What the tenant may do.
|
|
66
|
+
* @param labels The labels to show.
|
|
67
|
+
* @returns A sentence; empty when there is nothing to say.
|
|
68
|
+
*/ function planSummary(entitlements, labels) {
|
|
69
|
+
if (entitlements.state === 'trial' && entitlements.trial) {
|
|
70
|
+
return format.format(labels.plan.onTrial, {
|
|
71
|
+
days: Math.max(entitlements.trial.daysLeft, 0)
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
return entitlements.seats > 0 ? format.format(labels.plan.withSeats, {
|
|
75
|
+
seats: entitlements.seats
|
|
76
|
+
}) : '';
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
exports.moduleRows = moduleRows;
|
|
80
|
+
exports.offerRows = offerRows;
|
|
81
|
+
exports.planSummary = planSummary;
|
|
82
|
+
exports.priceText = priceText;
|
|
83
|
+
//# sourceMappingURL=planModels.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planModels.js","sources":["../../../Plan/planModels.ts"],"sourcesContent":["// Copyright (c) Cratis. All rights reserved.\n// Licensed under the MIT license. See LICENSE file in the project root for full license information.\n\nimport { BillingInterval, ModuleAccess, ModuleStanding, Offer, OfferPrice, PortalIntent } from '@cratis/showrunner.boxoffice';\nimport { Entitlements } from '../Entitlements/entitlementModel.js';\nimport { formatDay, formatMoney } from '../formatting.js';\nimport { BoxOfficeLabels, format } from '../Labels/index.js';\n\n/** How a module's access is shown. */\nexport type AccessSeverity = 'success' | 'info' | 'warn' | 'secondary';\n\n/**\n * What the plan page shows for one module.\n */\nexport interface ModuleRowModel {\n /** The module's standing. */\n readonly standing: ModuleStanding;\n\n /** What the access is called. */\n readonly accessText: string;\n\n /** When the access ends, in words; empty when it does not. */\n readonly untilText: string;\n\n /** How the access is shown. */\n readonly severity: AccessSeverity;\n\n /** Whether to offer to try the module. */\n readonly canTry: boolean;\n}\n\n/**\n * What the plan page shows for one offer.\n */\nexport interface OfferRowModel {\n /** The offer. */\n readonly offer: Offer;\n\n /** The prices, in words, monthly first. */\n readonly prices: readonly string[];\n\n /** The seats the offer includes, in words; empty when it includes none. */\n readonly seatsText: string;\n\n /** The names of the modules the offer includes. */\n readonly moduleNames: readonly string[];\n\n /** What the offer's button opens the customer portal for. */\n readonly intent: PortalIntent;\n\n /** The text of the offer's button. */\n readonly buttonLabel: string;\n}\n\n/**\n * Lays out the modules of the plan page.\n * @param entitlements What the tenant may do.\n * @param labels The labels to show.\n * @param locale The locale to format for; the browser's when not given.\n * @returns A row for every module the product declares.\n */\nexport function moduleRows(entitlements: Entitlements, labels: BoxOfficeLabels, locale?: string): ModuleRowModel[] {\n return entitlements.modules.map(standing => {\n const access = standing.access;\n return {\n standing,\n accessText: access === ModuleAccess.full\n ? labels.moduleAccess.full\n : access === ModuleAccess.trial\n ? labels.moduleAccess.trial\n : access === ModuleAccess.preview ? labels.moduleAccess.preview : labels.moduleAccess.none,\n untilText: standing.until && access !== ModuleAccess.none\n ? format(labels.moduleAccess.until, { date: formatDay(standing.until, locale) })\n : '',\n severity: access === ModuleAccess.full ? 'success' : access === ModuleAccess.trial ? 'info' : access === ModuleAccess.preview ? 'warn' : 'secondary',\n canTry: access === ModuleAccess.none || access === ModuleAccess.preview\n };\n });\n}\n\n/**\n * Says what an offer's price is.\n * @param price The price.\n * @param labels The labels to show.\n * @param locale The locale to format for; the browser's when not given.\n * @returns The price, such as \"$12.00 per month\".\n */\nexport function priceText(price: OfferPrice, labels: BoxOfficeLabels, locale?: string): string {\n const money = formatMoney(price.amount, price.currency, locale);\n return format(price.interval === BillingInterval.yearly ? labels.plan.perYear : labels.plan.perMonth, { price: money });\n}\n\n/**\n * Lays out the offers of the plan page.\n * @param offers The offers on sale.\n * @param entitlements What the tenant may do.\n * @param labels The labels to show.\n * @param locale The locale to format for; the browser's when not given.\n * @returns A row for every offer.\n */\nexport function offerRows(offers: readonly Offer[], entitlements: Entitlements, labels: BoxOfficeLabels, locale?: string): OfferRowModel[] {\n const changes = entitlements.state === 'licensed';\n return offers.map(offer => ({\n offer,\n prices: [...offer.prices]\n .sort((a, b) => a.interval - b.interval)\n .map(price => priceText(price, labels, locale)),\n seatsText: offer.includedSeats > 0 ? format(labels.plan.includedSeats, { count: offer.includedSeats }) : '',\n moduleNames: offer.modules.map(module => entitlements.standingOf(module)?.name ?? module),\n intent: changes ? PortalIntent.changePlan : PortalIntent.buy,\n buttonLabel: changes ? labels.plan.changePlan : labels.plan.buy\n }));\n}\n\n/**\n * Says where the tenant stands with its plan.\n * @param entitlements What the tenant may do.\n * @param labels The labels to show.\n * @returns A sentence; empty when there is nothing to say.\n */\nexport function planSummary(entitlements: Entitlements, labels: BoxOfficeLabels): string {\n if (entitlements.state === 'trial' && entitlements.trial) {\n return format(labels.plan.onTrial, { days: Math.max(entitlements.trial.daysLeft, 0) });\n }\n\n return entitlements.seats > 0 ? format(labels.plan.withSeats, { seats: entitlements.seats }) : '';\n}\n"],"names":["moduleRows","entitlements","labels","locale","modules","map","standing","access","accessText","ModuleAccess","full","moduleAccess","trial","preview","none","untilText","until","format","date","formatDay","severity","canTry","priceText","price","money","formatMoney","amount","currency","interval","BillingInterval","yearly","plan","perYear","perMonth","offerRows","offers","changes","state","offer","prices","sort","a","b","seatsText","includedSeats","count","moduleNames","module","standingOf","name","intent","PortalIntent","changePlan","buy","buttonLabel","planSummary","onTrial","days","Math","max","daysLeft","seats","withSeats"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ButtonProps } from '@cratis/components/Common';
|
|
2
|
+
import { Guid } from '@cratis/fundamentals';
|
|
3
|
+
import { PortalIntent } from '@cratis/showrunner.boxoffice';
|
|
4
|
+
export interface PortalButtonProps extends Pick<ButtonProps, 'variant' | 'tone' | 'size' | 'className' | 'icon'> {
|
|
5
|
+
intent: PortalIntent;
|
|
6
|
+
label: string;
|
|
7
|
+
offer?: Guid;
|
|
8
|
+
}
|
|
9
|
+
export declare const PortalButton: ({ intent, label, offer, variant, ...rest }: PortalButtonProps) => import("react").JSX.Element | null;
|
|
10
|
+
//# sourceMappingURL=PortalButton.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PortalButton.d.ts","sourceRoot":"","sources":["../../../Portal/PortalButton.tsx"],"names":[],"mappings":"AAGA,OAAO,EAAU,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAChE,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAQ5D,MAAM,WAAW,iBAAkB,SAAQ,IAAI,CAAC,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAE5G,MAAM,EAAE,YAAY,CAAC;IAGrB,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,CAAC,EAAE,IAAI,CAAC;CAChB;AAMD,eAAO,MAAM,YAAY,GAAI,4CAAsD,iBAAiB,uCAmBnG,CAAC"}
|